How to Become a Software Engineer
The adventure of computers spawned the study of computer science, and
ultimately its applications in society in the form of software engineering.
Software engineering, like many other engineering jobs, require a specific skill
set that can be developed over time. The roles and capacities a software
engineer may fulfill vary between companies, but this article will teach you
the general qualifications and process for entering this field.
If you're in high school, get all the math you can in high school like algebra,
calculus, and geometry, it might be worth it if you try trigonometry and graphing.
Try to advance to college level math before leaving high school, you'll need a
ton of math to complete any Computer Science program and Engineering program.
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, and an internship
without being enrolled in a college curriculum at all.
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., then
a Computer Science degree may be good for you.
If you're looking to work for a non-technical corporation building mostly
business applications, consider a degree in 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 at 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.
Volunteer Work on Open Source Project
As Matt West explains in Matt West's Blog
Working on an open source project allows you to develop your skills, learn new things, and gain valuable
experience working on a collaborative software project. I canít stress enough how important this is,
especially if youíre a student or just starting out in the industry. The experience that youíll gain through
working on an open source project is invaluable. This isnít just limited to developing technical skills.
Being able to function as part of a team is also really important, and something that companies look
for in job applicants.
To find a project check out OpenHatch a non-profit
group that matches prospective free software contributors with communities, tools, and education. or
Open Hub which helps you compare, choose,
and track open source projects. Most projects have forums where members communicate about the project.
Donít be afraid to jump in and introduce yourself to the community.
The Difference Between Engineer and Programmer
Understand that software engineering is not the same as programming. Every software engineer knows
how to program, but not every programmer is a software engineer. Here's the principal difference between the two:
Software Engineers generally have a bachelors or masters degree. They have knowledge of high-level
mathematics like trigonometry and calculus. They have knowledge of mechanics and physics, and the
architecture of computers and the Internet. They often manage a software project and a group of programmers.
Programmers may or may not have a college degree. They have knowledge of general program control
structures and the syntax of one or more programming languages. Some software projects may not require
the expertise of an actual Software Engineer, and some programmers, even without a lot of formal education,
are brilliant at solving problems.