A few months ago, my 13-year-old son and I were discussing his future high school options. He’s really smart and interested in technology (programming, robotics, 3D printing, etc.) but extremely bored with traditional school subjects. Finding a school that would fit his interests wasn’t easy, but fortunately my old friend Orłoś told me about TechniSchools.
After some deep research, we discovered that TechniSchools is a perfect match for him. My son decided to apply next year, but first he needs to do some serious homework in programming and other technical subjects. He already knows Scratch and a bit of C (Arduino), Python, and MicroPython (Lego Mindstorms), but I suggested he should learn web technologies as well (HTML, CSS, JavaScript).
He started with W3Schools video tutorials, switched to VS Code with some Copilot help, and created a few simple web pages. It was his way of learning by doing—typical for his generation, I assume.
But recently he asked me to recommend some books 📚 that would help him understand programming concepts better. I was super happy 😊 because I know that reading books is the best way to learn programming fundamentals deeply.
I started searching for books, but most of them were… just boring 😴 (at least for a teenager). Then I remembered the Head First series from O’Reilly.
- Head First Python by Paul Barry
- Head First JavaScript Programming by Eric Freeman and Elisabeth Robson

My son started with Head First JavaScript and I started leafing through Head First Python. First, you read about learning psychology and why these books are a bit different from typical programming books: lots of pictures, funny stories, quizzes, exercises, etc. Then you dive into the project-based learning approach, building simple applications step by step. In the JavaScript book, you create a ship battle game; in the Python book, you build a web app for swimming club training recordings.
I’m really impressed by how cleverly the books smuggle in programming concepts and best practices I usually apply in my daily work as a software engineer. For example: make small iterations, prefer readability over cleverness, or apply the YAGNI principle.
Dear parents, I highly recommend these books for your kids interested in programming!
Comments