12 things every programmer should know

17
12 Things Every Programmer Should Know by Samnang Chhun Barcamppp 2010

Upload: samnang-chhun

Post on 19-Aug-2014

42.919 views

Category:

Education


0 download

DESCRIPTION

This presentation is about best practices, techniques, and attitudes of a professional software developer.

TRANSCRIPT

Page 1: 12 Things Every Programmer Should Know

12 Things Every Programmer Should Know

by Samnang Chhun

Barcamppp 2010

Page 2: 12 Things Every Programmer Should Know

About Me

[email protected] • @samnangchhun • http://wowkhmer.com • Ruby and Rails Developer • .NET Developer (MCTS) • Yoolk Inc. • Share Vision Team Core Member

Page 3: 12 Things Every Programmer Should Know

Be Passionate

“Programmers are a subset of creators have the responsibility to shape the new world”,

@steveklabnik and @judofyr

1 • Love what you are doing • Be creative • Want to do it best • Better than yesterday

Page 4: 12 Things Every Programmer Should Know

Love Your Codes

• Write codes for human, but bad programmers write codes for machine

• Every programmer loves to work with Clean Code

2

Page 5: 12 Things Every Programmer Should Know

Version Control

• Backup your codes • Tracking changes (who, what, when) • Work in parallel • Commit often • Never commit when your build fail

3

Page 6: 12 Things Every Programmer Should Know

Read Codes

• Before you become a good writer, you have to be a good reader

• Day and day programmers working hours: 70% reading and 30% writing

• Take notes on ideas or tricks of the author

4

Page 7: 12 Things Every Programmer Should Know

Practice, Practice, Practice

• Small exercises, isolated problems • Practice on outside company projects • Do your best as you can(no pressure) • Practice to become a master • CodeKata, Pair with Me, Fixing bugs in

an OSS that you are using

5

Page 8: 12 Things Every Programmer Should Know

Refactoring

• Improve quality of your codes, without changing system behavior

• Make it easy to understand, maintain, and extend

• “Always check a module in cleaner than when you checked it out”, Uncle Bob

• Intension-Revealing Names, Small Method, Compose Method, …

6

Page 9: 12 Things Every Programmer Should Know

Follow Patterns and Best Practices

• Object Oriented Design Principles • SOLID • GRASP • DRY • KISS • Don’t Tell Us • Design Patterns

7

Page 10: 12 Things Every Programmer Should Know

TDD/BDD

• Tests are specifications what the system does

• Tests are your first user • Short development iteration • Is a design process • Write just enough codes to pass the

tests

8

Page 11: 12 Things Every Programmer Should Know

Automation

• Make your manual tasks are automatable

• Command line are your friend • Make a shortcut of your repeated tasks • Continuous Integration • Automation Deployment

9

Page 12: 12 Things Every Programmer Should Know

Understand Your Domain

• Domain-specific won’t be outdate soon, but technologies will

• “You can’t creatively help a business until you know how it works.” Chad Fowler

10

Page 13: 12 Things Every Programmer Should Know

Continuous Learning

• You need to keep learning to stay marketable

• “Be the worst,” Chad Fowler • Read books, blogs, Twitters feeds, and

websites • Listen to podcasts • Sharpening your tools

11

Page 14: 12 Things Every Programmer Should Know

Participate in Communities

• A good way to learn something is to teach or speak about it

• Join or start a study group or a local user group for a language, technology, or discipline you are interested in.

• Contribute to OSS

12

Page 15: 12 Things Every Programmer Should Know

What I have leanred

• Be Prepared To Unlearn • Validate assumptions about your skillset • Do less reading about what others are

doing, and more doing of things that others may want to read about

• Good Artists Copy, Great Artists Steal

+1

Page 16: 12 Things Every Programmer Should Know

References

Page 17: 12 Things Every Programmer Should Know

Q & A