How to Become a Software Engineer
Software Engineering was recently listed by Time magazine as still being the #1 career for pay/stress load. In spite of all the media hype about offshoring of these type of jobs, it's still a job that's in high demand. This article is for anyone considering Software Engineering as a career path who is at the high school or college level
Steps
Plan on getting a degree. With all the success stories of college drop outs becoming billionaire CEOs in the 90's, there is a certain lure that "as long as I think outside the box and have outstanding problem solving and programming skills I don't need a four year degree". It's difficult for entry level software engineers to obtain a position without a four year degree.
Get all the math you can in High School. Try to advance to college level math before leaving high school, you'll need a ton of math to complete any Computer Science program.
Qualify your degree by what you want to do. If your love is game design and you wish to enter that industry as a game programmer, you'll need a Computer Science degree. If you want to work for IBM, Intel, Microsoft, Google, etc... A Computer Science degree will be favored. If you're looking to work for a non-technical corporation building mostly business applications, consider a degree in MIS (Management Information Systems) or one of the many business technical degrees now offered. This type of degree is best for most, because it provides management and general business skills and doesn't focus on a lot of information that will not be useful to most.
Supplement your classwork with personal research. Search job boards and note what technologies are hot and buzzing. The colleges simply can't keep up with everything, so you'll need to buy additional technical books and teach yourself
Unless you're planning to get your foot in the door through an intern position, try to find side projects while in school. No one wants to take a risk and hire someone fresh out of school without projects under their belt. Internships are great and taking care of this problem, but unfortunately a lot of students can't land an internship or do so only to discover they would prefer to work elsewhere. The only way to give yourself options is to find some non-classroom work to put on your resume.
Tips
Software Engineering dress varies greatly from company to company. At one office you may wear a suit at another T-Shirt, shorts and sandals is fine. Always call prior to the interview and ask if a suit is appropriate for the interview. This is a good question because often, even if dress is casual a professional look will still win huge points for showing that you're the type of person who makes an effort to look your best and to be professional.
If you are asked a series of technical questions during the interview, always answer honestly, however be careful with the words you select. Never say "I don't know", instead say "I haven't encountered a scenario where I would use that yet", then explain the process you would go through to find the information if you had to. Only do this once during the interview and if you get stumped again on a technical question just remind the interviewer about your resourceful approach.
Always ask questions at the end of the interview and if the interviewer is technical, try to come up with some relevant technical questions. Don't try to interview the interviewer here, but just try to come up with a clever question that will answers some piece of technical trivia that's relevant to the company or the specific project you are being hired into. Be careful with this though and when in doubt, if it's not something that genuinely interest you, leave this trick in the bag.
Rather than getting a Computer Science Degree and working you way into a Software Engineering position, just get a Software Engineering Degree to start with. Many schools now offer this degree, and Software Engineers usually have recieve larger starting salaries at the same companies than Computer Science Majors do. The reason for this is that proper design and documentation of a system is more important than the ability to program.
Warnings
Be prepared for a rollercoaster ride, the industry is always changing and your self-education will never end. If you don't enjoy teaching yourself new and complex things often, change majors now.