What is a Computer Programmer?

A computer programmer, or coder, is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software.

One who practices or professes a formal approach to programming may also be known as a programmer analyst. The term programmer can be used to refer to a software developer, software engineer, computer scientist, or software analyst. However, members of these professions typically possess other software engineering skills beyond programming. For this reason, the term programmer is sometimes considered an oversimplification of these other professions.

This has sparked much debate amongst developers, analysts, computer scientists, programmers, and outsiders who continue to be puzzled at the subtle differences in these occupations. Within software engineering, programming (the implementation) is regarded as one phase in a software developmental process.

What does a Computer Programmer do?

A computer programmer works out the process of designing, writing, testing, debugging/troubleshooting and maintaining the source code of computer programs.

The 21st century has brought in an extraordinary amount of technological progress. In the centre of this modern technology sits computer programmers, with the technological skills to create and navigate any new projects that may come their way. It’s the job of computer programmers to take designs created by software developers and engineers and turn them into sets of instructions that computers can follow. These instructions result in the social media platforms, word processing programs, browsers, and more that people use every day.

There is an ongoing debate on the extent to which the writing of programs is an art, a craft, or an engineering discipline. In general, good programming is considered to be the measured application of all three, with the goal of producing an efficient software solution.

The discipline differs from many other technical professions in that a computer programmer, in general, does not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves a "programmer" or even a "software engineer."

However, representing oneself as a "professional software engineer" without a license from an accredited institution is illegal in many parts of the world. Because the discipline covers many areas, which may or may not include critical applications, it is debatable whether licensing is required for the profession as a whole. In most cases, the discipline is self-governed by the entities which require the programming.

A computer programmer figures out the process of designing, writing, testing, debugging/troubleshooting and maintaining the source code of computer programs. This source code is written in a programming language so the computer can 'understand' it. The code may be a modification of an existing source or something completely new.

The purpose of programming is to create a program that produces a certain desired behaviour (customization). The process of writing source code often requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms, and formal logic.

The computer programmer also designs a graphical user interface (GUI) so that non-technical users can use the software through easy, point-and-click menu options. The GUI acts as a translator between the user and the software code.

Some, especially those working on large projects that involve many computer programmers, use computer-assisted software engineering (CASE) tools to automate much of the coding process. These tools enable a programmer to concentrate on writing the unique parts of a program. A programmer working on smaller projects will often use “programmer environments,” or applications that increase productivity by combining compiling, code walk-through, code generation, test data generation, and debugging functions.

A computer programmer will also use libraries of basic code that can be modified or customized for a specific application. This approach yields more reliable and consistent programs and increases programmers' productivity by eliminating some routine steps. The computer programmer will also be responsible for maintaining the program’s health.

As software design has continued to advance, and some programming functions have become automated, computer programmers have begun to assume some of the responsibilities that were once performed only by software engineers. As a result, some computer programmers now assist software engineers in identifying user needs and designing certain parts of computer programs, as well as other functions.

Are you suited to be a computer programmer?

Computer programmers have distinct personalities. They tend to be investigative individuals, which means they’re intellectual, introspective, and inquisitive. They are curious, methodical, rational, analytical, and logical. Some of them are also conventional, meaning they’re conscientious and conservative.

Does this sound like you? Take our free career test to find out if computer programmer is one of your top career matches.

Take the free test now Learn more

What is the workplace of a Computer Programmer like?

Technological advances allow more work to be done from remote locations, so some computer programmers are able to work from home. Most programmers, however, work in clean, comfortable offices and spend most of their time in front of a computer. They usually work full 40 hour weeks and may be required to work overtime to meet deadlines or fix technical issues.

Because of the amount of time spent in front of a computer terminal, programmers could be susceptible to eyestrain, back problems, or hand and wrist problems such as carpal tunnel syndrome.

What types of computer programmers are there?

The products we use everyday, such as our computer, our smartphone, and our car, wouldn't be able to do what we ask them to do if it weren't for computer programmers. Computer programming is a very detail-oriented profession. Therefore, programmers are required to focus on code for long periods of time without losing focus or losing track of their progress. Often small but critical code issues can have a big impact technically, and can prevent a program from operating correctly. Persistence and the ability to detect and rectify small discrepancies as quickly as possible is essential in order to solve issues.

Computer programmers talking about their project.

There are four main categories of computer programmers. The following describes what the differences are between them and their roles:

Computer Hardware Programmer
Computers have their own machine language that they are able to understand and take instructions from. Computer hardware programmers write these instructions in a specific machine language (code) so that a computer knows what to do when someone presses the power button, types on the keyboard, or uses the mouse. They also write code so that text can be displayed when the computer turns on. Computer programs (a collection of instructions) are put in permanent memory storage so that as soon as someone turns on their computer, programmed information is displayed that prompts the user to choose what the computer does next.

Computer hardware programmers are also involved in researching, designing, developing, and testing computer equipment.

