news.ycombinator.com

Ask HN: How much coding should beginners learn in the AI era?

JohnDSDev · 39 points · 54 comments · 5 天前
HN 讨论

As someone who wants to work in tech in the future, say 5-10 years from now, to what extent do you think coding will be a valuable skill? How much should I learn?

评论

20 条顶层评论
SeyoS0159 分钟前

My son wants to do the same work as me and I must say that when I try to teach him the basics like I learned myself, it's seems useless regarding AI capabilities. I would have said: Focus more on the fundamental principles of programming and security, as well as organization and the ability to understand a subject, in order to provide the AI with the right context. But even that seems complicated to me for someone new to the field. However, I’ll take one thing away from this: Use AI to learn (with caution). It’s a fantastic training tool—even for senior developers, as long as you’re willing to not let it take over your brain.

sowbug5 天前

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?

n4r95 天前

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.

acestus52 天前

which IDE are you using that randomly fails?

vitally36435 天前

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.

JeelVankhede15 小时前

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.

alfanick5 天前

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.

dieselgate5 天前

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.

icedchai5 天前

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!

SeyoS011 小时前

I've fixed builds from non-devs who used an LLM for everything and then wondered why outsiders could read what they thought was private. Speaks a lot to me :D

al_borland5 天前

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.

unknown5 天前

[deleted]

jonfw5 天前

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.

ejhooooon1 天前

If you mean coding as an writing skill, it wouldn't be valuable I guess. But if you are saying all of skills or layers building smth with code, it would be still valuable. (I believe) I'm not an expert in coding but trying to stay opened to learn everything about coding. Whenever I bump into smth not familiar I try to study with agent in top-down way. This kind of state of mind gives me some relief that some where in future I would know quite a lot about coding and it would still valuable for myself.

lemonademan4 天前

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.

hackermailman2 天前

Using lightweight formal methods to verify models that the AI later builds. Example is Forge: https://forge-fm.github.io/book/2026/ Another skill is conceptual design or figuring out how the user interface should work using a design method to identify logical problems because we will all still have to use software. This book and the tutorials are quite good at explaining why some software succeeds and others fail https://essenceofsoftware.com/tutorials/ Accurate cost models for running code are still going to be needed because all the architecture is going to change. Many schools teach algorithm engineering like MIT but the best examples I've found is this course https://15799.courses.cs.cmu.edu/spring2025/schedule.html You now can design an interface to a system that someone like a paying client will enjoy using, design the hidden 'back end' of the system to be correct using formal methods, then derive an accurate cost model to see how it will run on whatever hardware we are using 5 years from now. If I were going into school today I would take robotics as that's the next big field and will have research grants and money coming in. It will require the same skills of formal methods for 'cyber-physical safety' and new cost models.

w10-15 天前

"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).

lubujackson5 天前

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.

Teocrispin23 小时前

Enough to read it, not necessarily to write it from scratch. The job is shifting from author to editor — but a bad editor who can't recognize a good sentence is useless. Same principle applies.

dkdbejwi3835 天前

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.

thiago_fm4 天前

Of course, for example, a Civil Engineer learns integrals, so it can learn advanced engineering topics. It may not often use them often as it uses software, or it may not remember all integrals rule tables, but it understands the concept, it's usefulness, and in case he needs it, he can figure out a way to work it out. This is the same for Software Engineering and code. You don't need to have written the HTTP protocol library in order to use it. I haven't written a single line of code since more than an year, but I've made the AI write multiple thousands of lines of code since then. It's just a calculator. You still need to know how to use the calculator and for what purpose do you use it. What changed is that you no longer will need to learn all ins and outs of coding.

Liz5955 天前

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.

YuechenLi5 天前

Learning computer science theory is probably going to be more important for the future than writing code yourself, because LLM coding is here to stay, and the human's job is going to be guiding the LLMs effectively: the AIs are writing code that pass tests, but how would you know that you are having the LLMs coding the right things? Personally, I think learning specific implementation of algorithms probably should take less of a priority compared to fundamental architectural understanding why these things are done in the first place: data structure, automata theory, interpreter/compiler methodologies, etc. You still have to learn how to code, even if you won't be doing a lot of coding directly yourself, because the fastest way to learn how to evaluate code is by writing code yourself.

dansmyers4 天前

I'm a CS professor at a primarily undergraduate college. I teach our intro programming course most years and also teach upper-level classes in AI and software engineering. I've used agentic tools with no restrictions in my upper-level classes and also in a new programming course for non-CS students. I've seen several examples of students using an agent to crank out version .01 of a program, but then have no idea what to do next, because they don't understand what changes are even possible or how to guide the model to add new features. AI coding deemphasizes knowing specific language features or frameworks, but requires having a careful, structured development process. Memorizing the syntax of library functions is less important, but you need to know the language of software design and how the features of your program are implemented, even if you're no longer writing individual lines of code. Breaking a design into independent units is important for revision and testing. You want to keep AI generations small and focused, which requires knowing where and how features are implemented. We're also moving past the tokenmaxxing trend and swinging back to cost-conscious AI use. Classical CS knowledge will help you choose algorithms and systems that can minimize token consumption. My advice would be to take a standard CS 101 course that teaches the fundamentals of structured programming in Python or another standard language. Focus on understanding how to write loops and functions and use basic data structures. Use AI tactically to help with debugging and understanding code, but do most of your writing by hand - don't generate entire programs yet. Ideally, this will happen in a class with an expert who can observe and guide you. I have some resources from my class that may be useful: https://github.com/dansmyers/IntroToCS After that point, you can start introducing some AI coding and gradually build up the size and complexity of your programs. Learn about software design and object-oriented programming, security, and fundamental systems. We are moving most of this content earlier in the curriculum, so students see it in the first two years, rather than waiting until elective classes. The details of data structures and algorithms can probably come later, once you have more context for where they're useful. Last point: I teach the specs-driven development process in all of my classes. It's the best way to approach more complex projects. Prioritize creating ambitious projects that do interesting things.

JohnDSDev4 天前

Thanks for the resources!

ozgrakkurt5 天前

You can’t learn enough anyway so this is kind of like the beginner asking “would it look bad if I put on too much muscle?” That aside, AI era is irrelevant for learning to program so far imo. But it is not possible to guess for 10 years. I recommend starting something like freecodecamp and reading as many textbooks as possible (written by people that actually teach the subjects). Like the intro to programming book by Guttag Also learning english well enough to be able to watch conference videos and read textbooks, if you don’t already know it. Good ways to use AI are code review and finding bugs imo but both of these can be very harmful for learning. Also would recommend only considering the opinions of people actually write code and earn a living by writing code. And mostly disregarding future projections from anyone.

CM305 天前

There's still a lot of value in learning to code here, even if AI becomes the norm at certain companies. Remember, you want to be able to understand why your system isn't working as intended if the AI screws up. You want to be able to make changes yourself without relying on Claude or Codex to do everything. And you especially want this given that these services are operating at a loss right now, and prices are steadily increasing. How long til some companies restrict usage to keep costs down? How many companies can afford to pay whatever these services ask for? Ideally local models and systems would make things cheaper here, but the gulf between what's available there and through the larger providers is still pretty big, and the requirements for a good AI system are higher than many people can afford on their own.