In the vast stretch between New York City's Silicon Alley and California's Silicon Valley is the only slightly less well-known Silicon Prairie in Chicago (though Texas and Wyoming make claims for that name too).
No matter the name, technology rules in many businesses and startups in Chicago. The llinois Research & Development Corridor runs in and around Chicago, and includes a variety of technology-centric businesses -- from established brands like Motorola and U.S. Robotics, to relative newcomers like Groupon.com and every web developer's hearthrob -- 37 Signals.
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. 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.