Monthly Archives: August 2013
One of the most important pieces of advice I’ve been given, was to read at least four technical books a year. This was mentioned in The Pragmatic Programmer, and in an effort to follow the excellent advice given in this book. I’ve made some time to read a technical book as often as I can. I try and make it one every two months . Sometimes I manage it, sometimes I don’t.
So what have I learned from what I’ve read?
- That I should invest in my skills portfolio just like an investor would add to his investment portfolio. (Pragmatic Programmer)
- I should learn to use different tool for specific tasks. So this lead me to use the debugging tools that we have at work, whereas before I would have just sat at my desk and try to figure it out.
- I learned that by depending on an IDE, I’ve become a lazy programmer, so I’ve moved from using IDE’s when coding C++ all together, as it forces me to think a lot more about my code. (I confess I still use an IDE when doing C# stuff though as I don’t like hand writing GUI’s)
- I no longer listen to music as I code, as I find it actually reduces my productivity and constantly distracts me. (The Clean Coder)
- I’ve also adopted the art of deliberate practice. So before I start coding, I’ll do some sort of warm up first. (The Clean Coder)
- I’ve altered my coffee drinking practice. Yes, I can hear the gasps, but I now drink one strong cup in the morning, then have a soft drink in the afternoon. This actually helps me to write better code.
- I’ve become a huge fan of test driven development. This has caused a few giggles at work, but nowadays, I’ll write the unit test first, before I write any sort of production code. I must confess I’ve not done that with home projects yet. But I’m working on that too.
- I’m learning another programming language, so at work I code in C++, whereas at home I code in C# as I’m interested in the Windows Phone platform. I’ve developed an app for the Android Phone as well.
- I should look at improving my GUI skills. It’s not rocket science, with a little more effort, I can produce something that will look good. (The Developers Code)
So what are the books I’ve read so far this year?
So far this year I have read:
- 97 Things Every Programmer Should Know: Collective Wisdom from the Experts
- The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin)
- The Pragmatic Programmer
- The Developer’s Code
Granted, these aren’t language specific books. When it comes to that, I tend to dip in and out of those as I need to. If I were to list what I’m currently reading, then the list is as follows:
- Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin)
- Code Craft: The Practice of Writing Excellent Code
- The C++ Programming Language
- Code Complete: A Practical Handbook of Software Construction
- Beautiful Code: Leading Programmers Explain How They Think (Theory in Practice (O’Reilly))
- Microsoft Visual C# 2012 Step by Step (Step By Step (Microsoft))
- The C++ Standard Library: A Tutorial and Reference
So how about yourself? What are the books you’ve found helpful or would recommend? Other readers would love to know what you’d recommend to read, or what you’re currently reading as well.
Pete Goodliffe’s company inMusic are looking for a C++/Juce ninja, the details can be found here: http://www.juce.com/forum/topic/inmusic-akai-pro-alesis-etc-looking-c/juce-developer
They are ideally looking for a permanent employee in the UK; the UK development office is in Cambridge.
- Great C++ chops
- Proven Juce experience
- Ability to craft great GUIs and consider user workflows
- Cross-platform Windows/Mac development
- Real industry experience of audio app development
- Talent, motivation, and a desire to make awesome products!
First of all, allow me to apologise for the delay between posts. If I’m honest, I’m finding it difficult knowing what to put in these blog posts, because I am well aware that the stuff that’s new to me, is not new to a lot of people. But then again, that was the whole idea behind this blog. So I’m going to stop second guessing everyone and carry on.
So how have I been learning since my previous post then?
Well, I’ve been reading Bob Martin’s The Clean Coder which discusses a code of conduct for professional programmers. I won’t go in to detail as to what I’ve got out of it so far, but one of the things that stood out was how he does deliberate practice.
So Uncle Bob explains how he uses a code kata to kick off his day, sort of like a warm up for programming before he start writing production code. And it’s something I’ve been looking at doing myself.
So to that end, I’ve been using Jon Jagger’s excellent Cyber Dojo to do exactly that. The idea is that I complete a puzzle, and then eventually I’ll do it again, but slightly differently using a different technique.
The cool thing about Jon’s site, is that you can try the kata in a variety of programming languages, and it’s a completely safe environment to learn and improve as a developer. There is no competition with others, and nobody’s keeping track of your code except you.
Now if you want to do something a bit more competitive, then there’s always Top Coder which runs various competitions at various times, but I’m nowhere near the standard to take part in this yet as I simply can’t think on my feet quick enough in my chosen language.
The other thing I’ve been doing is reading, and I’ve started reading The C++ Standard Library by Nicolai Josuttis, as I want to get my head around the new C++ 11 standard. It’s a pretty good read so far, but I’ve not got to the meat of it yet.
I’ve also set myself a few new challenges this month as well. So I plan to learn one data structure a month, and learn it inside out. So hopefully in a month’s time there will be a blog post with code samples, on a data structure within the C++ STL. Now that I’ve said it, I’ve got to get on with it I suppose, so I’d best do that now.