12 Things Every Programmer Should Know


Published on

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

Published in: Education, Technology
  • Nice. I thought it amazing to see Steve Job's quote, "Good Artists copy, Great Artists Steal".
    Are you sure you want to  Yes  No
    Your message goes here
  • Thanks
    Are you sure you want to  Yes  No
    Your message goes here
  • Very nice! I agree with all your points!
    Stefano, Italy
    Are you sure you want to  Yes  No
    Your message goes here
  • lovely slides and informative
    Are you sure you want to  Yes  No
    Your message goes here
  • 12 pensamentos básicos, mas, que é sempre bom lembrar.
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

12 Things Every Programmer Should Know

  1. 12 Things Every Programmer Should Know by Samnang Chhun Barcamppp 2010
  2. About Me • samnang.chhun@gmail.com • @samnangchhun • http://tech.wowkhmer.com • Ruby and Rails Developer • .NET Developer (MCTS) • Yoolk Inc. • Share Vision Team Core Member
  3. 1 Be Passionate • Love what you are doing • Be creative • Want to do it best • Better than yesterday
  4. 2 Love Your Codes • Write codes for human, but bad programmers write codes for machine • Every programmer loves to work with Clean Code
  5. 3 Version Control • Backup your codes • Tracking changes (who, what, when) • Work in parallel • Commit often • Never commit when your build fail
  6. 4 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
  7. 5 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, Paring Tour, Fixing bugs in an OSS that you are using
  8. 6 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, …
  9. 7 Follow Patterns and Best Practices • Object Oriented Design Principles • SOLID • GRASP • DRY • KISS • Don’t Tell Us • Design Patterns
  10. 8 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
  11. 9 Automation • Make your manual tasks are automatable • Command line are your friend • Make a shortcut of your repeated tasks • Continuous Integration • Automation Deployment
  12. Understand 10 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
  13. Continuous 11 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
  14. Participate in 12 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
  15. References
  16. Q&A