Occupation · SOC 15-1251

Computer Programmers

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

ProgrammingCritical ThinkingComplex Problem SolvingActive ListeningQuality Control AnalysisSystems AnalysisReading ComprehensionWritingJudgment and Decision MakingTime ManagementSystems EvaluationSpeakingSocial PerceptivenessOperations AnalysisMathematicsActive LearningMonitoringCoordinationTechnology DesignSciencePersuasionManagement of Personnel ResourcesInstructingLearning StrategiesTroubleshootingService OrientationOperations MonitoringNegotiationManagement of Material ResourcesManagement of Financial ResourcesInstallationOperation and ControlRepairingEquipment SelectionEquipment Maintenance

Knowledge areas

Computers and ElectronicsMathematicsEngineering and TechnologyEnglish LanguageCustomer and Personal ServiceAdministration and ManagementDesignEducation and TrainingGeographyAdministrativeProduction and ProcessingEconomics and AccountingCommunications and MediaTelecommunicationsPhysicsSales and MarketingPsychologySociology and AnthropologyPersonnel and Human ResourcesTransportationForeign LanguageFine ArtsMechanicalMedicine and DentistryPublic Safety and SecurityLaw and GovernmentChemistryTherapy and CounselingHistory and ArcheologyPhilosophy and TheologyFood ProductionBuilding and ConstructionBiology

Technology & tools

A programming language APLABC CompilerABC: the AspectBench Compiler for AspectJAJAXAWKAdaAdobe AcrobatAdobe ActionScriptAdobe ColdFusionAdobe DreamweaverAdobe FlexAdobe IllustratorAdobe PhotoshopAdobe PostScriptAdvanced business application programming ABAPAlgorithmic language ALGOLAmazon DynamoDBAmazon Elastic Compute Cloud EC2Amazon KinesisAmazon RedshiftAmazon Simple Storage Service S3Amazon Web Services AWS CloudFormationAmazon Web Services AWS softwareAmerican National Standards Institute ANSI CAnsible softwareApache AntApache CassandraApache GroovyApache HTTP ServerApache HadoopApache HiveApache KafkaApache MavenApache PigApache SolrApache SparkApache StrutsApache Subversion SVNApache TomcatAtlassian Bamboo

Representative tasks

Working with ComputersProcessing InformationAnalyzing Data or InformationGetting InformationMaking Decisions and Solving ProblemsThinking CreativelyIdentifying Objects, Actions, and EventsUpdating and Using Relevant KnowledgeCommunicating with Supervisors, Peers, or SubordinatesEstimating the Quantifiable Characteristics of Products, Events, or InformationDocumenting/Recording InformationDeveloping Objectives and StrategiesOrganizing, Planning, and Prioritizing WorkEvaluating Information to Determine Compliance with StandardsDeveloping and Building TeamsInterpreting the Meaning of Information for OthersMonitoring Processes, Materials, or SurroundingsEstablishing and Maintaining Interpersonal RelationshipsProviding Consultation and Advice to OthersCoordinating the Work and Activities of OthersCommunicating with People Outside the OrganizationTraining and Teaching OthersJudging the Qualities of Objects, Services, or PeopleCoaching and Developing OthersInspecting Equipment, Structures, or MaterialsGuiding, Directing, and Motivating SubordinatesMonitoring and Controlling ResourcesScheduling Work and ActivitiesResolving Conflicts and Negotiating with OthersAssisting and Caring for OthersSelling or Influencing OthersPerforming Administrative ActivitiesRepairing and Maintaining Electronic EquipmentStaffing Organizational UnitsDrafting, Laying Out, and Specifying Technical Devices, Parts, and EquipmentControlling Machines and ProcessesPerforming General Physical ActivitiesPerforming for or Working Directly with the PublicHandling and Moving ObjectsRepairing and Maintaining Mechanical Equipment

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 programmer.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 programmer.
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 programmers — 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

47 alternate job titles map to this occupation.

.NET ProgrammerAnalyst ProgrammerApplication ProgrammerApplication Programmer AnalystApplications ProgrammerAutomation ProgrammerBeta TesterBug Bounty HunterBusiness ProgrammerCertified Ethical HackerClient Server ProgrammerCloud EngineerCOBOL Programmer (Common Business Oriented Language Programmer)Computer Game ProgrammerComputer Language CoderComputer ProgrammerComputer Programmer AnalystDatabase ProgrammerDeveloper AnalystE-Commerce Programmer (Electronic Commerce Programmer)EngineerEngineering and Scientific ProgrammerEngineering ProgrammerGame ProgrammerGraphic EngineerInternet ProgrammerIT Programmer (Information Technology Programmer)Java ArchitectJava DeveloperJava ProgrammerMainframe ProgrammerMalware AnalystNumerical Control Programmer (NC Programmer)Object-Oriented ProgrammerOperating System ProgrammerProgram AnalystProgrammerProgrammer AnalystScientific ProgrammerSoftware Programmer
← All occupationsEmployer demand by state →