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. www. 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. Stair 65 ) 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. Southworth 127 ) 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) According to Robert Half International Inc. , starting salaries ranged from $32,500 to 39,000 for programmers and $47,500 to $60,000 for systems programmers in large establishments in 1997. Starting salaries for programmers in small establishments ranged from $28,000 to $37,000. In the Federal Government, the entrance salary for programmers with a college degree or qualifying experience was about $29,520 a year in early 1997; for those with a superior academic record, $ 34,180. Fisher 170 ) Some of the perks that go along with being a computer programmer are discounts on computers, components or software sold by the manufacturer or retail store you work for, and possible use of company car. “ Some of the most rewarding perks of the job are you’re constantly working so the day goes by very quickly, everyday you learn something new, you’re always working on the cutting edge of technology, and you can do things with computer others dream they could”. ( Preston Smith, Owner and Operator of Data Eight Systems)
Benefits in the computer-programming field can be generous. They include health, dental, disability, and life insurance, all partially or fully paid by the company. Stock options are often available. Vacation policies can vary widely, but in most companies employees receive at least two week per year. Companies keep an eye on each other to see what is being offered in benefits, which can add up to a substantial amount of money. A basic figure often used is 30 percent of base salary. If more vacation time is wanted, programmers can work as a contract employee.
The contract worker works for a specified period of time ( such as three months ) and has the opportunity to take lengthy vacations between periods of work. He or she usually receives a higher hourly wage but no benefits. Certain people like this flexibility and time off and do not care about the benefits. ( Schmidt 33 ) Like other workers who spend long periods of time in front of a computer terminal typing at a keyboard, computer programmers are susceptible to eye strain and headaches. Also from sitting in chairs all day long computer programmers are also susceptible to back discomfort and shoulder strain.
Typing on keyboard for lengthy amounts of time lead to hand and wrist problems such as carpal tunnel syndrome or cumulative trauma disorder. ( Encyclopedia 104 ) With the number of computers in households, schools, and businesses increasing the number of people to work with computer are also increasing. As a career, being a computer programmer is a remotely high paying job with many benefits and many chances for advancement. Becoming a computer programmer takes hard work dedication, and determination. Being a computer programmer is an excellent job if one likes computers, solving complex problems, and being on the “edge” of technology.