All Topics  
Computer programming

 

   Email Print
   Bookmark   Link






 

Computer programming



 
 
Computer programming (often shortened to programming or coding) is the process of writing, testing, debugging/troubleshooting, and maintaining the source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 of computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
s. This source code is written in a programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
. The code may be a modification of an existing source or something completely new. The purpose of programming is to create a program that exhibits a certain desired behaviour (customization).






Discussion
Ask a question about 'Computer programming'
Start a new discussion about 'Computer programming'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Computer programming (often shortened to programming or coding) is the process of writing, testing, debugging/troubleshooting, and maintaining the source code
Source code

In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
 of computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
s. This source code is written in a programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
. The code may be a modification of an existing source or something completely new. The purpose of programming is to create a program that exhibits 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 algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
s and formal logic
Logic

Logic is the study of the principles of valid demonstration and inference. Logic is a branch of philosophy, a part of the classical Trivium . The word derives from Greek language ?????? , fem....
.

Overview

Within software engineering
Software engineering

Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
, programming (the implementation) is regarded as one phase in a software development process
Software development process

A software development process is a structure imposed on the development of a software product. Synonyms include Software_Lifecycle_Processes and software process....
.

There is an ongoing debate on the extent to which the writing of programs is an art
Art

Art is the process or product of deliberately arranging elements in a way that appeals to the senses or emotions. It encompasses a diverse range of human activities, creations, and modes of expression, including music and literature....
, a craft
Craft

A craft is a skill, especially involving practical The Arts. It may refer to a trade or particular art.The terms is often used as part of a longer word ....
 or an engineering
Engineering

Engineering is the discipline and profession of applying Technology and science knowledge and utilizing natural laws and physical resources in order to design and implement materials, structures, machines, devices, systems, and process that safely realize a desired objective and meet specified criteria....
 discipline. Good programming is generally considered to be the measured application of all three, with the goal of producing an efficient and evolvable software solution (the criteria for "efficient" and "evolvable" vary considerably). The discipline differs from many other technical professions in that programmer
Programmer

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....
s generally do not need to be licensed or pass any standardized (or governmentally regulated) certification tests in order to call themselves "programmers" or even "software engineers." However, representing oneself as a "Professional Software Engineer"
Professional Engineer

Professional Engineer is the term for registered or licensed engineers in some countries who are permitted to offer their professional services directly to the public....
 without a license from an accredited institution is illegal in many parts of the world.

Another ongoing debate is the extent to which the programming language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 used in writing computer program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
s affects the form that the final program takes. This debate is analogous to that surrounding the Sapir-Whorf hypothesis in linguistics
Linguistics

Linguistics is the science study of natural language. Linguistics encompasses a number of sub-fields. An important topical division is between the study of language structure and the study of Meaning ....
, that postulates that a particular language's nature influences the habitual thought of its speakers. Different language patterns yield different patterns of thought. This idea challenges the possibility of representing the world perfectly with language, because it acknowledges that the mechanisms of any language condition the thoughts of its speaker community.

Said another way, programming is the craft of transforming requirement
Requirement

In engineering, a requirement is a singular documented need of what a particular product or service should be or do. It is most commonly used in a formal sense in systems engineering or software engineering....
s into something that a computer
Computer

A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
 can execute.

History of programming

Ibm402plugboard
The concept of devices that operate following a pre-defined set of instructions traces back to Greek Mythology
Greek mythology

Greek mythology is the body of myths and legends belonging to the Ancient Greece concerning their List of Greek mythological figures#Immortals and Greek hero cult, Cosmology#Metaphysical cosmology, and the origins and significance of their own cult and ritual practices....
, notably Hephaestus
Hephaestus

Hephaestus was a Greek god whose Roman equivalent was Vulcan . He was the god of technology, blacksmiths, craftsmen, artisans, sculpture, metals, metallurgy, Fire and volcanoes....
 and his mechanical servants. The Antikythera mechanism
Antikythera mechanism

