The rapid spread of computers in today’s society has bought forth the demand for more people to build, write programs for, and repair computers. Computer engineers do the building while computer analysts do the repairs, but the ones that write the programs for these machines are computer programmers. Computer programmers write, code, test, and debug detailed instructions for the computer known as programs. Programs list in a logical order the steps a computer must execute to perform their function.
Programmers often are categorized as technicians. However, many technical innovations in programming such as advanced computing technologies, sophisticated new languages, and programming tools, have cahnged the role of a programmer and elevated much of the programming work done today. It is becoming more difficult to distinguish programmers from other computer specialist since job titles shift so rapidly, reflecting new areas of specialization or changes in technology. Job titles and descriptions also may vary depending on the organization.
In this paper, “computer programmer” refers to individuals whose main job function is programming; this group has a wide range of responsibilities and educational backgrounds. ( Eberts 12 ) Computer programs tell the computer what to do, such as which information to identify and access, how to process it, and what equipment to use. Programs vary widely depending upon the type of information to be accessed or generated. For example, the instructions involved in updating financial records are very different from those required to duplicate conditions on board an aircraft for pilots stand training in a flight simulator. (Eberts 12)
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, require more than a year of work. In most cases, several programmers work together as a team under a senior programmer’s supervision. These programs are made up of a series of logical steps that the machine must follow in order for the data to be processed and transformed into usable information. The programmer may use any one of a number of programming languages: COBOL, FORTRAN, and BASIC are among the older, more common languages.
Today, 65 percent of corporate systems still run on COBOL. Programmers should gain familiarity with DB2 and other relational database software. Fourth-generation languages (4GLs) are less procedural and more like natural English, enabling their use for software development by managers and other users. Fifth generation languages (5GLs) include natural and intelligent languages, which are used for software development for artificial intelligence and expert systems. ( Eberts 12 ) There are over one thousand computer languages.
It is essential that a programmer have a thorough knowledge of the language or languages in which programs are written in the organization where he or she seeks employment. Programmers must further possess a knowledge of general programming techniques and general relationships between program and hardware features. A strong orientation to detail is important in that something as small as a misplaced comma could cause system failure. This characteristic becomes crucial as a programmer debugs his or her programs to ensure they are error free. Debugging usually entails making trial runs on the computer with sample data.
There are three types of programmers at work in most organizations: operating systems programmers, applications programmers, and maintenance programmers. ( Schmidt 7 ) For students in high school there are four points of advice. 1) Follow a solid college preparatory course of studies with an emphasis on mathematics and English. 2) Learn as much as you can about computers and computing. 3) Develop good study habits and 4 ) Begin planning for college as early in your high school career as possible. (Kling 79) It is never too early in a student’s high school studies to begin to plan for college.
By the end of a student’s junior year, they should be making concrete plans for their college education. They should choose four or five colleges which they think they might like to attend, and write for copies of their catalogs, admission requirements, housing, financial aid, and other information. Most schools require students to submit their results on the Scholastic Aptitude Test (SAT) or the American College Test (ACT). These tests are offered at a limited number of locations several times each year. Students need to arrange to take them in advance.
In addition to these standardized tests of academic achievement and ability, many colleges and universities have other admission requirements. Students may need to have taken so many credit hours in English, social science, science, math, or foreign languages. Some schools will also ask students to write an essay explaining their reasons for seeking admission to their school. They may want students to visit their campus to be interviewed by a campus admissions officer, or to provide letters of recommendation. If students are planning to go to college, they should be enrolled in a college preparatory program in high school.
Their coursework should include solid training in mathematics, especially if they are interested in the theoretical or engineering aspects of computers and computer science. Physics is also recommended. Good communications skills will be crucial to a student’s success in college and beyond. Students should take as many English courses as they can especially those that emphasize writing. And a course in public speaking or speech communication will improve a student’s confidence and self-expression, helping them to communicate effectively with others.
Of course, students should take every opportunity they can to learn as much as they can about computers and computing. If a student’s high school offers courses in programming, by all means they should take them. If a student’s school has a computer club, they would certainly want to become a member. Learning about computers is not limited to school, however. Many computer stores have classes geared to the systems and software they sell. If one’s family owns a microcomputer, or if they have other access to a machine, they could increase their computer knowledge by writing original programs for it.
Also, PC users’ clubs abound. Participation in these loosely organized groups of enthusiasts will contribute to one’s computer knowledge. One’s familiarity with general computer vocabulary and procedures will be an undeniable advantage to them in their college coursework. Admission to better colleges and universities requires good grades. A record of solid academic achievement will increase the likelihood of a student’s acceptance by the college of their choice. Development of good study habits and a commitment to perform at the peak of one’s ability will encourage their academic success in high school.
And good study habits and self-discipline will be essential in college. So will writing and debugging programs, learning about computer science, theory, and practice. These things demand concentration, patience, attention to detail, and time. If students cannot discipline themselves to study intensely, to set aside significant amounts of study time and use that time effectively, they stand little chance of doing well in college. Each year, numbers of college freshman fail to make it to their sophomore year because they never developed good study habits while in high school. ( Kling 79 )
One prestigious university for computer engineering is the University of Illinois at Champaign-Urbana. U of I ranks in the top 35 schools in the nation for computer engineering (“Top Colleges and Universities”- College Week Magazine). U of I’s computer engineering major is for two, four, or six years, depending on if one wants an associate, bachelor, or masters degree. Some of the courses that a student majoring in this field would have to take include: Design and Testing 1S, Introduction to Simulation Methods 3S, Computer Engineering Design I 0S, Digital Computation 2s, and Computer and Digital Fundamentals 1700. ww. uiuc. ed)
The majority of computer programmers-almost 60 percent–had a bachelor’s degree or higher in 1996. Of these, some hold a B. A. or B. S. in computer science, mathematics, or information systems while others have taken special courses in computer programming to supplement their study in fields such as accounting, inventory control, or other business areas. As the level of education and training required by employers continues to rise, this percentage should increase in the future. ( Stair 65)
Skills needed vary from job to job and the demand for various skills is generally driven by changes in technology. Employers using computers for scientific or engineering applications generally prefer college graduates who have degrees in computer or information science, mathematics, engineering, or the physical sciences. Graduate degrees in related fields may be required for some jobs. Employers who use computers for business applications prefer to hire people who have had college courses in management information systems (MIS) and business, and who possess strong programming skills.
Although knowledge of traditional languages such as FORTRAN, COBOL, or C is still important, increasing emphasis is placed on more advanced object-oriented languages and tools such as CASE tools, C++, Visual C++, Ada, Smalltalk, Visual Basic, PowerBuilder, and Java as well as 4th and 5th generation languages, graphic user interface (GUI) and systems programming. Employers prefer general business skills and experience related to the operations of the firm as well. (Stair 65) When hiring programmers, employers look for people with the necessary programming skills who can think logically and pay close attention to detail.
The job calls for patience, persistence, and the ability to work on exacting analytical work, especially under pressure. Ingenuity and imagination are also particularly important when programmers design solutions and test their work for potential failures. The ability to work with abstract concepts and do technical analysis is especially important for systems programmers because they work with the software that controls the computer’s operation. Since programmers are expected to work in teams and interact directly with users, employers want programmers who are able to communicate with non-technical personnel.
Beginning programmers may work alone on simple assignments after some initial instruction, or on a team with more experienced programmers. Either way, beginning programmers generally must work under close supervision. Because technology changes so rapidly, programmers must continuously update their training by taking courses sponsored by their employer or software vendors. ( Southworth 127) For skilled workers who keep up to date with the latest technology, the prospects for advancement are good. In large organizations, they may be promoted to lead programmer and be given supervisory responsibilities.
Some applications programmers may move into systems programming after they gain experience and take courses in systems software. With general business experience, programmers may become programmer-analysts or systems analysts, or be promoted to a managerial position. Other programmers, with specialized knowledge and experience with a language or operating system, may work in research and development areas such as multimedia or Internet technology. As employers increasingly contract out programming jobs, more opportunities should arise for experienced programmers with expertise in a specific area to work as consultants.
Technical or professional certification is becoming more common as a way for employers to ensure a level of competency or quality in all areas. Many product vendors offer certification or may even require certification of technicians and professionals who work with their products. The number of voluntary certificates or certification programs is also growing and this type of certification is available through organizations such as the Institute for Certification of Computing Professionals (ICCP).
ICCP confers the designation Certified Computing Professional (CCP) to those who have at least four years of experience or two years of experience and a college degree. To qualify, individuals must pass a core examination plus exams in two specialty areas, or an exam in one specialty area and two computing languages. Those with little or no experience may be tested for certification as an Associate Computer Professional (ACP). Certification is not mandatory, but it may give a job-seeker a competitive advantage. ( Southworth 127 ) Median earnings of programmers who worked full time in 1996 were about $40,100 a year.
The middle 50 percent earned between about $30,700 and $52,000 a year. The lowest 10 percent earned less than $22,700; the highest 10 percent earned more than $65,200. Starting salary offers for graduates with a bachelor’s degree in the area of computer programming averaged about $35,167 a year in private industry in 1997, according to the National Association of Colleges and Employers. Programmers working in the West and Northeast earned somewhat more than those working in the South and Midwest did. On average, systems programmers earn more than applications programmers. (Fisher 170)