Guide to the Beginning Programmer

January 20, 2009

So you want to start programming? Maybe as a hobbie, maybe becuase you want a change in careers, or maybe you are just like most developers/programmers and enjoy pain and problem solving.

Well, I have some advice for you. This is only based on my experience, but I’ve given this same advice to different people over the years and it seems that most folks can usually apply a thing or two.

Have a goal in mind. I took some programming courses in college, and as helpful as they were, they left me with the feeling that the only aim of the application we wrote was to prove a concept we had learned. The same rings true when following examples from books. The best way to learn a language is when you need to accomplish something.  This could be creating a photo album for your family, or you need to automate a repetitive task. Once you have a goal in mind, the motivation is there and you won’t be as likely to give up.

Your code sucks and that’s okay. Really, everyone’s code sucks at first. Don’t be embarrassed to share with more experienced programmers. Most of the time they’ll be willing to give you a hand, help you think a program through, and if you’re really lucky even help you track a bug. As you gain experience and skills, keep your karma counter on the positive side and help others. Also, remain humble and continue to listen to others; otherwise you’ll miss out on a great wealth of knowledge.

Pick a tool. Most people will tell you that as long as you understand the concepts, programming is pretty much the same in every language. This is only partly true. Understanding concepts will allow you to visualize the different building blocks of your project, but it won’t do you much good if you are having to learn new syntax, structures, and gotchas. Nevertheless, once you learn to program in a given language it’s easier to pick others.

Pick the right tool for the job. Someone once said that “when all you have is a hammer, all your problems start to look like nails.” Well, not all development projects are the same, and there are programming languages that are more suitable for certain types of projects than others. Say you want to create a static web page, learn HTML and CSS; if you need to add some back end processing learn PHP  (or Perl, Python, Ruby, .NET, etc.) as well; coding a desktop application? C, C++, JAVA will come in handy;  or use shell scripting to automate a task. The amount of languages is mind-boggling, try to pick one that applies to your needs and master it.

Documentation is king. Both in and outside your project. Inside, make sure you comment your code. Don’t worry if it seems silly at first, make comments regarding what each block of code does and why. The idea that seems so brilliant today might be impossible to decipher a few months down the road (particularly as you get better.) Outside your project, make sure that you have good help resources. Forums, cheat sheets, books, sample code, etc.

Development CurveEmbrace the development curve. Last but not least, you have to embrace the curve; which is probably a misnomer. When developing, you’ll realize that there is no curve, it actually looks more like a staircase. There will be times when your code will flow and things will work out great, and then you’ll hit a bump, maybe a bug, maybe a problem you can’t resolve. It might take you hours to get past this bump, but when you do, it’s a great feeling. Be prepared to know your head against the wall over and over.

Tags: , ,

Speak up

CommentLuv Enabled