I’m almost finished reading “Clean Code” by Robert Martin. I was expecting it to revolutionize my understanding of programming, but in the end it really didn’t. As one reviewer on Amazon noted, it’s better off being called “Clean Java”. If you make it past the arrogance, you may decide to skip the parts on JUnit, EJB, and refactoring (which is really just one giant Java program with textual comments).
l learned a lot from the sections on functions, classes, and comments. The best thing you can get from the book, however, is a better understanding that there are competing standards, and your are better off knowing what they are and why they are there.
Just writing code is not enough. There is so much to it. Not considering the customer side of things, you should probably know design patterns, data structures and algorithms, application architecture, general coding best-practices, multi-threading and concurrency, application security, test-driven development and automated unit tests, and IDE features and frameworks. This is on top of knowing several languages thoroughly, writing code in your free time, contributing to open-source projects, and have good social and customer service skills.
It’s no wonder that nobody really knows how to codify programmers. And Computer Science programs still make you spend a lot of time learning Calculus III. As a developer who loves to learn, I’m not sure how long it will take me to learn all of these. It’s mind blowing that I came across so many companies recently who wanted to hire somebody who had skills in all or most of these areas with less than five years of experience! Ok, so two people said the concurrency could slide, but still.
This is also perhaps the only industry that expects you to have “passion” and wants to see you coding outside of work. I understand how that can be a valuable indicator of your performance on the job-we don’t want Jimmy typing on a screen all day if he hates doing it at home-but the fact that it has become an expectation is disturbing.
As much as I love learning, I can’t fit all of that in right now. Learning takes time, even when you can pick things up quickly. That’s something I get to prove on the job here soon. I do like the idea of tradecraft, that there is a good way to write code and some best practices that can help you really stand out as a professional. But I can’t say I trust that from any one developer, no matter how famous of a company he’s worked for, and a lot of those companies are churning out bloated pigs branded as software.
Speaking of, I had a Windows process max out a brand new Intel i7 processor the other day, and I cannot imagine what sort of trash caused that to happen under the coverts.
Push on, keep fighting! I have way too many books, but it is worth it!