Asset Management Software Header Gif

Software Testing Basics

 

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.