Think twice before switching career to software engineering (the harsh reality)
February 20, 2023
While the internet is filled with stories about the benefits of being a software engineer, such as job security, high salaries, and greater freedom, there is little discussion about the challenges and setbacks that come with this career path.
In this article, we aim to provide a more balanced perspective for those considering a job switch. We urge you not to make an impulsive decision based solely on the appealing aspects of software engineering. The truth is that this field may not be suitable for everyone, and you may discover that after switching careers, the reality of being a software engineer is much different than what you imagined. However, this doesn't mean that you shouldn't learn programming. In fact, as more industries digitize, having programming skills can be helpful for your career growth. Furthermore, there are numerous career paths that don't involve being a software engineer but still benefit from learning programming and computational thinking.
In conclusion, we hope this article provides a more realistic perspective on the challenges of pursuing a career in software engineering. We encourage you to carefully consider your strengths and interests before making a career switch and not to be swayed by the glamourous portrayal of the field.
Investing a lot of time does not guarantee success
Simply investing a lot of time does not guarantee success. Many people believe that changing jobs will automatically lead to success, as they see numerous successful job transfer stories on the internet. However, this perception is biased because people tend to share their success stories while overlooking their failures. In reality, there are many individuals who struggle with job transfers, but they are less likely to share their experiences publicly.
For example, some people may feel clueless in their first software engineering job, or struggle to prepare for an interview despite investing a lot of time into studying. It's important to recognize and acknowledge these challenges, as they are a natural part of the learning process. When individuals do share their experiences of failure, it can be beneficial for others to learn from their mistakes and gain valuable insights.
There are many bad software engineering jobs
Switching to software engineering may not be the solution if your motivation for changing jobs is solely due to dissatisfaction with your current work environment. The truth is, there are numerous bad software engineering jobs out there. Platforms like Blind, which is a popular online community for engineers, has countless complaints from engineers regarding their company, department, and various work-related issues.
Therefore, if you believe that pursuing a career in software engineering will lead to a happy and more fulfilling life, your expectations may be severely let down. It's important to consider that, even if you successfully overcome the initial hurdles of learning programming, the reality of working in the field may entail tedious and unpleasant tasks that can cause you to question your life choices and ultimately regret your decision to pursue software engineering.
Tremendous pressure at work
One major challenge of switching to a software engineering job is the high pressure that comes with it. It's not just about the working environment; the nature of the work itself can be overwhelming for many transfer engineers. For instance, a person shared their experience on the internet, saying that "the project started with unclear specifications, which made it very difficult for me with only six months of front-end experience. The assigned task took me three weeks to complete, and the project manager and engineering manager kept pushing me. I spent sleepless nights trying to figure out how to write the code." Although the engineer enjoyed a better work environment than their previous job, they struggled to write the required functions and were in a constant state of panic.
Another person shared his story of switching to software engineering, saying "It's been almost a year since I started this job, and I feel like I'm doing a shitty job every day. I'm afraid my boss will fire me next week. Since I had no prior experience in PHP and SQL, it took me a long time to get started. Sometimes, I get stuck after just two hours of work and have to ask my manager for help, which makes me feel like a complete failure. Every morning, I dread going to work, and the thought of website refactoring makes me want to quit." The high pressure, coupled with the steep learning curve, can make it a challenging and stressful career choice.
The learning never ends
Successfully transitioning to a software engineering job is just the beginning of a long and continuous learning journey. In software engineering, there is never a day you would stop learning. For instance, in the front-end development world, new frameworks, tools, and paradigms are constantly being released every year. This means that front-end engineers must consistently keep up with the rapidly changing industry. For example, many people switch from Webpack to Vite, and a year later, Turbopack is born. This causes a wave of panic and comments from engineers in the front-end community who feel overwhelmed and unable to keep up with the latest developments.
Unlike many other occupations that involve routine work and don't require continuous learning, software engineering demands 100% awareness and a lifelong commitment to learning. If you don't keep improving yourself, you'll quickly fall behind in this fast-paced industry, which can lead to being left behind and potentially even becoming obsolete. If you're considering a career change to become a software engineer, it's important to understand that retirement is not an option unless you continue to develop your skills and keep pace with the industry's constant evolution.
The opportunity cost
When considering a career switch to software engineering, it's crucial to take into account the high opportunity cost involved. In addition to the challenges outlined above, it's important to ask yourself what kind of career development you'll have if you choose not to change jobs. Is the potential career path worse than that of a software engineer? If you've gained a certain level of seniority in your current position, such as being a project manager for several years, switching to software engineering means sacrificing the years of seniority you've already accumulated. For instance, even with five years of work experience, you may only be offered a junior engineering position, which essentially means that you're giving up your five years of seniority for a lower-level position.
However, there are other alternatives to becoming a software engineer, such as learning programming and switching to a technical project manager (TPM) role, which may offer a higher likelihood of obtaining a senior position. It's important to weigh the pros and cons of changing jobs, considering the significant opportunity cost involved. In some cases, it may be better to stay in your current position and explore other career development opportunities that build on your current seniority and experience.
Summary
If you're considering a switch to software engineering but have doubts after reading the challenges discussed in this article, it's perfectly normal. Career choices are subjective and depend on personal preferences and goals. When evaluating the positives and negatives of a certain career path, it's essential to consider both sides. The purpose of this article is to provide readers with a more balanced perspective and encourage critical thinking. If you do decide to pursue a career in software engineering, that's great. However, if you choose to forgo this path, that's perfectly fine too. The most important thing is to make a well-informed decision that aligns with your values and goals. Ultimately, whether you choose to switch jobs or not, it should be the best career choice for you after careful consideration.