Sunday, 18 October 2015

Best Kept Secrets of Great Programmers

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 beggining.

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.

2 comments:

Unknown said...

DONT COPY FROM OTHER PLACES.

IF YOU DO THEN ATLEAST GIVE CREDITS TO THE ORIGINAL POSTER?

AND ATLEAST ADD 1-2 WORDS IN THE MATERIAL SO THAT IT MAY SEEM THAT YOU HAVE READ THE ARTICLE ATLEAST BEFORE PASTING.

https://www.quora.com/What-are-the-best-kept-secrets-of-great-programmers/answer/Guillermo-Schwarz?srid=pydq&share=1

This answer was written on this site before your article.

Mallesh said...

I am not copying bro.. I am just sharing what i like the most !