Top 20 Programming Lessons I’ve Learned in 20 Years
Becoming a Better Developer, Cool News, Links & Reviews, Managing Software Developers, Software Development
If you're trying to grow your startup you've come to the right place. Get my 170-page ebook on how to grow a startup and join thousands of self-funded entrepreneurs by subscribing to my newsletter at right.
JD over at DCS Media published an insightful post titled Top 20 Programming Lessons I’ve Learned in 20 Years. A few highlights:
- Always backup your code
- You are not the best at programming. Live with it.
- Simplify the algorithm
- Reminisce about your code
- No project is ever simple
- Software is never finished
November 30th, 2006 | Becoming a Better Developer, Cool News, Links & Reviews, Managing Software Developers, Software Development
Start Small, Get Big
The Newsletter for Self-Funded Startups. It'll Change Your Life.
What you get for signing up:
- A 170-page ebook collecting my best startup articles from the past 5 years
- Previously unpublished startup-related screencasts
- Exclusive revenue-growing techniques I don't publish on this blog
"The ideas and information Rob provides should be required reading for anyone that wants to create a successful business on the web." ~ Jeff Lewis
Startups for the Rest of Us...
If you're trying to grow your startup you've come to the right place.
I'm a
serial web entrepreneur here to share what I've learned in my 11 years as a self-funded startup founder.
Luckily several thousand people have decided to stick around and join the conversation.
For more on why you should read this blog, go
here.
5 comments ↓
I think the most often missed lesson is “No Project is ever simple”
- The waterfall model is a fallacy; don’t succumb to its idealistic but unrealistic view. – Customers never know what they want, yet they don’t understand why this can be so hard for you to find out. – Use two phase contracting, first learn what and how to construct as a baseline, and then sign off on the actual construction. – You will never arrive at complete requirement coverage, nor should you. Deal with the complex and uncertain domain issues for the baseline. – Software is not manufactured, it is grown; the tools involved may be engineering based but the process and mindset requires just as much creativity. – Quality simply takes time, better to think of this as maturity and account for this in the plan. – Don’t optimize too early, it feels good but can lead you astray. – Watch out for gold plating, it feels good but can lead you astray. – Software can not be planned; it can have a target deadline and dynamic estimates but watch out for management trying to merge these. – Only developers can do estimates and the quality of these improve over time during the project. – Estimates are always overly optimistic, try to err on the pessimistic side since it is cheaper and cause less stress. – Software degrades over time; maintenance fixes/tweaks/hacks have a tendency to ignore the large picture and add complexity. …prolly more, but I should get back to work now.
Excellent points, Casper. I’ll likely touch on some of them in future posts.
Nice list, but with all due respect: this took you 20 years to figure out…?
The list was actually put together by JD at DCS media. I don’t think it took him 20 years to figure them out, rather after 20 years, these are the most important lessons he’s learned about programming. That’s a subtle, yet substantial, difference.