The impact of AI on junior software engineers – where do we go from here?
I have already written a piece detailing my thoughts on how AI may affect the future of the software engineering industry. In short - so far it helps with some laborious tasks but it will not be replacing any competent software engineers anytime soon. However, is this assessment true across all seniority levels in the industry?
Junior Software Engineers: The landscape today
It is no secret in software that the hardest job to get is that first entry level position. There simply is not as much demand for junior software engineers as there are applicants looking to get their foot on the career ladder. Thankfully, as engineers gain more experience this trend begins to flip.
The reason for this is fairly simple. The rule with adding a junior engineer onto a team is that the overall capacity of said team actually drops. To properly mentor a junior member of the team saps time away from more senior members. The overall idea is that in the long run this investment of resources pays off and you have an engineer competent in the specific business domain of the team that begins to add value at a much lower cost.
Proper mentoring of junior software engineers requires opt in from the business and existing team members. Without this it is very easy for junior engineers to stagnate in their early career. Speaking personally, my earliest job in software was so bad that I left after just three months; recognising that without proper mentorship I would not progress and hit the goals that I had set for myself.
So, how is the recent rise in AI programming tools going to affect the future of junior software engineers?
AI and Junior Software Engineers: The Pros
Ultimately, the role of a junior software engineer is to learn. As such, there are some huge benefits to having access to the large language models (LLMs) that we see dominating headlines today.
When I was starting out in my career as a software engineer I did not have tools like ChatGPT to help me - an immediate font of knowledge that can provide examples for any theoretical question about programming basics. Take this question to ChatGPT about closure as an example - a classic concept to grasp for any budding JavaScript engineer. A thorough write up of the concept together with multiple coding examples, available almost instantly.
An open an nurturing work environment allows junior software engineers to extend their learning beyond everyday workplace problems. Throwing AI coding tools into this mix as an aid is a definite positive.
AI and Junior Software Engineers: The Cons
Asking questions of ChatGPT and filling gaps in your knowledge is one thing. It can become a problem when anyone relies on it too heavily to do their thinking for them. This is especially true for any junior software engineer who is most vulnerable to skill stagnation.
Having AI coding tools write code for you is a potentially great time saver, but if you don't understand the code it is outputting you are never actually learning anything. It is akin to copying all your homework at school - sure you might get all the right answers, but when it comes to actually using the fundamentals of those learnings you won't be able to implement the learnings that you have supposedly made.
Anecdotally, I have seen a rising trend in engineers that I interview ask to be able to use ChatGPT and other AI coding tools during interviews. I always deny these requests, because while I know that using AI as an aid to writing software is a practice that is here to stay, these LLMs are not infallible. They are programmed to provide an answer to an end user - even if it is wrong. I want to understand if the engineer I am actually interviewing understands the problems I pose to them. If there is an error in production, we cannot ask ChatGPT to solve it.
I have yet to hire an engineer, of any seniority, that requested to be able to use AI during an interview.
Conclusion
ChatGPT and other AI coding tools can be fantastic aids to learning. Ultimately the role of a junior software engineer is to learn and grow as a developer. Utilising AI tools to enhance this learning can only be a good thing.
One needs to be careful with how much they rely on AI coding tools in the day to day. Use them too much early on in your career and a junior engineer could find themselves perpetually that - a junior.