Software Engineers


Education and Training Requirements

High School

A bachelor's or advanced degree in computer science or engineering is required for most software engineers. Thus, to prepare for college studies while in high school, take as many computer, math, and science courses as possible; they provide fundamental math and computer knowledge and teach analytical thinking skills. Classes that rely on schematic drawing and flowcharts are also very valuable. English and speech courses will help you improve your communication skills, which are very important for software engineers.

Postsecondary Training

As more and more well-educated professionals enter the industry, most employers now require a bachelor's degree. A typical degree concentration for an applications software engineer is software engineering, computer science, or mathematics. Systems software engineers typically pursue a concentration in computer science or computer information systems. Students also complete an internship or other on-the-job experience as part of their training. A master’s degree in software engineering or a related field may be required for some positions. Large computer and consulting firms may offer specialized training in proprietary programs. If you plan to work in a specific technical field, such as medicine, law, or business, you should receive some formal training in that particular discipline.

Other Education or Training

Several associations offer continuing education opportunities. Student and professional members of the Association for Computing Machinery can access online computing and business courses via the association’s Learning Center. The IEEE Computer Society offers career planning webinars and continuing education courses to its members. Other organizations that provide continuing education opportunities include the Association for Women in Computing, Information Architecture Institute, and the International Game Developers Association. Contact these organizations for more information.   

Certification, Licensing, and Special Requirements

Certification or Licensing

The IEEE Computer Society offers the associate software developer credential (for graduating software engineers and entry-level software professionals) and the professional software developer and professional software engineering master certifications (for experienced software designers and engineers) to individuals who meet education and experience requirements and pass an examination. The Institute for Certification of Computing Professionals also offers certification to computer professionals.

Another option if you're interested in software engineering is to pursue commercial certification. These programs are usually run by computer companies that wish to train professionals to work with their products. Classes are challenging and examinations can be rigorous. New programs are introduced every year.

Experience, Skills, and Personality Traits

Take as many math and computer science classes as possible and participate in internships and other opportunities to gain experience in the field. Several years of programming experience are recommended for aspiring software engineers.

As a software engineer, you will need strong communication skills in order to be able to make formal business presentations and interact with people having different levels of computer expertise. You must also be detail oriented. Working with programming languages and intense details is often frustrating. Therefore, you should be patient, enjoy problem-solving challenges, have a creative mindset and good analytical skills, and work well under pressure. If you plan to work in a digital media-related field, it is a good idea to have at least some familiarity with your chosen specialty (such as animation or computer and video games).