Showing posts with label book review. Show all posts
Showing posts with label book review. Show all posts

Sunday, 20 September 2015

Book review - Clean Code

After a few years of putting it off I’ve finally got round to reading Clean Code by Uncle Bob. I’m glad I did. It’s one of a handful of books that regularly appears on lists of must read programming books.
Why do I like this book?
  • The main reason is that it’s fundamentally about how to write simple code that humans can understand. The importance of this cannot be overstated. It’s not enough that code compiles and meets all the requirements, code must be easy for other developers to understand.
  • It’s about details, and I like details. Many of the code smells and heuristics covered in Clean Code are small details. For example, unnecessary comments, vertical distance between variable declaration and usage, code formatting, method size. They may be small but when you add them all up, they make a significant difference to your code
  • Each chapter is short, easy to read and to the point. While the book as a whole isn’t short, about three hundred pages excluding appendices, you can sit down for half and hour, take in a chapter and learn something from it.
  • There are plenty of examples. Each chapter contains plenty of small examples and the last two chapters rework larger pieces of code using some of the principles covered earlier in the book.

Thursday, 30 April 2015

Book review - Peopleware

I’ve been meaning to read Peopleware ever since I heard read about it on Joel Spolsky’s blog a few years ago. It was written by two software development project managers who came to the realisation that “the social complexities on most of the projects we’d known simply dwarfed any real technological challenges that the projects had to deal with.” The book is comprised of many short examples of the types of social problems they faced and suggestions on how to deal with them. One of the key words in the last sentence was short. I imagine many other books on management are dry and long winded. Peopleware on the other hand is an easy, enjoyable read that crams a huge amount of content into each short chapter. Much like rework you can pick it up for fifteen minutes and get something out of it.

Why read Peopleware?

I’m not a manager and I have no intension of becoming a manager any time soon, so why read this book? Firstly, it’s incredibly interesting. Secondly, it’s relevant to all software developers, not just managers. For example there is advice on overtime, office environment, innovation, hiring staff, meetings, leadership, making change possible and email. And this is just scratching the surface.

What did I learn?

There’s a huge amount to learn by reading this book but a few parts stood out to me.
  • The flight from excellence. The authors talk about the friction between the client’s desire for quality and the builder’s desire for quality. The client often isn’t concerned about code quality, they just want a finished product for their consumers. Builders (developers) on the other hand get a deep sense of pride from achieving high quality code. We’ve all been there
  • Making change possible. The insight in this chapter about why people resist change really hits the nail on the head. It’s argued that the resistance comes from emotion, not logic and I can’t help but agree. There’s also some good suggestions on how to make change easier
  • Productivity. This is a theme covered by a number of chapters. Flow is highlighted as being essential for productivity, as is quiet and the avoidance of distractions like email, telephone and multi-tasking

Some quotes

I know quotes like this don’t really mean much out of context, but I still like them, so here’s are some of my favourites.
“The trade-off between price and quality does not exist in Japan. Rather, the idea that high quality brings on cost reduction is widely accepted”
“The fundamental response to change is not logical, but emotional”
“Change won’t even get started if people feel safe”
“The managers function is not to make people work, but to make it possible for people to work”
“People under time pressure don’t work better, they just work faster”
“Innovation is all about leadership, and leadership is all about innovation”

Saturday, 23 February 2013

Book review - Rework

Short, simple, to the point, positive and full of practical advise. I liked it.



Saturday, 22 September 2012

Book review - Mountain Biking The Manual


Mountain Biking The Manual does what it says on the tin. It is absolutely packed with information. In 255 pages it covers subjects like a brief history of mountain biking, equipment, training, psychology, crashing, recovery and competition. And that's just to start with. The meat for me is the mountain biking technique. It's all in there, from the basics including body position, flat corners, berms, rocks, roots, pumping and flow right up to getting air, manuals, bunny hops, flips and tail whips. 

What I like about his book is that it covers so many topics but it never feels like a chore to read because each section is quite short. You can read it cover to cover, or dip in and out. Importantly it's very well written. The author, Chris Ball, is very good at breaking down the essentials of each technique so they can be understood and be applied on the trail. I learnt so much from this book on the first read, and have come back to it again and again when I need a refresher on something. 

I do have one complaint. However good your prose is, sometimes what you're trying to explain is much clearer if you use a diagram. Mountain Biking The Manual would definitely benefit from some diagrams. 

If you've just started mountain biking, buy this book now, it'll save you at least two face plants (not guaranteed). Even if you've been biking for a while, provided you're not an expert, it's worth having on your bookshelf.

Update

As much a I like this book Mastering Mountain Bike Skills is better. If I could only choose one, it would be Mastering Mountain Bike Skills. Sorry Chris!



Monday, 28 November 2011

Book review - Bad Science


To say Bad Science is an interesting book would be an understatement. It's absolutely fascinating. But not only that it's also very enlightening. 

If you have ever read any articles by Ben Goldacre it's quite familiar ground. Homeopathy, the placebo effect, nutritionists, Gillian McKeith, medicine in the media and health scares are a few of the topics covered, in detail. What I really like about the book, which I didn't get from the articles, is the common themes running through the book and commentary on how some of the topics affect our culture and beliefs. Like I said, absolutely fascinating. 

