Computer software engineers work in different industries that require different computer skill sets. This means that software engineers have skills that are industry specific. This requires that software engineers keep current on the latest software technology related to the specific software development needs of the industry they are involved in.
Basic computer software engineering skills include the ability to design flow charts in flow chart design languages, the ability to code with the most popular software languages, utilize program development platforms, and the ability to program at the network level. Other basic software engineering skills include the ability to design programs that can manage vast amounts of increasing data and interact with growing user bases that can number in the tens of thousands or millions of people.
A computer software engineer should have the capability to write computer programs in almost any language. Because software languages needed are varied and change often, software engineers should have extensive familiarity with different types of software languages and their structural similarities and differences. Successful software engineers know which software languages are the most efficient for a specific application.
Software engineers should also be able to work with the Internet Protocol Suite and its various layers. A software engineer must be able to use these protocols to communicate across global networks to request information from specific networks, specific network computers as well as to enable and take control of networks and individual computer resources. Specifically, a software engineer must be able to enable and use software programs throughout a network, on any computer platform, at any programming level, through the use of network and web service protocols.
Often statistics, probability and other advanced mathematics skills are requirements for program development. A software engineer may be asked to design software that uses statistics and probability to predict web site and network traffic.
Software engineers that develop scientific, engineering and entertainment programs, such as networked video games, often must have a discipline in another field. Those that develop electronic simulators for example, must not only know how to design the structure of a programs, but also know how to design algorithms that automate the analysis of electronic circuits. Software engineers that develop video game programs not only need descriptive geometry and mathematics knowledge, but also the ability to encode that knowledge into a viable computer programming application.
- United States Department of Labor, Bureau of Labor Statistics: Computer Software Engineers and Computer Programmers
- StateUniversity.com: Computer Software Engineer Job Description, Career as a Computer Software Engineer
- Craiglist: Job Search
- CTI Career Search: Software Engineers For Systems: Schools and Careers