I recently left a career in copywriting. While my background is largely in the creative space (writing, designing, branding, marketing, etc.), I’m also a former business owner with an affinity for problem solving. I don’t have much tech experience, but being “creative” with code (either as a data scientist/architect or software engineer/developer) has interested me for some time.
Additionally, the programming path intrigues me for the following reasons:
- Enjoy building and problem solving.
- Useful and fulfilling to have end-to-end skills within a domain.
- Aptitude is portable to different industries and cause areas.
- Once proficient and experienced, could potentially allow me to contribute/upskill in AI safety.
Through a combination of soul-searching, 80,000 Hours' articles, an advising session, Holden Karnofsky's framework for building aptitudes, and taking a free coding lesson, I've decided to pursue software development (most likely, full-stack).
That all said, I’m on the wrong side of mid-career and would like to reduce my chances of entering a field where it would be difficult to get (and keep) a job. From the professionals I've surveyed, none believe age is a barrier to entering the field. The U.S. Bureau or Labor Statistics also expects healthy growth for software developers (and related roles). But I remain unclear (worried) about AI's future effects on the software development job market...
Many in my previous vocation have long dismissed the threat AI posed to their careers. However, the most recent iterations of ChatGPT (and the like) have started to change minds. At the last marketing agency where I worked, we were constantly testing new AI writing tools to help with copy production and efficiency. On its face, optimization seemed like a “good” goal. But the subtext was certainly about creating more output with less people.
As everyone on this forum is well aware, the idea that AI could become proficient at coding or eliminate jobs has also been debated for some time. While there’s no clear consensus, most things I’ve read suggest developers believe AI will assist with coding but that humans will still be needed for directives, oversight, debugging, more sophisticated strings, etc. Moreover, AI software-makers claim that their tech will usher in even more opportunity for developers. But whether the world will need as many (or more) AI-assisted developers as unassisted is inevitably lost in much of the rhetoric. And while the development of no and low code tools could very much be about innovation, utility, and accessibility, these technologies will be adopted by companies looking to save money on labor.
Holden Karnofsky recommends engineering as an aptitude in his “most important century” series and 80,000 Hours includes engineering on their “highest-impact career paths” page. (While these recommendations are specific to EA and longtermism-related work, I include them because the sources are particularly concerned with the implications of AI.)
When I’ve asked other engineers if they believe AI is a threat to their job, I’ve gotten a resounding (100%) “no,” often followed by an addendum like, “maybe in another 20-30 years.” But these answers haven’t completely satisfied me and I’ve finally realized why...
We've seen the tech industry grow at an unprecedented rate over the last few decades. And it's this business-as-usual growth that leads to overall bullish impressions. But I don’t think anyone would argue that we’re on there verge of a new, uncharted, unpredictable landscape. To that point, maybe many (or most) things continue to go "up," but other things -- like available jobs, salaries, career longevity -- recede or even disappear.
To get a better sense of AI's possible effects on the engineering job market, I searched for someone who understands both coding as a career (not just technical skills, but workflows and process), as well as the AI space. I found this post from Dec. of last year by an AI developer reviewing ChatGPT’s ability to code. After testing the tool, the developer concluded that ChatGPT wasn’t a threat to programmers, giving various rationale therein. However, at least one of his reasons for dismissal has been overcome since the post was written less than four months ago. I also don’t see any reason why AI couldn’t (soon) “talk to the clients and gather requirements” or that these tasks couldn’t be handled by a non-technical account manager or coordinator. But then I have to remind myself that I don’t work in this field and there are many subtleties I don’t understand. And so I should probably be comforted by the seemingly broad belief that AI won’t be taking coding jobs anytime soon. Yet, the litany of objections I’ve seen superseded over the last year alone leaves me unconvinced.
No one can predict the future with certainty, but I think I’d invest more faith in answers where motives and biases could be better separated. For example, many of the articles I’ve read are primarily concerned with sensational titles to attract more clicks, while most of the software engineers I’ve queried already have the skills, a job, and network to (probably, possibly) ride out the rest of their careers without being negatively affected by AI. But I suspect that these POVs aren't super relevant or helpful for people looking to enter the field today.
So, I’d like to reframe the question for developers whom, yes, already have the skills, a job, and network, but also have a better-than-the-average-bear understanding of AI, and can imagine what it would be like to start their journey fresh in 2023:
Would you pursue software engineering as a career today?
Thanks in advance!
When it comes to LLMs, I often compare the complexity of writing a world-class software system to the difficulty of writing a world-class novel. Any fifth grader can string together a five-paragraph essay. But it’s a long way from that to writing an astute portrayal of modern society with compelling prose and gripping characters, like Balzac did.
When you hear professional software engineers say they’re not worried about AI, I think this is a large part of what’s going on. Most production code requires you to understand the world around you — you need to understand your customers, the existing technical constraints and your operational budget (how often is the system allowed to crash? What’s the 95th percentile allowed latency? What features can we trade off to reach this?). You often need to understand the viewpoints of your coworkers and/or managers and be able to argue with them when they’re wrong. You need to understand which coworkers or customers to talk to and which ones to ignore (not something I see in the skill set of any LLM so far). In most companies, the more senior a software engineer is, the more this becomes part of their job (instead of day-to-day coding).
That said, I think 80k hours correctly notes that software engineering is a great early-stage career and a mediocre mid-to-late stage career. Nowhere else can you find a cushy, well-defined and fun job that easily pays $100-500k a year. But I think that ends up cutting against you 5-10 years in — many software engineers can get so far off of just coding and being a nerd that they never learn how to solve business problems (and companies are often built around the expectation that software engineers don’t want to learn about the business). That keeps them from moving into more impactful roles. It’s also not a job that lends itself to networking, which probably also affects long-term career prospects.
Since you’re a former business owner, it’s possible this won’t be a problem for you. In that case, working at a tech company is one of the best ways to learn how to code and how to design software systems, and it’s probably a great move for you. I’d just encourage you to keep in mind that coding, while fun, is most impactful as a means to an end than as an end in itself.
When it comes to refining AI generated code, do you imagine this being done within organizations by the same amount of programmers or that LLMs could be managed by fewer senior (or even lower) level engineers? This question is inspired by my observations in marketing, where the stock of full-time writers appears to be going down. I totally get that LLMs can’t create their own prompts, debug every line of code, or approve products, but do you think they’ll start allowing orgs to complete product development cycles with less engineers?
Great point that coding... (read more)