5 Mistakes I’ve Made When Starting My Career as a Software Engineer

Introduction

When I was a fresh graduate, I wore rose-coloured glasses believing that I could become a full-stack developer in a short period. Not that it was impossible, but I made many mistakes during my journey that prevented optimum growth for myself when there were better ways to achieve my goal. I'll be writing about my mistakes in my career journey and what I've learned from those mistakes.

Digging one grave at one time will be deeper than digging two grave at the same time - Me, Just now

Mistake #1: Focusing on two things at once

When I started my journey to become a full-stack developer, I was already trained to use Ruby on Rails. Yes, it does allow me to code the back-end and front-end on a single codebase, but it comes at a cost when I was just starting out. On the back-end side of things, I have to learn how to deal with designing the database, creating endpoints, and integrating 3rd party services(ElasticSearch, Redis, etc.). In contrast, on the front-end side, I have to deal with translating the UI/UX into a working product with precision on each of the devices. This got tiring very quickly.

I got tired because I had a lot of context switching when dealing with my tasks. Context switching happens when you quickly go from one task to the next. It can happen when you're interrupted by someone else or when you interrupt your own work to focus on something else.

While it sounds fun to do, my mistake was not mastering things one by one. The thing is, juggling all of this together was an arduous task. Imagine this: the programming process would require lots of writing codes, failing, searching for solutions, and repeating. Now, double this. Achieving mastery in both the front-end and back-end would take me longer as I can get sidetracked. Balancing the efforts I needed to put into my skills when I was in the middle of my growth phase was very hard.

Mistake #2: Trying to be perfect

Throughout my career, there's one thing that I've noticed. Certain people tend to get into a tunnel vision when doing their work, not realizing it is impacting their own productivity. In this case, overengineering solutions.

When we are perfectionistic towards our work, it tends to lead to pointless overengineering. Sometimes, a working solution can or should be kept simple. I made this mistake a lot when I was starting my career. I spend a long time building solutions other programmers do not understand. I felt it was beneficial to future-proof the codes I've made. In reality, I may have wasted my time doing something unnecessary that probably would not see the light of day.

These days, I keep my solution straightforward so that others can understand my work and not waste everyone's time.

Mistake #3: Not documenting my code

I remember that during my first job, there were a lot of programmers that I had to communicate with. Sometimes, they would ask me:

"Hey, how does this thing work?"
"Why did you do it that way?"
"When did you do this?"

Honestly, I had a tough time recalling my tasks that were more than a week old. I wished I'd written down at least the fundamental ideas on the things I've worked on, and you should do this too. It can be as basic as pseudocodes, goals that need to be achieved or even simple diagrams that you can recall.

With this, not only can you be accountable for the work you have done, but you can also communicate with other developers easily.

Mistake #4: Not finding a mentor (soon enough!)

In 2019, I was fortunate to meet two people I consider my mentors. They've taught me a lot of things, whether it be technical skills or business skills. During this phase, I received much needed guidance on becoming a senior software engineer and a budding entrepreneur. I've learned how to build products that scale, learn the business side of things in the tech industry, proper planning, manage client's expectations and a lot more that has benefited me right now.

"It takes a village to raise a child."

If I were to get a mentor during the early stage of my career, many questions I've had would be quickly resolved as I was feeling a little lost at one point. At that point in time, I was just going with the flow that life threw at me.

You should find yourself a mentor to help you guide in any aspect of your life. You'd feel less lost when you're a beginner and have some guidelines to follow as you grow. It's also good to have feedback from someone more experienced, which means you will now understand the things you can improve on.

Mistake #5: I was too deep into fast-tracking my career

I like to think that reaching the top is all that matters to me. In reality, that was exhausting and led me to a lot of burnout. I put a lot of time and effort into building my programming skills that I forgot to explore and develop other aspects of myself. I did not even have a hobby apart from playing video games back then.

As I mature, I learn to slow down, relax and have fun. I made new friends, went hiking and camping, travelled around and found new hobbies. I have figured out how to live as a human being. What a joy it was to me when I did so. My life became more peaceful, and my mind got clear. Sometimes, we forget the little things life offers, and I think we should taste the joy of life.

Conclusion

Remember, we are allowed to make mistakes, but it is our decision whether to learn from them. If you have made any of these mistakes, do remember that improvement and growth take time and patience. If you like productivity tips like this subscribe to the newsletter!

Subscribe to mnorhamizan

Sign up now to get access to the library of members-only issues.
Jamie Larson
Subscribe