10 best practices from top coders at Google, Pinterest & more | VentureBeat
Eric Nakagawa stashed this in programming
1. Think carefully before you choose your first language
2. You’re no code monkey!
3. Stay agile and don’t stop shipping
4. Stay in control of the testing process
5. If you’re a freelancer, learn to say no, even to money
6. Don’t rest on your laurels — theory matters, but practice matters more
High level but hands-on
7. Peer review is your secret weapon
8. Avoid premature optimization like the plague
9. You write your code once, but people will read it thousands more times
10. It’s a noble profession. Use your skills for good.
I don't agree with 8 at all. Incremental and iterative refactoring is an essential and valuable tool for launching an early stage product. Maybe they have a very narrow view of "optimization". Un-refactored code has a habit of staying around far too long and once you lose the context and rationale of the design, it gets sedimentary.
I also agree that localized refactoring is an important and prudent step.However, the point I think the article is trying to make is obsessing over optimizing on a piece that is a FUN technical challenge and not one that directly contributes to the bottom line. To me this speaks more to craftsmanship than being a prolific and world-class developer.
That being said, if you're working on a team of great developers thinking about, collaborting on, designing and developing software for one of the top 100 companies in Silicon Valley, then I would assume that there is a lot more thought being put into the system architecture prior to a single line of code is written. When you come from the world of hack/smash/jam/rush stuff out then a lot of these suggestions aren't entirely applicable.