You have several options to learn more about what it is like to be a computer systems programmer/analyst. You can spend a day with a working professional in this field in order to experience a typical day firsthand. Career days of this type can usually be arranged through school counselors or the public relations manager of local corporations.
Strategy games, such as chess, played with friends or school clubs are a good way to put your analytic thinking skills to use while having fun. When choosing a game, the key is to make sure it relies on qualities similar to those used by programmer analysts.
Lastly, you should become a computer hobbyist and learn everything you can about computers by working and playing with them on a daily basis. Surfing the Internet regularly, as well as reading trade magazines, will also be helpful. You might also want to try hooking up a mini-system at home or school, configuring terminals, printers, modems, and other peripherals into a coherent system.
Computer systems programmer/analysts plan and develop new computer systems or upgrade existing systems to meet changing business needs. Businesses invest hundreds of thousands of dollars—and sometimes millions—in computer systems to make their operations more efficient and thus, more profitable. As older systems become obsolete, businesses are also faced with the task of replacing them or upgrading them with new technology.
Analysts who specialize in the design of hardware and software systems are often known as systems designers or systems architects. They also install, modify, and maintain functioning computer systems. The process of choosing and implementing a computer system is similar for programmer analysts who work for very different employers. However, specific decisions in terms of hardware and software differ depending on the industry.
The first stage of the process involves meeting with management and users to discuss the problem at hand. For example, a company's accounting system might be slow, unreliable, and generally outdated. During many hours of meetings, systems programmer/analysts and management discuss various options, including commercial software, hardware upgrades, and customizing possibilities that may solve the problems. At the end of the discussions, which may last as long as several weeks or months, the programmer analyst defines the specific system goals as agreed upon by participants.
Next, systems programmer/analysts engage in highly analytic and logical activities. They use tools such as structural analysis, data modeling, mathematics, and cost accounting to determine which computers, including hardware and software and peripherals, will be required to meet the goals of the project. They must consider the trade-offs between extra efficiency and speed and increased costs. Weighing the pros and cons of each additional system feature is an important factor in system planning. Whatever preliminary decisions are made must be supported by mathematical and financial evidence.
As the final stage of the planning process, systems programmer/analysts prepare reports and formal presentations to be delivered to management. Reports must be written in clear, concise language that business professionals, who are not necessarily technical experts, can understand. Formal presentations in front of groups of various sizes are often required as part of the system proposal.
If the system or the system upgrades are approved, equipment is purchased and installed. Then, the programmer analysts get down to the real technical work so that all the different computers and peripherals function well together. They prepare specifications, diagrams, and other programming structures and, often using computer-aided systems engineering (CASE) technology, they write the new or upgraded programming code. If they work solely as systems analysts, it is at this point that they hand over all of their information to the systems programmer so that he or she can begin to write the programming code. (Increasingly, a large amount of coding functions have been automated, but this varies greatly by project.)
Systems design and programming involves defining the files and records to be accessed by the system, outlining the processing steps, and suggesting formats for output that meet the needs of the company. User-friendliness of the front-end applications is extremely important for user productivity. Therefore, programmer analysts must be able to envision how nontechnical system users view their on-screen work. Systems programmer/analysts might also specify security programs that allow only authorized personnel access to certain files or groups of files.
As the programs are written, programmer analysts set up test runs of various parts of the system, making sure each step of the way that major goals are reached. (Analysts who specialize in troubleshooting are often known as software quality assurance analysts.) Once the system is up and running, problems, or "bugs," begin to pop up. Programmer analysts fix these last-minute problems. They must isolate the problem and review the hundreds of lines of programming commands to determine where the mistake is located (or use software that expedites this process). Then they must enter the correct command or code and recheck the program.
Depending on the employer, some systems programmer/analysts might be involved with computer networking. Network communication programs tell two or more computers or peripherals how to work with each other. When a system is composed of equipment from various manufacturers, networking is essential for smooth system functioning. For example, shared printers have to know how to order print jobs as they come in from various terminals. Some programmer analysts write the code that establishes printing queues. Others might be involved in user training, since they know the software applications well. They might also customize commercial software programs to meet the needs of their company.
Many programmer analysts become specialized in an area of business, science, or engineering through education or further on-the-job training. They may therefore attend special seminars, workshops, and classes designed for their needs. This extra knowledge allows them to develop a deeper understanding of the computing problems specific to the business or industry.