Book Review: “The Art of Readable Code”

Writing code is easy, every newbie can write a program after following a programming class. However, writing good, efficient and maintainable code is another story. And good programmers are as rare as tasty food in the Netherlands! And as a software developer, I probably spend more time understanding code (from others but also myself) than actually writing code.

For that reason and because in some domains, maintainability is a big deal, writing maintainable code really matters. When you write code in that industry, you have to keep in mind that it will be maintained by people that is not even on earth at that time. This is why I was interested by the book “The Art of Readable Code”.

 

art-readable-code

 

The book explains why we should write readable code and lists rules to help to write such code. The authors also provide examples of good and bad code blocks. Overall, the book is interesting and the topic is a good one but many parts are very long and go too much into the details. The authors really know what they are talking about and illustrate each paragraphs with sound examples but sometimes, it feels like reading the summary at the end of each chapter would be already enough to understand the principles.

After reading most of the book, the main focus is on the following aspects:

  • Try to understand how people will read and understand your code. Put yourself in somebody else shoes and try to understand how he/she could see your own code and adapt the way you write code so that others will understand it. There could be many barriers between two developers (language, units, reasoning, etc.), documenting helps to “bridge the gap” between different cultures and habits.
  • Identify and annotate code that need rework and explain why you write the code that way. In particular, if you do not finish to implement something, use a crappy hack, annotate your code using common tags such as FIXME, XXX, HACK, etc.

No matter what, you have to consider that you are no longer writing code for pleasure (“let’s write 1000 lines of C code tonight to implement a program that draws naked kitties on my screen”) but thinking about the impact of what you write on the long run (“how folks from a different country or in the next two generations will understand what I am writing”). Documenting your code, as writing efficient code is really important and have an impact on the long run, especially if it is supposed to be used for several years. The last days show a good example: some folks reported that Microsoft skips Windows 9 to ensure application portability because some applications use a dirty hack to detect the Windows version. Writing better code, documenting potential side effects would have helped.

Sure, since the last couple of years, development tools have improved and help programmers to write better code (follow coding rules, refactoring, detection of errors), but there are still some aspects of the code that cannot be fixed by the IDE (variable names for example) and that should be fixed directly by the development. This is why keeping in mind maintainability rules matter and will make you a better software developer.

 

Writing code without the side effects in mind might have impact ... years after!
Writing code without the side effects in mind might have impact … years after!

 

Misc Informations

Advertisements
Book Review: “The Art of Readable Code”

Book review: Finding the new Steve Jobs

I recently read the book “Finding the Next Steve Jobs: How to Find, Keep and Nurture Talent” by Nolan Bushnell. For the few non-geek people, Nolan Bushnell is the guy that started many successful (and some less) companies (the most famous is Atari but it also involved in Chuck E. Cheese) but also employed Steve Jobs. This dude is a real entrepreneur who meet successes and failures. The main idea behind this book is not to find the next Steve Jobs but rather give some advices to be a successful entrepreneur. Bushnell does not seem to value himself as a successful entrepreneur and its own self-critic by pointing out what worked well and what failed when launching new companies.

 

finding-next-steve-jobs

 

I just enjoyed the whole book. It is just well written, accurate and lists of what will make your company successful by finding and engaging creative people. It go against most usual and common human resource and management trends (for example, hiring according to degrees and grades, using specific metrics, etc.). The author is mostly focused of getting creative people, the happy fews that have disruptive ideas. The one that are frustrated in big corporations, being reject most of the time by usual working rules and laws. This is these guys that will create the next disruptive technology, no matter what you think. When looking back at successful projects, this approach is pretty legit: most successful projects or ideas were proposed by unusual/non-conventional people. Jobs was one of them for sure, but there are plenty of other examples (and not only in this book!). These dudes are not famous but many disruptive technologies stem from their brains!

The book list a number of rules to apply in order to get creative people. Some might be discussed while some others are obviously legit (asking random questions during an interview – “how many gums are beneath the table” – just to see the thinking pattern of the candidate). Bushnel just wants to find why people will enjoy to work, the guy that does not care to get a paycheck at the end of the month but rather want to have fun.

