“The Self-Taught Programmer” by Cory Althoff

THE DEFINITIVE GUIDE TO PROGRAMMING PROFESSIONALLY

Reading is very important to me because it’s one of the best ways I am able to learn and retain information. I’ve been approaching this topic, programming and python, on a very granular level. I’ve been stuck very up-close to python and a couple of other topics very specifically, but haven’t had a book that zoomed out as a good overview.

Until… I found this book! Althoff’s book The Self-Taught Programmer, is a fantastic overview by someone who has already accomplish exactly what I desire to accomplish.

Alhoff speaks about something called “The Self-Taught Advantage.” He writes, “You are not reading this book because a teacher assigned it to you, you are reading it because you have a desire to learn, and wanting to learn is the biggest advantage you can have.”

Alhoff writes, “You are not reading this book because a teacher assigned it to you, you are reading it because you have a desire to learn, and wanting to learn is the biggest advantage you can have.”

He goes on to say how important founders of companies such as Apple, Twitter, and Instagram were all self-taught programmers.

Finding and reading this book was a great re-motivator to continue with the self-learning route. It’s easy to fall into moments of doubt, but I find that fueling those moments into proactive steps is a helpful strategy.

Moreover, Althoff supplies the reader with a quote from Doug Linder, “A good programmer is someone who always looks both ways before crossing a one-way street.” I laughed at this moment because I remember doing that since I was a child! But what this quote highlights is that in programming, you can’t have any blind spots. Even if something should work some way, you still need to test and analyze it from multiple perspectives. It can also mean that you should know how to make and take something apart. The person who looks both ways before crossing a one-way crosswalk is keen enough to realize that there is still a small percentage that another car could have not seen the sign and gone the wrong way down the one way street. Therefore. the person is being extra sure (which in programming would be akin to catching an exception) to ensure their likelihood of safely crossing the street.

What makes this field a little difficult to get into is that technology is very intertwined. It’s not just enough to know one programming language. There are a lot of other skills you will need to acquire. If you want to know what I mean, go into your browser and search for terms like “software engineer” or “data scientist” job descriptions. In the “preferred skills” section, you’ll often see a long list of acronyms and names of things you should know. It can feel a little foreign if you don’t know how to parse through the terminology.

What this book provides that others don’t is a brief introduction into major aspects needed to get a job in programming, and a blueprint map of what to do to accomplish that. This book wont teach you all the specifics about Python or programming, but it will point you in the right direction of what you should be studying.

(Yes, that’s a gif I made of my notes on Python. I’m taking a three hour overview course on Python on Udemy that helps as a good overview of the basics I’ve already reviewed before in-depth).

I’ll be taking Althoff’s advice of: program every day. That’s the new challenge and goal. I definitely recommend this book to any fellow dedicated self-learners!

“Hello World: Being Human in the Age of Algorithms” By Hannah Fry

What an awesome and important book for this modern age! Definitely a must-read for current and future generations, regardless if you’re in the tech field or not!

Firstly, what I love best about this book is that it is a way to learn about how algorithms and code is used in the real-world, but it doesn’t try to teach it to you on a technical level. (Shoutout to my childhood best friend who read this book with me for our little book club!) I add that also because that is precisely why this book is awesome. It doesn’t matter your technical level of understanding, anyone can enjoy and learn from the examples and questions Fry explores in this book.

The table of contents lists the chapters as follows: Power, Data, Justice, Medicine, Cars, Crime, and Art. Each chapter describes specific real events that have occurred in each of those fields in regards to code and algorithms. Some key phrases I learned about were: machine learning, Burgess’s Method, random forests, neural networks, and Bayes’ Theorem. I don’t know how long it would have taken for me to reach the specifics of those topics in my own technical studies, but I’m very happy to have read about them and how they are applied to the real-life situations that have already occurred.

Let’s talk about the Cars chapter.

A couple of months ago, me, my husband, brother-in-law, and sister-in-law were sitting outside underneath the gazebo, talking about self-driving cars. My husband is a technological virtuoso and already had an understanding of how self-driving cars worked. I did not at the time, and neither did the rest of us.

However, my in-laws were both excited about the future prospect of self-driving cars. Fry mentions early on in her book the misconceptions people have when it comes to technology, and how most people tend to over-estimate the capacity of algorithms. This is true when it comes to the topic of self-driving cars because of the amount of people who are willing to put their lives in the hands of a self-driving car. Before reading Hello World, I was on the fence about my stance on self-driving cars. Now, I feel confident that I would much rather be in control of my own vehicle, and I’ll be sure to pass on that lesson onto my daughter (dramatically, of course, as if we were in a post-apocalyptic sci-fi movie).

From the start, my husband was against self-driving cars. But I should have seen that coming since my husband finds an automatic transmission as already too much interference (ha!). Point blank, he said: he did not trust a computer to make life-saving decisions. Back then, I greatly underestimated my own driving capabilities while over-estimating the accuracy of our current algorithms.

Without diving too much into the specifics, anyone who is interested in the idea of self-driving cars should read this book.

