Computer Programming


Topics
Overview
The work
Job profile
Requirement
Growth And money
Employment
Resources
Overview


Top
Computer networks range in size and design from a simple link between two personal computers, to local area networks connecting a number of personal computers located in one building, to massive national and international networks linking offices and computers of varying capabilities.

Network specialists are responsible for the security and administration of the networks that are now prevalent in many companies. They also design and implement systems that keep networks functioning in the event of a power failure or other emergency.

Top

The Work

Top

Programmers write specific programmes by breaking down each step into a logical series of instructions the computer can follow. They then code these instructions in a conventional programming language, such as COBOL; an artificial intelligence language, such as Prolog; or one of the most advanced function-oriented or object-oriented languages, such as Java, C++, or Visual Basic.

Programmers usually know more than one programming language; and since many languages are similar, they can often learn new languages relatively easily. In practice, programmers are often referred to by the language they know, such as Java programmers, or the type of function they perform or environment in which they work, such as database programmers, mainframe programmers, or Internet programmers.

In many large organisations, programmers follow descriptions that have been prepared by software engineers or systems analysts. These descriptions list the input required, the steps the computer must follow to process data, and the desired arrangement of the output.

Many programmers are involved in updating, repairing, modifying and expanding existing programmes. When making changes to a section of code, called a routine, programmers need to make other users aware of the task the routine is to perform. They do this by inserting comments in the coded instructions, so others can understand the programme.

Innovations such as computer-aided software engineering (CASE) tools enable a programmer to concentrate on writing the unique parts of the programme, because the tools automate various pieces of the programme being built. CASE tools generate whole sections of code automatically, rather than line by line. This also yields more reliable and consistent programmes and increases programmers’ productivity by eliminating routine steps.

Programmers test a programme by running it, to ensure the instructions are correct and it produces the desired information. If errors do occur, the programmer must make the appropriate change and recheck the programme until it produces the correct results, a process called debugging. Programmers working in a mainframe environment may prepare instructions for a computer operator who will run the programme. They may also contribute to a manual for users.

Programmers generally work in offices in comfortable surroundings. Many programmers may work long hours or weekends, to meet deadlines or fix critical problems that occur during off hours. Given the technology available, telecommuting is becoming common for a wide range of computer professionals—including computer programmers. Programmers can access a system from remote locations, to make corrections or fix problems.

The Programming Process

Coding

After the design process is complete, it is the job of the programmer to convert that design into step-by-step instructions according to the particular programming language in use. Coding is a precise process; even small errors in coding (widely known as 'bugs') can create big problems when the programme is compiled and run.

Compiling

In the case of most computer languages, before the programme can be run it must be compiled. A compiler is the computer programme that converts high-level code (such as C or COBOL) into code the computer can use (binary). If the code contains severe (or fatal) errors, the programme will fail to compile, and the compiler will spit out an error report telling the programmer where the errors are in the programme.

Debugging

The programmer must find and correct all the errors in the code so that the programme can be compiled and run.

Testing

Once the programme is sufficiently error-free to compile, the programmer can then run the programme with test data. Through this process, the programmer will find other errors to correct (further debugging ensues).

Maintenance

Even after a programme is clean enough to release to the public, bugs and other problems may crop up. Programmers fix these problems throughout the life of the programme, often resulting in updated releases of the programme to registered users.

Top

Job Profile

Top

Programmers are often grouped into two broad types: applications programmers and systems programmers.

Applications programmers usually focus on business, engineering, or science. They write software to handle a specific job within an organisation. They may also revise existing packaged software.

Systems and maintenance programmers, on the other hand, 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 determine the source of problems that may occur with their programmes.

Programmers in software development companies may work directly with experts from various fields to create software—either programmes designed for specific clients or packaged software for general use—ranging from games and educational software to programmes for desktop publishing, financial planning, and spreadsheets.

Much of this type of programming is in the preparation of packaged software, which comprises one of the most rapidly growing segments of the computer services industry.

In some organisations, particularly small ones, workers commonly referred to as programmer-analysts are responsible for both the systems analysis and the actual programming work.

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 primarily personal computer based 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, like spreadsheet and database management software packages, allows users to write simple programmes to access data and perform calculations.

Areas of Speciality

Not only do programmers do more than write code; they also write code for a number of special functions.

Application (or Development) Programmers

They write original programmes which allow the computer to perform certain functions. Typical applications for personal computers are spreadsheet, word processing, and game programmes.

