A software engineer has one of the most in-demand, lucrative careers in the world. The number of individuals presently employed in this profession, 909,600, is almost double that of any of the other computer careers we reviewed, which makes it our Top Ten Reviews Gold Award winner. About 57 percent of software engineers design computer applications, and the remaining 43 percent design systems software.
Software engineers have advanced math skills, which allow them to write complex algorithms required for developing software. Those who design applications build software that will be used by a person without a programming background. Examples of applications include word processors or databases. Individuals in these computer careers may be employed by companies such as Microsoft or Adobe to develop retail software packages. Or they may work instead for a general business (or as a consultant to a general business) where they develop custom, proprietary software or adapt a retail package to meet specific business needs. For example, they may work with the database administrator of a company to provide the foundation for an application to track inventory, billing, payroll, and other company revenue and expenses. They may also work with a web developer to build a program that will be accessed online.
It is the job of these professionals to make user-friendly and efficient applications so that employees can be as productive as possible. Training employees to use the applications should also be straightforward. The software should be designed to cater to skills that end-users already have so that, for example, transition from one system to another is a smooth process.
A systems software engineer works with a variety of specialists such as business professionals, network administrators and network security specialists to develop software to establish, maintain and expand the computer infrastructure of a company. Examples of software you may develop are operating systems, network protocols, device drivers and compilers. All of these kinds of software facilitate the running of applications. Operating systems, such as Microsoft Windows, Mac OS or a Linux proprietary system, run applications on a PC or Mac. Network protocols allow devices to identify and make connections with each other. An example of an internet protocol is HTTP, and a common routing protocol is EIGRP (Enhanced Interior Gateway Routing Protocol). Device drivers allow devices such as a digital camera or a flash drive to be recognized by your computer when they are connected. Compilers translate source code in languages such as C++ or Visual Basic into binary code so that it can interact with software built in different programming languages.
A computer programmer, who can be compared to a builder, is closely associated with a software engineer, who is like the architect. Software engineers work with the management of an organization to design software to meet specific business needs, where programmers carry out the programming instructions that engineers develop. However, in the computer industry, the lines of distinction between different career paths have become blurred in recent years. Individuals in these computer careers need to know how to architect, but they also need to know how to program and perform other functions with which they work on a regular basis. It is also helpful if you understand basic business functions, such as the types of information that a business needs to collect and store, as well as how a business makes money.
The range of work of an individual employed in one of many of the computer careers we reviewed depends on the size of the organization for which he works. If you work for a large organization, you are likely to fulfill a more narrow business role, but you are more likely to perform many other functions in a smaller organization.
In addition to working with PC-based systems, a systems software engineer may develop software for other computer systems, such as those found in mobile devices, automobile engines or assembly line equipment.
The average starting salary of individuals in these computer careers is $62,035 annually, and you can expect to earn up to $132,080 annually, depending on where you live. If you work as a full-time, permanent employee in-house or at computer consulting firm, you can also expect to receive health insurance and other benefits.
Demand for software engineers is expected to grow 32 percent in the next 10 years. About one-third of jobs in this profession are at computer systems design companies, where only 7 percent of jobs are at software companies. The remainder of software engineer jobs are at various for-profit, government and non-profit organizations. Virginia, Washington, Colorado and Massachusetts have the highest concentrations of individuals in these professions.
An individual in this profession who specializes in applications will likely study computer science, software engineering or mathematics. If you are on the systems side, you will likely study computer science or computer information systems. Where you work depends a lot on where you serve your internship as part of a four-year degree.
Graduate degrees are helpful for more advanced positions in the software engineering career path, although they are often not necessary. Skills gained on-the-job as well as your performance will put you in the running for promotions. Other factors that help with advancement are soft skills, such as being able to work in teams, and business skills, such as knowing how to conduct a break-even or return-on-investment analysis. A liberal arts education, or one from an accredited university, will provide you with a foundation in theoretical concepts, which will make you more adaptable and able to see the big picture, which will also help in achieving career advancements.
In addition, individuals in this profession need to be able to keep abreast of the frequent advancements in the computer industry. To do so, you can pursue certification in a particular programming language or in networking, but typically, certification is not as important as your education and experience.
Individuals in this profession usually work 40-hour workweeks, although you may work up to 50 hours a week, particularly around important deadlines. Overtime may not be available if you are a salaried employee or work on a contractual basis. You will work in teams as well as on your own some of the time. Consultants will work closely with clients, where an individual who works in the IT department of a large business may only work with internal contacts.
Individuals in these computer careers need to be able to see detail at close range and often sit at a desk for long periods of time.
Basic Office Skills Required
Spelling, grammar and punctuation skills are helpful in this profession, as are typing, data entry and 10-key skills. Most individuals will have advanced math skills, so basic adding and subtracting should be commonplace in this profession. A working knowledge of common applications, such as MS Word, Excel, PowerPoint and Outlook is beneficial. Verbal communication skills and the ability to explain complex computer concepts to individuals who do not have a background in the industry are also important. And since much of the work you do will be project-oriented, you will need to be able to work on a deadline and to complete tasks in association with other tasks on an established schedule.
A software engineer has one of the highest paid and in-demand computer careers in the world today. Where a computer programmer's job is often getting outsourced to countries such as India or China, the job of a software engineer is needed in the United States because it is here that you can interact with business managers to ascertain particular business needs and then design software programs to meet those needs.
Carina is a software engineer who designs custom systems and applications for a large consumer product distributor. She works with other individuals with computer careers, including a database administrator, who manages the technical aspects of the company's inventory tracking system. She also manages a team of computer programmers who take her designs and write the necessary code to complete applications.
As a product distributor, Carina's company finds out the demand for products from retail vendors and finds manufacturers that can deliver on such a demand. The database administrator issues account access to both manufacturer and retail clients, and Carina coordinates with individuals in computer careers who work for various clients to meet their software needs. Because her company's database is proprietary software built from the ground up, she often develops compatibility compilers that connect the database with the software used by manufacturing or retail clients to track their products.
When Carina's company upgraded their portable barcode readers about two years ago, she developed device drivers that allowed the readers to be synced with their proprietary operating system housed on a Unix server. And the company is considering the purchase of smartphones for every manager and sales associate that will include a barcode reader app, a GPS tracker of shipments and other features.
Her crowning achievement in the company was her role in upgrading the capacity and appearance of the database and making it more user-friendly for staff. Over the last 20 years, the company's database has evolved from being a series of separate offline applications at each warehouse to an integrated, web-based system. When Carina joined the company, the system was an outdated, text-based interface that required the use of keyboard commands. Although people at different locations could access the separate databases at that point, she used her software engineering skills to design a centralized system that could house shipping and inventory data from each of the company's locations. The intranet-based system was also built with an adequate firewall to protect it from hackers.
Carina needed to build it on a Unix-based platform that was compatible with the old Linux-based system in order to streamline the data transfer process. She designed it in a user-friendly, mouse-enabled interface that tracks cargo and shipments in real time and streamlines the verification of receipt through the use of the barcode readers. By building a proprietary but efficient system from the ground up, she saved the company money in their initial investment, and the system has improved operations by updating automated processes. As a result, the reliable database system has saved the company millions of dollars. And because their business processes cost less money, they have been able to transfer some of the savings to their clients, thus increasing the company's competitive advantage.
Although her role as a software engineer is often behind the scenes, Carina enjoys her job and knows she is a valued employee at her company. In the past, there have not been that many women in her profession. In college, she was one of only three women at her school who were pursuing computer careers such as this, but today she is seeing more women studying computers. Carina has a creative ability to visualize how components of new software will provide needed enhancements to existing systems, and she's very good at communicating those needs to computer programmers and business managers.
A software engineer has an in-demand job with an excellent starting salary.
One of many computer careers that require advanced mathematics skills.
If you are good at math, this will be an excellent profession to pursue.