Admit it. You’re awful at Programming!
May 19th, 2008I have been programming for about six years now, working with languages like Visual Basic, C, C++, C#, Prolog, and Java, not to mention all the scripting languages I’ve toyed around with! I like to think that my mash-up of programming knowledge only helps me with the end goal of programming, and that’s to reach an end product that matches project requirements.
Six years is in no way a long time to be programming, although there are times when I have worked with other that have been programming for decades that are writing sloppy functions, refusing to do any sort of testing other than “it compiles”, and/or outright developing programs that do not meet the specifications.
Despite these developers existing and coding right beside me I am in no way deluded as to my own ability with programming. Given a simple task I can work towards it quietly and efficiently with no real problems, occasionally slumping to a halt once a certain error halts my progress. Large projects can often be a challenge for me, and a lot of my time is spent learning about the best way to do it, rather than having the knowledge and experience to actually start doing it with minimal planning needed. If I were asked to develop something outside of my knowledge area I would fall flat on my face, work myself up into a frenzy and spend 30 solid hours revising on the best way to do this in a library or in front of Google.
The other day I was working on a few programs in my university’s computer lab, attempting to work with some serial port libraries in Java. After a couple of hours it was just me and a few other people left there and we all got to talking about software development. One guy there claimed to be awful at programming, even after working on developing software for enterprise Oracle databases for ten years and currently working towards a MSc in Software Engineering. As an undergraduate I asked him how he could think he was bad at programming when he’d graduated with a Software Engineering degree and worked for a fairly large company for a number of years, and the response blew me back:
“I have to be an awful programmer or I would never learn”
The only way he had got through his degree and through his job with Oracle is by improving on his shortcomings. If you cannot see where you are going wrong then how will you ever get better?
So now I can admit it! I am awful at Programming.
In many ways, programming languages do not help. After creating a few programs in C++ I almost felt invincible, and then I tried Java and it swiftly kicked me in the family jewels and told me that I suck. It’s a lot like learning to drive in a specialist learners car (the ones with a feirce clutch and two steering wheels). When you’re a beginner it’s good to get used to a feirce clutch so that your general car control is great once you become better and step into a real car once you’ve passed your test. You may stall several times a day at first, but with practice you learn from your mistakes and perfect your ability on the road.
As a student wishing to learn how to program well I have chosen myself some strict rules to follow during my everlasting learning process. As of now I am only using two programming languages at university, Java, Prolog and C. As a result I have taken on learning Haskell to give myself some variety, and so I can learn different paradigms to further understand and appreciate the architecture of a programming language.
The reason I have chosen such a strange way of learning to program well over the summer is because programming at university has only highlighted errors in my ways. I struggle with large projects, my overall experience with programming is very limited and I simply do not know enough about programming in general to make the best decisions.
I love to talk about programming, software engineering and computer science with others, and this is probably why I’ve managed to keep my love for the subject going. I actually find that talking about the subjects that you love is what keeps you knowledgeable about them! If you don’t talk about what you love to do with other that love it then how will you ever develop as a developer?
There are very few people that can claim to being good at programming, and all of these people are relatively well-known around technology circles. I’m guessing that if you’re reading this you aren’t well-known for your programming skills. If you’re not then you suck!
Now go out there and find out why you suck.