I often wonder what makes a programmer tick

Posted in Life by Richard on October 1, 2010 No Comments yet

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.

Why is programming so infuriating sometimes

Posted in Life by Richard on September 9, 2010 No Comments yet

Not to rant for my first post but …

Working in the programming industry can be so infuriating sometimes. When someone decides to go into programming they basically know that they will be working long hours and often working in teams of people. Some times though you get those glorious moments where you get to work by yourself on a nice little project. I have several of these little projects at my current job. Lets call them my little babies.

Unfortunately as a programmer you often get quite attached to these little projects and you have no desire for anyone else to touch them. Often times the higher ups are quite content to let them stay that way. But sometimes the powers that be decide to rain fire and brimstone down upon you. They seize your project and give it to someone else. And lets face it as programmers that other person is always going to be an inferior programmer. We are a conceited bunch and always feel that our code is better than that of our coworkers. Why who knows, thats just the way it is.

I have been working on a project now for the better part of two years. It is actually a fairly intricate website with lots of little things to be considered. The client that this site is for is how do we say this nicely a wee bit picky. They change their mind a lot and we often have to guide them by the hand to make them see things our way. But likewise we often have to give them what they want also. They are the client after all.

So back to my baby. One of the things that I have written for them is a fairly elaborate registration system. It all depends on how you come to the site and what you plan on doing once there. are you registering for the conference, or are you just here to see past conference materials. None the less the system is elaborate. Now I am not saying the system is perfect. It was after all written 2 years ago. That was right when I had started working for my current company. I was also right out of college. While I had been programing for many years, I still had a lot to learn. I consider myself to be a much better programer now then I was 2 years ago. That being said in looking at the code there are a great number of places that I would change the code to be a lot more efficient and readable.

Now most projects I am glad to get off my plate and passed onto one of the junior developers. However this project should never of been soiled by the touch of the lesser programmers. See I told you we are all conceited. Oh well, the powers that be deemed that the project should be moved to someone else. Which in theory I was fine with. I warned my bosses of the drawbacks, sometimes they listen. Now this has been in someone else’s hands now for several weeks, but due to deadlines this has now come back to me. In theory I know the ins and outs of this so I should be able to wrap everything up in a neat little bow.

Wrong, because the other programmer was not familiar with how things worked in these registration pages I now find myself having to write workaround code just to get this prepped to be rolled out. And man is it a mess. If time allowed I would scrap the other developers code and rewrite the whole thing. (Definitely not the first time I have had to do this.) But the project is due today so I am stuck with the workarounds for now. Oh joy.

I was thrown back into this project with about 2 workdays before the project was due and it still probably had about a weeks worth of coding left to go not to mention thorough testing. Oh well I better get coding otherwise I will never finish this thing.