If you have some experience in coding or computer systems, you know that the “beginner’s phase,” as necessary as it is, can be extremely boring. Whether you’re taking a course or following an online tutorial, you’ll spend a lot of time writing programs that get you familiar with the language and syntax but don’t feel very useful outside of that. Because of this, it’s easy to lose motivation to keep learning. When I’m still struggling to solve a problem after combing through all my class materials, I know it’s time to turn to other resources for inspiration.
Fortunately, I work in a library, resources aplenty. The first time I browsed Fountaindale’s tech section, what caught my eye were about a dozen books with yellow spines and absolutely awesome robot-themed art on their covers. I judged these books by their cover (never do this) and decided to check out a few.
Fast forward to a little over a year later, and I’ve powered through six or seven books published by No Starch Press. Their slogan—”the finest in geek entertainment”—holds true. Whether you’re an up-and-coming computer science student, an experienced developer or just a curious cat, Fountaindale has the No Starch book you need to power through the tough stuff, learn interesting skills and have some fun.
I’ve curated a list of books below that will help you get started on a tech/engineering journey. Read these books, and you’ll be able to write in Python (one of the most popular high-level programming languages), secure your network with the foundations of cybersecurity and dabble in engineering with circuit boards like Raspberry Pi and Arduino.
Learn to Code Python with Al Sweigart!
Automate the Boring Stuff with Python is a beginner’s guide to Python heavy on applying concepts in ways that help the reader clean up their system. This may not be the book for the experienced developer looking for computer theory and groundbreaking insight, but it’s great if you’re starting to learn and want to see some code in action.
Once you’ve worked through Automate the Boring Stuff, try out The Big Book of Small Python Projects to dabble in creating games, art and cryptographic concepts. Write out and tweak the programs to exercise the skills you learned to build up some confidence in Python.
Once you’ve got the basics down, it’s time to start Beyond the Basic Stuff with Python. This book takes you beyond the novice level and into the professional tools that programmers use to find bugs, speed up their code and conduct Big O analysis to help you ace any coding interview.
Al Sweigart makes coding fun and accessible; all the source code can be downloaded online if you don’t want to type out thousands of lines of code. Even further, his books can be viewed as a webpage for free online. All this goes to say, Al Sweigart probably wants you to check these books out from the library.
Secure your systems!
The digitalization of everything is super convenient, but it comes at the consequence of losing control over the security of your information. Every time you purchase something with a credit card online, for example, you’re effectively trusting that service or company to secure your data while it’s being transmitted. Considering their frequency in the news, if you haven’t been victim to a data leak yet, it’s only a matter of time.
How can you help yourself? First, it’s good to have an understanding of the threat landscape. Sam Grubb’s How Cybersecurity Really Works takes you through how “black hats” (the hacker-term for actors looking to steal information for personal, financial or political gain) conduct phishing campaigns, create malware, hunt for exploits within companies and their network, eventually accessing accounts and personal information for potentially millions of people. The book concludes with ways that companies and individuals can reduce their chance of being the subject of a data leak.
Seth Enoka’s Cybersecurity for Small Networks walks the reader through setting up various security measures on their home network. Learn how to filter out traffic and emails to reduce phishing attempts, configure a VPN and encrypt your network communication. This book is great if you’re interested in cybersecurity or if you’re a little paranoid!
Once you’ve got your bearings, Ben McCarty’s Cyberjutsu talks about some advanced techniques for the modern defender. Each chapter ends with security recommendations that you can implement yourself if you have some Python skills.
Break into your systems!
The best way to figure out how to secure a system is to break into it, see where the vulnerabilities exist and form a patch from there. Governments, non-profits, companies and conglomerates all employ ethical hackers, also called penetration testers, to crack their firewalls, phish employees and even physically break into the headquarters! It’s one of the coolest and newest professions out there. Introduce yourself to the strange world of hacking with these three books.
Peter Yarowski’s Real-World Bug Hunting introduces the reader to web bugs, how they happen and how they’re exploited by malicious hackers. Applications are increasingly connected to the Internet, and software companies are paying big money to people who can ethically crack their apps and report vulnerabilities. This way, they can patch the issues now so they aren’t dealing with a lawsuit down the road.
Sparc Flow’s How to Hack Like a Legend walks you through breaking into a secure Windows environment. The simulation has you social engineer your way into a corporation’s network, write up malware and attack real vulnerabilities you might find in a large enterprise network. This book is a great primer for those who are considering penetration testing as a career and for those who watched Mr. Robot and thought, “Well, I could probably do that.”
Nick Cano’s Game Hacking has the reader cracking into web games. By gaining an understanding of how an attacker would try to break a game, developers and players are better able to defend themselves. Learn how to inject code into a game, write to game memory to gain an advantage and learn how to stay hidden.
Hardware: Arduino and Raspberry Pi
Books for the budding electrical engineer. Arduino and Raspberry Pi circuit boards can be programmed to do a ton of different functions (there are many online forums dedicated to these devices that will show you their power). If you’re getting into engineering this upcoming fall semester, you can get an Arduino board or Raspberry Pi for as little as $30, pick up and work through some projects in these books, and maybe you’ll be a little ahead of your fellow students when your first semester rolls around.
John Boxall’s Arduino Workshop introduces the reader to electronics and gives progressively interesting projects that build on what you learn. You’ll learn how to physically configure all sorts of cool stuff before you write programs to make the magic happen. This book is a great introduction for a reader who is curious about how software and hardware interact.
Dan Aldred’s Raspberry Pi Projects for Kids has projects that are fun and informative, no matter your age. Create an MP3, manipulate Minecraft or make a smart mirror.
Put it all together with Mahesh Venkitachalam’s Python Playground. Using Python and your Pi or Arduino, you can put together day-long projects to hack your own hardware, simulate life, or generate character art from images.
Go make some stuff!
All of these books are going to hold your hand through these insanely cool projects, so don’t just read them, put it all into practice! If you mess up, the online tech community is vast and (mostly) kind about offering help to struggling students. Once you’ve got the basics down, try coming up with your own projects, reach out for inspiration online, or find another No Starch book related to what you want to learn! Don’t be afraid to ask for help, be safe with any electronics, and please, please don’t hack anyone without their permission.