This week has taught me much about the development of good code. For starters, it’s painful. Really digging deep, analyzing best practices, following simple procedures we’ve learned since day 1 (orthogonality, DRY) is much tougher than simply knowing the definition of these terms. It’s one thing to understand DRY (don’t repeat yourself), but it’s a whole other level to be able to create code about hours of labor and then go back and ensure your wet code is not repeating itself. Once you get a project going, it’s easy to just leave it as it is. Hey, it works! But the best developers optimize their code, working to make it readable and transferable across different programmers and clientele. I want to be a great programmer, and right now I’m barely even a novice. It will take years and decades to get to a desirable level of proficiency in software development, but that's the price of good code.
To develop great code takes great problem solving and logical clarity, as well as an understanding of programming language syntax and research skills. It also takes learning various concepts and really critically applying those teachings to the code you are creating. To develop good code means to develop code that is easy to understand, easy to replicate, and easy to copy and modify. To be a great developer means to be able to write good code, but programming is so much more than code. Great programmers are collaborators, social leaders who bring out the best in their team. They identify strengths and weaknesses of their team, and use people’s strengths to make the best product possible. A good developer is hardworking and on time, but also is a critical thinker and isn’t afraid to take risks when needed. They are knowledgeable, but recognize they don’t know it all (as no one can). Yet are still willing to teach others what they do know and admit their inadequacies when they rear their ugly heads.
I can’t speak to all programmers, but I can say as a novice, I hate interruptions. There is nothing I hate more than being in the zone, in the midst of deep work, and have to stop. Either because of a question from a person, a distraction from a phone call, a daily task that needs to be completed, etc. Whatever the distraction, I hate them. When I am in the midst of deep work, I really feel like I am creating my very best product. I am creating what most represents me. Distractions take you out of that mindset, and it can be very difficult to get you back into that work zone.