programmer this article is about people who write computer software for other uses see programmer disambiguation for someone who performs coding in the social sciences see coding social sciences coder redirects here for the settlement in pennsylvania see coder pennsylvania for other uses see encoder two programmers working on an ibm type 704 at naca 1954 a programmer developer dev coder or software engineer is a person who creates computer software the term computer programmer can refer to a specialist in one area of computers 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 programmers primary computer language assembly cobol c c c java lisp python etc is often prefixed to these titles and those who work in a web environment often prefix their titles with web a range of occupations including software developer web developer mobile applications developer embedded firmware developer software engineer computer scientist or software analyst while they do involve programming also require a range of other skills the use of the simple term programmer for these positions is sometimes considered an insulting or derogatory simplification history ada lovelace is considered by many as the first computer programmer british countess and mathematician ada lovelace is often considered the first computer programmer as she was the first to publish an algorithm intended for implementation on charles babbages analytical engine in october 1842 intended for the calculation of bernoulli numbers because babbages machine was never completed to a functioning standard in her time she never saw this algorithm run the first person to run a program on a functioning modern electronically based computer was computer scientist konrad zuse in 1941 the eniac programming team consisting of kay mcnulty betty jennings betty snyder marlyn wescoff fran bilas and ruth lichterman were the first regularly working programmers betty jennings and fran bilas part of the first eniac programming team international programmers day is celebrated annually on 7 january in 2009 the government of russia decreed a professional annual holiday known as programmers day to be celebrated on 13 september 12 september in leap years it had also been an unofficial international holiday before that software the word software was first used as early as 1953 but did not appear in print until the 1960s the software industry expanded in the early 1960s almost immediately after computers were first sold in massproduced quantities universities government and business customers created a demand for software many of these programs were written inhouse by fulltime staff programmers some were distributed freely between users of a particular machine for no charge others were done on a commercial basis and other firms such as computer sciences corporation founded in 1959 started to grow the computerhardware makers started bundling operating systems system software and programming environments with their machines the industry expanded greatly with the rise of the personal computer pc in the mid1970s which brought computing to the desktop of the office worker in the following years it also created a growing market for games applications and utilities dos microsofts first operating system product was the dominant operating system at the time in the early years of the 21st century another successful business model has arisen for hosted software called softwareasaservice or saas this was at least the third time nature of the work some of this section is from the occupational outlook handbook 200607 edition which is in the public domain as a work of the united states government computer programmers write test debug and maintain the detailed instructions called computer programs that computers must follow to perform their functions 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 it departments big software companies small service firms and government entities of all sizes many professional programmers also work for consulting companies at client sites as contractors licensing is not typically required to work as a programmer although professional certifications are commonly held by programmers programming is widely considered a profession although some authorities disagree on the grounds that only careers with legal licensing requirements count as a profession programmers work varies widely depending on the type of business for which they are writing programs 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 simple programs can be written in a few hours more complex ones may require more than a year of work while others are never considered complete but rather are continuously improved as long as they stay in use in most cases several programmers work together as a team under a senior programmers supervision a software engineer writing javascript 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 different programming languages are used depending on the purpose of the program cobol for example is commonly used for business applications that typically run on mainframe and midrange computers whereas fortran is used in science and engineering c is widely used for both scientific and business applications java c vb and php are popular programming languages for web and business applications 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 eg 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 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 they do this by inserting comments in the source code so that others can understand the program more easily and by documenting their code to save work programmers often 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 testing and debugging programmers test a program by running it and looking for bugs errors as they are identified the programmer usually makes the appropriate corrections then rechecks the program until an acceptably low level and severity of bugs remain this process is called testing and debugging these are important parts of every programmers job programmers may continue to fix these problems throughout the life of a program updating repairing modifying and expanding existing programs is sometimes called maintenance programming programmers may contribute to user guides and online help or they may work with technical writers to do such work application versus system programming 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 systems programmers in contrast write programs to maintain and control computer systems software such as operating systems and database management systems 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 qualifications and skills a software developer needs to have deep technical expertise with certain aspects of computing some positions will require a degree in a relevant field such as computer science information technology engineering programming or any other it related post graduate studies an ideal software developer is a selfmotivated professional carrying a dynamic handson experience on key languages of programming such as c c php java c javascript vb oracle uml linux python unix xml http smalltalk or other software testing tools according to developer eric sink the differences between system design software development and programming are more apparent already in the current market place there can be found a segregation between programmers and developers in that one who implements is not the same as the one who designs the class structure or hierarchy even more so that developers become software architects or systems architects those who design the multileveled architecture or component interactions of a large software system types of software 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 video games to educational software to programs for desktop publishing and financial planning programming of packaged software constitutes one of the most rapidly growing segments of the computer services industry some companies or organizations even small ones have set up their own it team to ensure the design and development of inhouse software to answer to very specific needs from their internal endusers especially when existing software are not suitable or too expensive this is for example the case in research laboratories in some organizations particularly small ones people 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 currently more software applications are web applications that can be used by anyone with a web browser examples of such applications include the google search service the outlookcom email service and the flickr photosharing service programming editors also known as source code editors are text editors that are specifically designed for programmers or developers for writing the source code of an application or a program most of these editors include features useful for programmers which may include color syntax highlighting auto indentation autocomplete bracket matching syntax check and allows plugins these features aid the users during coding debugging and testing globalization market changes in the uk according to bbc news 17 of computer science students could not find work in their field 6 months after graduation in 2009 which was the highest rate of the university subjects surveyed while 0 of medical students were unemployed in the same survey market changes in the us computer programming offshore outsourcing and foreign worker visas became a controversial topic after the crash of the dotcom bubble left many programmers without work or with lower wages programming was even mentioned in the 2004 us presidential debate on the topic of offshore outsourcing large companies claim there is a skills shortage with regard to programming talent however us programmers and unions counter that large companies are exaggerating their case in order to obtain cheaper programmers from developing countries and avoid previously employer paid training using industry specific technologies not covered in most accredited degree programs enrollment in computerrelated degrees in us has dropped recently computer programming portal game programmer list of programmers software development process software engineering system administrator weinberg gerald m the psychology of computer programming new york van nostrand reinhold 1971 an experiential study of the nature of programming work lucas rob dreaming in code new left review 62 marchapril 2010 pp125132 look up programmeror coder in wiktionary the free dictionary the future of it jobs in america article how to be a programmer an overview of the challenges of being a programmer the us department of labors description of computer programmers 