A programmer 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. A programmer's primary computer language (C, Java, C++, etc. tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. ) is often prefixed to the above titles, and those who work in a web environment often prefix their titles with web. A programmer is not a software developer, software engineer, computer scientist, or software analyst. A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of Software. A computer scientist is a person that has acquired knowledge of Computer science, the study of the theoretical foundations of information and computation and their application In a Software development team a software analyst is the person who studies the software application domain and prepares the software Requirements and Specification These professions typically refer to individuals possessing programming skills as well as other software engineering skills. The term profession is applied to those persons who have specialized and technical skill or knowledge which they apply for a fee to certain tasks that ordinary and unqualified people cannot Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of Software. For this reason, the term programmer is sometimes considered an insulting or derogatory oversimplification of these other professions. This has sparked much debate among developers, analysts, computer scientists, programmers, and outsiders who continue to be puzzled at the subtle differences in these occupations. 
Those proficient in computer programming skills may become famous, though this regard is normally limited to software engineering circles. This is a list of Programmers notable for their contributions to software either as original author or architect or for later additions Many of the most notable programmers are often labeled hackers. In Computing, hacker has several meanings A community of enthusiast Computer programmers and Systems designers originated in the 1960s Programmers often have or project an image of individualist geekdom, resistance to "suits" (referring to both business suits literally and figuratively to the "Establishment"), controls and conformity. The word geek is a Slang term noting individuals as "a peculiar or otherwise odd person especially one who is perceived to be overly obsessed with one or more things The man's suit of clothes is a set of garments which are crafted from the same cloth
Ada Lovelace is popularly credited as history's first programmer. Augusta Ada King Countess of Lovelace (10 December 1815 London England &ndash 27 November 1852 Marylebone, London England born Augusta Ada Byron, was the only She was the first to express an algorithm intended for implementation on a computer, Charles Babbage's analytical engine, in October 1842. In Mathematics, Computing, Linguistics and related subjects an algorithm is a sequence of finite instructions often used for Calculation A computer is a Machine that manipulates data according to a list of instructions. The analytical engine, an important step in the History of computers, was the design of a mechanical general-purpose Computer by the British mathematician Charles  Her work never ran, though that of Konrad Zuse did in 1941. Konrad Zuse (ˈkɔnʁat ˈtsuːzə June 22, 1910 Berlin - December 18, 1995 Hünfeld) was a German The ENIAC programming team, consisting of Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman were the first working programmers. ENIAC, short for Electronic Numerical Integrator And Computer, was the first general-purpose electronic Computer. Kathleen "Kay" McNulty Mauchly Antonelli ( February 12 1921 &ndash April 20 2006) was one of the six original programmers of the Jean Bartik (born December 27 1924) was one of the original programmers for the ENIAC computer Betty Holberton ( March 7 1917 &ndash December 8 2001) was one of the six original programmers of ENIAC, the first general-purpose Marlyn Meltzer was one of the original programmers for the ENIAC computer Frances Spence ( March 2 1922) was one of the original programmers for the ENIAC computer Ruth Teitelbaum (née Lichterman) (1924 &ndash 1986 Dallas) was one of the original programmers for the ENIAC computer
Computer programmers write, test, debug, and maintain the detailed instructions, called computer programs, that computers must follow to perform their functions. Computer programs (also software programs, or just programs) are instructions for a Computer. Programmers also conceive, design, and test logical structures for solving problems by computer. Many technical innovations in programming — advanced computing technologies and sophisticated new languages and programming tools — have redefined the role of a programmer and elevated much of the programming work done today. Job titles and descriptions may vary, depending on the organization.
Programmers work in many settings, including corporate information technology departments, big software companies, and small service firms. Information technology ( IT) as defined by the Information Technology Association of America (ITAA is "the study design development implementation support Many professional programmers also work for consulting companies at client' sites as contractors. An independent contractor is a Natural person, Business or Corporation which provides goods or services to another entity under terms Licensing is not typically required to work as a programmer, although professional certifications are commonly held by programmers. The verb license or grant license means to give permission The noun license is the document demonstrating that permission Overview Certifications are earned from a Professional society and in general must be renewed periodically or may be valid for a specific period of time (e Programming is widely considered a profession (although some authorities disagree on the grounds that only careers with legal licensing requirements count as a profession). The term profession is applied to those persons who have specialized and technical skill or knowledge which they apply for a fee to certain tasks that ordinary and unqualified people cannot
Programmers' work varies widely depending on the type of business they are writing programs for. For example, the instructions involved in updating financial records are very different from those required to duplicate conditions on an aircraft for pilots training in a flight simulator. Although simple programs can be written in a few hours, programs that use complex mathematical formulas whose solutions can only be approximated or that draw data from many existing systems may require more than a year of work. In most cases, several programmers work together as a team under a senior programmer’s supervision.
Programmers write programs according to the specifications determined primarily by more senior programmers and by systems analysts. After the design process is complete, it is the job of the programmer to convert that design into a logical series of instructions that the computer can follow. The programmer codes these instructions in one of many programming languages. A programming language is an Artificial language that can be used to write programs which control the behavior of a machine particularly a Computer. Different programming languages are used depending on the purpose of the program. COBOL, for example, is commonly used for business applications which are run on mainframe and midrange computers, whereas Fortran is used in science and engineering. COBOL (ˈkoʊbɒl is one of the oldest programming languages still in active use Mainframes (often colloquially referred to as Big Iron) are Computers used mainly by large organizations for critical applications typically bulk data A minicomputer (colloquially mini) is a class of multi-user Computers that lies in the middle range of the computing spectrum in between the largest Multi-user Fortran (previously FORTRAN) is a general-purpose, procedural, imperative Programming language that is especially suited to C++ is widely used for both scientific and business applications. C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. Java, C# and PHP are popular programming languages for Web and business applications. C# (pronounced C Sharp is a Multi-paradigm PHP is a computer Scripting language. Originally designed for producing Dynamic web pages it has evolved to include a Command line interface capability Programmers generally know more than one programming language and, because many languages are similar, they often can learn new languages relatively easily. In practice, programmers often are referred to by the language they know, e. g. as Java programmers, or by the type of function they perform or environment in which they work: for example, database programmers, mainframe programmers, or Web developers. A Computer Database is a structured collection of records or data that is stored in a computer system A web developer is a Software developer or Software engineer who is specifically engaged in the development of World Wide Web applications or distributed
When making changes to the source code that programs are made up of, programmers need to make other programmers aware of the task that the routine is to perform. In Computer science, source code (commonly just source or code) is any sequence of statements or declarations written in some Human-readable They do this by inserting comments in the source code so that others can understand the program more easily. To save work, programmers often use libraries of basic code that can be modified or customized for a specific application. A library is a collection of information sources resources and services and the structure in which it is housed it is organized for use and maintained by a public body an institution This approach yields more reliable and consistent programs and increases programmers' productivity by eliminating some routine steps.
Programmers test a program by running it to ensure that the program works as expected. If errors do occur, the programmer must make the appropriate change and recheck the program until it produces the correct results. This process is called testing and debugging. Software testing is an Empirical investigation conducted to provide stakeholders with information about the quality of the product or service under test, with respect to the These are important parts of every programmer's job. Programmers may continue to fix these problems throughout the life of a program. Updating, repairing, modifying, and expanding existing programs sometimes called maintenance programming. Programmers sometimes contribute to instruction manuals or online help for those who will be using the program. Online help is topic-oriented procedural or reference information delivered through Computer software. Other times, technical writers do such work. A technical writer is a professional writer who designs writes creates maintains and updates technical Documentation &mdashincluding Online help, User guides
Computer programmers often are grouped into two broad types: application programmers and systems programmers. Application programmers write programs to handle a specific job, such as a program to track inventory within an organization. They also may revise existing packaged software or customize generic applications which are frequently purchased from independent software vendors. Independent software vendor (ISV is a business term for companies specializing in making or selling Software, designed for Mass marketing or for Niche markets Systems programmers, in contrast, write programs to maintain and control computer systems software, such as operating systems and database management systems. An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination A database management system ( DBMS) is Computer software designed for the purpose of managing Databases DBMSes may use any of a variety of Data models These workers make changes in the instructions that determine how the network, workstations, and CPU of the system handle the various jobs they have been given and how they communicate with peripheral equipment such as printers and disk drives. A data storage device is a device for recording (storing information (data Because of their knowledge of the entire computer system, systems programmers often help applications programmers debug, or determine the source of, problems that may occur with their programs. Computer programs (also software programs, or just programs) are instructions for a Computer.
Programmers in software development companies may work directly with experts from various fields to create software — either programs designed for specific clients or packaged software for general use — ranging from computer and video games to educational software to programs for desktop publishing and financial planning. A video game is a Game that involves interaction with a User interface to generate visual feedback on a video device. Desktop publishing (also known as DTP) combines a Personal computer and WYSIWYG page layout Software to create Publication Documents Programming of packaged software constitutes one of the most rapidly growing segments of the computer services industry.
In some organizations, particularly small ones, workers commonly known as programmer analysts are responsible for both the systems analysis and the actual programming work. The transition from a mainframe environment to one that is based primarily on personal computers (PCs) has blurred the once rigid distinction between the programmer and the user. Increasingly, adept end users are taking over many of the tasks previously performed by programmers. For example, the growing use of packaged software, such as spreadsheet and database management software packages, allows users to write simple programs to access data and perform calculations.
In addition, the rise of the Internet has made Web development a huge part of the programming field. Web development is a broad term for any activity related to developing a Web site for the World Wide Web or an Intranet. More and more software applications nowadays are Web applications that can be used by anyone with a Web browser. In Software engineering, a web application or webapp is an application that is accessed via Web browser over a network such as the Internet A web browser is a software application which enables a user to display and interact with text images videos music games and other information typically located on a Examples of such applications include the Google search service, the Hotmail e-mail service, and the Flickr photo-sharing service. Google Inc is an American public corporation, earning revenue from advertising related to its Internet search, e-mail, online Windows Live Hotmail, formerly known as MSN Hotmail and commonly referred to simply as Hotmail, is a free Webmail service of the Windows Live Flickr is an image and video hosting Website, Web services suite and Online community platform
Computer programming, offshore outsourcing, and Foreign Worker Visas became a controversial topic after the crash of the dot com bubble left many programmers without work or with lower wages. Offshore outsourcing is the practice of hiring an external organization to perform some business functions in a country other than the one where the products or services The Foreign Worker visa is an immigration document allowing a foreign national to temporarily immigrate to a country for purposes of employment The " dot-com bubble " (or sometimes the " IT bubble " was a speculative bubble covering roughly 1995–2001 (with a climax on March 10 Programming was even mentioned in the 2004 U. S. Presidential debate on the topic of offshore outsourcing. Offshore outsourcing is the practice of hiring an external organization to perform some business functions in a country other than the one where the products or services
Large companies claim there is a skills shortage with regard to programming talent. In its narrowest definition a labor shortage is an economic condition in which there are insufficient qualified candidates (employees to fill the market-place demands However, U. S. programmers and unions counter that large companies are exaggerating their case in order to obtain cheaper programmers from developing countries and to avoid paying for training in very specific technologies. Objective studies on this debate that both sides accept have been hard to come by and a distrust has formed between large companies and programming trade groups.
Enrollment in computer-related degrees in U. S. has dropped recently due to lack of general interests in science and mathematics and also out of an apparent fear that programming will be subject to the same pressures as manufacturing and agriculture careers. This situation has resulted in confusion about whether the U. S. economy is entering a "post-information age" and the nature of U. S. comparative advantages. In international trade the principle of comparative advantage refers to the fact that although one country may have an absolute disadvantage with another value can be created for both Technology and software jobs were supposed to be the replacement for factory and agriculture jobs lost to cheaper foreign labor, but if those are subject to free trade losses, then the nature of the next generation of replacement careers is not clear at this point.