Monthly Archives: April 2013
This site is devoted to chronicle my journey to becoming a better programmer. And I hope it will give some tips and tricks that will inspire you or help you to improve as a coder as well. Why have I done this? Because I want to improve as a developer, and as you’re here, I assume you do too, which is fantastic.
So some background I think, to set the scene so to speak.
I am a software developer in C++. I’ve developed in C++ for nearly two years now as I write this, and there’s been some ups and downs in getting the hang of the language. In 2013 I got to attend the ACCU conference in Bristol, where Pete Goodliffe gave a talk on Becoming a Better Programmer, which was interesting. Because it’d been something I’d been thinking about for the last few months, but hadn’t made any plans, or really knew where to begin, or what sort of strategy to develop. Pete invited some respected developers within the community to come up and give 5 minute talks on what they thought helped you to become a better developer. A couple of talks stood out, Seb Rose on Deliberate Practice, and Anthony Williams on Mindful Coding.
One of the things Pete mentioned was a sliding skill scale. [photo of the scale here]. So imagine the diagram above. If I were to ask you RIGHT NOW in terms of programming in your chosen language, where would you place yourself on the scale?
The talk mentioned a few things we need to consider, that will help us to become better programmers.
1. Be mindful that you want to improve.
I was talking to one of the organisers at ACCU, and we were discussing the skill scale on C++, and where we saw ourselves, and he surprised me, by telling me that Bjarne Stroustrup, the guy that literally wrote the book, and the programming language himself, rated his skill level as a 7. So if he’s aware of the fact there’s stuff he doesn’t know, then if someone says they’re a 9 or a 10….well….I’ll say no more…
2. Determine what’s important for you? Work required skills? Skills for your personal pleasure.
This is quite important. In this blog, I’ll be covering how I improve as a C++ Programmer. And I work in C++ day in day out. However in my own time, I write mobile phone applications for Android and the iPhone. (I will get round to Windows Phone but need a new processor for the Virtualisation stuff apparently…) And my work is important, it’s what pays the bills. But it must also be enjoyable too. So there’ll be some mobile dev stuff as well, and possibly how I’m getting on with learning to play the piano.
3. Know where you are now. Be realistic!
This is a very important step. And we must approach this step with humbleness and a degree of humility as well. We must weigh up where we are now, because we’ve all got to start from somewhere right? And things will get easier once we’ve defined a starting point.
4. Know where you want to be? – And be honest about it.
So what’s the destination? Every ship has a course set, when you get in the car, you usually have a destination in mind, so where do we want to end up with this quest of becoming a better programmer?
5. Work out how we will get there.
This then is the final step of the PLANNING phase. There are a myriad of ways that we can achieve our aims and get to our destination, and during this year I intend to make use of as many of them as I can. Some of them are free, like looking up what you want on Google, or attending community groups etc, but some of them aren’t free, like books, or attending conferences.
So, where am I at the moment then?
Well, I definitely want to improve my C++ programming, in fact, I feel I need to. Why? Advancement at work, making myself more employable if I ever decided to leave where I am at the moment, personal satisfaction, the ability to sit through a C++ presentation and follow more of what’s going on. If my week at ACCU showed me something, is that I understand more than I think, but I still have a long way to go.
So why am I putting myself through all this? After all it’s going to take at least 10,000 hours of practice to get to where I want to be. I think I covered some of it in the previous paragraph, another reason would be to build a good reputation with my colleagues, or should I say a better reputation with them. But also one day, I’d quite like to have the confidence to get up in front of people and present on wheat I’ve done, what I’ve learned and how it can help others.
In terms of C++, I’d say I’m on the bottom rung of the ladder, I know enough to be effective at work, but I wouldn’t feel confident in suggesting a whole new way of sing something, as I’d be far too nervous about sharing my ideas.
So I plan to blog each time I do something, or learn something new. So I’m not going to make any promises on a posting schedule, or maybe I should? I’m not sure, I’ll see how I get on. I will also note any books I’ve found helpful in this quest as well, and my hope is that someone somewhere will learn from the mistakes I’m bound to make in this endeavour. I also hope I’ll be able to post an interview or two with some respected members of the development community, but that’s a future thing, not a now thing.