My Bookshelf

My learning habits have changed over the years. Now most of my learning takes place via Pluralsight, Lynda.com, or YouTube on my iPhone 8 Plus. I try read one book every 1-2 months. They're not necessarily technical, as I love novels, manga, and learning about life. What follows is a list of books that have made me grow as a developer.

Code Complete

Steve McConnell | Amazon Link

If you want to improve your coding skills, this book is a must. I think it should be read twice. Once as an advanced beginner, and again when you've become proficient in your language of choice. There are many constructs in programming that we take for granted: while loops, gotos, if-statements, etc. This book shows you when you're "doing it wrong" and why. It undos some of the bad habits you may have picked up in your beginner computer science courses. If you want to write cleaner, understandable, efficient code, I cannot recommend this enough.

C# 5.0 Pocket Reference

Joseph Albahari | Amazon Link

This and version 4.0 of the book is something I carried around everywhere. Left it in the car, or near a high traffic area at home. Whenever I had little bursts of downtime, I would pick this up and be reminded of something I forgot or learn something new altogether. For quick reference though, I always turn to Mr. Google.

Designing Web Usability

Jakob Nielsen | Amazon Link

Oldie, but goodie. Defines the building blocks of usability. Strips out the artistic side of building a web site for a more efficient= focused approach. How can we do this with less actions? Is this clear to the user? If we add more clicks and scrolling, does it actually make it more intuitive? Covers the architecture of a website down, single pages, conventions, and the psychology of users.

High Performance Web Sites

Steve Souders | Amazon Link

This was my first step into really understanding how a web page and web browser work together. As primarily a server-side developer, most of my focus before this book was on optimizing C#/PHP/ColdFusion/SQL code, web server settings... heck even hardware settings. But I feel like all that is pointless if you have 20 JavaScript files loading and blocking the rendering of a page. This covers practically all the front-end techniques to load your website faster. I can't stress enough how important this book was to me. What are you waiting for? Read it now! Now!

IIS Administration and Programmer's Guide to Internet Mail

Mitch Tulloch and John Rhoton | Amazon Link 1 | Amazon Link 2

These are two different books. Only the IIS one is listed here. If there's a subject that will put me to sleep, it has to be IIS and basically any protocol like SMTP. Nonetheless we can't deny the importance, especially for me since I use it every day. It's my behind-the-scenes friend that I often take for granted. Heck, it's my last phase of troubleshooting a bug when I know it just CAN'T be my code. The same goes for emailing. These two books, although I wouldn't necessarily call them the greatest reads, were influential in that I got a deeper understanding of the web.

JavaScript: The Good Parts

Douglas Crockford | Amazon Link

I don't claim to be a JavaScript expert, but I feel pretty confident about the basics of the language. If you want to get a good grasp about all areas of JavaScript (the language itself), pick up this book. It's a very slim book, but it highlights major topics. It's your job to follow-up with another book/source. Without a doubt, a very opinionated book (what's "good" or "bad"), but if you know Douglas Crockford (inventor of JSON), you'll know that his voice is worth a listen. This book is a bit advanced, so it assumes you have a good understanding of the language.

Joel on Software

Joel Spolsky | Amazon Link

This is based on a series of Joel's blog posts. If you don't know Joel, he cofounded Stack Overflow, was a program manager for Excel, and works on Trello. While I don't always agree with his viewpoints, this book covers important topics in software development. His writing style is very real-world and no nonsense. The book was published in 204, but the ideas still apply today.

The Pragmatic Programmer

Andrew Hunt & David Thomas | Amazon Link

I consider this book a must. Basically, if you've done programming for about a year, this will take you further by showing you what's possible in the world of software engineering. It focuses on productivity: which tools to use, what conventions to follow, how to structure your code. Quick reads, so no excuses! :)

Software Requirements

Karl Wiegers | Amazon Link

All developers have to gather requirements at some point. Business, technical, etc. How do you gather them? What questions do you ask? How do you organize requirements? When is too much or too little documentation? How do you communicate with a business analyst? With stakeholders? This book was a good eye-opener for me. When I first started my path as a software engineer, I thought, "What is there to know about the subject?" Then I took a look at this book... yeah... that much.

Web Form Design

Luke Wroblewski | Amazon Link

As a front-end developer, sometimes you'll be tasked to create/modify a form. What's the best design pattern for the job? There are several human factors to consider when designing a form and its controls. Should we align left all the fields? Align center? What about validation messages? Another must-read for all developers.