In my quest to learn the basics of computer science, I came across the following blog that examines complex algorithmic concepts essential to any growing developer. Thanks to Kyle Sauri for allowing me to reprint on this blog (with minor modifications); I hope you enjoy!

The problem of finding Strongly Connected Components is an interesting one. Like a lot of concepts in computer science , it’s an easy enough problem to understand, but when you get to the “how to solve it” part you’re dumbfounded. …


One of the great things about Clean Code is that as you progress through the book, the concepts you cover become more abstract. To my mind, this practice mirrors how one gets better at the art of programming itself. When you begin reading Clean Code, you cover concepts like good names for variables or functions and the optimal number of lines for a class. As you read on, however, Uncle Bob & Co. …


For this week’s blog on Clean Code, I’m going to do something a little different. While up to this point we’ve discussed ways to keep code in our programs clean, we ought to spend some time thinking about how to expand our programs to be scalable systems. Just like our programs, our systems need to follow a set of standards to facilitate our ability to write software quickly and efficiently. …


In this week’s blog on Clean Code, I’ll be talking a bit about classes. While object-oriented programming (OOP) is an extremely vast topic unto itself that I can’t delve into too deeply here, suffice to say for now that objects are bits of code that allow us to store data and operate on that data. By utilizing OOP, we keep the details of our programs hidden, which makes our code more flexible, modular, and abstract. OOP is very useful when writing large programs, especially in the case of working on a team building a robust application.

As with any code…


If you ask any professional developer what the most import part of a software developer’s job is, I’d bet more than half of them would say testing your code. To be sure, Test Driven Development (TDD) is the way of the world in software development, and Clean Code dedicates an entire chapter to the topic. Even though it’s a relatively short chapter, the subject of unit testing is so important to the developer community at large it feels warranted to dedicate this week’s entire blog to it. …


I’m back to reviewing Clean Code this week after last week’s blog on Refactoring. And while the chapter I’m reviewing this week is short, the concept is incredibly important. This week I’m talking about boundaries, the way we incorporate code that we did not actually write into our systems.

At a mere eight pages, Clean Code’s chapter on boundaries is one of the shortest in the book. But while the advice is relatively concise, in my opinion your ability to cleanly integrate third-party code into your applications will make or break your success as a developer.

Every software engineer, almost…


I’ve been loving reading through Clean Code, but am taking a bit of a break this week to discuss the first chapter of Martin Fowler’s Refactoring. Like Clean Code, Refactoring is fairly famous amongst professional programmers for its clear and concise advice on how to write clean, readable, and highly effective code. Now in its second edition and containing incredible insights from Fowler, Refactoring is frequently included in lists of the best programming books available (Seriously, I just googled “Best Programming Books” and it is listed in each of the top four results). …


I’m continuing my series on Clean Code this week, but I wanted to do something different with this blog post. When I first started reading Bob Martin’s classic handbook for writing better code, the advice given to me was to read it very, very slowly. If you have a physical copy, someone told me, it should look like a cherished family heirloom: dog-eared, flipped through back and forth, and clearly used. In fact, Clean Code offers the same advice. As Uncle Bob writes in the introduction, this is not a “feel good book that you can read on an airplane…


As followers of this blog know, I’m currently reading through Clean Code, a classic in how to write readable, professional code. Written primarily by “Uncle Bob” Martin, with appearances from a number of leading thinkers in the field of AGILE software development, Clean Code isn’t exactly a step-by-step coding manual. While I covet another animal-adorned O’Reilly book as much as the next code junkie, Clean Code won’t teach you a particular language or framework. Rather, Clean Code’s subtitle — “A Handbook of Software Craftsmanship” — explains the broader purpose of this book.

Uncle Bob wants you to write clean code

For Bob Martin and his co-authors, Clean Code…


As followers of this blog may have noticed, I’ve been referencing Clean Code quite a bit the last several weeks. I started reading the book on the advice of a friend and fellow software engineer, who extolled the values of this classic programming text. I’ve been going through it very slowly, reading just one chapter a week to make sure I plant these lessons deep in my head. Still, I can see how Clean Code is having a significant effect on how I think about the code I write as well as the code I’ll write in the future.

The classic

Written…

Jacob on Software

My name is Jacob. I build software.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store