This book is also about passion. Passion for what you are doing this work, passion for why you are working at night and continue to do so without any obvious reason. If you are a geek, this book will just remind you why you enjoy coding at night, why hacking is so fun and why you will continue no matter what. This is what differentiate people working to make a living and earn money and others that work for fun and does not care about the rest. As a geek, reading this book reminded me why I enjoy working in computer science since so many years and will probably to do so. We do not care about getting famous, having money or making something that will be a best seller: we just want to explore new ideas, start new project, create new products that are awesome while having fun! Just for that reason, reading the book is just worth it and would definitively be on your reading list.

You can find the book on amazon and probably in your local library.

Book review: Finding the new Steve Jobs

Book Review: 50/50

At a glance

I recently read 50/50 by Dean Karnazes. The book is about Karnazes’ accomplishing 50 marathons in 50 states in 50 days and some tips for improving your running ability. As all Karnazes’ books, there is pretty well written. On the other hand, having read Ultra Marathonman, Run!, this one starts to be a little bit too much. Some advices are very obvious if you are an experienced runner and sometimes, you feel the dude is full of himself. To sum up: you just started running, need basic tips/advices and some inspirational stories? Go for it! You are already an experienced runner and/or already read a book from him? Better to change your mind and pick another book!

 

book-50-50

“Run Forrest, Run!”

 

Inspiration, inspiration …

The storyline is pretty simple and basic: Dean wanted to complete 50 marathons in 50 days and 50 states. The North Face company sponsored him and got a van with a crew that bring him everyday in a new state to complete his 26.2 run. As the challenge is on for 50 consecutive days, some marathons are re-created during week days and only few runners can join. Other are live events where Karnazes run as a regular participant.

In one event, only one runner joined the race while some others have several thousands enthusiastic runners. During the book, Karnazes’ talks about its charity business (No Child left Inside – to fight children obesity by promoting healthy eating and activity) but also how he made connections over his journey (such as running with Mike Huckabee, an advocate for activity and healthy eating). There are a ton of inspiring people and that reflects the diversity of the running community and the diverse motivations for starting running: some are cancer survivors, others just wanted to fight an addiction and some just want to lose weight. One interesting aspect is the impact of Karnazes’ challenges on other people lives, and not only running: some teachers follow his travels to help children learning how to count using floating point (“after twelve days, how many miles Dean did?”) or even geography (“where is the next state he will be running?”). There is no debate: this is a fantastic achievement and even if many runners would be able to do the same, it

 

The real take-away?

Sometimes, the book turns out like this is written by a dude that is full of himself and this is probably the limitations of writing about running: as this is a solo activity, you end up by talking mostly about … you. Even if Karnazes tried to say he is a regular and normal dude, you can’t think he is proud of himself. This is fair enough: he completed an amazing challenge and this is definitively an impressive achievement. But sometimes, it just appears to be too much. Also, this current book contains stories from previous ones. So, you sometimes feel you already read it before and it would be better to make some chapters shorter. Needless to told same story twice and people who really want to learn more about the guy will read the other books …

Also in this book, you also see that such endeavor has some drawbacks and what is the cost of achieving this challenge. Everything comes at a cost and training for this challenge took all Karnazes’ time. As he reported, apart running and family, there is no room for anything else at all at all. Even social life, there is none. It seems that Karnazes does not seem to care at all and have no regret about it. But for the average Joe, it might not be so appropriate and this might not be the appropriate model to follow, lacking of some balance between running and just enjoy time with relatives.

On the other hand, the book do not try to convince readers to use a particular training plan/lifestyle or see Karnazes’ way to train as the only way to go. Instead, it lists a number of advices you can try and use for yourself. This non-dogmatic approach is probably a good aspect for the book: running advices/tips tend to be dogmatic (“if you do not stretch, you will be injured” or “if you do not carb-load in the pre-race diner, you will not have enough energy to make it to the finish”) while the book focuses on some advices and invites people to give it a try. It’s then up to you to use them or not (or even better: improve them!)

Should I read it?

For beginner runners who are trying to read an inspirational story and get some good running tips about training, lifestyle, nutrition, etc. 50/50 might be a very good book to read. You will enjoy the description of several races, learn about Karnazes journey across America and have some tips to train.

On the other hand, if you are not new into running, have some experiences and already have your own training plan an diet, this book might not be appropriate. The advices are pretty basic and you already know most of what is discussed. Try to read another book or save your money to sign up for a nice local race.

Finally, if you never read any book from Karnazes and want to discover the guy, it would be better to read Ultramarathon Man, probably the best book from this dude so far.

 

Book Review: 50/50