Software Engineer
A software engineer is in charge of assembling extensive
amounts of code into working applications, as well as updating
and fixing problems in existing software. A software engineer
is also referred to as a programmer, because the main duties of
a software engineer involve programming computers. Software
engineering may be compared with computer science. While a
software engineer works on actually developing working software
solutions, a computer scientist focuses on the theoretical
construct of software and hardware development.
There is some debate over whether a software engineer should
rather be referred to as a developer or programmer, because of
connotations held by the term engineer. Many charge that
software development is not held to the same rigorous and
exacting standards as fields such as electrical engineering,
and therefore should not be associated with other, more strict
forms of engineering. The title of software engineer, as a
result of these controversies, is bestowed rather haphazardly.
The industry itself has not yet come up with widely agreed upon
practices for licensing software engineers —- something other
engineering disciplines have —- and so even a person without
formal training may be referred to as a software engineer.
There are estimated to be over two-and-a-half million
software engineers worldwide, a number less than, but rapidly
approaching, that of traditional engineers. The role of
software engineers in society is expanding as computers and
their applications become more pervasive. Economically,
socially and politically, computers are changing the world
everywhere they reach, and software engineers are building the
tools that drive that change.
Only about one-half of software engineers in the industry
hold a degree of some level in computer science, and less than
five percent hold a degree specifically in software
engineering. These numbers are growing, as the marketplace
becomes more competitive and entry-level software engineers
struggle to distinguish themselves. A number of graduate
programs exist for both computer science and software
engineering, as well, though these degrees are often acquired
after some years of experience in the field.
Ultimately, what a software engineer is and what their
specific jobs are is open to some debate. It is clear that they
play an integral part in the development of software
applications for computer systems, integrating not just
programming skills but also design and conceptual skills as
well. Some may build database structures, while others may work
on the embedded software necessary to make electronic devices
function, and still others may write games and consumer-level
applications. Whatever the specific role of an individual
software engineer, the fundamental job of generating code to
help a computer act or react stays the same.
Requirements for Software Engineers:
 |
Skill Set:
Successful Software Engineers need to know basic
business functions, have a firm understanding of
design methodology, and excellent communication
skills. |
 |
Education:
Usually requires at least a BS in Computer Science.
Should be very familiar with specialized languages
relevant to the technologies employed (Java, C++,
C#.NET as examples) |
 |
Code Requirements:
Software Engineers may or may not write code,
although most do regularly. |
Software Engineer Compensation :
 |
Expected Salary: Compensation for Software
Engineers varies according to years of experience,
degree and geography. A new graduate from a
prestigious school in California may start at
$45,000 to $60,000 per year. For up to date salary
information, check out the online salary
calculators. |
 |
Additional Incentives:
Often, performance bonuses are awarded in addition
to base salary. Profit sharing or stock purchase
programs may provide additional compensation. Many
newer start ups offer stock in addition to or in
place of some base salary compensation. |
Software Engineer Career Path :
 |
Common Promotions:
After 3-5 years of experience many Software
Engineers are promoted to a Senior Software
Engineer position. Depending on the employee's
skills and interests, a Senior Software Engineer
may later be promoted to a Software Architect (a
very senior designer of complex programs) or a role
in Project Management. |
|