Hacker News new | ask | show | jobs
by polyglotfacto2 1177 days ago
Ten years ago, I taught myself programming. My first steps were strictly-speaking not programming, they were HTML and CSS. I then moved into programming proper through the study of Javascript, and then Python. This was all in the context of web applications, so the JS was front-end, and the Python was geared towards the dominant web framework in that language: Django.

I loved reading about programming, and I would haunt the programming section of my local bookstore. Despite many beginners book being available at the time, I really struggled with the basics, which I felt were not always explained. For example, why are the names of the parameters of a function not always the same as the names of variables passed as argument to that function? There's a lot of stuff that I learned simply by plugging through these books, but often I had to keep reading while leaving lots of question marks in my mind.

I also felt many books were filled with brain teaser type of examples, such as solving the Tower of Hanoi, and these examples did not appeal to me as a beginner. As an experienced programmer I also think these examples create the wrong impression about what programming is about: not solving puzzles with code, but expressing mental models through code that is easy to understand.

I've been working as a programmers for ten years now: eventually moving to system programming with Rust, and becoming involved with open-source software.

The past month, I had a bit of extra time, and I thought: why not write the beginner book I wish I had when I first started ten years ago?

Some of things I tried to achieve:

    Explain everything from the ground-up, as if talking to someone with no experience or prior interest in computers.

    Show what programming is about: mixing and matching existing code, and ensuring your own code is easy for others to mix and match.

    Start with the absolute basics, but finish with concurrency, because I think it's an important type of programming for the future(because of multi-core machines), and I also think an absolute beginner can learn about it.
The book, entitled "Python for Youngsters(And Anyone Else Who Wants to Learn Programming)", comes in the form of a series of articles:

Foreword: Programming in the Age of Artificial Intelligence(https://medium.com/python-for-children-and-anyone-else-who-w...).

Part 1: Variables, Functions, and Classes(https://medium.com/python-for-children-and-anyone-else-who-w...)

Part 2: Lists, Sets, Dictionaries, and Iteration(https://medium.com/python-for-children-and-anyone-else-who-w...)

Part 3: Processes and Concurrency(https://medium.com/python-for-children-and-anyone-else-who-w...)

That's it!