The Antikythera mechanism , is an ancient mechanical calculator designed to calculate astronomy positions. It was discovered in the Antikythera wreck off the Greece island of Antikythera, between Kythera and Crete, in 1901....
 was a calculator utilizing gears of various sizes and configuration to determine its operation. The earliest known programmable machine
Machine

A machine is any device that uses energy to perform some activity. In common usage, the meaning is that of a device having parts that perform or assist in performing any type of work....
s (machines whose behavior can be controlled and predicted with a set of instructions) were Al-Jazari
Al-Jazari

Abu al-'Iz Ibn Isma'il ibn al-Razaz al-Jazari was an important Arab Ulema, Inventions in the Muslim world, Timeline of Muslim scientists and engineers, Artisan, Islamic art and Islamic astronomy from Al-Jazira, Mesopotamia who lived during the Islamic Golden Age ....
's programmable Automata
Humanoid robot

A humanoid robot is a robot with its overall appearance based on that of the human body. In general humanoid robots have a torso with a head, two arms and two legs, although some forms of humanoid robots may model only part of the body, for example, from the waist up....
 in 1206. One of Al-Jazari's robot
Robot

A robot is a virtual or mechanical artificial agent. In practice, it is usually an Electromechanics which, by its appearance or movements, conveys a sense that it has Intention or Agency of its own....
s was originally a boat with four automatic musicians that floated on a lake to entertain guests at royal drinking parties. Programming this mechanism
Mechanism

Mechanism may refer to:*Mechanism , explaining how a feature is created.*Reaction_mechanism , explaining a reaction pathway.*Mechanism , a theory that all natural phenomena can be explained by physical causes...
's behavior meant placing peg
PEG

PEG or "Peg" may refer to:* Parsing expression grammar* PCI Express Graphics* PEG ratio , a financial ratio which relates the share price of a company's stock to its growth in earnings per share...
s and cam
Cam

A cam is a projecting part of a rotating wheel or shaft that strikes a lever at one or more points on its circular path. The cam can be a simple tooth, as is used to deliver pulses of power to a steam hammer, for example, or an Eccentric disc or other shape that produces a smooth reciprocating motion in the follower which is a lever...
s into a wooden drum at specific locations. These would then bump into little lever
Lever

In physics, a lever is a rigid object that is used with an appropriate fulcrum or wiktionary:pivot point to multiply the mechanical force that can be applied to another object....
s that operate a percussion
Percussion instrument

A percussion instrument is any object which produces a sound by being hit with an implement, shaken, rubbed, scraped, or by any other action which sets the object into vibration....
 instrument. The output of this device was a small drummer playing various rhythms and drum patterns. Another sophisticated programmable machine by Al-Jazari was the castle clock
Castle clock

A Castle clock is a visually complicated clock originally appearing near the top of a castle and later a church tower. The original inventor was thought to be Al-Jazari and it is considered to be an early example of a programmable analog computer, in 1206....
, notable for its concept of variables which the operator could manipulate as necessary (i.e. the length of day and night). The Jacquard Loom
Jacquard loom

The Jacquard Loom is a mechanical loom, invented by Joseph Marie Jacquard in 1801, that simplifies the process of manufacturing textiles with complex patterns such as brocade, damask, and matelasse....
, which Joseph Marie Jacquard developed in 1801, uses a series of pasteboard
Pasteboard

Pasteboard may refer to:* Card stock* Clipboard ...
 cards with holes punched in them. The hole pattern represented the pattern that the loom had to follow in weaving cloth. The loom could produce entirely different weaves using different sets of cards. Charles Babbage
Charles Babbage

Charles Babbage, Royal Society was an England mathematician, philosopher, inventor and mechanical engineer who originated the concept of a programmable computer....
 adopted the use of punched cards around 1830 to control his Analytical Engine
Analytical engine

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 Babbage....
. The synthesis of numerical calculation, predetermined operation and output, along with a way to organize and input instructions in a manner relatively easy for humans to conceive and produce, led to the modern development of computer programming.

Development of computer programming accelerated through the Industrial Revolution
Industrial Revolution

