I often wonder what makes a programmer tick. Being a programmer myself it is hard to quantify. We are definately a breed apart from the rest of humanity. We are often considered to be lazy looking for the easiest way to get a job done. We often think in algorithms and in lines of code. At one point I thought this was something that was unique to me. I have talked to many programmers, and very few have taken this line of thought. Unfortunately the ones that don’t think like this are decent coders but often have problems thinking outside the box.
I don’t know if I was trained to think this way or if my brain is literally wired differently. The difference might just be in the length of time someone has been programming. My parents bought their first computer when I was 8 years old. We had several other pieces of junk that you might be able to call a computer, I distinctly remember a TSR80 that we owned and still used long after we got our first computer. So anyways this computer was an XT Personal Computer. I know my parents probably paid a pretty penny for it. This was after all in 1985. Shortly after it being setup they allowed us to use it. I remember a big book of games that my dad bought for us to use. It was all about coding in basic and how to make games and what not. I think out of the seven kids I was the only one to pick up this book. I still remember times where I would code a game and then my brothers would push me out of the way so they could play on it.
My life has always been like this I have always been drawn to technology and the things that I can do with it. Numbers and code just make sense to me. So why I am I talking about this. As I said before I have met very few people that think like I do. No one at my current employer do. In fact I often have to clean up problems they create. They are all decent programmers but sometimes they ask things that they should already know. And if they don’t know it they should know at least how to find it. Instead they ask me or the other senior developer to help them with their project. Now don’t get me wrong, I am not against people asking questions. I think it is a great way to learn the things you need to know. However when you ask the same questions over and over again it becomes annoying and makes me wonder about your competence.
I know these programmers do not think like me. They are not able to tackle a problem and find a solution with out someone first pointing them in the right direction. I ran into this when I was in school a bunch too. There were some who saw the answers right away, then there were the rest who always had questions and sometimes made me wonder why they were in the degree program when it seemed they were much more suited to something different. I’ll never say programming is easy for me, heaven knows I have had my fair share of problems with certain things, but I am always open to learn new things and definitely if someone can show me a better of doing something I am going to pay attention. I think my biggest problem with how my coworkers approach a problem is they seem to seldom to look for the answers themselves. The answers are out there at least I hope they are not all rapped inside of my head.
The thing that made me think of all this is a guy on the train. He is a developer at IBM. As we sat there and talked I came to realize that he thought in a very similar process to my own. So I asked about coworkers and he mentioned that he has similar problems to my own. Some programmers are good some are ok and some well just should’t be programmers. The real question is what is what makes the difference? I honestly think some of us are wired differently than others. While some of this can be trained and taught, I believe there is a lot that is just instinct for some of us.
I do think we can make decent programmers out of just about anyone. Programming really isn’t that hard. What it all boils down to is this. Use your resources, be open to learning new things, and don’t be afraid to pick up a book, read a blog, or use forums. I guarantee you that someone out there has encountered something similar and has posted about their encounter in some way or another. Heck it is one of the reasons I am attempting to write a blog.
This is my biggest gripe in the programming world people are afraid to look for themselves, are afraid of learning new things, and are afraid of mistakes. I will be the first to admit that I write bad code. It is a constant earning process to write better code, better test cases, and better programs. We have a ton of resources out there to better ourselves. Even if you want to stick to a single language there are still things that you can learn day in and day out about that language.
Lastly as a key point of advice. If you have to ask a coworker for help make sure you have already tried finding a solution yourself first. Because even if your coworker does not look perturbed I can guarantee he/she is. Especially if they can google the problem and can find the answer in the first result.