I just finished Code complete cover to cover. Here are the most unexpected things I learned
I got code complete several years ago. Actually, it was a graduation gift.
I sometimes peaked into some of its chapters but never thought I was able to read it all at once. It was like a superhuman task for me.
Until this year, where I decided, in the game of no excuses, to play hard. One of the battles I chose to give was to finish the book.
During this time, I learned a lot of stuff. Some expected, some not that much. At least for me. Even though they might be trivial for people with more experience than me.
But how?
I understand that this might sound like tons of work and you want to procrastinate. Consistency is the key here. Can you read 10 pages per day? No? Can you do 5? No? C’mon, make some effort. You got the point :)
I was procrastinating on it for 5+ years and I finished in about three months by reading 10 pages per day every fucking morning. And it was so worth it!!
Nuff talking, let’s go to the points:
goto is still here
A quick search in GitHub, reveals quite a few million instances of that. I understand some might be false positives (eg comments) but it is still something significant. And potentially worrying…
One-third of bugs are because of typos
This is not based on very recent research (1975) but sounds valid today too.
The author explains how a colleague, once found bugs in a piece of software by just passing the executable file through a spell checker.
Also, he reminds us that three of the most expensive software errors were caused by a single character change. Damage of about 2.8 billion dollars.
If you have stopped learning in your job, it’s time to leave
That is a painful point. Never leave a job, if you have a good manager who is technically current.
But because there are still quite a few managers who have either stopped learning (and guess what…they don’t care if you learn too) or were never techies at all (have you tried to persuade an ignorant manager to dockerize your apps?), you should highly appreciate a company or even a department with a continuous learning culture and highly technical expertise.
Again, a software engineer who doesn’t learn is already obsolete. Don’t be that fella.
Be humble
People that are playing in the top leagues are extremely humble. And not only in software engineering. Because they accept how limited their brains are, they manage to keep their egos down and they do the proper due diligence to achieve their targets.
Examples of humility are:
- They ask for their code to be reviewed.
- They write modular code, to reduce the complexity of it.
- They use conventions so that they don’t need to burn they head with mundane details.
Conclusion
Thank you for reading this article. I highly recommend Code Complete, as it is one of the most influential books of all time in software engineering. Dont be afraid of the number of pages, and enjoy what the author has to offer.