The Industrial Revolution was a period in the late 18th and early 19th centuries when major changes in agriculture, manufacturing, production, and transportation had a profound effect on the socioeconomics and cultural conditions in United Kingdom....
. The punch card innovation was later refined by Herman Hollerith
Herman Hollerith

Herman Hollerith was a German-American statistician who developed a mechanical Tabulating machine based on punched cards in order to rapidly tabulate statistics from millions of pieces of data....
 who, in 1896 founded the Tabulating Machine Company (which later became IBM
IBM

International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
). He invented the Hollerith punched card, the card reader
Tabulating machine

File:Lochkarte 1.jpgThe tabulating machine was a machine designed to assist in tabulations. Invented by Herman Hollerith, the machine was developed to help process data for the U.S....
, and the key punch
Key punch

File:IBM card punch 029.JPGA key punch is a device for entering data into punched cards by precisely punching holes at locations designated by the keys struck by the operator....
 machine. These inventions were the foundation of the modern information processing industry. The addition of a plug-board to his 1906 Type I Tabulator allowed it to do different jobs without having to be physically rebuilt. By the late 1940s there were a variety of plug-board programmable machines, called unit record equipment
Unit record equipment

Before the advent of electronic computers, data processing was performed using electromechanical devices called unit record equipment, electric accounting machines or tabulating machines....
, to perform data processing tasks (card reading). Early computer programmers used plug-boards for the variety of complex calculations requested of the newly invented machines.

Punchcarddecks
The invention of the Von Neumann architecture
Von Neumann architecture

The von Neumann architecture is a design model for a stored-program digital computer that uses a central processing unit and a single separate computer storage structure to hold both instructions and data ....
 allowed computer programs to be stored in computer memory
Computer memory

Computer memory is usually meant to refer to the semiconductor technology that is used to store information in Electronics devices. Current primary computer memory makes use of integrated circuits consisting of silicon-based transistors....
. Early programs had to be painstakingly crafted using the instructions of the particular machine, often in binary
Binary numeral system

The binary numeral system, or notation with a radix of 2. Owing to its straightforward implementation in digital electronic circuitry using logic gates, the binary system is used internally by all modern computers....
 notation. Every model of computer would be likely to need different instructions to do the same task. Later assembly language
Assembly language

An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture....
s were developed that let the programmer specify each instruction in a text format, entering abbreviations for each operation code instead of a number and specifying addresses in symbolic form (e.g. ADD X, TOTAL). In 1954 Fortran
Fortran

Fortran is a general-purpose programming language, procedural programming language, imperative programming language programming language that is especially suited to numerical analysis and scientific computing....
, the first higher level programming language, was invented. This allowed programmers to specify calculations by entering a formula directly (e.g. ). The program text, or source, was converted into machine instructions using a special program called a compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
. Many other languages were developed, including ones for commercial programming, such as COBOL
COBOL

COBOL is one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
. Programs were mostly still entered using punch cards or paper tape. (See computer programming in the punch card era
Computer programming in the punch card era

From the invention of computer programming languages into the 1980s, many if not most computer programmers created, edited and stored their programs on punch cards....
). By the late 1960s, data storage device
Data storage device

A data storage device is a device for recording information . Recording can be done using virtually any form of energy, spanning from manual muscle power in handwriting, to acoustic vibrations in phonographic recording, to electromagnetic energy modulating magnetic tape and optical discs....
s and computer terminal
Computer terminal

A computer terminal is an electronic or electromechanical computer hardware device that is used for entering data into, and displaying data from, a computer or a computing system....
s became inexpensive enough so programs could be created by typing directly into the computers. Text editor
Text editor

A text editor is a type of software application used for editing plain text files.Text editors are often provided with operating systems or software development packages, and can be used to change configuration files and programming language source code....
s were developed that allowed changes and corrections to be made much more easily than with punch cards.

As time has progressed, computers have made giant leaps in the area of processing power. This has brought about newer programming languages that are more abstracted
Abstraction (computer science)

In computer science, abstraction is a mechanism and practice to reduce and factor out details so that one can focus on a few concepts at a time....
 from the underlying hardware. Although these more abstracted languages require additional overhead
Computational overhead

