As AI takes over more of the coding process, the skills that may matter most for young engineers are shifting towards problem-solving, systems thinking, real-world experience, communication and the ability to make decisions.
For years, the formula for becoming a software engineer seemed relatively straightforward: learn to code, practise Data Structures and Algorithms (DSA), build a few projects, clear technical interviews and get your first job.
Artificial intelligence is beginning to disrupt that formula.
Today, AI tools can generate code, solve programming problems and help students build applications in a fraction of the time it once took. That creates a rather uncomfortable question for computer science students: if AI can increasingly write the code, what exactly should they spend their four years learning?
For Naman Dureja, a recent computer science graduate from NSUT and software engineer at Coinbase, the answer is not to abandon coding or computer science fundamentals. It is to understand what lies underneath them.
The real skill is learning how to solve problems
Looking back at his own education, Dureja says one of the most valuable things college taught him was not a particular programming language or technology, but how to break a problem into smaller parts and solve it systematically.
That ability, he argues, extends beyond software engineering.
Understanding a problem, identifying its constraints, thinking in systems and building a solution from smaller components are skills that can be applied across domains.
This is also where he believes students sometimes misunderstand what they are learning in a computer science degree.
Operating systems, databases and networking may appear disconnected from the day-to-day task of writing code. But once a student begins working on real systems, those fundamentals can become the mental building blocks needed to understand why something works, why it fails and how different components interact.
The value of education, therefore, may not always be immediately visible in the task students are preparing for. Some of it lies in developing the frameworks through which they learn to think.
AI is changing what “being an engineer” means
The biggest shift, however, is happening outside the classroom.
Dureja describes AI as another layer of abstraction in the evolution of software development. Programming itself has moved from lower-level languages to increasingly abstract tools, and AI now adds another layer: the ability to describe what needs to be built and have a machine generate much of the implementation.
But writing the code is only one part of engineering.
An engineer still has to determine what should be built, why it should be built, how it should fit into an existing system, what trade-offs are involved and what consequences a particular technical decision could create.
That changes the nature of the skill being tested.
If AI can generate several possible implementations, the valuable human contribution may increasingly be the ability to decide which one actually makes sense in a particular context.
A solution that looks technically correct may still create maintenance problems, introduce unnecessary complexity or fail to fit the larger system. Those decisions require context and judgement.
In other words, AI may make it easier to build something. It does not automatically make someone good at deciding what to build.
DSA isn’t dead. Its purpose has changed.
That also changes the conversation around DSA.
For years, students have often treated DSA as a pathway to technical interviews: solve hundreds or even thousands of problems and improve your chances of getting hired.
Dureja sees a different purpose for it in the AI era.
He argues that students should still learn DSA, but not simply because they expect an interviewer to ask them to reproduce an algorithm. The deeper value lies in exercising the ability to recognise patterns, understand constraints and arrive at solutions independently.
AI can provide the answer. The question is whether the student understands why that answer works.
At the same time, Dureja does not believe students necessarily need to spend the same enormous amount of time grinding problems that previous generations did. Once the fundamentals are established, he suggests using that understanding elsewhere — through internships, open-source contributions and real-world projects.
The goal is not to collect an impressive number of solved problems.
It is to develop the ability to solve problems.
Your GitHub may need to show more than a clone
That leads to another significant change in how students can build their careers.
During college, Dureja actively sought opportunities to work with startups and companies, sometimes approaching them without expecting payment simply for the opportunity to work on real problems.
The important thing for him was exposure to actual systems, customers and constraints.
That experience gave him something a classroom could not: proof of work.
For students today, that proof can take many forms — internships, open-source contributions, meaningful projects or products that have actual users.
The implication is particularly important in an age when AI makes it easier to produce technically functional projects.
A generic application can now be built much faster. A student therefore has to demonstrate more than the fact that they can make something run.
The more interesting question becomes:
What problem did you identify? Why did you solve it? What decisions did you make? What did you learn?
That is a much stronger demonstration of capability than another predictable project built primarily for a résumé.
Communication is becoming a technical skill
There is another skill that can easily get lost in conversations about AI and coding: communication.
Dureja describes it as one of the most important abilities a young engineer can develop.
The reason is straightforward. Building something is not enough. Engineers have to explain what they built, why they built it, what problem it solves and why they chose one approach over another.
As teams become increasingly distributed and software development becomes more collaborative, the ability to communicate technical thinking clearly becomes part of the job itself.
A technically strong engineer who cannot explain their reasoning may struggle to get their ideas understood — or even recognised.
So what should a CS student actually learn?
Perhaps the most useful takeaway from Dureja’s experience is that students do not need to choose between fundamentals and AI.
They need both, but in the right order.
Build strong fundamentals. Learn programming. Understand DSA and the core concepts of computer science. Then move beyond the classroom: work on real problems, contribute to open source, seek internships and build things that people actually use.
And throughout all of it, learn to use AI as a tool rather than allowing it to become a substitute for thinking.
Because the most important question for the next generation of engineers may no longer be:
“Can you write the code?”
It may be:
“Do you understand the problem well enough to know what code should be written — and why?”
That distinction could define what it means to be a software engineer in the AI era.
