Life of a Software Engineer
What does a day as a software engineer really look like
One of the first things everyone should understand is what it's like being a software engineer and writing code for a living. While every role at every company is going to be different, there's a lot that will be similar. And when you are investing your time to learn a new skill and then plan to spend 5-days a week for years, you need to make sure that writing code and building software is something that will make your life happier instead of drain the life out of you.
So the start of any new job as a software engineer starts with learning the codebase and understanding what the software is expected to do. This isn't overly technical, but it's the foundation for the work you'll be doing. You want to ask lots of questions and take the time to understand how things are supposed to work and how the software is being used. As you start looking through the codebase, focus on understanding the structure and how things are organized. It's less useful to know exactly how a single file of code works than it does to understand where to find the code that handles a particular function. If you can figure out where the code is located, you'll be able to then go through and figure out how it works. This will be the majority of your time for the first few weeks and will be something you continually do for months. And depending on how big and complex the codebase is, it might be something you do every time you work on some new part of the codebase (like when you switch teams).
Next is what your day to day looks like. Again, a lot depends on your team and what you're working on, but there's some basic things that every software engineer will do on day to day basis. You might be thinking that you'll spend a majority of your time coding, but the truth is that at least half of your time will be spent on non-coding activities. A large chunk of time will be spent on team activities like planning, discussing various topics, going over goals, sharing status updates and having 1:1s with your teammates and manager. And then besides writing code, you'll be reviewing other people's code. Reviewing code is important because you help others spot mistakes and write better code. And when you're new, it gives you an opportunity to see more of the codebase and see how others write code. And then there's the testing which can involve writing code to automatically test your code but there's also a lot of time spent on manually testing things. And will all that, your remaining time will be spent writing code. This includes writing new code to enable new features, refactoring old code to be cleaner and more maintainable and also deleting old code that's no longer needed. And while writing new code might sound the most interesting and exciting, refactoring and deleting code is actually equally valuable and impactful.
And besides everything already mentioned, you'll also get to spend time learning, growing and celebrating. You'll constantly be able to learn and expand your skills. You'll grow and learn what type of software engineer you want to become, what technologies you'll want to focus on and what career path you'll want to follow. And another important part of being a software engineer is celebrating wins - this could be launching a new feature, completing a major refactor or helping close a really big deal for the company.
And to wrap things up, this is the basic shape of what is means to be a software engineer.