In computer science, overhead is generally considered any combination of excess or indirect computation time, memory, bandwidth, or other resources that are required to attain a particular goal....
, in most cases the huge increase in speed of modern computers has brought about little performance decrease compared to earlier counterparts. The benefits of these more abstracted languages is that they allow both an easier learning curve for people less familiar with the older lower-level programming languages, and they also allow a more experienced programmer to develop simple applications quickly. Despite these benefits, large complicated programs, and programs that are more dependent on speed still require the faster and relatively lower-level languages with today's hardware. (The same concerns were raised about the original Fortran language.)

Throughout the second half of the twentieth century, programming was an attractive career in most developed countries. Some forms of programming have been increasingly subject to offshore outsourcing
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 Product or Service are actually developed or manufactured....
 (importing software and services from other countries, usually at a lower wage), making programming career decisions in developed countries more complicated, while increasing economic opportunities in less developed areas. It is unclear how far this trend will continue and how deeply it will impact programmer wages and opportunities.

Modern programming


Quality requirements

Whatever the approach to software development may be, the final program must satisfy some fundamental properties. The following five properties are among the most relevant:

  • Efficiency
    Algorithmic efficiency

    In computer science, efficiency is used to describe properties of an algorithm relating to how much of various types of resources it consumes. The two most frequently encountered are...
    /Performance
    Performance Engineering

    Within systems engineering, performance engineering encompasses the set of roles, skills, activities, practices, tools, and deliverables applied at every phase of the Systems Development Lifecycle which ensures that a solution will be designed, implemented, and operationally supported to meet the non-functional requirements defined for the so...
    : the amount of system resources a program consumes (processor time, memory space, slow devices, network bandwidth and to some extent even user interaction), the less the better.
  • Reliability
    Reliability engineering

    Reliability engineering is an engineering field, that deals with the study of reliability: the ability of a system or component to perform its required functions under stated conditions for a specified period of time....
    : how often the results of a program are correct. This depends on prevention of error propagation resulting from data conversion and prevention of errors resulting from buffer overflows, underflows and zero division.
  • Robustness
    Robustness

    Robustness is the quality of being able to withstand stresses, pressures, or changes in procedure or circumstance. A system, organism or design may be said to be "robust" if it is capable of coping well with variations in its operating environment with minimal damage, alteration or loss of functionality....
    : how well a program anticipates situations of data type conflict and other incompatibilities that result in run time errors and program halts. The focus is mainly on user interaction and the handling of exceptions
    Exception handling

    Exception handling is a programming language construct or computer hardware mechanism designed to handle the occurrence of exceptions - special conditions that change the normal flow of execution....
    .
  • Usability
    Usability

    Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal....
    : the clarity and intuitiveness of a programs output can make or break its success. This involves a wide range of textual and graphical elements that makes a program easy and comfortable to use.
  • Portability
    Software portability

    Portability is one of the key concepts of High-level programming language. Portability is the software codebase feature to be able to reuse the existing code instead of creating new code when moving software from an environment to another....
    : the range of computer hardware
    Computer hardware

    A personal computer is made up of computer hardware, multiple physical components onto which can be loaded into a multitude of software that perform the functions of the computer....
     and operating system
    Operating system

    An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
     platforms on which the source code
    Source code

    In computer science, source code is any collection of statements or declarations written in some human-readable computer programming language....
     of a program can be compiled
    Compilation

    Compilation may refer to:* In computer programming, the translation of source code into object code by a compiler.* Compilation, in accountancy, the presentation of information in the form of financial statements that are the representation of management, without expressing any opinion or assurance regarding them....
    /interpreted
    Interpreter (computing)

    In computer science, an interpreter normally means a computer program that execution , i.e. performs, instructions written in a programming language....
     and run. This depends mainly on the range of platform specific compilers for the language of the source code rather than anything having to do with the program directly.


Algorithmic complexity

The academic field and the engineering practice of computer programming are both largely concerned with discovering and implementing the most efficient algorithm
Algorithm

In mathematics, computing, linguistics and related subjects, an algorithm is a sequence of finite instructions, often used for calculation and data processing....
s for a given class of problem. For this purpose, algorithms are classified into orders using so-called Big O notation
Big O notation

