I’ve been programming since I was 6. It was the good old days of Commodor (64 and Vic) and then apple IIe and IIc.
*Sign* ahh… I was so young and passion about computers back then + life seems to be very good back then.
Everything was black or white. Simple🙂
Here are my most memorable lessons I’ve remember in the past 22 years of coding:
- Always search before you build. There is no point in building the same wheel (anyone, said framework?) again and again and again.
- Don’t over design. Build first something that works and solve your problem and later come back and improve: code, performance etc’.
- Don’t fall into the student syndrome – In other words, don’t push your work and try to hack something in the last minute. You (=the student and the project) will fail.
- Use the right tool for the job – choose a language, framework, design pattern that solve you problem in the best way. Never the other way around. Moreover, don’t get in love with a language (e.g. Java) just because it is cool.
- Always backup your code – trivial… specially, after the first time your harddisk is ‘gone’ and you lost 4months (or years) of work.
- Learn and then learn and then keep Learning more – You must keep yourself updated with new stuff. In these days, every day/week there is something new you should be on top of. You must keep with the flow of info in order to be better coder.
- Change is constant – Your knowledge of technology/programming/life should be similar to how you treat stocks: Diversify.
Don’t get too comfortable with a particular technology. If there’s not enough support for that language or technology, you might as well start updating your resume now and start your training period. Who said “Java” and who said “Python”?
- Open good communication between all the experts in the company or in other words, creative collaboration of domain experts and developer experts.
This is one of the critical and key success factor to any successful project. You must nature and advocate to open good communication. People should feel comfortable to speak their mind and to point that the king is naked as soon as they recognize it. We all know that the ‘answer’ is some where in the organization and the people that need it should be able to get to the right people on the right time.
- How is your web application / software / feature is going to change and help the organization?
This is one of the most important question you need to ask yourself and push in a direction that will answer it in the best way.
I have a lot more, but I had enough time to write a short post. If you have some more urgent lessons, please feel free to add them here in the comments.