Logout | Login | Register
Welcome Guest
Jobs Resumes and Businesses
Jobs Resumes Business
  About Programmers
Cadclassified
 
 

 
Career Path Information
  Career Name: Programmers
     
  Career Titles: Computer Programmers, Database Administrators, Analysts
     
  Career Description:

Computer programmers write, test, and maintain the detailed instructions, called programs, that computers must follow to perform their functions. They 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. In this occupational statement, computer programmer refers to individuals whose main job function is programming; this group has a wide range of responsibilities and educational backgrounds.

Computer programs tell the computer what to do—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 training in a flight simulator. 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 may require more than a year of work. In most cases, several programmers work together as a team under a senior programmer’s supervision.

Programmers write programs according to the specifications determined primarily by computer software engineers and systems analysts. (Separate statements on computer software engineers and on computer systems analysts, database administrators, and computer scientists appear elsewhere in the Handbook.) 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 then codes these instructions in a conventional programming language, such as COBOL; an artificial intelligence language, such as Prolog; or one of the most advanced object-oriented languages such as Java, C++, or Smalltalk. Different programming languages are used depending on the purpose of the program. COBOL, for example, is commonly used for business applications, whereas Fortran (short for “formula translation”) is used in science and engineering. C++ is widely used for both scientific and business applications. Many programmers at the enterprise level are also expected to know platform-specific languages used in database programming. 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, as are Java programmers, or the type of function they perform or environment in which they work, which is the case for database programmers, mainframe programmers, or Web programmers.

Many programmers update, repair, modify, and expand existing programs. When making changes to a section of code, called a routine, programmers need to make other users aware of the task that the routine is to perform. They do this by inserting comments in the coded instructions, so that others can understand the program. Many programmers use computer-assisted software engineering (CASE) tools to automate much of the coding process. These tools enable a programmer to concentrate on writing the unique parts of the program, because the tools automate various pieces of the program being built. CASE tools generate whole sections of code automatically, rather than line by line. Programmers also utilize libraries of pre-written code, which can then be modified or customized for a specific application. This also yields more reliable and consistent programs and increases programmers’ productivity by eliminating some routine steps.

Programmers test a program by running it to ensure that the instructions are correct and that the program produces the desired outcome. If errors do occur, the programmer must make the appropriate change and recheck the program until it produces the correct results. This process is called testing and debugging. Programmers may continue to fix these problems throughout the life of a program. Programmers working in a mainframe environment, which involves a large centralized computer, may prepare instructions for a computer operator who will run the program. (A separate statement on computer operators appears elsewhere in the Handbook.) They also may contribute to a manual for persons who will be using the program.

Programmers often are grouped into two broad types—applications programmers and systems programmers. Applications programmers write programs to handle a specific job, such as a program to track inventory within an organization. They may also revise existing packaged software or customize generic applications called middleware. Systems programmers, on the other hand, write programs to maintain and control computer systems software, such as operating systems, networked systems, and database systems. These workers make changes in the sets of instructions that determine how the network, workstations, and central processing unit of the system handle the various jobs they have been given, and how they communicate with peripheral equipment such as terminals, printers, and disk drives. Because of their knowledge of the entire computer system, systems programmers often help applications programmers to determine the source of problems that may occur with their programs.

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 games and educational software to programs for desktop publishing and financial planning. Much of this type of programming takes place in the preparation of packaged software, which constitutes one of the most rapidly growing segments of the computer services industry.

In some organizations, particularly small ones, workers commonly known as programmer-analysts are responsible for both the systems analysis and the actual programming work. (A more detailed description of the work of programmer-analysts is presented in the statement on computer systems analysts, database administrators, and computer scientists elsewhere in the Handbook.) Advanced programming languages and new object-oriented programming capabilities are increasing the efficiency and productivity of both programmers and users. 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.

The rapid spread of computers and information technology has generated a need for highly trained workers to design and develop new hardware and software systems and to incorporate new technologies. These workers—computer systems analysts, database administrators, and computer scientists—include a wide range of computer specialists. Job tasks and occupational titles used to describe these workers evolve rapidly, reflecting new areas of specialization or changes in technology, as well as the preferences and practices of employers.

Systems analysts solve computer problems and apply computer technology to meet the individual needs of an organization. They help an organization to realize the maximum benefit from its investment in equipment, personnel, and business processes. Systems analysts may plan and develop new computer systems or devise ways to apply existing systems’ resources to additional operations. They may design new systems, including both hardware and software, or add a new software application to harness more of the computer’s power. Most systems analysts work with specific types of systems—for example, business, accounting, or financial systems, or scientific and engineering systems—that vary with the kind of organization. Some systems analysts also are known as systems developers or systems architects.

Systems analysts begin an assignment by discussing the systems problem with managers and users to determine its exact nature. Defining the goals of the system and dividing the solutions into individual steps and separate procedures, systems analysts use techniques such as structured analysis, data modeling, information engineering, mathematical model building, sampling, and cost accounting to plan the system. They specify the inputs to be accessed by the system, design the processing steps, and format the output to meet users’ needs. They also may prepare cost-benefit and return-on-investment analyses to help management decide whether implementing the proposed technology will be financially feasible.

