Example Career: Software Developers
Research, design, and develop computer and network software or specialized utility programs. Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Update software or enhance existing software capabilities. May work with computer hardware engineers to integrate hardware and software systems, and develop specifications and performance requirements. May maintain databases within an application area, working individually or coordinating database development as part of a team.
What Job Titles Software Developers Might Have
- Software Architect
- Software Developer
- Software Engineer
- Systems Engineer
- Application Developoer
- Network Engineer
- Application Integration Engineer
What Software Developers Do
- Modify existing software to correct errors, to adapt it to new hardware, or to upgrade interfaces and improve performance.
- Develop or direct software system testing or validation procedures.
- Direct software programming and development of documentation.
- Consult with customers or other departments on project status, proposals, or technical issues, such as software system design or maintenance.
- Analyze information to determine, recommend, and plan installation of a new system or modification of an existing system.
- Consult with engineering staff to evaluate interface between hardware and software, develop specifications and performance requirements, or resolve customer problems.
- Design or develop software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.
- Prepare reports or correspondence concerning project specifications, activities, or status.
- Confer with data processing or project managers to obtain information on limitations or capabilities for data processing projects.
- Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
- Coordinate installation of software system.
- Monitor functioning of equipment to ensure system operates in conformance with specifications.
- Supervise and assign work to programmers, designers, technologists, technicians, or other engineering or scientific personnel.
- Advise customer about or perform maintenance of software system.
- Train users to use new or modified equipment.
- Specify power supply requirements and configuration.
What Software Developers Should Be Good At
- Oral Comprehension - The ability to listen to and understand information and ideas presented through spoken words and sentences.
- Written Comprehension - The ability to read and understand information and ideas presented in writing.
- Oral Expression - The ability to communicate information and ideas in speaking so others will understand.
- Problem Sensitivity - The ability to tell when something is wrong or is likely to go wrong. It does not involve solving the problem, only recognizing there is a problem.
- Deductive Reasoning - The ability to apply general rules to specific problems to produce answers that make sense.
- Inductive Reasoning - The ability to combine pieces of information to form general rules or conclusions (includes finding a relationship among seemingly unrelated events).
- Written Expression - The ability to communicate information and ideas in writing so others will understand.
- Information Ordering - The ability to arrange things or actions in a certain order or pattern according to a specific rule or set of rules (e.g., patterns of numbers, letters, words, pictures, mathematical operations).
- Near Vision - The ability to see details at close range (within a few feet of the observer).
What Software Developers Should Be Interested In
- Investigative - Investigative occupations frequently involve working with ideas, and require an extensive amount of thinking. These occupations can involve searching for facts and figuring out problems mentally.
What Software Developers Need to Learn
- Computers and Electronics - Knowledge of circuit boards, processors, chips, electronic equipment, and computer hardware and software, including applications and programming.
- Engineering and Technology - Knowledge of the practical application of engineering science and technology. This includes applying principles, techniques, procedures, and equipment to the design and production of various goods and services.
- Mathematics - Knowledge of arithmetic, algebra, geometry, calculus, statistics, and their applications.
- Telecommunications - Knowledge of transmission, broadcasting, switching, control, and operation of telecommunications systems.
- Design - Knowledge of design techniques, tools, and principles involved in production of precision technical plans, blueprints, drawings, and models.
- English Language - Knowledge of the structure and content of the English language including the meaning and spelling of words, rules of composition, and grammar.
- Customer and Personal Service - Knowledge of principles and processes for providing customer and personal services. This includes customer needs assessment, meeting quality standards for services, and evaluation of customer satisfaction.