Wednesday, July 14, 2010

Five tips for starting a programming career

Learn the fundamentals

Many people who teach themselves programming have a blind spot when it comes to the fundamentals. The mindset that drives someone to teach themselves programming is one of motivation and the desire to “do something now.” This is a great attitude to have! Unfortunately, the desire to learn new things often leads people to run before they can walk when it comes to basic principles (I know this from personal experience); this is why sometimes there is stigma attached to the self-taught developers.

So be sure that you learn the programming fundamentals. This includes variable naming, proper program structure, when something goes in a library as opposed to the application, and so on. The typical “How to program in XYZ” books typically gloss over how to perform the problem solving necessary to be a top-flight developer. I recommend going through something like Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman, which will go a long way in helping you get up to speed.
Work on more projects

You mentioned that you’ve developed a human resources application that you can show off, and that’s a great start. You’ll want to get some more experience under your belt to help give you that edge in hiring.

I also recommend getting involved with an open source project or volunteering with a local non-profit organization to write software that helps them out. This will benefit you in the following ways:

* You’ll gain exposure to what it is like building an application to a specification.
* You’ll get to experience the full development lifecycle, including maintenance.
* You’ll work as part of a team.
* You’ll learn “basic hygiene” practices such as version control, documentation, etc.
* You’ll get a feeling of accomplishment, which will help keep you from getting discouraged.
* You’ll be able to list programming experience on your resume.

Be willing to take a pay cut

It’s no secret that the economy is a wreck right now. The common theme I keep hearing is that, while there are some jobs out there, the pay packages are really tight; many employers are locking people into lower salaries and “resetting” the pay levels.

Recent college graduates (many of whom are finding themselves unemployed for months after graduation) are the competition at your experience level. In addition, most recent graduates do not have the financial obligations that experienced workers do and are willing and able to work for less money than someone who has been out of school long enough to have a mortgage, a family, and a car payment.

In addition, the entry-level positions are the ones most vulnerable to offshoring. The overall trend in development is that the first five years or so of a career are, unfortunately, getting increasingly difficult.
Look at non-programming development jobs

There are plenty of positions on a development team that are not hands-on development jobs, but will help get you closer to your goal. There are jobs for QA/testers, maintenance, support, and so on. If necessary, take one of these positions to get your foot into the development world, and find ways to ease yourself into programming. For example, you could be a QA person, and instead of simply finding a bug and reporting it, you could go through the code and find where the bug is occurring and note it in the ticket. The developers will appreciate the help, and as you prove your value, doors will open.
Moonlight for your employer

At your experience level, it is unlikely that you are going to find work moonlighting; however, you may be able to do that for your current employer. Talk to your boss and your coworkers and find out if there are any simple programs that would make their day easier and write that software. If you have an internal development team, you could offer to help them out in some way. Some managers will let you do this as part of your workweek; others will tell you that it needs to be done on your own time. Either way, you will be able to gain development experience, make yourself more valuable to your current employer, and maybe open up a new career path for yourself within your current organization. Time and time again in my career, I have found that “going the extra mile” is the game changer when it comes to career growth, development, and changing directions.

Hope this helps, and best of luck to you!

No comments:

Post a Comment