Learn Software Engineering in 2026
How would I learn software engineering if I had to start over today? This is a post where I am going to break down the resources I would use today to build foundational practical knowledge related to software engineering.
Understand your why
Why do you want to learn to code? There’s no right or wrong answer here but I think it does help when pursuing anything to understand your why.
- Are you curious about how a computer works?
- Do you like solving problems?
- Want to try a new hobby?
- Want to build video games?
- Do you read about the salaries and want to pursue a software engineer role?
- Do you see an opportunity at your current job where a software solution would benefit?
Anyways, this part is mostly to get you thinking about why you’re interested in learning. Bonus: write down your answer and see if it changes as you continue this learning journey.
Keep it simple
There’s a lot of information online about how to get started with programming. Learn this language, use that language, AI solved programming, etc. This can be very overwhelming for new learners. The general advice I have is to pick a language and stick with it for a while until you have the basics down and can write simple programs using: variables, data types, conditionals, loops, abstractions (functions, classes). I think Python is a great language to start with because it’s easy to install, tons of resources around learning the language, and plenty of libraries to pursue other areas (websites, games, data science, etc).
I recommend picking up the book: Python Crash Course by Eric Matthes.
This book covers everything you need to get started with the Python language and explores other areas relating to games, web development and data analytics. It’s a great resource to get a broad overview of programming. Depending on your why, this could be the only book you read and you’d be able to start improving your skills rather quickly with daily practice on your own, paired with a welcoming community.
The rest of this post will be going over topics to broaden foundational knowledge related to software engineering.
Big Picture
The resources I mention in this section will be intended to give you the broadest set of knowledge given the area of focus.
The books that I’ve found to have the most practical value:
- C Programming Language, 2nd Edition by Brian W. Kernighan and Dennis M. Ritchie
- Grokking Algorithms, Second Edition by Aditya Bhargava
- Computer Systems: A Programmer’s Perspective
- Designing Data-Intensive Applications
- Math for Programmers by Paul Orland
After reading these books you should start to develop some areas of interest. This would be a good time to explore knowledge in these areas further, or start working on projects. I find that when I have a project I am working towards I learn much quicker.
Another great resource geared more towards a traditional computer science background is https://teachyourselfcs.com/
Working with AI
AI is definitely a hot topic in 2026. My thoughts on it are pretty simple, first learn the fundamentals as outlined in the Big Picture section. This will give you the necessary knowledge to be able to critically assess the output from these models. The various AI agents, IDEs, and LLMs are all worth exploring further to see how they can improve your workflow as an engineer. AI is another tool in the toolbelt and can cause a significant cognitive load due to the amount of output being generated and needing review. Look into various prompting techniques to optimize your workflow and as well as guardrails for the AI to use for self-checking and validating the generated output (e.g., a testing harness).
Non-technical stuff
With a solid foundation in the technical knowledge to apply to solve various problems, another area I would spend just as much time in would be in professional skills. Communicating effectively with others and understanding their goals, stakeholders, team members, and customers, will allow you to solve problems much more effectively. A couple of books that I can recommend here are:
- The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition (2nd Edition) by David Thomas and Andrew Hunt
- The 7 Habits of Highly Effective People by Stephen R. Covey
- Good Strategy Bad Strategy: The Difference and Why It Matters by Richard Rumelt
Closing thoughts
Technology changes very rapidly so my emphasis will always be on building a solid foundation on fundamental knowledge. With this foundational knowledge, learning new languages, frameworks, or libraries should be much quicker for you. I have heard that this learning method is called T-shaped skills or a generalist.
These are simply opinions from a random person on the internet. Good luck and have fun!