What are the best-kept secrets of great programmers? from Quora

If I told you then I would have to kill you.

More seriously:

0. Everything can be done with Hashmaps.

1. Managers always lie. That important system that needed to be ready yesterday, when delivered, will not be taken a look in 2 months.

2. It is much better to write something "right" than make it fast and buggy. Whenever you have to hurry, simply don't, you always have all the time in the world. Always do the right thing. The system will take a lot less time to write and you will feel a lot better about the code.

3. If they say "we don't have more money, hurry up", then reduce the scope, remove features, do less, use agile methodologies. Never hurry up.

4. The GIGO effect: Garbage in, garbage out. Make sure the requirements are right.

5. There are no undocumented features. Either they are documented or nobody will know they exist.

6. RTFM is bad manners. Hallway usability is much better. If you think this contradicts number 5, maybe. Maybe not.

7. You learn a lot more when you see how people use your system. Monitor usage and fix accordingly.

8. Unit testing is a lot more effective than traditional QA. Use both at the beginning.

9. Functional programming is the wave of the future. Learn Haskell.

10. For estimation, use past projects estimates corrected by actual data. You need hard data for this: use the number of screens, database tables, use cases, etc.

11. Version control is your friend.

12. Code should be DRY instead of WET.

13. Cache oblivious algorithms.

14. Technical risks are controlled using prototypes.

15. Since all technical problems can be handled, all the projects problems reduce to organizational problems. That is why all the agile methodologies exist: to handle organizational problems. The key for success is "fail fast".

16. Write down the iteration retrospective and act upon it.

17. Write down and number all requirements. Use DSDM requirement scrubbing. Write down and number all design decisions used to solve conceptually all requirements. Create prototypes for each design decision.

18 Get into a gym and go every day. Even 10 minutes of light exercise will make you feel better.

19. Make sure your code runs on different operating systems and on different databases. Use continuous integration for that.

20. You are not being paid to write code, you are paid to write functionality. Code is just cost. There is cost for creating it, cost for debugging it, cost for auditing it, cost for storing it, cost for maintaining it, etc.

没有评论:

发表评论