Q: In your "Interested in a Programming Career? Here's How to Start" Q&A (http://www.sqlmag.com/articles/index.cfm?articleid=92805&), you provide some good suggestions on how to get into programming. However, you missed the biggest option: a college degree. As a manager of a small development group, I concede that Microsoft certifications will get your resume some extra attention. But almost always, a bachelor's degree is required or desired. In many cases, we won't even interview someone without a bachelor's degree.
I'm not saying that all computer science graduates are the best developers. But when you have a large stack of resumes to sort for every developer job, the first cut is often the candidates' formal education. In my last hiring round, I had resumes from high school graduates as well as doctorates.
Equally important is that developers without a bachelor's degree basically have nowhere else to go in the corporate world. Writing code can get boring after a while, and they'll want options. Without a degree, those options often aren't there.
I can also tell you that salaries are affected. You might have two equally talented and experienced programmers, but developers with a bachelor's degree will likely earn $20,000 to $30,000 more a year than their counterparts without a degree.
Can you please let people know that the certifications are nice but not a substitute for a formal college education?
A: I completely agree with the gist of your comments. A formal college education is very valuable. In almost every case, developers who go through a solid 4-year software engineering or computer science program have a better understanding of how computers work than developers who didn't go through such a program. A good program helps future developers understand what the computer is really doing, which helps them troubleshoot problems when they arise.
However, the college route works best for those under 30 who can afford to devote the appropriate time to it. The question in the "Interested in a Programming Career? Here's How to Start" column came from someone who noted that his age made going for a bachelor's degree an unrealistic option. And since this person had already had a career, stopping his income or spending 6 or 7 years in night school without already having a related job in that field wouldn't make sense. The reality is that there are hundreds of people in or entering the software market who aren't in a position to get a bachelor's degree.
As for Microsoft certifications, having a string of letters after your name can be good or bad when you get to an interview. As you note, the whole idea is to get to the interview stage. So, let's look at this from that standpoint and discuss the skills that a developer should possess.
First, as an interviewer, remember that you should never ask illegal questions such as "How old are you?" or "Are you married?" Note this doesn't mean that you can't deduce the answer to some of these questions. For example, if a candidate received a bachelor's degree in say 1987, it's pretty easy to deduce that the candidate probably is around 40 years' old.
As a job candidate, you should avoid bringing up such topics as age and marital status unless you're certain they'll help you get the job. For example, if you're interviewing for a position that requires traveling more than 50 percent of the time, you might want to mention that you're single without kids because the interviewer might feel that you'll have fewer travel restrictions. By the way, being single isn't always a plus. An interviewer might consider it a drawback because it's easier for you to leave the company for a different job.
But back to our focus: having a degree. Although a bachelor's degree can be helpful, there are also limitations. For example, having a degree in say astronomy might not carry much weight with an interviewer (which is the interviewer's loss since I know a very talented engineer who had that as his major). When I'm looking for someone to join our development team, I'm wary about hiring candidates with doctorates. In an interview, such candidates are going to have to convince me they want to write code as opposed to discussing design theories.
Whether you have a degree or not, the most important skills you can demonstrate are the ability to write clearly, the ability to communicate effectively, and the ability to reason and think on your feet. Your resume needs to demonstrate your writing skills. It should be concise and correct. You need to demonstrate your communication and reasoning skills in the interview. Make sure you understand the question being asked and answer accordingly. There are times when the correct answer is something like, "I don't know. I'd need to reference the documentation to verify that." Incorrectly guessing at a question or providing an answer that tries to dodge the question can cost you. However, constantly asking the interviewer to repeat or rephrase questions is a concern.
Although you need to demonstrate your writing, communication, and reasoning skills, what really sets a candidate apart in an interview is his or her ability to show desire and passion for the job and a willingness to try to resolve problems. So, when you get to the interview, remember that the interviewer wants you to succeed. You just need to demonstrate that you can be an effective team member.