What is Programming and Who Is a Programmer
Tags: programming, career, computerscience
Published: 2020-12-16 18:31:04

Without a doubt, terms like developers, programmers, Full-Stack engineers, etc are becoming buzzwords among the public, yet the element of programming is common among all of them. So this article in a nutshell helps you understand what is the foundation behind computer science or software engineering. It is worth mentioning that coding and programming terms are often used interchangeably.  
 
Put it simply, a programmer is a person who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming language or to a generalist who writes code for many kinds of software. Also, often the software and application terms are used interchangeably among IT professionals. One who practices or professes a formal approach to programming may also be known as a programmer analyst. A programmer's primary computer language (Assembly, COBOL, C, C++, C#, [Java](http://coding-bootcamps.com/course_info.php?urlfriendly=introduction-to-Android-Java-mobile-Application-Development), Lisp, Python, etc.) is often prefixed to these titles, and those who work in a web environment often prefix their titles with web. A full spectrum of occupations, including: software developers, web developers, mobile applications developers, embedded firmware developers, cloud engineers, software engineers, computer scientists, or software analysts, while they do involve programming, also requires a range of other skills. For instance, all programmers need to have good analytical and problem solving skills as well as soft skills like communication. Also, programmers in general need to be creative as they often need to come up with unique solutions to new problems. Lastly, the changes in the IT landscape require programmers to learn new techniques, tools and terminologies frequently. Indeed, many companies have routine plans to upskill their technical teams.

Computer Programming is a process that leads from an original formulation of a computing problem to executable computer programs. Programming involves activities such as analysis, developing understanding, generating algorithms, verification of requirements of algorithms including their correctness and resources consumption, and implementation (known as coding) of algorithms in a target programming language. Source code is written in one or more programming languages. The purpose of programming is to find a sequence of instructions that will automate performing a specific task or solving a given problem. The process of programming thus often requires expertise in many different subjects, including knowledge of the application domain, specialized algorithms, and formal logic. It is worth mentioning that all programming languages have one thing in common- the programming logic. For instance, the conditional statement logic is the same in Java, C++ and PHP; however, they use different languages known as syntax to represent the logic. At a very high level, there are 6 major career tracks for IT professionals: web developer, mobile App developer, software engineer, cloud engineer, system administration, and blockchain. [Here](https://learn.coding-bootcamps.com/p/introduction-to-information-technology-career-roadmap-for-beginners) is a free course for learning more about said 6 career tracks.

Other related tasks of programmers are testing, debugging, and maintaining the source code, implementation of the build system, and management of derived artifacts such as machine code of computer programs. These might be considered part of the programming process, but often the term software or application development is used for this larger process with the term programming, implementation, or coding reserved for the actual writing of source code. Software engineering combines engineering techniques with software development practices. One of most popular and well-established methodologies for software engineering is Software Development Life Cycle (SDLC). It follows the below 6 essential steps sequentially for building high quality software applications.  

1.	Requirement analysis
2.	Planning
3.	Software design such as architectural design
4.	Software development
5.	Testing
6.	Deployment

Computer Program is a collection of instructions that performs a specific task when executed by a computer. A computer requires programs to function and typically executes the program's instructions in a central processing unit. Unlike humans, computers just blindly follow the instructions and can not judge whether instructions are true or false. As such, if a computer receives erroneous instructions as its input, it will output errors or misleading results. Therefore, designing a well-thought-out program requires lots of foresight.

A computer program is usually written by a computer programmer in a programming language. From the program in its human-readable form of source code, a compiler can derive machine code—a form consisting of instructions that the computer can directly execute. Alternatively, a computer program may be executed with the aid of an interpreter. A part of a computer program that performs a well-defined task is known as an algorithm. A collection of computer programs, libraries, and related data are referred to as software. Computer programs may be categorized along functional lines, such as application software and system software.
 
###Summary###
In this article, we briefly reviewed the terms like programming and programmer and highlighted the context in which these terms are used. This article gives you a roadmap for becoming a software or application developer. Specifically, the first step in becoming a programmer is to choose a right [IT career path] (https://coding-bootcamps.com/career_track.html). Then, start learning one or two coding languages and practice them.  Read [Comprehensive Review of Coding and Computer Programming](https://coding-bootcamps.com/blog/comprehensive-overview-of-coding-and-computer-programming.html) article to learn more on the history and evolution of programming.

###Resources###
Here is a list of free courses for starting your programming career.

[IT Career Roadmap Explained](https://learn.coding-bootcamps.com/p/introduction-to-information-technology-career-roadmap-for-beginners)
    [Web Design with Bootstrap](https://learn.coding-bootcamps.com/p/learn-how-to-build-websites-with-bootstrap-by-examples)
    [User Experience Best Practices](https://learn.coding-bootcamps.com/p/learn-how-to-improve-user-experiences-for-websites)
    [Intro to Search Engine Optimization](https://learn.coding-bootcamps.com/p/learn-how-search-engine-optimization-works)
    [Web Design with WordPress](https://learn.coding-bootcamps.com/p/introduction-to-wordpress-web-development)
    [Introduction to Drupal CMS](https://learn.coding-bootcamps.com/p/build-dynamic-websites-with-drupal-by-examples)
    [Intro to Joomla CMS](https://learn.coding-bootcamps.com/p/build-dynamic-websites-with-joomla-by-examples)
    [Intro to Cybersecurity](https://learn.coding-bootcamps.com/p/essential-practical-guide-to-cybersecurity-for-system-admin-and-developers)
    [Introduction to Cloud Technology](https://learn.coding-bootcamps.com/p/introduction-to-cloud-technology)
    [Recorded Live Webinars and Classes](https://learn.coding-bootcamps.com/p/recorded-live-webinars-and-classes)