Being a better programmer than this morning — some aspects to focus on
This article is about non performers, average performers and top performers… about professionals and those who think they ‘d be… about programmers like you and me, no matter if you are novice or expert.
While being a web developer focusing on frontend development and my years as a software engineer for PHP based applications as well as an architect designing software and reviewing millions of lines of code I was in the happy position to gain lots of experience about how programmers develop. Some bloom over the years like a delicate plant. Others stand up, say “hi” and immediately brighten the room. It is so dependent on a variety of extrinsic and intrinsic influences, I could talk years about.
But in sum — each of us has its own challenges and difficulties to deal with. And most difficulties are homemade! It’s not always the bad colleague from the other side, the complicated client, the worse tasting coffee or the weather conditions outside the window. Did you ever think about that you might be the problem? Yes? No? No matter what the answer is, below I’ll show you a few things you might want to take a closer look at.
Always work hard
Some might say being a better programmer depends on your knowledge and your experience. Sure, it counts how skilled you are in things that I’d declare as “your daily business”. If you are a carpenter that cannot handle to work with a driller, you might fail someday. You definitely need to know your tools and the programming languages you get in touch with every single day.
Others say it depends on how effective you work! By using time management and productivity techniques like Pomodoro you will be able to improve the way you work in front of your screen. There’s absolutely no doubt about that.
Still others claim, that you will become a better programmer when doing lots of exercising like for example code katas. Multiple repetition of specific patterns make your brain work more excise and even way faster. This changes how to deal will tasks, conceptional issues and even complex questions of software architecture and design.
But let me tell you what I experienced so far: all things mentioned above will just help if you commit to one simple thing… don’t ever stop doing them!
It’s like learning to play the piano or exercising for the local soccer tournament. If you sit in front of the piano and stare at the keys the piano won’t play on its own. Or if you stand on the soccer field just to watch your teammates play, another one will shoot the goals.
What the heck am I writing, you certainly already know that. No success without any effort!
Pretty simple-minded if you think it would be enough to show commitment once. You need to do so every single day. And I’d go further: at every time! This is what makes you a better programmer than your colleagues will ever be. And believe me, it is so damn easy! The only thing to do first:
Change your mindset
Continuity — in every aspect of your actions! The way you write code or review your colleagues code. The way you act and discuss. The way you do concepts or test your results. You are confronted with lots of stuff that force you to make decisions. And in these tiny little moments you decide every time anew on where something is going. Something… what’s meant with “something”? Well, several things like yours or your team’s tasks. The software or project you work on. Your career, how successful you are and how your boss or your colleagues see you.
Your team, your company as well as your counterpart expect of you to act like an idempotent REST method. If you have to decide about the same thing but several times, the result should be the same again and again.
But this won’t mean that you have to insist of your opinion or view. Please do not get me wrong! It’s better to step back, rethink about something and accept your new point of view instead of being narrow-minded. Rather, it’s one of those great human qualities to preserve. And it’s totally okay to recognize to be wrong because then you are able to learn from that.
What I advise you is to change your mindset. Because it is the first step towards a better future — for you and your work! Be open-minded, curious, be sceptic but also interested in innovation. A well-known company once released an article back in 2015 which further lists a few other essential components to the engineer’s mindset. To call them all: Be pattern-finding but also look through a fresh perspective. Learn from failure, take care of the way you communicate and never forget to consider input from your team.
You will never exactly know what to do!
Let’s get to the second thing I’d like you to focus on. There is a fine line between just being a good programmer and being an excellent one. Megalomania! Of course I understand, success makes you feel not just happy but also heroic in some way. It is you who certainly solved one of the most tricky issues in mankind…
Well… no, you definitely did not! You just solved one of those issues many others all around the world already had before. Bad luck!
And as soon as you start thinking that you know exactly what to and how things work, that you are the best of the best, the elite of your company or team… you will not be able to getting better anymore. As long as the earth turns there will be millions of new discoveries, techniques and approaches. Every day! That automatically turns you back into a novice as soon as you leave your bed in the early morning hours.
So please don’t think you are a pro just because you got some tasks done.
Clean your room
You are just as good as your code is. But if your code is good, that won’t automatically mean you are! What do I mean by that…? To bring it upfront: writing code that works properly is just one part of the things a programmer needs to do in daily business. Further he has to take care of the code style, the complexity of algorithms, conventions and guidelines, performance, testability, and many more…
Completely understandable that one can not always think of everything. But be honest, how often do you forget or rather pretend to have forgot something? How often did you just miss cleaning up your code because you are a lazy bone? To be clear: there is no excuse at all! The day your employer will pay you your salary you get money for things your boss did expect from you. This means, if your code isn’t in the expected condition you do have to take care of. And that’s so damn easy! Just…
- Review your code first before pushing it towards your VCS
- Follow the coding and style guidelines your company defined
- Take your tasks as serious as an open heart surgery
- If there are todo’s left, mark them with an existing ticket number
- Test your code, whether human or via automation
You are done, when you are done! And it will be hard in the beginning. But please believe me, it will turn into blood some day. And as soon as that moment comes, you will realize that it feels good. That the way you work and act totally changed.
Take your personal opinion and burn it down
Imagine… you just ordered a black sports car. Leather seats, alloy wheels and a powerful sound system. Yeah, stunning! But no! Oh my gosh! The car you ordered and the car you did get are two totally different! I guess you will be deeply grateful to the car dealer… NOT! But how could that happen?
Well… let’s stop here and switch back to the original topic… that one with the code and the programmer, you know what topic I mean.
If your client, project manager or boss gets to you with a new task, just do it! If there are no truly critical things that force you to lift your hand and inform somebody about, just do it. Even if it won’t fit your personal opinion, just do it. Unless, of course, you’re being asked for your opinion. It is not your software, you don’t pay for it — instead you will get payed for! That’s the small difference!
And more importantly… facts and professional motivation are the single version of truth! If there is a good reason why things should be changed, perfect! But if it’s just a question of taste… keep it for you.
Talk to others
Some stop communicating to any other person in their team because of being busy and seem to totally disconnect from any human environment. No doubt, there is a time where you need to concentrate. And thus it might be necessary to take your laptop and disappear in another room.
But if this happens almost every day you will get a completely different problem! If you lose connection to your colleagues you will automatically lose connection to new insights, techniques and subject specific trends. So taking off your headphones might be the first step into the right direction. This won’t mean that you have to actively participate in a conversation. But it gets you the possibility to listen to some talk.
Oh… and don’t forget that your colleagues are not competitors! They are a part of the big whole like you are, too. Therefore, if you have any things to discuss regarding your code, the way you solved any task or the task itself — take all your courage together, go to your teammate and ask him for his advice or even his experiences.
And if you think it’s a matter of time… well, maybe you should think about time management like I wrote above.
All these aspects above lead me to becoming a better programmer than I was this morning. Thanks for reading this article. If you disagree with any points I make, I’d love to hear why!
More from me — If you like, please check it out:
Be less rude — Code quality is a matter of courtesy
Code quality is the foundation of the success of solid, maintainable and well constructed software. The cornerstone of…