Three years back, I first stepped into the corporate world with tons of assumptions and expectations about how things would look like. Little did I knew how wrong I was about to be proved. The actual experience throughout all these years is not even close to what I expected it to be. However, when things don't go as per your expectations, you end up learning and growing.
Here are my top 5 learnings from the last three years working as an entry-level software engineer -
1 - It's not only about coding
This was the first and the most important thing I realized right after stepping into the software industry. Back when I was in college, I used to think that the role of a software engineer is just to write code every single day for something that has been asked to them by their superiors. However, it didn't take me long to realize that coding is hardly a fraction of my overall job. Most of my time went into brainstorming a solution, exploring a technology, doing proof of concepts, pitching my solution to others, writing tests, code reviews, documentation, and whatnot. All these activities are equally important for ensuring a successful software release to the production; hence, the better you are at these activities, the better you would perform as a software engineer.
2 - Soft skills matter, a lot!
I used to wonder why the hiring process for a software engineer emphasizes so much on the soft skills. What does a technical role have to do with my soft skills anyway? However, on the job, I was frequently required to clearly articulate and communicate my thoughts to others, understanding others' thoughts, and work with them collaboratively as a team. This made me realize the importance of soft skills for a software engineer. This not only made my life easy on the job but also everyone else's on the team. Think of it this way - we are humans and we would be dealing with other humans on the job, that too most of the time. The only way to deal with humans effectively is to include top-notch soft skills in your arsenal.
3 - Embrace the boring stuff
Just after a few months as a software engineer, I became frustrated with the amount of boring stuff that I was doing as a part of my job. Writing tests, doing code reviews, documentation, bug fixes, profiling, monitoring, and whatnot. I hated them. It wasn't until I saw the impact of each of them that I realized how important they are. For instance, tests uncovered most of the bugs much before the release, documentation helped new joiners understand the system and hit the ground running faster, code reviews ensured high code quality. In short, all these activities contributed toward high-quality software releases that in-turn made everyone's life easy.
Next time you're assigned a boring task, take a step back and identify its impact. It won't seem boring anymore.
4 - The faster you learn and adapt, the better
With rapid advancements in software development tools and technologies, the only way to keep yourself in the game is by learning and adapting as fast as possible. It has been quite frequent in my journey that I got allotted some work that I was totally clueless about. It was then incumbent upon me to explore and figure out what needs to be done and how it needs to be done. This made it pretty obvious to me that the faster I learned, the better I was able to deal with such tasks. Also, it was quite often for people around me to move out to a different project, a different technology stack, or to a different organization. All such scenarios require one to learn and adapt before they add any value. The faster you learn and hit the ground running, the better.
5 - It's all about the result
When I started out, I used to be extremely nervous about asking for time-offs or taking a break in between. Within few months though, it became apparent that I'm no longer in a stringent environment like I used to back in college. The only thing that mattered was whether I completed my piece of work on or before the planned schedule or not. As long as you can deliver on time, your breaks or time-offs won't matter much. It's all about the result!
These were my top 5 learnings so far as an entry-level software engineer.
If you're yet to start out in the industry, some of the above learnings might help you with what to expect :)
If you're already in the industry, let me know your top learnings in the comments section below.