The Air France Crash of 1983 specifics are haunting enough to warn me that maintaining skills that involve our lives are mandatory as we advance with technology.

One of the largest take-aways I have from this book is that as humans advance, we need to make sure Wall-E doesn’t become a reality, to put it plainly. Essentially, we cannot let automation equal future generations loosing necessary skills, and thus begin a regression in the human species by relinquishing power over to algorithms and machines.

We need to remember that the smartest computer in the world is still the human brain.

Cue segue.

Let’s talk about the Art chapter.

Towards the end of the book, I could feel the fire in Fry’s writing, with impactful moments that definitely earned a mic drop.

One thing we have to remember about our humanness is our ability to feel. Our ability to feel, possess, and express emotions. A machine cannot contain emotions or feel them. A machine can mimic the expression of emotions through various tactics but it cannot feel. And that is what makes us human, and we need to remember that there is high value in the unquantifiable aspects of our humanness. This is why art is important, and why the creation of art can be mimicked by machines but it won’t (in my opinion) contain the same magical aspect that comes from art by a human. The art chapter and the way Hannah Fry explores this topic was definitely one of my favorite moments of the book!

I’m extremely happy to have read this book at this stage in my learning journey! My knowledge has been greatly broadened and now I feel as if I have a great starting point for further research into how code can and should be applied to our lives in the future.

In my opinion, more books like this need to be written as technology continues. By the time my toddler is in her teenage years, I’d want her to read something like this so she could understand the world she lived in, and how to progress in the future with technology as a smart assistant, not a catalyst for human regression.

Introduction To Computers – “Code” by Charles Petzold

BACKSTORY & WHY THIS BOOK IS SPECIAL

The book Code is wonderfully unique, and for that, Charles Petzold will forever be one of my heroes. Thank you, sir Charles (if you ever happen to read this) for thinking the way you do and for having been determined enough to write this book.

For those of you who are already entrenched in the industry and know this book, you may think I’m crazy for having started with this choice as an introduction to the technological realm. But, I must say, Charles Petzold’s book Code is my favorite not just for helping me with this learning journey, but because of the writing style and unique approach taken.

As mentioned in his preface to the paperback edition (which must be read, by the way) Petzold’s book takes a completely different approach than others because his main goal is to teach his reader how computers work from a granular perspective.

If you’ve read my very first “origin” post, then it should be noted that I picked up this book after I had already briefly dipped my toes into the programming world. I had known about Python, and a general understanding of computers, but nothing too in-depth. I had walked into the new Amazon Book store near the Empire State Building in Midtown, New York City, where I saw, sitting pretty on a tan shelf, the white and simple cover of Code. What drew me to the book (admittedly) was the cover because I recognized the braille and binary used underneath the title lettering. Immediately, I could tell that this book was special because it was making the connection between language and code, and connections like that are exactly what excite me.

As I continued to read Code, I felt like a bit of an imposter who was pretending to understand everything they were reading. Petzold includes many diagrams and visuals to accompany his examples. His examples tend to build upon each other, with many pointing to parallelism, so that way you develop an “all-encompassing” concept of code, as a whole. Most of it made sense, especially because of the wonderful way that Petzold is able to introduce his subject, zoom in, and then zoom back out at the end of the chapter to help draw together all of the concepts. Since I was a complete novice, as I continued to view the various charts and diagrams, some of the terms and ideas were beginning to feel unreal. Was I really grasping these concepts? Did these diagrams and new words really make sense to me or was I just lying to myself? Regardless, I continued to read. I made it a point to continue to read the book, even if I thought the concepts weren’t clicking for me yet.

Finally, I had completed my first read-through of the book. As time passed, I hoped that the concepts Petzold explained and how he explained them would stick in my mind, and I eagerly waited for the day when I would have proof that they did.

HOW THIS BOOK HELPED ME UNDERSTAND FUNDAMENTAL CONCEPTS

I was gifted my first Raspberry Pi from a good friend. As I opened up the beginner’s kit and looked at all of the components, I was overcome with an odd sensation of confusion and understanding. Although I had never seen these parts before in person, I had an idea of their uses and functions. It was in these moments of assembling the Raspberry Pi when I realized that Petzold’s words and diagrams had clicked, because as I connected each piece I could recall familiar sections from the book.

Simply put, reading Petzold’s way of explaining this subject has not only helped me with my approach to computers and programming, but it has helped me intrinsically understand how basic things work, from my automated Glade Air Freshener dispenser, to the phenomenon as to why my light switches invert themselves sometimes.

I had a good feeling when I chose Code as my very first introduction to this subject, and I’m so excited to re-read it again in the future. Already through my Python studying, I find myself recalling sections from Code with a smile on my face. I’m very grateful to have begun my journey with such a wonderfully insightful perspective on this subject, and I’m sure Code will be a book that I continuously revisit and recommend. However, the largest take-away from reading Code for me was witnessing how wonderfully an expert can perceive, understand, and explain a subject by drawing connections to so many different real-life and historical examples. This book is a wonderful look inside the mind of a true technical virtuoso.