Various Job Tasks For Computer Hardware Programmers
Write detailed functional specifications for the hardware development process
Build, test, and modify product prototypes using models
Design, analyze and test performance of electrical, electronic, and computer equipment
Evaluate interface between hardware and software
Evaluate operational and performance requirements
Prepare designs, determine specifications and determine operational plans
Design and develop computer hardware (CPU's, support logic, microprocessors, circuits, printers and disk drives)
Monitor functioning and make necessary modifications
Monitor processes for compliance with standards
Recommend technical design or process changes to improve performance
Store, retrieve, and manipulate data for analysis
Analyze user needs and recommend appropriate hardware

Careers Related To Computer Hardware Programmer
Automation Engineer
Computer Architect
Computer Engineer
Computer Hardware Designer
Computer Hardware Developer
Computer Installation Engineer
Electronics Engineer
Field Service Engineer
Hardware Design Engineer
Hardware Engineer
Information Technology Consultant (IT Consultant)
Network Engineer
Systems Engineer
Systems Integration Engineer
Telecommunications Engineer

Web Developer
Computer programmers that design, create, and modify the millions of websites found on the Internet are called web developers. These types of computer programmers use software that allow them the ability to dictate what kinds of functions people are able to do when they access a website.

Web developers start by analyzing a user's needs before designing and structuring a website. They also add applicable graphics, audio, and video components if needed (often using software designed specifically to enable the creation of Web and multimedia content). Even a simple blog needs a web developer that can design the structure, function and the information that an audience can see.

Not only are web developers responsible for the look of a website, but they are also responsible for its performance, capacity, and sometimes content creation as well. Common programming languages for websites include HyperText Markup Language, JavaScript, Drupal, WordPress, and Joomla. These languages can be customized based on the website owner’s needs.

Careers Related To Web Developer
Front End Web Developer
Internet Architect
PHP Web Developer
Usability Specialist
User Experience Designer
User Interface Developer
Web Applications Developer
Web Architect
Web Page Developer
Web Programmer
Website Developer
Website Specialist
Web Specialist

Various Job Tasks For Web Developers
Analyze user needs
Select programming languages, design tools, or applications
Create web models or prototypes
Write computer programming code
Design, build, edit, or maintain websites
Use software, content creation tools, management tools, and digital media
Develop and document style guidelines for website content
Perform or direct website updates
Register websites with search engines
Prioritize needs, resolve tech issues, and develop content criteria
Back up files to local directories to prevent loss of information
Resolve software problems and troubleshoot issues
Ensure code is valid and meets industry standards
Ensure code is compatible with browsers, devices, or operating systems
Update knowledge of current Web technologies and practices
Develop test schedule to test performance
Create and develop databases that support Web applications and websites
Develop and integrate e-commerce strategies and marketing strategies
Provide technical support for computer network issues
Design and implement firewalls or message encryption
Develop website maps, application models, image templates, or page templates
Prepare graphics or other visual representations of information
Manage links to and from other websites
Document server load, bandwidth, database performance, and browser and device types

Software Developer
Software developers are computer programmers that focus on designing and managing programming functions. A function is a section of organized, reusable code that is used to perform an action (functions can also be called methods, sub-routines, and procedures).

It is possible for software developers to build entire software applications with only functions. These functions, for example, can enable a person to open their tax file, edit their tax documents, and then save or print them. Each type of program is designed differently and has instructions and specific tasks relevant to the company it services. So trying to edit photos in your bank software won't work because the software developer's design didn't included any instructions for your bank program to edit photos. Software developers also develop, design, create, and modify programs that run the operating systems for computers, networks and even smartphones. In a nutshell, a software developer's goal is to optimize operational efficiency by designing customized software.

Careers Related To Software Developer
Database Designer
Database Developer
Game Developer
Video Game Engineer
Information Architect
Information Systems Analyst
Information Technology Analyst (IT Analyst)
Information Technology Consultant (IT Consultant)
Interface Designer
Software Analyst
Software Applications Architect
Software Applications Designer
Software Applications Developer
Software Applications Engineer
Software Applications Specialist
Software Computer Specialist
Software Design Engineer
Software Designer
Software Development Engineer
Software Systems Engineer
Systems Analyst Programmer
Usability Engineer
User Interface Designer
Software Application Programmer

Various Job Tasks For Software Developers
Consult with customers about software system design
Review current systems
Design software applications
Analyze project data to determine specifications or requirements
Determine system performance standards
Modify existing software to correct errors or to improve its performance
Present ideas for system improvements, including cost proposals
Work closely with analysts, engineers, programmers, designers and staff
Develop and direct software system testing and validation procedures
Produce detailed specifications and write the program codes
Test the product in controlled, real situations before going live
Prepare training manuals for users
Maintain the systems once they are up and running
Analyze user needs and software requirements
Supervise the work of programmers, technologists and technicians

Database Developers
A database (an organized collection of data) collects, arranges, sorts and retrieves related pieces of information. It runs behind the scenes of user software and websites, and is generally stored and accessed electronically from a computer system.

Database developers (or database programmers) are the people who are responsible for creating and implementing computer databases. These types of computer programmers will analyze the data needs of a company and then produce an effective database system to meet those needs. They will also test database programs for efficiency and performance and troubleshoot and correct any problems that come up. Governments, banks, car dealerships, ecommerce businesses (think Amazon), all need specialized business systems and rely on their databases and the database developers who customize and revise them.

Careers Related to Database Developer
Database Administrator (DBA)
Network Administrator
Data Architect
Database Design Analyst
Database Analyst
Database Coordinator
Database Design Analyst
Database Designer
Database Engineer
Database Management System Specialist (DBMS Specialist)
Database Manager
Database Modeler
Database Programmer

Various Job Tasks For Database Developers
Design and development database programs
Create databases to store electronic data
Work as part of a project team to coordinate database development
Develop data model describing data elements and how they are used
Analyze existing databases and data needs of clients to develop effective systems
Use specific programming languages and codes
Follow implementation processes for new databases
Troubleshoot and provide solutions for any bugs in new database applications
Keep up with new and emerging technologies
Use SQL skills
Test programs or databases and make necessary modifications
Update computer database information

Computer Programmers are also known as:
Programmer Programmer Analyst Analyst Programmer Computer Programmer Analyst Internet Programmer Computer Analyst Programmer Web Programmer Computer Software Developer