TechRepublic member steven.balderrama posted a question in our Forums and asked whether he is ready to start his career as a programmer. He has spent a lot of time teaching himself C#, and he's beginning to learn WPF. In addition, he is currently working in the networking field, so he already is familiar with the IT industry's general challenges and rewards. Based on his information, I think he's ready to venture into a professional development gig. Here are my suggestions for how he can accomplish his goal.
Note: These tips are based on an entry in our Programming and Development blog.
1: 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 a stigma is sometimes attached to self-taught developers.
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 often 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.
2: Work on more projects
The more experience you have under your belt, the better. I recommend getting involved with an open source project or volunteering with a local nonprofit 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 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 and documentation.
- 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.
3: 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 entry 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.
Entry-level positions are also the ones most vulnerable to offshoring. Unfortunately, the overall trend in development is that the first five years or so of a career are getting increasingly difficult.
4: 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.
5: 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. Then 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'll 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 heading in new directions.
Additional TechRepublic resources
- Three ways to gain programming experience
- Write a resume that will land you a programming job
- 10 signs that you aren't cut out to be a developer
- How did you get around the no-experience barrier?
Justin James is the Lead Architect for Conigent.