So what about the enlightening stuff I mentioned? Well, it's apparent from reading Bad Science that science is often badly reported by the media. With that being the case, how can find out the truth for yourself? Ben Goldacre helps you out by giving an overview of what to look for in a scientific study; what practices help ensure a fair trial and the kind of tricks people use to give a study the slant they are looking for. He also mentions where you can find publicly available studies. The most useful place I think is the Cochrane Collaboration. This site publishes Cochrane Reviews which are systematic reviews of research. What is a systematic review? From the Cochrane site: "A systematic review is a high-level overview of primary research on a particular research question that tries to identify, select, synthesize and appraise all high quality research evidence relevant to that question in order to answer it". In other words they gather and collate high quality research which allows patterns to be observed that wouldn't be seen in individual small studies. Pretty useful if you ask me.

In summary, if you have any interest in science or have ever read any articles by Ben Goldacre before, I recommend this book. It's a very good read.



Wednesday, 9 November 2011

Book review - Pragmatic Thinking and Learning: Refactor Your Wetware

Conclusion

I know it's a bit strange to start with a conclusion but I just want to come out and say it, Pragmatic Thinking and Learning by Andy Hunt is one of the most interesting and useful books I have ever read. Never before has a book given me so many things to think about, so many new ideas and so many useful tips. 

Let me put that into perspective. There is so much information in this book that was new to me I feel like I've learned a huge amount. Not only that, it also explains some of my own behaviour. It's absolutely fascinating. So much of this book strikes a chord with me I will re-read large amounts of it in the weeks, months and years to come. Saying that, I'm not under any illusion it will be like this for everyone, if you have read similar books, or come across many of the techniques and ideas already then it probably won't be quite as useful. 

What's in it?

Because there is so much content in packed into two hundred and fifty ish pages I'll just include the parts that were most interesting to me. The second chapter talks about the stages between novice and expert referencing the Dreyfus model of skill acquisition. The next few chapters detail how your brain works, including which areas of the brain are responsible for which skills, how to use your brain more effectively by using more of it, and common brain bugs (otherwise known as cognitive biases). Chapter six and seven are all about learning more effectively; setting goals, managing skills, working together, reading techniques, mind maps, dealing with failure and the effects of pressure on learning and thinking. Managing focus is the subject of chapter eight. It covers how to increase focus, managing knowledge, dealing with interruptions, optimising your working environment and staying sharp. Finally, the last chapter has some tips on what to do next. It really does cover a lot of ground.

Each chapter is divided into a number of sections, after each section are a number of "Next Actions". These consist of a number of bullet points which encourage you either think about or act upon the previous section. I find these particularly useful as I can easily fall into the habit of simply reading and not thinking enough. 

Why is it useful?

Let's start with the brain. Pragmatic Thinking and Learning explains how your brain works using various computer metaphors. It describes how your brain is split into the left and right sides, each is responsible for different types of thinking. The left deals with things like logic and language, and the right deals with things like spatial awareness, non-linear thinking, and non-rational thinking. The right side of your brain is asynchronous, you can't control it directly. Have you ever tried to remember the name of a band, song, film, actor, author, book and regardless of have much you try, you simply cannot remember? Then some time in the future, at the least likely moment, in the shower, doing the washing up, driving to work, whatever, it leaps into your mind from seemingly nowhere. I think this must have happened to everybody as some point, but I never knew why. Now I do, that's the right side of your brain. What I find particularly fascinating about this is the possibilities this opens up. Often it's unused and under valved so the techniques suggested by Andy Hunt to get more from the right side of you brain are potentially invaluable. It's certainly something I will try and explore.

The brain learning (as my wife would say) doesn't stop there. Another interesting subject covered is cognitive biases. These are known bugs in how people think. An example of this is the confirmation bias, which is the natural tendency to seek out arguments, facts or opinions that match your own. I think having knowledge of these common faults can make you more aware of your own thoughts, where they have come from and why you are having them, and then question yourself. Is that what I want to think? Is there another side to it? Is there more to it? What is the context? But it's not only the way you think that is important. Often other people's thought processes differ drastically from your own. Sometimes it can be difficult to work with colleagues who are very different from yourself. Chapter five includes an introduction to the Myers Briggs type indicator. This is a model which assigns various 'types' to a person based on their personality. The idea is to gain some insight your own personality type and the personality type of others, which hopefully makes it easier to make to understand and therefore interact with personality types that are different from your own. 

The process of learning is something that can be taken for granted after you leave education. Often not a lot of thought goes into it. I'm certainly guilty of that. It's no good randomly reading a few books or blogs, there is more to consider. What should you learn? What subjects are more important? Why? What kind of learning works for me? How can you make it stick? When should I learn? What do I want to achieve? All of these are valid questions which should be considered so you get the most from whatever you learn. Pragmatic Thinking and Learning discusses all of these questions and offers various techniques and suggestions on how to get the most from whatever you learn

Concentration is another issue which I've thought about. Or rather the lack of it. There is a whole chapter dedicated to managing focus. It's pretty important. Everyone has difficulty concentrating now and again so any suggestions on how to increase focus are invaluable. Andy Hunt to the rescue again. He suggests mediation can be very beneficial and suggests various ways to maximise your focus by managing interruptions, distractions and context.

I've only scratched the surface of Pragmatic Thinking and Learning. I'm not convinced I've done a good job of summarising the content of the book, but I hope I've done just enough to pique the interest of anyone who reads this blog. If I have, go and buy it now :-)