What Does a Computer Programmer Do?
Computer programmers create, modify, and test the code that allows software applications to function. They are valuable contributors to an organization’s systems software and computing infrastructure – writing new and refining existing code to maintain application performance.
A computer programmer’s duties commonly include monitoring system performance, updating existing codebases, and troubleshooting issues that arise from programming errors or unclear specifications. Security is another significant focus, as they work to make applications resilient against cybersecurity threats and data breaches. Overall, programmers play a critical role in maintaining the technical health of an organization, tackling a diverse array of tasks to ensure software runs smoothly.
Are you a job seeker?
of job openings
and apply online
Computer Programmer Average Salary
Computer programmer salaries vary by experience, industry, organization size, and geography. To explore salary ranges by local market, please visit our sister site zengig.com.
The average U.S. salary for a Computer Programmer is:
Computer Programmer Duties and Responsibilities
- Writing and testing code
- Identifying and fixing errors in code
- Updating existing programs
- Managing database systems
- Rewriting code for different operating systems
- Editing source-code
- Securing code against cyber threats
- Implementing build systems
- Providing tech support
Computer Programmer Skills and Experience
- Exceptional IT proficiency
- Advanced knowledge of operating systems
- Complex problem-solving skills
- Ability to learn new technology
- Excellent communication skills
- Ability to work under pressure to meet deadlines
- Ability to work closely with software developers, application architects, and engineers
- Strong math comprehension
- Experience in computer languages such as Java, C++, SQL, C#, and HTML
- Experience in designing, coding, testing, deploying, and maintaining computer applications
- Experience writing high-quality, efficient, and easily testable code
- Experience communicating with both technical and non-technical customers
Computer Programmer Education
Many companies require, and most prefer, a bachelor’s degree in computer science, software engineering, mathematics, or information technology. Studies and coursework should include algorithms, data structures, and programming languages like Java, C++, Python, and SQL.
Certifications To Look For
- Microsoft Certified: Azure Fundamentals. The Azure Fundamentals certification proves a candidate’s understanding of cloud concepts. They will learn about Azure services, core solutions and management tools on Azure, and general and network security features. This certification is ideal for administrators, developers, and technology managers.
- CLP – C Certified Professional Programmer Certification. The CLP demonstrates a candidate’s ability to code and design related to advanced topics of the C programming language. They’ll learn advanced programming techniques, including the library functions and the usage of the preprocessor.
- AWS Certified Developer Associate (AWS CDA). Intended for developers who have experience developing and maintaining an AWS-based application, the AWS CDA will have an understanding of core AWS services and uses, basic AWS architecture best practices, as well as proficiency in developing, deploying, and debugging cloud-based applications using AWS.
- CSSLP – Certified Secure Software Lifecycle Professional. The CSSLP is a cyber security certification designed to show employers and peers that candidates have the advanced technical skills and knowledge necessary for authentication, authorization, and auditing throughout the software development lifecycle using best practices, policies, and procedures established by the cybersecurity experts at the International Information System Security Certification Consortium (ISC)².
Sample Job Descriptions
It’s important to include the right content in your job description when hiring a computer programmer. The following examples can serve as templates for attracting the best available talent for your team.
Example 1: Entry-level Computer Programmer
The entry-level computer programmer will define, develop, test, analyze, and maintain new software applications to support achieving business requirements. Responsibilities include writing, coding, testing, and analyzing software programs and applications. You will also research, design, document, and modify software specifications throughout the production life cycle.
- Software and mobile app programming and testing
- Developing and deploying computer applications
- Executing code builds to test and production environments
- Fixing bugs in existing code
- Collaborating with product and design teams
- Maintaining documentation
- Providing testing, documentation, training, and support for third-party software products
- Resolving user problems and questions
- Write clean, well-documented code
- Analytical and critical thinking abilities
- Knowledge of SQL and MSSQL
- Strong attention to detail
- Self-Motivation and Drive
- Ability to effectively communicate thoughts and ideas
- Proficiency with Microsoft Office tools (Excel, Visio, Access)
- Bachelor’s in computer science, engineering, or a related field
- 1 year of experience in software development
- Experience with languages (Java, C++, VB.NET, VB)
- Excellent communication skills
Example 2: Mid-level Programmer
What you’ll contribute
- A strong commitment to developing your skills and expertise while enhancing our mission-critical applications
- A desire to work with other talented and committed people
- Enthusiasm for developing and supporting great software
- An eagerness to dig into hard problems, and enjoyment of experimentation to come up with a simple, elegant solution essential functions
- Responsible for software design, development, coding, unit testing, and creating supporting documentation
- Testing software for the validity of results, accuracy, reliability, and conformance to established standards
- Providing work estimates that facilitate prioritization, assignment of tasks, and creation of a delivery schedule
- Supporting SaaS system integrations
- Providing technical expertise to support daily business operations
- Actively collaborating with teammates to create and maintain architecture, design, implementation, and security best practices, knowledge, skills, and ability
- Proficient in C# development
- Knowledge of Dependency Injection (DI) in a C# environment
- Knowledge of Relational Databases
- Ability to develop services using WebAPI and WCF
- Understanding of workflow-enabled systems.
- Able to develop web applications using ASP.net MVC, Blazor, and/or Angular
- Knowledge of one or more of the following would also be helpful (or equivalent): ASP.NET MVC, MVVM, WebAPI, WCF, WPF, WinForms, Angular 5+, SQL
- Work with high-level supervision, manage time effectively, maintain control over current projects/responsibilities, and follow up on relevant issues
Experience and education
- Three (3) to Five (5) years of previous work experience in analyzing, designing, and programming
- Three (3) years of experience with MS SQL Server, C #, Net Framework 4.0+ /Core 2.1+, writing web and/or RESTful services, Visual Studio 2017+, and developing Windows applications
- Bachelor’s Degree in Information Systems, Computer Science, or a related field is a plus. (Equivalent work experience may be substituted for degree requirements)
- Experience working in the financial services industry and knowledge of related business processes would be preferred
- One year of API experience (3rd party); data integrations with disparate systems – plus
Example 3: Senior Computer Programmer (Secret Clearance)
Responsibilities include, but are not limited to
- Develop, configure, and maintain the control software for our OEM product line
- Provide technical expertise and recommendations in assessing new software projects and initiatives to support and enhance existing based systems. Write tools capable of interfacing with published Application Programming Interfaces (API)
- Investigate and resolve application functionality-related issues and provide first-level support and troubleshooting
- Coordinate application development for multiple projects
- Troubleshoot technical issues and identifies modifications needed in existing applications to meet changing user requirements
- Write technical procedures and documentation for the applications including operations, user guides, etc.
- Produce technical documentation for new and existing applications
- Assist in the creation of the system design and functional specifications for new development projects
- Requires active SECRET security clearance. Requires ability to gain and maintain TOP SECRET security clearance
- Bachelor’s degree in Computer Programing related field (can be substituted with significant related experience)
- 5+ years of technical experience providing research and collaboration with equipment designers and/or hardware engineers in the planning, design, development, and utilization of computer systems
- 5+ years of technical experience building and coding applications and/or modules using languages such as LabVIEW and C/C++
- 5+ years of technical experience with National Instrument’s product line, including NI-VISA, MAX, DAQ, and LabVIEW version 2012
- The capability of coding applications in UNIX environments to include Eclipse IDE
- The capability of designing modern graphical user interfaces to meet user needs, preparing operating instructions, compiling documentation of project/task development, analyzing system capabilities, and resolving questions about system software
- Possess expert knowledge of networking, open system standards, and deployment technologies and must be able to demonstrate a high degree of accuracy and attention to detail
- Active TOP SECRET clearance
- Ability to write software code to communicate over networks and interface with clients and servers
- Experience with MISRA C
- In-depth knowledge of security, information assurance concerns, cryptographic techniques, and how they work
- Experience with Software Development Kits (SDKs) and Application Programming Interface (APIs)
How to Hire a Computer Programmer
When hiring a computer programmer, first consider the following:
- Recruiting: Do you have the knowledge, tools, and resources to attract and screen candidates?
- Complexity: Do you need a senior professional, or will mid or junior-level skills and experience suffice?
- Duration: Is this a one-time project or an ongoing need?
- Management: Do you have the time and expertise to direct the work effectively?
- Urgency: How soon does the work need to be completed?
- Headcount: Do you have the budget and approval for an internal employee, or should you consider alternate options?
Answering these questions will help determine the best course of action for your current hiring need. Fortunately, great options exist for every scenario. These are our recommendations:
1. Use 4 Corner Resources (or another professional recruiting firm)
The heavy lifting is done for you when working with a top-tier staffing company like 4 Corner Resources. We source, screen, recruit, and deliver only the most qualified candidate(s), saving you significant time and effort throughout the hiring process while you remain focused on your core business. Understanding your needs and ensuring the right candidate for the position is the key to our success.
This is the best route to take when:
- You need to fill the position quickly
- You want access to a vast talent pool of high-quality, prescreened candidates
- Your position is suited for temporary hiring services, contract staffing, or contract-to-hire recruiting, and you intend to direct the work activity.
- You are hiring an employee as a direct placement but aren’t able to recruit effectively or efficiently with your internal staff.
- You aren’t familiar with current salary rates, market trends, and available skill sets
2. Hire an experienced freelancer
The freelance, or gig, economy continues to grow, with more talent available daily. Freelancers provide high-quality work without a long-term commitment. They can offer you a fresh perspective, more flexibility, and increase efficiency. While the freelance market isn’t ideal for every position, computer programmers are often a great fit.
We recommend this option when:
- Your need is project-based
- The work can be performed remotely
- You do not intend to direct the daily work activity
- You are hiring for expertise your internal team does not possess
- You do not require an employee to work onsite or follow a specific schedule
We recommend using either Toptal, Upwork, or both.
Toptal is an exclusive network of the top freelance software developers, designers, finance experts, product managers, and project managers in the world. Toptal vets its freelancers before making them accessible, ensuring their legitimacy. Top companies hire Toptal freelancers for their most important projects. Hiring a computer programmer on Toptal can help you quickly get the results you need.
Upwork is a freelance talent network that helps individuals connect with experts in a variety of fields to accomplish project-based needs. When you have a specific, well-defined goal in mind, this can be a great path to hiring an experienced computer programmer. If you are satisfied with the outcome you can continue to book the same freelancer through Upwork’s easy-to-use project interface.
3. Advertise your opening on a top job board
Your best option may be to advertise your opening on a proven job board. There are many widely used job sites out there that draw visits from qualified candidates. If you have someone internally who can dedicate the time and energy to sort through applications and screen individuals effectively, this can be a great choice.
We recommend using a job board when:
- Your internal recruiting team has the knowledge and experience to assess candidate qualifications
- You are hiring a direct employee and have time to manage the entire recruiting effort
- You have a process for receiving, screening, and tracking all resumes and applications
- You are prepared to respond to all applicants
We recommend CareerBuilder for computer programmer openings:
CareerBuilder has been a trusted source for hiring since 1995. Reach 80+ million unique, diverse U.S. job seekers annually by posting your jobs through their talent acquisition channels. Through CareerBuilder, you can engage candidates and drive them into your sourcing pipeline. We recommend using CareerBuilder for hiring when you have the internal resources and processes to review, screen, and reply to all applicants.
4. Leverage your internal resources
You can utilize your own website, social media, and employees to assist in your search for top candidates.
A company website posting should be the first step in notifying prospective candidates that you are hiring. Social media can also be a powerful tool for spreading the word about your new opening. As far as exposure is concerned, this option can be as good as some job boards when you have a large enough following across various platforms, like LinkedIn, Instagram, Facebook, TikTok, and Twitter.
Current employees are every organization’s greatest asset. Encourage your internal team to promote job openings to their network by offering cash and other incentives.
We recommend these options when:
- Your brand has great name recognition
- You can consistently monitor and respond to candidate activity through your website and social media accounts
- You have a process in place to quickly and broadly communicate job openings and requirements
- You have an effective employee referral program in place
If you aren’t sure which path is best, schedule a discovery call today with our seasoned recruiting professionals. The 4 Corner team is on standby to help you find the best option for your unique hiring need.
Sample Interview Questions
- What programming languages can you work with?
- Which one do you prefer?
- What was the first programming language you learned?
- What was the most recent one?
- How do you approach high-pressure situations? Give an example.
- What do you do first when creating something new?
- How do you keep up with current trends and advances?
- How do you keep your programming and technical knowledge up to date?
- Which one do you prioritize when evaluating server software and hardware infrastructure?
- Which software development processes are you familiar with?
- Can you provide us with coding samples from previous jobs?
- What do you enjoy most about programming?
- How will your skills and personality contribute to our team?
- What tools have you used for version control and team organization?