When a system is accepted, systems analysts determine what computer hardware and software will be needed to set the system up. They coordinate tests and observe the initial use of the system to ensure that it performs as planned. They prepare specifications, flow charts, and process diagrams for computer programmers to follow; then, they work with programmers to “debug,” or eliminate, errors from the system. Systems analysts who do more indepth testing of products may be referred to as software quality assurance analysts. In addition to running tests, these individuals diagnose problems, recommend solutions, and determine whether program requirements have been met.

In some organizations, programmer-analysts design and update the software that runs a computer. Because they are responsible for both programming and systems analysis, these workers must be proficient in both areas. (A separate statement on computer programmers appears elsewhere in the Handbook.) As this dual proficiency becomes more commonplace, these analysts increasingly work with databases, object-oriented programming languages, as well as client–server applications development and multimedia and Internet technology.

One obstacle associated with expanding computer use is the need for different computer systems to communicate with each other. Because of the importance of maintaining up-to-date information—accounting records, sales figures, or budget projections, for example—systems analysts work on making the computer systems within an organization, or among organizations, compatible so that information can be shared among them. Many systems analysts are involved with “networking,” connecting all the computers internally—in an individual office, department, or establishment—or externally, because many organizations now rely on e-mail or the Internet. A primary goal of networking is to allow users to retrieve data from a mainframe computer or a server and use it on their desktop computer. Systems analysts must design the hardware and software to allow the free exchange of data, custom applications, and the computer power to process it all. For example, analysts are called upon to ensure the compatibility of computing systems between and among businesses to facilitate electronic commerce.

Networks come in many variations, so network systems and data communications analysts are needed to design, test, and evaluate systems such as local area networks (LANs), wide area networks (WANs), the Internet, intranets, and other data communications systems. Systems can range from a connection between two offices in the same building to globally distributed networks, voice mail, and e-mail systems of a multinational organization. Network systems and data communications analysts perform network modeling, analysis, and planning; they also may research related products and make necessary hardware and software recommendations. Telecommunications specialists focus on the interaction between computer and communications equipment. These workers design voice and data communication systems, supervise the installation of those systems, and provide maintenance and other services to clients after the system is installed.

The growth of the Internet and the expansion of the World Wide Web (the graphical portion of the Internet) have generated a variety of occupations related to the design, development, and maintenance of Web sites and their servers. For example, webmasters are responsible for all technical aspects of a Web site, including performance issues such as speed of access, and for approving the content of the site. Internet developers or Web developers, also called Web designers, are responsible for day-to-day site design and creation.

Computer scientists work as theorists, researchers, or inventors. Their jobs are distinguished by the higher level of theoretical expertise and innovation they apply to complex problems and the creation or application of new technology. Those employed by academic institutions work in areas ranging from complexity theory, to hardware, to programming-language design. Some work on multidisciplinary projects, such as developing and advancing uses of virtual reality, extending human-computer interaction, or designing robots. Their counterparts in private industry work in areas such as applying theory, developing specialized languages or information technologies, or designing programming tools, knowledge-based systems, or even computer games.

With the Internet and electronic business generating large volumes of data, there is a growing need to be able to store, manage, and extract data effectively. Database administrators work with database management systems software and determine ways to organize and store data. They identify user requirements, set up computer databases, and test and coordinate modifications to the systems. An organization’s database administrator ensures the performance of the system, understands the platform on which the database runs, and adds new users to the system. Because they also may design and implement system security, database administrators often plan and coordinate security measures. With the volume of sensitive data generated every second growing rapidly, data integrity, backup systems, and database security have become increasingly important aspects of the job of database administrators.

 

     
  Education Required:

While there are many training paths available for programmers, mainly because employers’ needs are so varied, the level of education and experience employers seek has been rising, due to the growing number of qualified applicants and the specialization involved with most programming tasks. Bachelor’s degrees are commonly required, although some programmers may qualify for certain jobs with 2-year degrees or certificates. The associate degree is an increasingly attractive entry-level credential for prospective computer programmers. Most community colleges and many independent technical institutes and proprietary schools offer an associate degree in computer science or a related information technology field.

Employers are primarily interested in programming knowledge, and computer programmers can become certified in a programming language such as C++ or Java. College graduates who are interested in changing careers or developing an area of expertise also may return to a 2-year community college or technical school for additional training. In the absence of a degree, substantial specialized experience or expertise may be needed. Even when hiring programmers with a degree, employers appear to be placing more emphasis on previous experience.

Some computer programmers hold a college degree in computer science, mathematics, or information systems, whereas others have taken special courses in computer programming to supplement their degree in a field such as accounting, inventory control, or another area of business. As the level of education and training required by employers continues to rise, the proportion of programmers with a college degree should increase in the future. As indicated by the following tabulation, 65 percent of computer programmers had a bachelor’s or higher degree in 2002.

     
  Keywords: Computer Programmers, Database Administrators, Analysts
     
  Sources: Department of Labor(bls.gov),