drive with the top down
James Rhodes: What in the hell is that noise?
Tony Stark: Oh, yeah, I'm driving with the top down.
-- Iron Man (2008).
There's a book - "Hackers: Heroes of the Computer Revolution" by Steven Levy.
In it, he chronicles the journey of computing and hacker culture decade-by-decade, starting with the MIT AI lab (now CSAIL) and its Railroad Club hackers all the way down to Richard Stallman and the free software folks. Household big shots like Gates and Wozniak as well as relatively-unknown-but-still-legendary folks like Bill Gosper, Ken Williams, and the many hardware and game hackers from the 1980s/90s all get a mention.
There's something common to all of them - they're all people who didn't need a reason to get their hands dirty with the technologies of their time, people who were stubbornly curious and didn't mind if their explorations didn't produce anything of immediate utilitarian value. People who actively wanted to work on hard problems and finding solutions to them. People whose sheer passion and desire to explore fueled their drive to build, create, and iterate. People who understand that it's less about talent/intelligence and more about grit and consistent efforts. Programming was a craft to them, a skill to be honed, much like knitting or carpentry.
Where I come from, the kind of people he describes are a dying breed in a field where many come into viewing it as a means to an end rather than the end itself, which is made worse by an education system that discourages exploration and tinkering, and a general culture of "why?" rather than "why not?" when it comes to divergent thinking.
Open source is built on the backs of hackers and divergent thinkers, and we are entering an age of boundless innovation and possibilities because of AI as a force multiplier for all of us, so there is a need to nurture such a mindset now more than ever.
Rust wouldn't exist if Graydon Hoare didn't spend his weekends working on a toy programming language because he was frustrated with the broken elevator in his building.
Zig wouldn't exist if Andrew Kelley didn't goof around with C and realize he could reimagine its ideas without compromising on data-oriented design principles. It now powers the fastest JavaScript runtime out there.
Million.js was built by a high schooler who tried building his own virtual DOM from scratch to understand how React works and realized he could significantly speed up component rendering with some block-based optimized reactivity sorcery.
Erlang and its BEAM VM have silently kept the telecom industry (and WhatsApp) running for decades, all of it is open source and free to install and tinker around with.
Bend was initially a side project that its creator worked on for nearly a decade to realize his vision of a high-level, massively parallel, functional programming language that can target CUDA GPUs, even if it meant building his own VM to evaluate Interaction Combinators.
So where am I going with this?
Go learn things, go build things. Pick up https://craftinginterpreters.com/ or https://www.sscardapane.it/assets/alice/Alice_book_volume_1.pdf and start working through it.
Ditch VSCode and go install Neovim. Too difficult to configure? Take a detour to learn Lua and come back. Read blog posts, work through tutorials, and watch/follow creators like
- https://www.youtube.com/@ThePrimeagen
- https://www.youtube.com/@freecodecamp
- https://www.youtube.com/@Tsoding
- https://www.youtube.com/@Radu
- https://www.youtube.com/Computerphile
- https://www.youtube.com/@bycloudAI
- https://www.youtube.com/@umarjamilai
- https://www.youtube.com/@dreamsofcode
Running Windows or Mac? Start toying around with Linux. Install VirtualBox and load an Ubuntu, Fedora, or Arch ISO. Ask AI to teach you some basic shell commands to get comfortable with the terminal. Start writing code in the terminal with Vim/Neovim/Nano/Emacs with no LSP/Linter/Formatter/Autocomplete for help. Do it the old school way.
Wanna know how the internet works? Build a TCP/IP server from scratch in Python. Now do it again in C. See what's different.
Build your own browser, your own shell, there's tons of help for you if you choose to do so - https://github.com/codecrafters-io/build-your-own-x.
Found a library on GitHub you wanna know more about? Use something like https://gitingest.com/ to upload the codebase to an AI model and ask it to explain it to you in whichever style of learning you prefer.
Use LaTeX often? Why not try Typst once? Doesn't hurt to take it for a spin.
Interested in building a tiny version of DeepSeek R1 by yourself to understand what reasoning is all about? 🤗 has got you - https://huggingface.co/learn/llm-course/chapter12/1
Curious about how neural networks are trained? Build a tiny automatic differentiation engine from scratch in a language you like. Then do it again in a language you're not that comfortable with, then again in a language you don't know anything about but you want to learn.
There are so many things you can do and it's never too late. Yes, these things are hard, it's overwhelming, and it's okay to give up, but don't let that stop you from getting back and trying again, you might succeed this time.
Do it for fun. Do it for the love of the game.
Value your learning as much as your education and your career. The resources are there, and in the AI age, it's just getting better and better with the ability to input any resource as context and synthesize information tailored to your liking and comprehension.
We need hackers. The world needs hackers. "Real" hackers.
Rage against the machine, black Zack de la Rocha
In a cranberry Rossta, inside track on the G rap poster
-- King Push, Pusha T