Software-oriented employees use programs and packaged software to make computers perform various tasks. The technology they use also evolves at a lightning pace, requiring them to continually learn and adjust to new programs.
Computer software engineers
These workers architect, create, and troubleshoot software that allows computers to run applications. Often working within a team of other engineers, marketing people, designers, and manufacturers, software engineers analyze computer users' needs to create or modify operating systems, network utilities, and compilers. They must have good programming, algorithmic, and computer science knowledge, often typing in computer instructions line by line.
There are two types of computer software engineers: applications software engineers and systems software engineers. Applications software engineers design, create, and modify computer applications. The applications can be general software programs, useful to varied users, or they can be specialized utility programs. These engineers use various programming languages to create this software, depending on the purpose of the program and the environment of the user. The most common programming languages they use to build the software are C, C++, and Java.
Computer systems software engineers plan and maintain a company's computer systems while considering scalability and growth. They observe and assess a department's computer needs, from hardware and software purchasing, to intranet architecture and construction, to tech staff payroll. Systems software engineers work for companies that design, build, and install computer systems. Because of their positions as product designers, they may serve as primary technical resources for sales and support people.
There is a bright future for software engineers. Applications software engineers are projected to be the fastest growing occupation in America through 2010, and systems software engineers are projected to be the third fastest.
Good analytical, problem-solving, and communication skills are necessary for success here. Inexperienced software engineers usually start off modifying or debugging existing software. As they gain experience, they may design and develop new software, eventually becoming project managers, information systems managers, or chief information officers. Some experienced engineers create their own independent consulting firms.