Beyond the 70%: Maximizing the human 30% of AI-assisted coding
Why durable human skills matter in the age of AI-assisted coding
This is a follow-up to my article “The 70% problem: Hard truths about AI-assisted coding”
AI coding assistants like Cursor, Cline, Copilot and WindSurf have transformed how software is built, shouldering much of the grunt work and boilerplate. Yet, as experienced developers and industry leaders note, there remains a crucial portion of software engineering that AI does not handle well – roughly that last “30%” of the job that separates a toy solution from a production-ready system. This gap includes the hard parts: understanding complex requirements, architecting maintainable systems, handling edge cases, and ensuring code correctness. In other words, while AI can generate code, it often struggles with engineering.
Tim O’Reilly, reflecting on decades of technology shifts, reminds us that each leap in automation has changed how we program but not why we need skilled programmersWe’re not facing the end of programming, but rather “the end of programming as we know it today,” meaning developers’ roles are evolving, not evaporating.
The challenge for today’s engineers is to embrace AI for what it does best (the first 70%) while doubling down on the durable skills and insights needed for the remaining 30%. This article dives into expert insights to identify which human skills remain crucial. We’ll explore what senior developers should continue to leverage and what junior developers must invest in to thrive alongside AI.
The goal: pragmatic guidance for maximizing the value of that irreplaceable 30%, with actionable takeaways for engineers at every level.
The 70% Problem: What AI does well (and where It struggles)
AI-based coding tools are astonishingly good at certain tasks. They excel at producing boilerplate, writing routine functions, and getting projects most of the way to completion. In fact, many developers find that an AI assistant can implement an initial solution that covers roughly 70% of the requirements.
This is often the straightforward, patterned part of the work – the kind of code that follows well-trod paths or common frameworks. As one Hacker News commenter observed, AI is superb at handling the “accidental complexity” of software (the repetitive, mechanical stuff) while the “essential complexity” – understanding and managing the inherent complexity of a problem – remains on human shoulders. In Fred Brooks’ classic terms, AI tackles the incidental, but not the intrinsic, difficulties of development.
Where do these tools struggle? Experienced engineers consistently report a “last mile” gap. AI can generate a plausible solution, but the final 30% – covering edge cases, refining the architecture, and ensuring maintainability – “needs serious human expertise”.
For example, an AI might give you a function that technically works for the basic scenario, but it won’t automatically account for unusual inputs, race conditions, performance constraints, or future requirements unless explicitly told. AI can get you most of the way there, but that final crucial 30% (edge cases, keeping things maintainable, and solid architecture) needs serious human expertise.
Moreover, AI has a known tendency to generate convincing but incorrect output. It may introduce subtle bugs or “hallucinate” nonexistent functions and libraries. Steve Yegge wryly likens today’s large language models (LLMs) to “wildly productive junior developers” – incredibly fast and enthusiastic, but “potentially whacked out on mind-altering drugs,” prone to concocting crazy or unworkable approaches.
In Yegge’s words, an LLM can spew out code that looks polished at first glance, yet if a less experienced developer naively says “Looks good to me!” and runs with it, hilarity (or disaster) ensues in the following weeks. The AI doesn’t truly understand the problem; it stitches together patterns that usually make sense. Only a human can discern whether a seemingly fine solution hides long-term landmines. Simon Willison echoed this after seeing an AI propose a bewitchingly clever design that only a senior engineer with deep understanding of the problem could recognize as flawed. The lesson: AI’s confidence far exceeds its reliability.
Crucially, current AIs do not create fundamentally new abstractions or strategies beyond their training data. They won’t invent a novel algorithm or an innovative architecture for you – they remix what’s known. They also won’t take responsibility for decisions. As one engineer noted, “AIs don’t have ‘better ideas’ than what their training data contains. They don’t take responsibility for their work.”
All of this means that the creative and analytical thinking – deciding what to build, how to structure it, and why – firmly remains a human domain. In summary, AI is a force multiplier for developers, handling the repetitive 70% and giving us a “turbo boost” in productivity. But it is not a silver bullet that can replace human judgment. The remaining 30% of software engineering – the hard parts – still requires skills that only trained, thoughtful developers can bring. Those are the durable skills to focus on. As one discussion put it: “AI is a powerful tool, but it’s not a magic bullet... human judgment and good software engineering practices are still essential.”
Durable Engineering skills that remain essential
To thrive in an AI-enhanced development world, engineers should double down on the enduring skills and practices that AI cannot (yet) replicate. These capabilities will remain crucial no matter how advanced our tools become. In particular, focus on strengthening the following:
System design & architectural thinking: Designing a coherent system requires understanding trade-offs, constraints, and the “big picture” beyond writing a few functions. AI can generate code but won’t automatically choose the best architecture for a complex problem. The overall design – how components interact, how data flows, how to ensure scalability and security – is part of that 30% that demands human insight. Senior developers have long honed this skill, and junior devs should actively cultivate it. Think in terms of patterns and principles (e.g. separation of concerns, modularity) – these guide an AI-generated solution toward maintainability. Remember, solid architecture doesn’t emerge by accident; it needs an experienced human hand on the wheel.
Handling edge cases & ambiguity: Real-world software lives rife with oddball scenarios and changing requirements. AI tends to solve the general case by default. It’s up to the developer to ask “What if…?” and probe for weaknesses. Durable skill here is critical thinking and foresight – enumerating edge cases, anticipating failures, and addressing them in code or design. This might mean thinking of null input, network outages, unusual user actions, or integration with other systems. Domain knowledge plays a role too: understanding the business context or the user’s environment will reveal edge cases that a generic AI simply doesn’t know about. Experienced engineers habitually consider these scenarios; juniors should practice systematically testing boundaries and questioning assumptions.
Code review & quality assurance: With AI writing lots of code, the ability to rigorously review and test that code becomes even more critical. “Everyone will need to get a lot more serious about testing and reviewing code,” Steve Yegge emphasizes. Treat AI-generated code as you would a human junior developer’s output – you are the code reviewer responsible for catching bugs, security flaws, or sloppy implementations. This means strong skills in unit testing, integration testing, and debugging. Writing good tests is a durable skill that forces you to understand the spec and verify correctness. It’s wise to assume nothing works until proven otherwise. As one developer noted, AI often yields “functional but horribly optimized code” until you guide it through iterative improvement. Cultivate a testing mindset: verify every critical logic path, use static analysis or linters, and don’t shy away from rewriting AI-given code if it doesn’t meet your quality bar. Quality assurance is not an area to outsource to AI – it’s where human diligence shines.
Debugging & problem-solving skills: When software doesn’t work as expected, you need real problem-solving chops to diagnose and fix it. AI can assist with debugging (for example, by suggesting possible causes), but it lacks true understanding of the specific context in which your application runs. Being able to reason through a complex bug – reproducing it, isolating the cause, understanding the underlying systems (OS, databases, libraries) – is a timeless engineering skill. This often requires a strong grasp of fundamentals (how memory and state work, concurrency, etc.) that junior developers must learn through practice. Use AI as a helper (it might explain error messages or suggest fixes), but don’t rely on it blindly. The skill to methodically troubleshoot and apply first principles when debugging sets great developers apart. It’s also a feedback loop: debugging AI-written code will teach you to prompt the AI better next time or avoid certain patterns.
Maintaining context & Big-Picture understanding: Software projects are not just isolated coding tasks; they exist within a larger context of user needs, timelines, legacy code, and team processes. AI has no innate sense of your project’s history or the rationale behind certain decisions (unless you explicitly feed all that into the prompt, which is often impractical). Humans need to carry that context. A durable skill here is systems thinking – understanding how a change in one part of the system might impact another, how the software serves the business objectives, and how all the moving pieces connect. This holistic perspective lets you use AI outputs appropriately. For example, if an AI suggests a clever shortcut that contradicts a regulatory requirement or company convention, you’ll catch it because you know the context. Junior engineers should make a point to learn the background of their projects and read design docs, so they can develop judgment about what fits and what doesn’t.
Communication & collaboration: Building software is a team sport. AI doesn’t attend meetings (thank goodness) – humans still must talk to other humans to clarify requirements, discuss trade-offs, and coordinate work. Strong communication skills are as valuable as ever. Senior developers should leverage their ability to explain complex ideas, mentor others, and articulate vision. Junior developers should practice asking good questions and describing problems clearly (both to colleagues and to AI). Interestingly, prompting an AI is itself a form of communication; it requires you to precisely express what you want. This overlaps with a core engineering skill: requirements analysis. If you can formulate a clear prompt or spec, it means you’ve thought through the problem. Additionally, sharing knowledge, writing documentation, and reviewing others’ code are collaborative skills that AI cannot replace. In the future, as developers work “with” AI, the human-to-human collaboration in a team – making sure the right problems are being solved – stays vital. One emerging trend is that developers may focus more on high-level design discussions (often with AI as a participant) and on coordinating tasks, essentially taking on more of a conductor role. Communication and leadership skills will serve you well in that conductor’s seat.
Adaptability & continuous learning: Finally, a meta-skill: the ability to learn new tools and adapt to change. The field of AI-assisted development is evolving rapidly. Senior engineers who keep an open mind and learn how to effectively use new AI features will remain ahead of the curve – Tim O’Reilly suggests that developers who are “eager to learn new skills” will see the biggest productivity boosts from AI. Junior developers, in turn, should invest in learning the fundamentals deeply and staying curious about new techniques. This combination enables you to harness AI as a tool without becoming dependent on it. It’s a balancing act: use AI to accelerate your growth, but also occasionally practice without it to ensure you’re not skipping core learning (some developers do an “AI detox” periodically to keep their raw coding skills sharp. In short, be the engineer who learns constantly – that’s a career-proof skill in any era.
These skills form the human advantage in software engineering. They are durable because they don’t expire with the next framework or tooling change; if anything, AI’s rise makes them more pronounced. Simon Willison has argued that AI assistance actually makes strong programming skills more valuable, not less, because those with expertise can leverage the tools to far greater effect.
A powerful machine in unskilled hands can be dangerous or wasted, but in capable hands it’s transformative. In the AI era, an experienced engineer is like a seasoned pilot with a new advanced co-pilot: the journey can go faster and farther, but the pilot must still navigate the storms and ensure a safe landing.
The Senior Developer’s edge: leverage experience with AI
For senior engineers, the advent of AI coding tools should be seen as an opportunity to amplify your impact – if you leverage your experience in the right ways. Senior developers typically possess deep domain knowledge, intuition for what could go wrong, and the ability to make high-level technical decisions.
These strengths are part of the 30% that AI can’t handle alone. Here’s how seasoned developers can maximize their value:
Be the architect and the Editor-in-Chief: Let AI handle the first draft of code, while you focus on architecting the solution and then refining the AI’s output. In many organizations, we may see a shift where teams need “only senior associates” who “(a) describe the tasks to be done (i.e. create the prompts), and (b) review the resulting work for accuracy and correctness”. Embrace that model. As a senior dev, you can translate complex requirements into effective prompts or specifications for an AI assistant, then use your critical eye to vet every line produced. You are effectively pair-programming with the AI – it’s the fast typer, but you’re the brain. Maintain high standards during review: ensure the code meets your organization’s quality, security, and performance benchmarks. By acting as architect and editor, you prevent the “high review burden” from overwhelming you. (A cautionary note: if junior staff simply throw raw AI output over the wall to you, push back – instill a process where they must verify AI-generated work first, so you’re not the sole safety net.
Use AI as a force multiplier for big initiatives: Senior engineers often drive large projects or tackle hairy refactors that juniors can’t approach alone. AI can supercharge these efforts by handling a lot of mechanical changes or exploring alternatives under your guidance. Steve Yegge introduced the term Chat-Oriented Programming (CHOP) for this style of working – “coding via iterative prompt refinement” with the AI as a collaborator. Leverage CHOP to be more ambitious in what you take on. As Simon Willison noted, having AI assistance “lowers the bar for when a project is worth investing time in at all” since what might have taken days could be done in hours. Senior devs can thus attempt those “wouldn’t it be nice if…?” projects that always seemed slightly out of reach. The key is to remain the guiding mind: you decide which tools or approaches to pursue, and you integrate the pieces into a cohesive whole. Your experience allows you to sift the AI’s suggestions – accepting those that fit, rejecting those that don’t.
Mentor and set standards in the AI Era: Another crucial role for senior engineers is to coach less experienced team members on effective use of AI and on the timeless best practices. You likely have hard-won knowledge of pitfalls that juniors may not see (memory leaks, off-by-one errors, concurrency hazards, etc.). With juniors now potentially generating code via AI, it’s important to teach them how to self-review and test that code. Set an example by demonstrating thorough testing of AI contributions, and encourage a culture of not blindly trusting machine output. Some organizations (and even law firms) have instituted rules that if someone uses an AI, they must disclose it and verify the results themselves – not just assume a senior will catch mistakes. Seniors should champion such norms on their teams: AI is welcome, but diligence is required. By mentoring juniors in this way, you offload some of the oversight burden and help them grow into that 30% skillset more quickly.
Continue to cultivate domain mastery and foresight: Your broad experience and context are more important than ever. Senior developers often have historical knowledge of why things are built a certain way or how an industry operates. This domain mastery lets you catch AI’s missteps that a newcomer wouldn’t. Continue investing in understanding the problem domain deeply – that might mean staying up to date with the business’s needs, user feedback, or new regulations that affect the software. AI won’t automatically incorporate these considerations unless told. When you combine domain insight with AI’s speed, you get the best outcomes. Also, use your foresight to steer AI. For instance, if you know that a quick fix will create maintenance pain down the line, you can instruct the AI to implement a more sustainable solution. Seniors should trust their instincts honed over years – if a code snippet “looks off” or too good to be true, dig in. Nine times out of ten there’s something your intuition spotted that the AI didn’t account for. Being able to foresee the second- and third-order effects of code is a hallmark of senior engineers; don’t let the convenience of AI blunt that habit. Instead, apply it to whatever the AI produces.
Leverage soft skills and leadership: With AI shouldering some coding, senior developers can spend more energy on the human side of engineering. This includes communicating with stakeholders, leading design meetings, and making judgment calls that align technology with business strategy. Tim O’Reilly and others suggest that as rote coding becomes easier, the value shifts to deciding what to build and how to orchestrate complex systems. Senior engineers are often the ones orchestrating and seeing the big picture. Step up to that role. Volunteer to write that architecture roadmap, to evaluate which tools (AI or otherwise) to adopt, or to define coding guidelines for AI usage in your org. These are tasks AI can’t do – they require experience, human discretion and often cross-team consensus-building. By amplifying your leadership presence, you ensure that you’re not just a code generator (replaceable by another tool), but an indispensable technical leader guiding the team in this new era.
In short, continue doing what seasoned developers do best: see the forest for the trees.
AI will help you chop a lot more trees, but someone still needs to decide which trees to cut and how to build a stable house from the lumber. Your judgment, strategic thinking, and mentorship are now even more critical. A senior developer who harnesses AI effectively can be dramatically more productive than one who doesn’t – but the ones who truly excel will be those who apply their human strengths to amplify the AI’s output, not just let the AI run wild.
As one Redditor quipped, “AI is a programming force multiplier” that “greatly increases the productivity of senior programmers”. The multiplier effect is real, but it’s your expertise that’s being multiplied. Keep that expertise sharp and at the center of the development process.
Growing as a Junior Developer in the AI Era
If you’re a junior or less-experienced developer, you might feel a mix of excitement and anxiety about AI. On one hand, AI assistants can write code that you might not know how to write yourself, potentially accelerating your learning. On the other hand, there are headlines like “death of the junior developer” suggesting entry-level coding jobs are at risk.
The truth is somewhere in between: AI is changing the early-career experience, but junior developers are not obsolete. You do, however, need to be proactive in developing skills that ensure you’re contributing value beyond what an AI can churn out. Here’s how to invest in yourself to handle that 30% gap effectively:
Learn the fundamentals – don’t skip the “why”: It’s tempting to lean on AI for answers to every question (“How do I do X in Python?”) and never truly absorb the underlying concepts. Resist that urge. Use AI as a tutor, not just an answer vending machine. For example, when AI gives you a piece of code, ask why it chose that approach, or have it explain the code line by line. Make sure you understand concepts like data structures, algorithms, memory management, and concurrency without always deferring to AI. The reason is simple: when the AI’s output is wrong or incomplete, you need your own mental model to recognize and fix it. As one engineer noted, if you’re “not actively engaging with why the AI is generating certain code, you might actually learn less”, hindering your growth. So take time to read documentation, write small programs from scratch, and solidify your core knowledge. These fundamentals are durable; they’ll serve you even as the tools around you change.
Practice problem solving & debugging without the AI safety net: To build real confidence, sometimes you have to fly solo. Many developers advocate doing an “AI-free day” or otherwise limiting AI assistance periodically. This ensures you can still solve problems with just your own skills, which is important for avoiding skill atrophy. You’ll find it forces you to truly think through a problem’s logic, which in turn makes you better at using AI (since you can direct it more intelligently). Additionally, whenever you encounter a bug or error in AI-generated code, jump in and debug it yourself before asking the AI to fix it. You’ll learn much more by stepping through a debugger or adding print statements to see what’s going wrong. Consider AI suggestions as hints, not final answers. Over time, tackling those last tricky bits of a task will build your skill in the very areas AI struggles – exactly what makes you valuable.
Focus on testing and verification: As a junior dev, one of the best habits you can develop is writing tests for your code. This is doubly true if you use AI to generate code. When you get a chunk of code from an LLM, don’t assume it’s correct – challenge it. Write unit tests (or use manual tests) to see if it truly handles the requirements and edge cases. This accomplishes two things: (1) it catches issues in the AI’s output, and (2) it trains you to think about expected behavior before trusting an implementation. You might even use the AI to help write tests, but you define what to test. Steve Yegge’s advice about taking testing and code review seriously applies at all levels. If you cultivate a reputation for carefully verifying your work (AI-assisted or not), senior colleagues will trust you more and you’ll avoid the scenario where they feel you’re just “dumping” questionable code on them. In practical terms, start treating testing as an integral part of development, not an afterthought. Learn how to use testing frameworks, how to do exploratory manual testing, and how to systematically reproduce bugs. These skills not only make you better at the 30% work, they also accelerate your understanding of how the code really works. Remember: if you catch a bug that the AI introduced, you just did something the AI couldn’t – that’s added value.
Build an eye for maintainability: Junior devs often focus on “getting it to work.” But in the AI era, getting a basic working version is easy – the AI can do that. The harder part (and what you should focus on) is making code that’s readable, maintainable, and clean. Start developing an eye for good code structure and style. Compare the AI’s output with best practices you know of; if the AI code is messy or overly complex, take the initiative to refactor it. For instance, if an LLM gives you a 50-line function that does too many things, you can split it into smaller functions. If variable names are unclear, rename them. Essentially, pretend you’re a human code reviewer (even if you’re junior) and improve the AI’s code as if a peer wrote it. This will help you internalize good design principles. Over time, you’ll start prompting the AI in ways that yield cleaner code to begin with (because you’ll specify the style you want). Maintainers of software (often teams working months or years later) will thank you, and you’ll prove that you’re thinking beyond just “make it run” – you’re thinking like an engineer. Keeping things maintainable is exactly in that human-driven 30%, so make it your concern from the start of your career.
Develop your prompting and tooling skills (wisely): There’s no denying that “prompt engineering” – the skill of interacting with AI tools effectively – is useful. As a junior dev, you should absolutely learn how to phrase questions to AI, how to give it proper context, and how to iterate on prompts to improve the output. These are new skills that can set you apart (many experienced devs are still figuring this out too!). However, remember that prompting well is often a proxy for understanding the problem well. If you find you can’t get the AI to do what you want, it might be because you need to clarify your own understanding first. Use that as a signal. One strategy is to outline a solution in plain English yourself before asking the AI to implement it. Also, experiment with different AI tools (Copilot, Claude, etc.) to see their strengths and weaknesses. The more fluent you are with these assistants, the more productive you can be – but never treat their output as infallible. Think of AI like a super-charged Stack Overflow: an aid, not an authority. You might even build small personal projects using AI to push your limits (e.g. “Can I build a simple web app with AI’s help?”). Doing so will teach you how to integrate AI into a development workflow, which is a great skill to bring into a team. Just balance it with periods of working without the net, as mentioned earlier.
Seek feedback and mentorship: Lastly, one durable skill that will accelerate your growth is the ability to seek out feedback and learn from others. AI won’t get offended if you ignore its advice, but your human teammates and mentors are invaluable for your development. Don’t hesitate to ask a senior developer why they prefer one solution over another, especially if it differs from what an AI suggested. Discuss design decisions and trade-offs with more experienced colleagues – these conversations reveal how seasoned engineers think, and that’s gold for you. In code reviews, be extra receptive to comments about your AI-written code. If a reviewer points out that “this function isn’t thread-safe” or “this approach will have scaling issues,” take the time to understand the root issue. These are exactly the kind of things an AI might miss and you want to learn to catch. Over time, you’ll build a mental checklist of considerations. Additionally, find opportunities to pair program (even if remotely). Perhaps you can “pair” with a senior who uses AI in their workflow – you’ll observe how they prompt the AI and how they correct it. Being open to feedback and actively asking for guidance will help you mature from doing tasks that an AI could do to doing the high-value tasks that only humans can do. In a sense, you’re trying to acquire the wisdom that usually comes with experience, as efficiently as you can. That makes you more than just another coder in the room – it makes you the kind of engineer teams are eager to keep and promote.
Junior mindset: From consuming to creating
It’s worth noting a mindset shift for juniors in the AI era: move from just consuming solutions to creating understanding. In the past, a junior might struggle through documentation and eventually write a feature; now an AI can hand you a solution on a platter. If you simply consume it (copy-paste and move on), you haven’t grown much.
Instead, use each AI-given solution as a learning case. Dissect it, experiment with it, and consider how you might have arrived at it yourself. By treating AI outputs not as answers to end all questions but as interactive learning material, you ensure that you – the human – are continuously leveling up. This way, rather than AI replacing your growth, it accelerates it. Many experts believe that while AI might reduce the need for large teams of junior “coder-grinders,” it also raises the bar for what it means to be a junior developer. The role is shifting to someone who can work effectively with AI and quickly climb the value chain. If you adopt the habits above, you’ll distinguish yourself as a junior developer who doesn’t just bring what an AI could bring (any company can get that via a subscription), but who brings insight, reliability, and continuous improvement – traits of a future senior developer.
Conclusion: embrace the change, focus on the Human advantage
Software engineering has always been a field of continuous change – from assembly language to high-level programming, from on-prem servers to the cloud, and now from manual coding to AI-assisted development. Each leap has automated some aspect of programming, yet each time developers have adapted and found even more to do. As Tim O’Reilly notes, past innovations “almost always resulted in more work, more growth, more opportunities” for developers. The rise of AI is no different. Rather than making developers irrelevant, it is reshaping the skillset needed to succeed. The mundane 70% of coding is getting easier; the challenging 30% becomes an even larger part of our value.
To maximize that human 30%, focus on the timeless engineering skills: understanding problems deeply, designing clean solutions, scrutinizing code for quality, and considering the users and context. Those who combine these skills with AI tools will outperform those who have only one or the other. In fact, the consensus emerging among experts is that AI is a tool for the skilled. Experienced programmers are gaining more from AI because they know how to guide it and what to do when it falters. It’s been said that “LLMs are power tools meant for power users.”. This means the onus is on each of us to become that “power user” – to cultivate the expertise that lets us wield these new tools effectively.
Ultimately, the craft of software engineering is more than writing code that works. It’s about writing code that works well – in a real-world environment, over time, and under evolving requirements. Today’s AI can assist with writing code, but it cannot yet ensure the code works well in all those dimensions. That’s the developer’s job.
By doubling down on the skills outlined above, senior developers can continue to lead and innovate, and junior developers can accelerate their journey to mastery. AI will handle more and more of the routine, but your creativity, intuition, and thoughtful engineering will turn that raw output into something truly valuable. AI is a powerful tool, but it’s all about how we use it. Good engineering practices, human judgment, and a willingness to learn will remain essential.
In practical terms, whether you are pair-programming with an “eager junior” AI that writes your functions, or reviewing a diff full of AI-generated code, never forget to apply your uniquely human lens. Ask: Does this solve the right problem? Will others be able to understand and maintain this? What are the risks and edge cases? Those questions are your responsibility. The future of programming will indeed involve less typing every semicolon by hand and more directing and curating – but it will still require developers at the helm who have the wisdom to do it right.
Actionable takeaways:
Adopt a growth mindset with AI: Use it to amplify productivity, but commit to learning why solutions work. Treat AI as a partner, not a crutch, and regularly challenge yourself to work through problems without it to build your skills.
Invest in core skills: Sharpen your ability to design systems, think through edge cases, write tests, and debug deeply. These are long-term career skills that AI can’t substitute. Make code quality and clarity your personal mission on every task.
For senior devs: Leverage your experience to guide AI (through good prompts) and to vet its outputs. Take the lead in integrating AI into your team’s workflow responsibly – set standards for usage and ensure knowledge is shared. Use the time saved by AI to tackle more ambitious projects and to mentor others.
For junior devs: Focus on becoming the kind of engineer who understands and can improve the code that AI generates. Build a reputation for thoroughness – always test and double-check your work. Learn from every bug and feedback. By doing so, you’ll quickly move into work that AI alone can’t do, increasing your value.
Stay adaptive: The tools will keep evolving. Continuously update your toolset and skills. But if you have solid fundamentals and a collaborative attitude, you’ll be able to ride any wave of technology.
The era of AI-assisted coding is here, and it’s making routine coding faster. This frees us, as developers, to concentrate on the harder and more meaningful aspects of software creation. By maximizing our focus on that “last 30%” – the critical thinking, the design finesse, the quality checks – we ensure not only our relevance, but also that we deliver better software.
In the end, great software engineering has always been about problem-solving, not just code-slinging. AI doesn’t change that - it simply challenges us to elevate our problem-solving to the next level. Embrace that challenge, and you’ll thrive in this new chapter of our industry.
So good and informative! Thank you, this is encouraging as I'm just a couple months into my first dev job.
I like the constructive take, especially the guidance for the junior devs.