How much coding should beginners learn in the AI era?

How much coding should beginners learn in the AI era?

25 pointsby JohnDSDev36 comments

Join the discussion

Write your take first — we'll ask for email only when you're ready to publish.

  • Hacker News
  • This is an interesting question, I just got a degree in Computer Science after 4 years of college, so here are my thoughts of someone who has some experience but not really that deep in the field: - I think coding itself isn't the valuable thing, but it's the ability to build things, problem solving through working with constraints, tradeoffs, and optimization, think about scaling something, and the mindset of always staying up to date. So no, coding isn't a valuable skill in the future, but the things that coding can teach you are especially if you want to go in to tech.

    Here are the things I think you should learn: - Learn the basics: Choose 1 programming language (like: Python, Java, C++) to learn and understand general concepts in coding, getting use to the syntax. Next is the Data Structure and Algorithms, these concepts are more high level then plain coding and helps you write code that is more efficient with time and memory, and also applies to many fields later. - Learn common development tools like Git, Github, Linux, VS Code, Claude. - Learn about Software Development patterns, practices, processes. Pick at least 1 project that you want to build, and build it with some AI tools as the support, you'll learn a lot about building things, and whether you will want to get deeper in the field. Also learn about good coding practices and apply that to the project. Learn more from online platforms, discussions, tutorials, read documents. Take it slow while using AI to code, try to understand everything. And accept the AI code only when you get the lines. (Also don't expose environment keys lol) - I also think it's useful to understand all the nuances of what you can do, some people really like the low level stuffs (which is closer to hardware like machine architecture, Assembly, Robots) while some people like more high level (system design, architectural thinking) so what I would say is maybe pick 1-2 low level and high level thing that you might like and go with it. - After these things you can have a pretty good understanding of the field. Maybe you can go deep into a category after that(like AI/ML, ...) and think more about career wise if you are still interested.

  • It is a very well opinionated topic and every answer here will tell you one or another story from personal experience, general guide and trends around AI. People will fear it, get fascinated by it and eventually accept the inevitable too.

    Here's my take: If you plan on staying relevant, it's not about how good of a programmer you are or how fast you can type or how much code you can generate. That advantage is gone now. Even those fancy theoretical terms for solving actual problem and basic DSA is redundant nowadays. AI can do lot of code in a very short span. But that doesn't make it easier too. Next era of coders will require a skill that was never less important, how to solve a problem.

    The reason is, AI doesn't know whole context of what you want until you describe it properly and since we are human, we will always miss one thing or another or something obvious. That being said, don't focus on being a great programmer since that advantage is gone now but still learn the basics. Do your job using AI while still learning how it's been done side by side since that knowledge will never go away. Eventually experience matters more than then tool whether done with AI or not.

  • Even with coding agents, I think beginners still benefit from learning enough to understand system behavior, debugging, and tradeoffs. In our experience, AI accelerates implementation, but understanding why something breaks remains extremely valuable. But I'll say in 5 years most coding work would be done by agents.
  • Mathematicians don’t skip past the basics and jump straight into differential equations just because we have calculators, nor do chefs eschew knife skills because we have food processors.
  • Instead of saying "all of it", let me differentiate what is important to learn in your bones and what is more or less solved (or at least secondary).

    You need to understand abstraction layers in the code and how to mentally navigate between them. Every change I make to code goes through a battery of concerns at different levels and perspectives: does this cause any security concerns? Are there unintended downstream effects? What is using this code I changed? How does it affect users? Are there performance concerns? Are there edge cases I am not considering? Can this be done in a cleaner way? Did I make something hard (encode logic/values) that should be soft (config setting, database value)? Are errors being caught? How are errors tracked and observed?

    It is most necessary to know the right questions - an LLM can help solve them. Be excessive and wasteful with questions until you internalize when they are helpful. You will be surprised at the things you didn't consider even with small changes to an existing codebase.

    You need to be able to read code and reason about it. If I was learning to code now I would spend most of my effort on reading code and conversing with an LLM to explain logic I don't understand, generate Mermaid graphs of code architecture, etc. You can rapidly level up by using LLM to help fill gaps in understanding.

    Before all that, you need to know the basics: loops, data structures, variables. You need to understand tech stacks, how and why different layers are distinct (frontend, backend, database, logging, infra etc), how the communicate and how data passes through them.

    In other words, architectural understanding and reducing "unknown unknowns" is the priority. If you know you don't know something, it is increasingly easy to address it directly, even if it takes a few more iterations.

  • "coding" is the skill that realizes other skills: it's a delivery medium.

    The skill to learn is to be able to see and address the problems that will need solving in the medium term.

    Even before AI, software changes a lot (desktop, enterprise, consumer web, IoT, devices, robotics...). So for the "seeing" part, it's like planning to cross the continent not knowing what transport or maps will be available: you can mainly guess they'll come out of the terrain and available materials and expertise.

    For the "address" part, it's helpful to have seen similar problems, but probably more helpful to have seen a variety of problems and developed some high-level approaches, typically in academic study. Depending on your domain, that might involve math, or engineering, or biology, or.... All coding is encoding, which is fitting some domain to data structures and algorithms.

    For the "delivery" part, it's especially important that your code restrict itself to what's needed by the actual end use. That might not be cool or interesting, and it often requires getting more direct appreciation of the end-use than the often-weak problem statement. It's a trap to just enjoy the beauty of it.

    Someone like Noam Shazeer demonstrates the value of good coding: lots of people in his environment had lots of good ideas, but he made it happen (and it looks like he enjoyed it).

  • Most people in big tech companies relying on AI to code already know how to code. AI is an addition to their skills, and it makes their work even faster. People who don't understand coding to some degree can't use AI to code because they lack basic skills like deploying the code AI writes. I understand you're worried that coding will no longer be a valuable skill in the future, and you are right to be worried because of all the layoffs and other AI created crisis, but you should still learn to code because tech will always need coders in the future. Plus, humans who can code are the ones who check the code AI writes most of the time.
  • Just like math is learned by solving equations, software engineering is learned by writing code

    Due to technological advances, solving equations stopped being a marketable skill, but understanding mathematics is as important as ever.

    Software engineering will follow a similar route as math- the marketable skill will no longer be to write code, but writing code will be necessary to understand the big picture and build the marketable skills.

  • Learning how to code will teach you how to break down problems and think in the way you’ll need to think to use and review code form AI. It will also teach you the language needed… not just the syntax of a programming language, but what is a function, variable, loop, conditional, etc. This will help you better talk to the AI and understand it. Trying to describe a concept you don’t really understand, when there is a simple word that can be used, will save a lot of trouble and headaches.

    I’d learn as much as you can without the help or use of AI, to build a solid foundation. If AI falls on its face, you’ll be ahead of all those who didn’t do that. If AI ends up being great, you’ll be able to better utilize it if you speak the same language.

    As far as I see it, there is only upside to learning. Even if you’re not going into the industry, learning to code helps the thinking process in a way I think almost anyone can benefit from.

  • All of it. AI is magnificent in hands of a skilled coder. And absolutely crap in hands of someone who has no clue how computers work.
  • Yep. There's a lot of room for error when you start by asking the wrong thing, then don't understand the output. I've seen prompts that were literally "fix it", then the LLM goes and changes assert status == 200 to 500. Tests pass now! Problem solved!
  • I agree with "all of it" and am, respectfully, more than a bit annoyed when this question is asked because it's common. We still learn math while having calculators and there are myriad other examples illustrating the same basic point.
  • It is exactly analagous to ask how much math you should learn given literally everyone has a scientific calculator in their pocket at all times.

    The answer is: to be a mathematician or an engineer, you still need to learn how to do the math yourself. A calculator makes the math easier and faster than doing integrals longhand, but owning a calculator does not mean you know how to apply an integral to a real problem.

    You still must learn to write code yourself. You need to know the fundamentals of computer science, programming, algorithms. The AI is good, but it still requires human engineering effort to get good results in exactly the same way that a scientific calculator requires mathematic skill to be input in order to produce useful results.

    Facing a tricky software engineering problem armed with AI and no fundamental knowledge puts you in exactly the same situation as facing a tricky vector problem armed with a calculator and no fundamental knowledge. You can punch keys and get numbers out. Maybe you'll even land on the right answer, but it will take you ten times longer, produce worse results, and you won't even know if your answer is right. You won't learn anything either.

    Working a tricky problem is how you learn which solutions apply and how to best use your skills. AI is the same way. If you don't have the fundamental skills, you won't learn, you won't get good results, and you'll waste a ton of time producing garbage for no benefit.

    AI is a skill multiplier, just like a calculator. It really, truly is a garbage in, garbage out situation. If you don't put in skill and effort, you don't get good results. If you lack the fundamental skill and engineering mindset you will never get good results, you'll never learn how to get better, and you likely won't even have the capacity to judge your work as the garbage it is.

    The only exception is the case that AI truly reaches super-human levels of ability in the near future. That case isn't worth worrying about because the problems it will cause go far, far beyond "should I learn to code".

    So yes, you should learn the fundamentals. AI makes good programmers better, and conversely makes bad programmers worse.

  • On effective engineering teams, there's always at least one person who is fluent one layer below where the rest of the team operates. That person tends to be extraordinarily useful in tricky situations. Examples: someone who can read assembly on a team writing C; someone who spends a lot of time in the browser debugger on a frontend team; or someone who is comfortable stepping deep into third-party library code with a debugger.

    If any of these examples are familiar, you might chuckle that of course everyone on the team has these skills. But there's a big difference between someone who can barely parse the symbols, and someone who can actually interpret them and extract meaning.

    Five to ten years from now, I have no idea whether software engineers still be coding. But I'm sure there will still be code. Do you want to be the person on your team who is fluent in it, or one of the rest who rely on that person?

  • Well put. The step to AI is a little like the step to using an IDE. It simplifies and automate a various bottlenecks. But when the IDE starts randomly failing, you need to call on that guy that knows how to work without the IDE.
    by n4r9