Why this book?#
I sat down to write this book for a few reasons. The first is I teach an Introduction to Python programming course. My class notes have lots of examples, but very few words. This is because there is what I say in lecture to accompany these notes. However, I know that certain students would love to have text to go back and read after lecture and try out a few more exercises. So, this book is first and foremost for those students.
Second, I come from a background programming in R. There are a whole bunch of free, online resources for individuals looking to get started in R. A lot of this is thanks to Hadley Wickham from RStudio, as he has authored a number of books, including R for Data Science, Advanced R, and R Packages with Jenny Bryan. However, the same doesn’t quite exist for Python beginners - at least not for what I particularly want my students to know to get started on their programming journey.
Finally, a childhood friend was looking to get started in programming but wasn’t in the position to pay for a whole bunch of books to figure out which one would work for him. This conversation with my longtime friend was really what set this in motion. I already have the content. Time to put it into a book and out into the world to help my students and anyone who may find this useful.
Why Program?#
With the Artificial Intelligence (AI) “uprising”, the art of programming is seemingly becoming obsolete. Passionate narratives about how AI is going to replace all tech jobs makes things seem bleak. However, I’m here to present a slightly different point of view (and hopefully inspire you to continue on your journey to become an excellent programmer).
Let’s be clear: as it stands today AI and its related tools are just that, a tool. They are a means to boost the productivity of the people who use them. They are not going to replace them; atleast not yet. I like to think that generative AI is like a really good intern. It can do a lot of the “grunt work”, but it still needs a human to guide it and make sure it’s doing the right thing. Additionally, it removes the barrier to entry for a lot of people who may not have the time or resources to learn how to program. This is a good thing! It means that more people can get involved in the tech industry and contribute to the development of new tools and technologies.
Further, using AI allows us to focus on creating well designed software. One of my favourite quotes by Francisco Vassalo (a senior data scientist and leading AI innovator) is that “The technology [AI] asks us by its very nature to imagine a world capable of transforming a coder into an architect, an engineer into a product designer, or a developer into a data scientist. Generative AI promises to be a great equalizer, turning anyone with a laptop and an internet connection into a multi-disciplinary expert.”
So why should you learn how to program? Consider it as an intellectual exercise that teaches you the art of problem solving, creativity, logical thinking, and persistence. It may be frustrating at times, but when you’re able to convert your ideas and goals into tangible code, that feeling is unmatched. These are all skills that are domain agnostic and these are skills that will keep you well prepared, no matter where you end up working.
PS: The jobs still do pay really well, so there is that!