In mathematics, big O notation describes the asymptotic analysis of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions....
, O(n), which expresses resource use, such as execution time or memory consumption, in terms of the size of an input. Expert programmers are familiar with a variety of well-established algorithms and their respective complexities and use this knowledge to choose algorithms that are best suited to the circumstances.

Methodologies

The first step in most formal software development projects is requirements analysis, followed by testing to determine value modeling, implementation, and failure elimination (debugging
Debugging

Debugging is a methodical process of finding and reducing the number of computer bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected....
). There exist a lot of differing approaches for each of those tasks. One approach popular for requirements analysis
Requirements analysis

Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various Stakeholder , such as beneficiaries or users....
 is Use Case
Use case

A use case in software engineering and systems engineering is a description of a system?s behaviour as it responds to a request that originates from outside of that system....
 analysis.

Popular modeling techniques include Object-Oriented Analysis and Design (OOAD) and Model-Driven Architecture (MDA
Model-driven architecture

Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as computer models....
). The Unified Modeling Language (UML
Unified Modeling Language

Unified Modeling Language is a standardized general-purpose modeling language in the field of software engineering.UML includes a set of graphical notation techniques to create abstract models of specific systems....
) is a notation used for both OOAD and MDA.

A similar technique used for database design is Entity-Relationship Modeling (ER Modeling
Entity-relationship model

An Entity-Relationship Model in software engineering is an abstract and conceptual representation of data. Entity-relationship modeling is a relational schema database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements in a top-down fashion....
).

Implementation techniques include imperative languages (object-oriented
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
 or procedural
Procedural programming

Procedural programming can sometimes be used as a synonym for imperative programming , but can also refer to a programming paradigm based upon the concept of the procedure call....
), functional languages
Functional programming

In computer science, functional programming is a programming paradigm that treats computation as the evaluation of function s and avoids program state and immutable object data....
, and logic languages
Logic programming

Logic programming is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy 's [1958] Advice taker proposal, logic is used as a purely Declarative programming language representation language, and a automated theorem proving o...
.

Measuring language usage

It is very difficult to determine what are the most popular of modern programming languages. Some languages are very popular for particular kinds of applications (e.g., COBOL
COBOL

COBOL is one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments....
 is still strong in the corporate data center, often on large mainframes
Mainframe computer

Mainframes are computers used mainly by large organizations for critical applications, typically bulk data processing such as census, industry and consumer statistics, Enterprise Resource Planning, and financial transaction processing....
, FORTRAN in engineering applications, and C
C (programming language)

C is a general-purpose computer programming language originally developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories to implement the Unix operating system....
 in embedded applications
Embedded software

Embedded software is computer software which plays an integral role in the electronics it is supplied with.Embedded software's principal role is not Information Technology , but rather the interaction with the physical world....
), while some languages are regularly used to write many different kinds of applications.

Methods of measuring language popularity include: counting the number of job advertisements that mention the language, the number of books teaching the language that are sold (this overestimates the importance of newer languages), and estimates of the number of existing lines of code written in the language (this underestimates the number of users of business languages such as COBOL).

Debugging

H96566k
Debugging
Debugging

Debugging is a methodical process of finding and reducing the number of computer bugs, or defects, in a computer program or a piece of electronic hardware thus making it behave as expected....
 is a very important task in the software development process, because an incorrect program can have significant consequences for its users. Some languages are more prone to some kinds of faults because their specification does not require compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
s to perform as much checking as other languages. Use of a static analysis
Static analysis

Static analysis, static projection, and static scoring are pejorative terms for statistical analyses for which existing trends are projected into the future simplistically, or beyond what is possible to predict in any manner, producing results often wildly unrealistic....
 tool can help detect some possible problems.

Debugging is often done with IDE
Integrated development environment

An integrated development environment also known as integrated design environment or integrated debugging environment is a software application that provides comprehensive facilities to computer programmers for software development....
s like Visual Studio, NetBeans
NetBeans