Applications programmers write code for all types of systems from PCs to mainframes and covering all user environments from the home to business and industry. Different programming languages are used, depending on the purpose of the programme. (C/C++ are the hot programming languages right now, widely used for both scientific, business, and PC applications. Fortran and COBOL are still used, but they're on the wane.)

Systems Programmers

They create computer operating systems (rather than applications). Systems programming requires extensive knowledge of computer architecture (specific to the particular computer under design), and is more technically demanding than general programming.

Maintenance Programmers

They adapt, customise, or 'fix' large programmes (for instance, large commerical applications such as payroll or inventory control) that were written by other programmers. These programmers often work in the data processing departments of large organisations such as banks or insurance companies.

Language-specific Programmers

They specialise in one of the hundreds of computer languages, particularly those less commonly used.

Function-specific Programmers

Specialise in one kind of application; for instance, database, network, or security systems programmers.

Top

Requirement
Top

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 increasing complexity of some programming tasks.

Bachelor’s degrees are now commonly required, although some programmers may qualify for certain jobs with degrees or certificates. In the absence of a degree, substantial specialised experience or expertise may be needed. Even with a degree, employers appear to be placing more emphasis on previous experience, for all types of programmers.

Required skills vary from job to job, but the demand for various skills is generally driven by changes in technology. Employers using computers for scientific or engineering applications usually prefer college graduates who have degrees in computer or information science, mathematics, engineering, or the physical sciences. Graduate degrees in related fields are required for some jobs.

Employers who use computers for business applications prefer to hire people who have had college courses in information systems and business and who possess strong programming skills.

Although knowledge of traditional languages is still important, increasing emphasis is placed on newer, object-oriented programming languages and tools, such as C++, Visual Basic, and Java.

Additionally, employers are seeking persons familiar with fourth and fifth generation languages that involve graphic user interface (GUI) and systems programming.

Employers also prefer applicants who have general business skills and experience related to the operations of the firm. Students can improve their employment prospects by undertaking an internship.

Most systems programmers hold a degree in computer science. Extensive knowledge of a variety of operating systems is essential. This includes being able to configure an operating system to work with different types of hardware and adapting the operating system to best meet the needs of a particular organisation. Programmers must also be able to work with database systems, such as DB2, Oracle, or Sybase, for example.

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 make technical analyses 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.

Because technology changes so rapidly, programmers must continuously update their training, by taking courses sponsored by their employer or software vendors.

Academic Requirements

Systems programmer Engineering degree with PG diploma in computer applications
Analyst programmer Engineering degree and MCA
Systems analyst Engineering graduate; degree in computer science/info. science/ computer info. systems/data processing.
Application programmer Graduate in arts/science/ commerce/statistics/MCA/ engineering/MBA (systems)
Top


Growth And Money
Top

Entry-level or junior 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.

For skilled workers who keep up-to-date with the latest technology, the prospects for advancement are good. In large organisations, programmers 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 specialised 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.

Job Profile                                                     Annual Salary
Programmer 1,00,000
Programmer-Analyst 1,20,000
Maintenance Engineer 1,25,000
Systems Analyst 1,40,000
Systems Engineer 1,50,000
Assistant Manager 1,80,000
Manager 2,25,000
General Manager 3,50,000
Vice President 5,00,000
CEO 6-10 lakh
Top


Employment
Top

Programmers are employed in almost every industry, but the largest concentration is in the computer and data processing services industry, which includes firms that write and sell software.

Large numbers of programmers can also be found working for firms that provide engineering and management services, telecommunications companies, manufacturers of computer and office equipment, financial institutions, insurance agencies, educational institutions, and government departments.

A growing number of computer programmers are employed on a temporary or contract basis or work as independent consultants, as companies demand expertise with new programming languages or specialised areas of application.

Rather than hiring programmers as permanent employees and then laying them off after a job is completed, employers can contract with temporary help agencies, consulting firms, or directly with programmers themselves.

A marketing firm, for example, may only require the services of several programmers to write and debug the software necessary to get a new data base-management system running.

This practice also enables companies to bring in people with a specific set of skills—usually in one of the latest technologies—as it applies to their business needs. Bringing in an independent contractor or consultant with a certain level of experience in a new or advanced programming language, for example, enables an establishment to complete a particular job without having to re-train existing workers. Such jobs may last anywhere from several weeks to a year or longer.

Top


Resources
Top