No matter what job you have, there will be downsides and the same is true for a career in Software Development. The most cited downside of the field is the overwhelming amount of work you will be faced with completing. Remember, high job demand can only be supported when there is a high demand of work and that is truly the case with Software Developers. As a Software Developer, you should expect to work erratic hours and consistent overtime to meet schedule demands. You may also be expected to juggle several time-intensive projects at once and be on-call in the event something breaks in your code.
You will also never stop learning. While we would argue that no one should ever stop learning in their fields, this is especially true for Software Developers. New languages and tools are constantly coming out and being at the top of your game is imperative to earning the high dollar and stable jobs you seek. Similarly, you need to advocate for yourself and your own professional advancement. Often times you will be a team of one or a few and you may not have a supervisor that is a Software Developer, this means you won’t necessarily gain direction for how to grow. You will either need to find a mentor or a community of Software Developers that will help you navigate a continual path forward.
Software Developers often need to explain what they do to non-tech people. This can be especially frustrating when you are trying to explain why a task may take longer than a customer would anticipate or you need additional budget to finish a project to scope and on-time. You can’t rely on your technical lexicon to win the case and you can’t revert to repeating the same generic issues, so you need to get creative with your language and defense tactics. The communication and interpersonal skills required for this are often a struggle for many talented Software Developers to hone.