Programming in Python is pretty awesome. Python is my default language of choice when I need to write some code. It gives me the freedom to create and materialize my ideas. It’s something that I would do even if I did not get paid for it. I love the language and the community around it; truth be told, I can’t imagine where my career would be if I hadn’t discovered Python many years ago.
I will be the first to admit that learning to write computer programs in any language is pretty difficult, even for people familiar with coding. Python is often labeled as an ‘easy-to-learn’ computer language, but that doesn’t make it an exception. Back in college, I was a finance major and took on a computer minor hoping to differentiate myself a bit. My first Java class gave me such a nightmare that I thought about dropping the whole minor all together. Like many Network Engineers, I was happy to learn that I did not have to write code in order to do my job (at least when I first started). So, despite having now written a book on Network Automation using Python, I can identify with the steep learning curve presented with coding. I feel your pain.
In order to ease that pain, here are 5 books that will help you stay focused and inspired when it comes to coding. These books were not necessarily what I read during my ongoing journey to become a better Pythonic programmer. However, the lessons presented in these books reminded me of many of the ‘Ah-ha!’ moments I had when learning Python. Below, you’ll find a summary of each book and why it’s relevant to your coding goals. I use learning Python as an example because of my personal experience, but these books are great for any goals you want to achieve, be it weight loss or getting CCIE certified.
Are you ready? I am excited to share this list with you. Let’s get started!
Let’s be honest. All of us want to be great, but only a few of us look forward to the long, boring, mundane process of getting there. I remember when I picked up my first Python textbook. The first few chapters were all about strings, lists, loops, and the basics. I thought to myself, “when am I going to start writing some useful programs?” Even after working with Python for a few years, I constantly find writing code boring and mundane. I became envious of people who seem to write beautiful, flawless code with very little effort, and I was anxious because of my own seemingly slow progress.
Chop Wood Carry Water helped me see the process more clearly. The story is about a man named John, who is learning to become a samurai archer. Whenever John faces a challenge, his wise Japanese mentor, Akira-sensei, will always offer words of wisdom and guidance. The book title comes from John’s frustrating first year of training, when he did nothing but chop wood for fire and carry water for use in the community, without ever shooting a single arrow.
“How in the world does this book relate to learning Python?” you ask. Well, through this book, I learned to love doing the necessary work to achieve my end goal. I learned to focus on my own progress instead of looking at others. It’s fine to use them for motivation, or as a measuring stick, but you should always focus on your own goal. More importantly, focus on the next step that you need to take and trust the process. In other words, chop wood and carry water. This is an excellent book and easy read to jump start your Python learning journey.
Have you ever had a long day at work and when you got home you just spent the whole night binge watching Netflix against your better judgement? Or maybe you’ve forced yourself to eat healthy all day long (you even ordered a salad at a burger joint during lunch) and then decided to reward yourself with a box of donuts at night, effectively wiping out all of your good effort? Yes, I have been guilty of both, thanks to ‘Decision Fatigue’. That’s when the quality of your decision deteriorates after a long string of decision-making. In the examples given, the end-of-day decision was irrational and not great, but I was tired and could not self-regulate, so I took the easy way out. The way we make conscious and unconscious decisions is explained in James Clear’s book, Atomic Habits.
In the book, James breaks down the science of forming habits and provides concrete steps to help the reader form good ones. After a good habit is established, you do not need to ‘think’ about it in order to make the right choice. For example, if I’ve made it a habit to study and write Python code for 1 hour every night, it becomes automatic and it’s no longer difficult to make the ‘right choice’. There are many examples of this in the programming world. For instance, “100 Days of Code” where you continuously write code for 100 days. Many people find it difficult in the beginning, but after a while, it becomes automatic; in other words, the habit was formed.
Clear gives two pieces of advice that I found especially useful:
1.) Make the good decision easy.
2.) Track your progress.
In my case, I installed Python on every computer around the house, even on my phone. Then I could fire up a Python interpreter any time I wanted to, even when waiting in line at a movie theater. I also took lots of notes on all the programs I wrote, I’d check them in on GitHub or copy them down on Evernote. Whenever I felt discouraged, I’d have a track record to remind me of how far I have come and without fail it would encouraged me to stick to the plan.
Take a look at Atomic Habits to find more advice that fits your own scenario.
Statistics have shown that by now, April 2019, most people have given up on their New Year resolution back in January. Well, I guess there is always next year, right? No! Of course not. Your goal does not have to follow the calendar year! You can always make an April 2019 resolution just as easily as a January resolution. If you’d like to learn Python, yesterday was the day to start, and today is the second-best day.
In this book, Michael Hyatt lays down the 5 steps to take in order to achieve your goal:
1.) Believe the possibility.
2.) Complete the past.
3.) Design your future.
4.) Find your why.
5.) Make it happen.
Personally, the ‘Find Your Why’ step was the ah-ha moment for me. After the initial excitement of getting started in Python, the anticipation faded and the progress slowed. After writing a few programs that helped handle daily tasks, I found myself in the messy middle trying to stabilize the code, troubleshoot bugs, deal with downtime, and optimize for speed. The bigger the program, the longer it takes to maintain it. “Finding Your Why” connected me back to my original motivation; why I wanted to learn Python and write code in the first place. It allowed me to express myself and create things of value. Writing Pythonic code can be fun, fast, and easy, but more often than not it’s also boring, messy, and difficult. Rediscovering the ‘why’ was a major motivation to NOT give up. When I find myself in the messy middle, I’d take a break, recenter myself with my why’s, and then keep plugging away.
Your Best Year Ever offers many other solid pieces of advice and concrete steps you can take. “completing the past,” for example, was somewhat of a new idea that I found refreshing and helpful. Many of the how-to books encourage you to start right away, what Michael suggested was to take a close inventory of your past first. After all, we are the sum of our past experiences; taking a close look at the past will either give new insights or a solid confirmation of the steps you have taken. For me, “completing the past” took me all the way back to my college days of trying to learn Java and how it left me with a bad taste with coding. Separating Java and Python gave me the new start that I needed.
I am a longtime follower of Pat’s Passive Income podcast and blog. In my opinion, he is one of the most authentic online personalities today. In this revised edition of “Let Go,” Pat documents his journey from being laid off from work to finding his calling as an entrepreneur. Along the way, he documented his mistakes and how he overcame the numerous mental battles he encountered. In this age of show-your-best-self, social-media-craze, it was refreshing to see someone who was not afraid to show vulnerability in order to help others.
His mindset of ‘think like a CEO’ spoke to me on many different levels. I am trying to code and learn Python because I am the CEO of my own career and this is one of the necessary tools I need to create value for others. It was time well spent to read about Pat’s struggles and how he overcame them.
With close to 17 million views, Angela Duckworth’s TED talk on Grit, is one of the most viewed TED talks of all times. The topic of ‘nature’ vs. ‘nurture’ when it comes to successfully reaching your goal is clearly an issue that people care about. This book is a more in-depth view of her theory on ‘Grit’ as the foundation of achievement. Like Duckworth, I also believe that IQ and ‘talent’ has very little to do with reaching any goals, learning Python included. This book was one of the first that offered scientific and psychological evidence for something that I have always believed in. What we really need is both passion and perseverance to achieve our goals.
There you have it, 5 non-technical books to help you learn Python and achieve your goals. It was hard to narrow down the list amongst many other excellent choices. I truly enjoyed reading these books and writing about them in this blog. I sincerely hope you find some of them useful in your own journey.
Leave me a comment with your thoughts. I will be excited to read them and find new books as well. Any recommendations?
If you'd like to learn more about Python, Check out Eric's Practical Python for Network Engineer's Course, available on our All Access Pass.