JetBrains Academy
The place for learning and teaching computer science your way
How to Prepare for the Future of Programming
Start a start-up? Scratch that. Call your mom. Go back to school? Don’t go back to school. Learn to code? Don’t learn to code. Forget coding. Only prompt engineering matters now. Actually, I heard it’s overrated. You think we’re gonna be prompting in 5 years? 2 years? Nonsense. All this hype is being blown so out of proportion. Have some healthy skepticism. Have a lot of healthy skepticism. Doubt. Believe. Move to the woods. Bury your laptop in the back yard. Get bored. Dig it up again. Coding is back, baby! Start another course, work on it for a few days. Lose motivation. Panic. Repeat.
You’re not alone. As a writer, I’m also panicking. Why read this when you could ask the same question to your LLM of choice and have a lively discussion perfectly tuned to be as broad or technical, long or short, playful or serious, as you want it to be? This thought has tormented me for days and this post remained a blank document. The only thing that saved me was remembering why I made this series in the first place.

I wanted to create a resource for learners to better understand programming within the context of our new AI world. I made a case for why it’s still worth learning to code, explored the psychology of beginner programmers, and discussed whether you should use AI at all. So, now what?
We know that programming will change – that programming has changed. But how exactly? And how much? What knowledge can we be sure will remain fundamental? What should we learn to prepare for the worlds to come?
There are a variety of answers depending on where you as the answerer stand. Is your net worth positively correlated with AI hype? Is your job too complicated, social, or important for AI? How is your relationship with risk? How do you feel about change? What do you believe about what the future needs?

These are not questions anyone can answer for you. Not me, not a tech CEO, not your mom, and certainly not a chatbot. We live in a world with platforms and educational institutions jumping to answer “What can I learn?” (a small reminder to check out our catalog of free courses), but there are very few resources that will give good answers to questions like “What should I learn?”, “Can you really justify why?”, and “Can you promise me it will remain useful?”.
I can’t guarantee that anything you learn will remain useful in the years to come, but I am certain that learning will. On that subject, here are a few short recommendations on how to prepare for the future of programming.
Understand the flaws of your education
Are you in a large institution that is slow to adapt? Is AI use being discussed openly or banned from the classroom? Are you self-studying at your own pace, but lack any network of peers or mentors? Is your education giving you a broad overview of a field (a Bachelor’s degree) or is it leading you toward specialization and a specific job (bootcamp/internship)?
Both of these approaches are useful, they’re just working on different timelines. A broad overview can give you more options when the field changes, while a specialization can help you in the short term. Either way, try to compensate in the direction of your weaknesses so you’re not left either overqualified and underemployed, or unemployable when your only skill becomes redundant.

📚 An exercise: Take 10 to 20 minutes to reflect on your education from a zoomed-out perspective. Think about what it did or is doing well and what gaps you might be left with at the end of it. Below you’ll find a few recommendations on how to fill those gaps, but feel free to brainstorm your own as well.
How to broaden your knowledge
If you’ve got practical skills but worry about their shelf life, now is the time to foster curiosity about the wider scope of your field. This will feel different than learning a practical skill, since there are fewer concrete ways to assess your progress. Instead, pay attention to the moments when ideas from different domains click together. This is a sign that you’re starting to expand your general knowledge and get a clearer view of the big picture.
Here are some practical ways to do this:
- 🧑🎓 Follow short courses in other domains. Our knowledge map can help you visualize what subjects you might find interesting to explore, or you can even consider departing from computing altogether. Bringing technical expertise to a writing course might lead to great science fiction, or an interesting exercise in applied philosophy.
- 🧰 Work on projects that use a broad skillset but don’t require professional excellence. Make a silly app that needs a little bit of frontend, a little bit of backend, knowledge of APIs, and even graphic design. It might be ugly and inefficient, the point is that you did it.
- Since motivation might be difficult to maintain on your own, find someone with a different skillset and swap roles.
- 👯 If you consider yourself a “technical person”, focus especially on communication skills and critical thinking. These are particularly important in navigating the uncertain future we’re facing, since purely technical jobs are in many ways the easiest to automate away.
How to deepen your knowledge
Personally, I find it really hard to specialize. I jump between interests, rarely sticking with anything long enough to achieve mastery. This used to stress me out – how could I be good at my job if I couldn’t commit to one thing? But I’ve learned that the pressure to specialize is often about legibility, not capability. We like people who are easy to categorize. In practice, though, proficiency in one skill lends itself to an easier time with others.
Depth is what makes you adaptable. Surface-level knowledge can get outdated quickly. Understanding underlying principles like how systems actually work, not just how to use them, means you can transfer what you know to new tools and frameworks. When the landscape shifts, you’re not starting from scratch.

You’ll have to choose your approach depending on the specific skill you want to master. Here’s how to do this:
- 🧑🏫 Get advice from someone who’s done it before, ideally someone who can personally mentor you. To get started, there are plenty of “Things I wish I’d known before becoming x” videos, which might help you wade through what’s necessary and what’s not.
- 💻 Regarding coding, our specializations courses provide very comprehensive and practical assignments in various domains.
- 💯 If you, like me, quickly lose interest once the novelty wears off, I can recommend tailoring your media diet toward your target subject. Reading books and listening to stories of people talking about your subject on a high level helps you remember what sparked your interest in the first place. To start, you could check out our video essay on the history of Git!
Goodbye, AI world
You don’t need to understand tech to do things with it anymore. Now you can build apps, write code, or generate designs without understanding the underlying systems. There’s real value in that accessibility, but as a writer and coder, I worry about what we lose. If we go all-in on doing things, we might forget that developing deep knowledge and understanding can be fun and good for us. It might even be a requirement for our mental health and self-esteem. To not only be able to make an app, but to take pride in the fact that you learned how to.
This is the fourth and final post in our series How to Learn to Program in an AI World. If you missed it, check out the previous posts, Is It Still Worth Learning to Code?, Learning to Think in an AI World: 5 Lessons for Novice Programmers, and Should You use AI to Learn to Code?