|
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! |