Computer Programming - Then and Now

Careers in Programming

Shara Rabich
Computer programmers are the authors of detailed instructions, called programs. Programmers attempt to use logical structure to solve real world problems by harnessing the power of computers. "Computer programming (often simply programming) is the craft of implementing one or more interrelated abstract algorithms using a particular programming language to produce a concrete computer program. Programming has elements of mathematical beauty, science, mathematics, and engineering." (Computer Programming - Wikipedia, the free encyclopedia)


Terms of the trade: common terms used by computer programmers Computer programmer, or just programmer refers to the individual who writes computer code. Programs are detailed instructions or computer code. When executed in sequence these instructions perform a task. Machine language is the language of the computer. It consists only of zeros and ones. Writing in machine language requires knowledge of specific memory locations.


High-level programming languages refer to all the modern programming languages used by programmers. They attempt to follow a more natural language structure. These languages make programming easier, and more portable. A Compiler is a tool that converts High-level programming into machine language that can be understood and executed by a computer. An Algorithm is a procedure for accomplishing a task. "In mathematics and computer science, an algorithm is a procedure (a finite set of well-defined instructions) for accomplishing some task which, given an initial state, will terminate in a defined end-state." (Algorithm - Wikipedia, the free encyclopedia)


Source code is the uncompiled, human readable, original version of a program. This code may be compiled to fit a specific architecture, such as compiling the source code for a Linux program if a version is not available to fit your computers architecture. Object Oriented Programming (OOP) is a style of programming that supports encapsulation and inheritance and abstraction. This style of programming emphasizes focusing on the total program as a whole, not the individual steps.
Procedural Programming is based on modularity. Procedural programs contain "modules", or small parts of the program packaged as to be re-usable in other programs.


Open Source refers to any program whose source code is freely available for distribution and modification. Linux is a primary example of open source software. Software is another word for computer programs. This usually refers to programs in the more polished form, including user documentation.


The Evolution of Programming, and Programming Languages


The first programming language was physical motion, literally turning the gears of machines such as Charles Babbage's 1822 Difference Engine. ENIAC (electronic numerical integrator and computer) was the first digital computer, invented by the
Army's Ordnance Ballistic Research Laboratories in Amberdeen Proving Ground, Maryland. "The world's first electronic digital computer was developed by Army Ordnance to compute World War II ballistic firing tables." (Weik, 1961) This and other computers of its time allowed the creation of the first generation of programming language, machine language. Machine language is a computers native language. It's comprised of a series of zeros and ones the computer interprets electronically.


Programming in machine language was not an easy task. It is not a portable language, as it is architecture specific. "Every CPU has it's own unique machine language." (What is Machine Language? A Word Definition from the Webopedia Computer Dictionary) It is very time consuming, as it requires intimate understanding of the inner workings of the CPU. Programs written in Machine language are however extremely efficient, making it still a good choice for small, mission critical code.


The second generation of programming languages was Assembly language. It used readable notation to represent the machine language of a specific architecture. It requires a compiler to convert it into machine language that a computer can then interpret. It is still used in system BIOS, for device drivers, as well as for other system dependent OS tasks. Assembly language is particularly useful in the area of Reverse Engineering. While the mnemonics of assembly make is somewhat easier than machine language, it is still a very difficult language to learn, use, and master.


The third generation of programming languages, high-level programming, uses human sounding language and syntax. It was the first architecture independent language. It was also the first generation of languages based on the concept of abstraction. Programmers no longer had to focus on low level details of data representation. Languages could now be learned and programs written more quickly. This led to cost reductions and stability in software. Basic, C, C++, Fortran, Java, and COBOL are all third generation languages.

"Fourth-generation language, also known as a 4GL, it is a computer language that is more advanced than traditional high-level programming languages. For example, in dBASE, the command List displays all the records in a data file. In second- and third-generation languages, instructions would have to be written to read each record, test for end of file, place each item of data on screen and go back and repeat the operation until there are no more records to process." (Fourth-generation
programming language: Information from Answers.com) They are non-procedural, high level specification languages. One of the most common fourth generation languages is Visual Basic. Others include Database query languages such as Focus,
and SQL, Report generators such as BuildProfessional and Oracle Report, and GUI creators such as eDeveloper and OpenROAD.

In an ever more computer dependent world the job of computer programmer has become esteemed. Without programs, computers are but idle hardware. Programming has evolved, and continues to evolve, along side the evolution of hardware and technology. Programming is in a sense the alpha and omega of the technological revolution. All begins and ends with
programming. Networks are not possible without Operating systems, device drivers and so on. Web and Multimedia exist as a result of the world largest network, the internet. Graphics and animation are created using computer programs. Web design is itself a form of programming.


Database creation is a specific programming niche. SQL (a database language) is a fourth generation language. Programs, in their simplest forms, are solutions to problems. Much of the technological advancements brought from both computers and the Internet are the public benefit gained by U.S. Military research. This stands to reason. Problems of national security are naturally given the highest priority, resources, budget. Programming will continue in its constant evolution. The very term, computer, is evolving. Many common home devices from DVD players, to alarm clocks contain programmed components. Cell phones are mobile computers available with their own Operating systems. The Game industry is an empire built by programming, generating every new devices and system platforms. It is a career that requires a passion for learning and technology, a high level of attention to detail, and an understanding of logic. Computer programmers will continue to be in
high demand well into the foreseeable future.

Published by Shara Rabich

College student and computer repair technician.  View profile

  • Computer programmers are the authors of detailed instructions, called programs.
  • Programmers attempt to solve real world problems by harnessing the power of computers.

To comment, please sign in to your Yahoo! account, or sign up for a new account.