Software Engineer’s Motivation
“I want to become the best engineer I can be”
TL;DR: If you don’t figure out a way to have fun programming, you’ll eventually come to hate it.
“I want to become the best engineer I can be” — That is my motto. I love building stuff and it satisfies me greatly to get ambitious and cool things done. At the same time, I have struggled with motivation from ever since I began programming. I’m the type that wants to take everything their doing to the next level by default. If today I coded a bash file to run a program, tomorrow I set the expectation to be able to create a whole CI/CD pipeline using bash and bare metal. If today I sprinted a while to catch the bus, tomorrow I expect to run a marathon. It’s just who I am. For some people, they can visualize this as a clear problem, but I personally took a long time to figure why that is (after all, isn’t is just ambition?). Also I connected how it has deep effects on motivation over the long run. If you are like me and is having problems with motivation, this article is made for you.
The problem with motivation is: there are no tutorials for it. Or if there are, I haven’t been able to find a good one. The reason, I guess, is because motivation is somewhat unique to everybody… But not so unique though. You can notice many similar threads in top SWE performers, which is a love for tech and for learning. This love allows them to greatly succeed into building amazing cool new things and, if you are like me, that is something you really would love to be able to replicate. When I used to noticed that, though, it made me feel wholly inadequate in comparison — these people can sit and learn willingly cool stuff meanwhile I’m struggling to get my job done because I have a love-hate relationship with this programming thing… Maybe I should quit this whole career, the world is telling me it’s not my thing…
Well, let me tell you something, if you are able to recall any period of your life in which you enjoyed programming for a month or more, you undoubtedly like it. You really do. If you are feeling like everyday is a struggle and you don’t want to get your job done, it feels dull and unexciting despite it being something you supposedly like, that’s because it really is. Work is dull and unexciting: for every 99% of work time, only 1% pays off, emotionally speaking… and I’m not talking about the paycheck. Work only pays off when you get something major, useful and impactful done. It’s an amazing sensation full of accomplishment, but as with any good sensations, it’s fleeting and every hour after, it will taste less sweet. Therefore, you should never base your motivation out of getting work done, because it’s not sustainable. When you set expectations for performance on things you initially started out for fun, that’s also essentially converting your source of fun into source of work.
What this means for your routine boils down to 2 paths:
- You only code in work: you might feel motivated for a week or month, but after the frustrations and the need to constantly deliver results on your work pile on, you start disliking whatever activities lead to this feeling. So your subconscious distaste for programming starts. It seeps in slowly and, the longer you leave it unaddressed, the deeper the roots go. Burnout becomes more likely, you stop learning new things because after a whole day of this you can’t bring yourself to do more of it. You feel drained and sad. You resist mentally starting your work. Despite previous interest in tech, your hatred for it makes you avoid it like the plague and focus on stupid shit like games or politics. It is a downward spiral and the only end in sight is an extended break (from personal experience). Even if you manage to generate a tiny spark of interest despite being exhausted, that will quickly be put out by the expectations you put over it. On the other side of the coin though:
- You take the time to play with code every day: you are not serious about the time you use for this, you don’t have to deliver anything, there is absolutely 0 commitments and expectations, you can create and kill projects as you wish. There is absolutely no pressure because you chose to do this for fun. As you start doing this, like in a competitive sport, you want to do more cool stuff in it, which means you have to practice some, but the practice is not required and is done with purpose in mind. This makes you learn new things because you want to use them in your playtime. You begin improving and learning so many things that it impacts you work. You become a more well-rounded developer, even if the thing you have been doing for fun has nothing to do with the one you do at work. You are more independent, faster, and effective. You read documentation when building pet projects, and you get better at doing it because you want just enough information for you to use it playing. This feedback cycles keeps you fresh and motivated, meaning you do your job better and is at a lesser risk of burnout.
You can see how over time this makes a huge difference in how high you fly. Starting out on the wrong track will make it harder to quit bad habits. Starting out on the good track will keep you hooked. Switching tracks mid process is the hard part. Every developer eventually falls in the first category, and this is why it’s so important to have extended breaks on schedule with no coding whatsoever, it resets the bad habits (which sometimes can go unnoticed). After the break, you can start the cycle the proper way again.
Addendum:
So it’s clear that motivation comes from things you do voluntarily, because you think it’s cool like playing a video game or sport. If you are at a loss for finding some cool crazy ideas, here’s links that might help to find it:
If you search for interesting tech, there is at least something that might interest you. Here’s a couple of examples: Artificial Intelligence and Machine Learning; Robotic Process Automation; Edge Computing; Quantum Computing; Virtual Reality and Augmented Reality; Blockchain; Internet of Things; Cyber Security; Microcontrollers…
I hope your spark burns bright! Happy coding!