Occupation · SOC 15-1251
Computer Programrs
Create, modify, and test the code and scripts that allow computer applications to run. Work from specifications drawn up by software and web developers or other individuals. May develop and write computer programs to store, locate, and retrieve specific documents, data, and information.
Median wage
$98,670
$52,190–$162,090
Projected growth
-6.0%
Declining
Annual openings
-720
per year
Employed (US)
109,870
Job Zone 4
Typical preparation
Considerable preparation
Stackable credential programs
1,463 mapped
Core skills
ProgrammingActive ListeningCritical ThinkingComplex Problem SolvingQuality Control AnalysisSystems AnalysisReading ComprehensionJudgment and Decision Making
Knowledge areas
Computers and ElectronicsMathematicsEngineering and TechnologyEnglish LanguageCustomer and Personal Service
Technology & tools
Development environment softwareObject or component oriented development softwareDocument management softwareWeb platform development softwareWeb page creation and editing software
Representative tasks
Write, analyze, review, and rewrite programs, using workflow chart and diagram, and applying knowledge of computer capabilities, subject matter, and symbolic logic.Correct errors by making appropriate changes and rechecking the program to ensure that the desired results are produced.Perform or direct revision, repair, or expansion of existing programs to increase operating efficiency or adapt to new requirements.Write, update, and maintain computer programs or software packages to handle specific jobs such as tracking inventory, storing or retrieving data, or controlling other equipment.Consult with managerial, engineering, and technical personnel to clarify program intent, identify problems, and suggest changes.Conduct trial runs of programs and software applications to be sure they will produce the desired information and that the instructions are correct.Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.Compile and write documentation of program development and subsequent revisions, inserting comments in the coded instructions so others can understand the program.Consult with and assist computer operators or system analysts to define and resolve problems in running computer programs.Perform systems analysis and programming tasks to maintain and control the use of computer systems software as a systems programr.Write or contribute to instructions or manuals to guide end users.Investigate whether networks, workstations, the central processing unit of the system, or peripheral equipment are responding to a program's instructions.Assign, coordinate, and review work and activities of programming personnel.Train subordinates in programming and program coding.Develop Web sites.Train users on the use and function of computer programs.Collaborate with computer manufacturers and other users to develop new programming methods.
Competency framework
Skill expectations by proficiency level.
emerging
Basic program logic and workflow diagrams — construct and interpret under direct supervision using standard charting conventions in a structured development environment.Simple coded instructions — write and trace through using a designated programming language while following team coding standards on an assigned project.Known syntax errors and runtime exceptions — identify and correct by reviewing compiler output under the guidance of a senior programr.Trial runs of small software modules — execute and document results in a controlled test environment to confirm that outputs match expected specifications.Existing program documentation and inline comments — read and apply to understand code intent before making minor updates to a maintained codebase.Basic database queries and data retrieval operations — write and test using standard SQL syntax within an established database management system.Version control procedures — follow consistently when committing, branching, and merging code changes in a team repository environment.Program requirements and task assignments — receive, interpret, and clarify with a supervisor before beginning development work on a software module.Standard development environment tools including editors, debuggers, and compilers — set up and operate under guidance on a departmental workstation.Initial program documentation drafts — prepare by recording development steps and inserting explanatory comments in coded instructions as directed by a lead programr.
developing
Workflow charts and logical diagrams — develop independently to describe input, output, and processing steps before converting them into coded instructions for routine business applications.Existing programs requiring efficiency improvements or new functionality — revise and expand with limited oversight, applying knowledge of system capabilities and symbolic logic.Recurring defects and logic errors — diagnose and resolve by making targeted code changes and re-running validation tests across familiar application components.Software packages supporting specific operational tasks such as inventory tracking or data retrieval — write, update, and maintain in alignment with defined user requirements.Trial runs of updated programs and software applications — conduct systematically and document findings to verify correct outputs before releasing changes to a staging environment.Stakeholder clarifications on program intent and functional requirements — gather through structured consultations with technical and managerial personnel and incorporate into revised specifications.Object-oriented and component-based design patterns — apply routinely when developing modular code within an established application architecture.Web platform development tools and related frameworks — use to build and maintain web-based application features according to project standards and timelines.Comprehensive program revision histories and technical documentation — compile and maintain so that teammates can understand design decisions and subsequent code changes.Time and task estimates for assigned development work — produce and manage independently, adjusting priorities in response to shifting project requirements within a development team.
proficient
Complex, non-routine programs spanning multiple subsystems — design, write, and optimize autonomously by applying advanced symbolic logic and deep knowledge of computer capabilities across the full software development lifecycle.Cross-functional requirements from engineering, operations, and management stakeholders — analyze, reconcile, and translate into precise program specifications and architectural decisions without supervisory direction.Systemic performance bottlenecks and logic failures in large, production codebases — isolate, repair, and validate through rigorous testing and analysis of system-wide behavior.Existing legacy programs — evaluate for operational efficiency, lead refactoring efforts, and adapt them to new technical or business requirements while preserving data integrity.End-to-end test plans for critical software applications — design and execute to ensure reliability, correctness, and compliance with quality standards before production deployment.Detailed workflow models for complex data processing pipelines — author and convert into scalable, maintainable code using appropriate languages and cloud-based or storage networking tools.Database architecture and management system configurations — assess, optimize, and maintain to support high-volume data storage and retrieval demands in enterprise environments.Technical documentation and code commentary for sophisticated modules — produce at a level of depth and clarity sufficient for onboarding new team members and supporting long-term maintenance.Emerging programming languages, frameworks, and development tools — evaluate critically and integrate selectively into the team's technology stack based on sound systems analysis.Quality control analyses of software outputs and system behavior — conduct independently and present findings with recommended corrective actions to technical leadership.
advanced
Organization-wide programming standards, coding conventions, and software development methodologies — establish and champion to ensure consistency, quality, and scalability across all development teams.Strategic technical direction for large-scale software initiatives — set by synthesizing business objectives, engineering constraints, and emerging technology trends at the executive or principal level.Junior and mid-level programrs — mentor and develop through structured code reviews, pair programming sessions, and individualized feedback within a professional development framework.Enterprise software architecture decisions — lead by evaluating system-level trade-offs, directing feasibility analyses, and aligning technology choices with long-term organizational goals.Cross-departmental technology consultations involving senior management and engineering leadership — facilitate to define program intent, surface systemic problems, and drive adoption of high-impact solutions.Policies for documentation, version control, and program lifecycle management — author and enforce across the department to sustain institutional knowledge and reduce technical debt at scale.Critical system failures and high-severity production incidents — direct diagnosis and resolution efforts, coordinating multiple programming teams under pressure and communicating status to executive stakeholders.Innovation roadmaps for tooling, platforms, and development environments — define and prioritize by evaluating cloud-based, database, and web development technologies for long-range competitive advantage.Organizational risk posture related to software quality, technical debt, and security — assess through advanced systems evaluation and advise senior leadership on mitigation strategies and investment priorities.Workforce planning for programming talent including hiring criteria, onboarding curricula, and skills gap analyses — lead to build a high-performing development organization aligned to strategic business needs.
Also known as
143 alternate job titles map to this occupation.
Database ProgramrCyber Capabilities Development Officer (Army 17D)Systems ProgrammerEngineering and Scientific ProgrammerApplications ProgrammerEngineerInternet ProgrammerAutomation ProgramrSoftware Development Officer, Product Designer (Air Force 16K3D)Programmer, Engineering and ScientificBeta TesterScientific ProgrammerClient Server ProgramrSoftware Development Officer, Software Engineer (Air Force 16K3E)Computer Programmer AnalystOperating System ProgramrJava ArchitectApplications Developer (Marine Corps 0673)Bug Bounty HunterCyber Defense Operations Apprentice, Systems Operations (Air Force 1D731B)Programr, Engineering and ScientificCyber Defense Operations Helper, Mission Defense Activities (Air Force 1D711M)Application Programr AnalystComputer ProgrammerComputer ProgramrAutomation ProgrammerMalware AnalystCyber Defense Operations Helper, Expeditionary Communications (Air Force 1D711W)Cyber Defense Operations Craftsman, Enterprise Operations (Air Force 1D771Q)Chief, Computer ProgrammerE-Commerce Programmer (Electronic Commerce Programmer)Analyst ProgramrSoftware Development Officer, Data Scientist (Air Force 16K4S)Cyber Defense Operations Journeyman, Data Operations (Air Force 1D751P)Cyber Defense Operations Apprentice, Security Operations (Air Force 1D731D)Numerical Control Programmer (NC Programmer)Engineering ProgramrCyber Defense Operations Craftsman (Air Force 1D771)Applications ProgramrSoftware Programmer