Starting your career in any industry is tricky and confusing. Software engineering is no different. Your college or past projects might have given you much needed practice, but running a production system is a whole different ballgame. This is where theory meets the reality of business.
What to focus on?
Start by getting a breadth of experience from different projects. Learn about the software development cycle, writing performant code, working with product managers & designers, adding tests and following team best practices. Above all, get comfortable with asking for help.
Go wide instead of deep early in career
Build relationships with your teammates, fellow new joiners and other networks to ease your transition into full-time work. These relationships will also help you deal with “imposter syndrome” where you’ll oscillate between “not being good enough” to “this looks easy”.
On one of my initial teams, a senior developer was helping me set up my local development environment and get all the team owned services running locally. This is all the foundational work needed to start developing applications. Which is the real work of a software engineer. But as the senior engineer finished showing the core, they asked “ready to build and run this service?”, for whatever reason my question was “do we need to?”. Bewildered, the senior developer replied “yes, if you want to do some real work”. Embarrassed, I made some joke about being hungry for lunch as a distraction.
Thinking back, I was actually not sure what they meant by “running the build”. It never occurred to me that even the most complicated program I had written in college was nothing more than a simple “hello world” compared to this production system. In contrast, this system had 100s of dependencies to other code and the list of dependencies looked like an index page of an encyclopedia. So getting all the dependencies packaged together was needed even before the application could even start.
So don’t worry about not knowing everything, let others help you!
More formally, this is what a ladder entry might look like at this level —
What to avoid?
Conversely, avoid getting too deep into one technology. Even if your team specifically focuses only on one thing, like a React Native mobile app, do learn about how the data is stored, how API requests work and how things get to production. There’s always a lot to learn, let your curiosity drive you.
Another mistake is to fail to fully grasp the details of your tasks before you start them. This could be not understanding “Why” you’re doing that work. It could also be over/under estimating the amount of work or the complexity of work involved.
So before you start on something, spend time digging deeper and use your team for help.
In the next article, we’ll look into more senior roles where expectations start to change and different factors matter than your initial career stage.