NetBeans refers to both a Platform for the development of applications for the network , and an integrated development environment developed using the NetBeans Platform....
, and Eclipse
Eclipse (software)

Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
. Standalone debuggers like gdb are also used, and these often provide less of a visual environment, usually using a command line.

Programming languages

Different programming languages support different styles of programming (called programming paradigm
Programming paradigm

A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
s
). The choice of language used is subject to many considerations, such as company policy, suitability to task, availability of third-party packages, or individual preference. Ideally, the programming language best suited for the task at hand will be selected. Trade-offs from this ideal involve finding enough programmers who know the language to build a team, the availability of compiler
Compiler

A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
s for that language, and the efficiency with which programs written in a given language execute.

Allen Downey, in his book , writes:

The details look different in different languages, but a few basic instructions appear in just about every language:


  • input: Get data from the keyboard, a file, or some other device.
  • output: Display data on the screen or send data to a file or other device.
  • math: Perform basic mathematical operations like addition and multiplication.
  • conditional execution: Check for certain conditions and execute the appropriate sequence of statements.
  • repetition: Perform some action repeatedly, usually with some variation.


Many computer languages provide a mechanism to call functions provided by libraries. Provided the functions in a library follow the appropriate runtime conventions (eg, method of passing arguments), then these functions may be written in any other language.

Programmers


Computer programmer
Programmer

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....
s are those who write computer software. Their jobs usually involve:
  • Requirements analysis
    Requirements analysis

    Requirements analysis in systems engineering and software engineering, encompasses those tasks that go into determining the needs or conditions to meet for a new or altered product, taking account of the possibly conflicting requirements of the various Stakeholder , such as beneficiaries or users....
  • Specification
  • Software architecture
    Software architecture

    The software architecture of a program or computing system is the structure or structures of the software system, which comprise software components, the externally visible properties of those components, and the relationships between them....
  • Coding
  • Compilation
    Compiler

    A compiler is a computer program that transforms source code written in a programming language into another computer language . The most common reason for wanting to transform source code is to create an executable program....
  • Software testing
    Software testing

    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 context in which it is intended to operate....
  • Documentation
    Documentation

    Documentation may refer to the process of providing evidence or to the communicable material used to provide such documentation . Documentation may also refer to tools aiming at identifying documents or to the field of study devoted to the study of documents and bibliographies ....
  • Integration
    Digital integration

    Digital integration is the idea that data or information on any given electronic device can be read or manipulated by another device using a standard format....
  • Maintenance
    Software maintenance

    Software maintenance in software engineering is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment ....


See also

  • List of basic computer programming topics
    List of basic computer programming topics

    Computer programming is a subfield of computer science.This is not a list of topics about the BASIC programming language. The following outline is provided as an overview of and introduction to computer programming:...
  • List of computer programming topics
    List of computer programming topics

    Computer programming is a subfield of computer science. See also the List of basic computer programming topics....
  • Computer programming in the punch card era
    Computer programming in the punch card era

    From the invention of computer programming languages into the 1980s, many if not most computer programmers created, edited and stored their programs on punch cards....
  • Hello world program
    Hello world program

    A "Hello World" program is a computer program that prints out "Hello world!" on a display device. It is used in many introductory tutorials for teaching a programming language....
  • Software engineering
    Software engineering

    Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches....
  • Programming paradigm
    Programming paradigm

    A programming paradigm is a fundamental style of computer programming. . Paradigms differ in the concepts and abstractions used to represent the elements of a program and the steps that compose a computation ....
    s
  • ACCU (organisation)
    ACCU (organisation)

    ACCU is a non-profit, worldwide user group of people interested in software development, dedicated to raising the standard of programming. Originally, the Voluntary association was primarily for C programmers, but it has expanded over time to include all programming languages, especially C++, C Sharp programming language, Java , Perl and P...
  • Association for Computing Machinery
    Association for Computing Machinery

    The Association for Computing Machinery, or ACM, was founded in 1947 as the world's first scientific and educational computing society. Its membership was approximately 83,000 as of 2007....


External links


  • - by Jeffrey Elkner, Allen B. Downey and Chris Meyers