12 Things Every Programmer Should Know
Programmers are a subset of creators have the responsibility to shape the new world
1.Be passionate
Love what you are doing
Be creative
Want to do it best
Better than yesterday
2.Love Your Codes
Write codes for hunman,but dad programmers write codes for machine
Every programmer loves to work with Clean Code
3.Version Control
Backup your codes
Tracking changes(Who,what,when)
Work in parallel
Commit often
Never commit when you build fail
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
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
Fixing bugs in an OSS that you are using
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
Intension-Revealing Names, Small Method, Compose Method
7.Follow patterns and Best Practices
Object Oriented Design Principles
SOLID
GRASP
DRY
KISS
Don't Tell Us
Design Patterns
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
9.Automation
Make your manual tasks are automatable
Command line are you friend
Make a shortcut of your repeated tasks
Continuous Integration
Automation Deployment
10.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
11.Continuous Learning
You need to keep learning to stay marketable
Be the worst
Read books, blogs, Twitters feeds, and websites
Listen to podcasts
Sharpening your tools
12.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
英文原文: http://www.slideshare.net/samnang.chhun/12-things-every-programmer-should-know