We
Open Source
A community education resource
The best programming languages to learn first
Establish a foundation of smart programming by learning these computer languages.
![Computer source code with a server room background](https://allthingsopen.org/wp-content/uploads/2025/01/source-code_server-room-e1737518293900.jpg)
Jon “Maddog” Hall, a pioneer in the open source community, recommends starting with shell scripting to gain a strong foundation in programming, particularly on Unix/Linux systems. Despite the inclination to move straight into higher-level languages like Python, he advocates for learning Assembly language next.
After mastering shell scripting, Maddog suggests learning Assembly language to understand how machines work at a low level, including registers and cache memory. While Assembly isn’t for everyday use, this knowledge helps prevent writing inefficient code, overcoming the challenge of understanding system-level intricacies.
Read more: Why you should learn assembly language
Video transcript
People ask me what’s the first programming language that I should learn. I believe it’s shell programming, the shell script. Because just as soon as you log into a Unix or Linux system you’re in Shell. This is probably one of the most powerful things you can learn in your day-to-day programming after you’ve got the shell script down, go ahead and learn Python or some other things.
But the next thing, and this will sound strange, I think you should learn some Assembly Language and I would be the last person to ever say code in Assembly. Okay you need to know how the machine actually works, you need to know how the registers work, and how cache memory works, because you can write really abysmal code if you don’t know that.
More from We Love Open Source
- Why you should learn assembly language
- How Netflix uses an innovative approach to technical debt
- Exploring PyTorch and open source AI tools with Sahdev Zala
- Why GraphQL is the future of API development: Essential tips and tools for developers
- Get started with gokrazy: Simple self-hosting on Raspberry Pi
The opinions expressed on this website are those of each author, not of the author's employer or All Things Open/We Love Open Source.