So what makes a computer go? It's not a mule or a steam-powered engine (despite what steampunkers might tell you). It's not even the hardware, though of course without the physical computer there wouldn't be much to work with.
No, it's something softer, but that's built to work nearly as hard. And designed to help people do more -- be it paying bills online or playing a game.
Software engineers design and develop a wide variety of software, including business applications, operating systems, and computer games.
As engineers, they use their skills in analysis to identify needs, and then they design, test, and create the sofware that meets those needs. Their work involves designing flowcharts and diagrams, writing documention, and creating instructions (aka algorithms) that tell a computer what to do. A computer programmer then takes those instructions -- the algorithm -- and converts it to a programming language the computer can understand, such as C++ or Python. The programmer is also responsible for maintaining, updating, and repairing software programs as necessary.
Software engineers are divided into two types: computer applications engineers and computer systems engineers.
Applications software engineers analyze user needs, and then develop tools to meet those needs. They use a variety of programming languages, including Java, Python, or C++, to develop general computer applications software or custom programs.
Systems software engineers are more concerned with ... systems. They construct, install, maintain and expand an organization's computer system. Working with the organization, they coordinate each department's computer software needs, including such things as ordering, inventory, billing, and recordkeeping, for example. They may also make suggestions about a department's technical direction..
Training & Education
A bachelor's degree is common for many software engineering jobs, though a master's degree might be required for some positions, depending on the size of the organization or industry.
Computer programmers may only need an associate's degree or certificate.
The area of emphasis depends on the applications you want to work on. Employers who use scientific and engineering applications prefer software engineers with degrees in computer science, engineering, mathematics, or the physical sciences. Businesses who rely on business applications prefer those with management information system degrees or business degrees with technology cores.
As with any area in IT, continuing education and certification are key in understanding and using new technologies.