Pragmatic Thinking & Learning

Pragmatic Thinking & LearningPragmatic Thinking & Learning

  • Refactor Your Wetware
  • Andy Hunt

Yet another book that I wish had been required reading when I was getting my diplomas.

It actually turned out to be a different book than I expected. I thought that it was going to describe ways of remembering class methods, design patterns and logic but it's more general purpose than that. The book details how the brain works, the R-mode and L-mode stuff, and how switching to a more abstract, physical way of problem solving can help you. For example, many times people that I've been working with have come back from the toilet and said, "I've just thought of a way around that problem!". Just the act of walking away and doing something else unblocks certain neural pathways. Before I had never understood the difference between mazes and labyrinths, and yes there is one. A maze is a puzzle to be solved. A labyrinth is a path that you walk around whilst thinking of a problem but only on a very shallow level. Just keep it in your thoughts but don't let it be the focus of your attention. One similar mind trick is if you are trying to remember something and it's just on the tip of your tongue, then recite something that you know, the names of the seven dwarves, and the answer with pop into your head.

There's a chapter on learning deliberately and using SMART (Specific, Measurable, Achievable, Relevant and Time-boxed) objectives, having a Pragmatic Investment Plan and reading with SQ3R (Survey, Question, Read, Recite and Review). That's certainly a chapter I'll be reviewing shortly as these reviews of technical books that I've read seem to be getting harder to write.

The Anne Lamott concept of the Shitty First Draft was mentioned and, until now, I always thought that it only applied to creative writing. The principle is that you don't strive for perfection straight away, that you rattle off something quick, you're not under pressure and you can just scrap it because you know that it's shitty. In the Ruby and Rails worlds I think that there is too much pressure to do something absolutely correct and right. If you're going to write a Rails application then you could spend months reading blog posts detailing the best practices for every eventuality. But isn't it better to just start and get something working even if your methods are more than 10 lines and you have a HTML tag in your controller. The same with tests, yes, tests are a brilliant idea but if you don't know how to do the actual coding how are you going to be able to write tests for it.

The book also covers screen set-ups (dual screen if you can get your boss to pay for it), virtual desktops, meditation (something that I've started, again) and how to focus and work free of distractions. I mention that because at work I have, on occasion, set my email client so that I have to click 'Get Mail' when I'm working on something that require concentration. But even then I get an IM or a phone call asking if I've seen the email. I'm sure my colleagues have their mail clients checking for new messages on five minute intervals or less. No wonder everything takes so long to complete.

With new programming languages, frameworks, databases and techniques being created and popularised every day this book should help you stay on top and be current. You can't just learn Cobol and expect a job for life.


Programming Collective Intelligence

Programming Collective IntelligenceProgramming Collective
Intelligence

  • Building Smart Web 2.0 Applications
  • Toby Segaran
  • Web Applications

If you've ever wondered how web-sites can suggest other books, music or movies that you might enjoy then this book will tell you. It's packed with code for grouping, clustering, filtering and analysing information. If you use Python and you either understand, or want to learn more, about Bayesian and Decision Tree Classifiers, Neural Networks, Support-Vector Machines, k-Nearest Neighbours, Clustering, Multidimensional Scaling, Non-Negative Matrix Factorisation and Optimisation then this book could well be for you.

But, if you're like me and use Ruby and aren't a maths wizard then most of the content may well pass at great height over your cranium. Yes, I did read it all, if only to try and glean more of an understanding of the techniques involved. It started well, discovering groupings in RSS feeds, then the concepts became trickier to grasp. I think the only thing that kept me going was one of the last chapters on evolving intelligence. Being a developer of software I've often wondered how you can write something, given specific rules, that can develop it's own intelligence. Especially when these things can play games with themselves and learn as they go.

The only chapter that I'm certainly going to re-read and look into is the one on discovering groups. My idea is to add a related posts, and possibly even unrelated posts, section under each post on this web-site. From what the book says this would look at the text of each post and find ones with similar words and counts of words. I may even be able to plot a dendrogram showing clusters of topics.