Hour 22. How Companies Program

This hour attempts to give you an idea of how companies program computers. While the focus here is on larger companies working on data processing or enterprise application development, you will also learn about some of the differences working with smaller companies and even technology startups.

Regardless of size, companies must coordinate their programming efforts to make the best use of their resources. This doesn’t always mean that every program wanted by every person gets written. Actually, the allocation of programming talents is one of the primary tasks of a software development manager (or other similar supervisory position). You will learn about some of the different types of available jobs and their common titles and how those people interface with one another. After this hour, you will better understand the wording of the employment ads for computer professionals, and you will get an idea of the experience needed to obtain the different jobs in the computer industry.

Highlights of this hour include:

Image Learning about typical computer-related departments in large companies

Image Schooling behind programming: which programming degree may give you a boost on the job market

Image Getting computer experience without a degree or training

Image Understanding programming-related jobs

Image How programming teams perform structured walkthroughs of their work

Data Processing and Information Technology Departments

In large companies, core aspects of computer programming might not happen in a department labeled as such. This is especially true in companies that do not actually develop commercial software products. Instead, a large company might have a sort of data processing department known as Data Processing, Information Services, Information Systems, or Management Information Systems (MIS). Or, this function could be subsumed within a greater Information Technology (IT) department, which would also include desktop hardware, communications, servers, and networking (among other things).

No matter what the company’s employees call this sort of department, it is commonly in the center of almost every major new project the company takes on. When a company expansion, acquisition, or merger is about to take place, this department must prepare for the additional computing resources needed. When an internal engineering project begins, this department supplies engineers and analysts to perform tasks.

As Figure 22.1 shows, a data processing or internal software development department writes programs for every other department in the company. Unless the company itself is a software-writing company (such as Microsoft), the company’s main focus is not going to be software development. The company has other objectives, but there is a data processing and IT department that supplies the computer systems and programming resources needed to keep the other departments working as effectively as they can.

Image

FIGURE 22.1 An IT department writes programs for the rest of the company.

Such a corporate setup is natural. In the early years of business computing, the computer department was placed in the accounting department and governed by the accounting staff. The problem with putting the computer department under direct control of accounting is that accounting will tend to write computer systems it needs and the engineering, marketing, and upper management departments might take a back seat. This doesn’t mean that the accounting department would selfishly hoard the computer resources, but the accounting bias would be natural because part of the accounting department’s own budget was set aside for the computers and their people.

It was realized in the late 1960s that the data processing department was not directly tied to any one department such as accounting, but, instead, computer people worked for the entire company because they developed programs that the entire company used. Therefore, standalone computer departments started appearing on companies’ organizational charts. Organizations began viewing their computer departments as individual cost centers that required their own budget and autonomy. Figure 22.2 shows how the typical data processing or IT department fits into today’s organizational charts. As you can see, the data processing department is located on the same level as accounting, payroll, engineering, and the rest of the departments.

Image

FIGURE 22.2 The IT department is evenly ranked with the company’s other departments.

Despite the fact that the data processing or IT department is now autonomous in most companies, that autonomy still doesn’t ensure proper allocation of computer resources. A data processing department’s resources consist of the hardware, peripheral material, such as paper and tapes, and people. The people are the most expensive resource in a data processing department. Their office spaces, desks, supplies, personal computer equipment, telephones, benefits, and payroll costs all add up to a tidy sum.


Caution

No matter how much money a company makes, it cannot allow unlimited spending for the computer resources just described. There must be some checks and balances applied to the money spent in data processing. Unlike other departments, whose worth is measured in dollars received by outside customers, the company itself is the only customer of its data processing department. (Many of the accounting-related departments, such as payroll, often have a similar setup where they work for the rest of the company and produce no outside income of their own.) That is, each department’s budget includes a little extra for overhead expenses (lights, desks, paper, telephones, faxes, copying, secretarial, and data processing usage). By collecting some of each department’s overhead budget, the company can pay for the data processing resources.

This overhead method of paying for data processing costs doesn’t always work well. Overhead is fine for departments such as the accounting department’s general ledger group, but the data processing department’s skills are more in demand than are other departments’. Without checks and balances of some kind, all the other departments will want programs written with little regard to cost (after all, they’ve already paid their share of the overhead expense). The information technology or internal software development department can’t hire an unlimited supply of programmers just because it receives endless requests for programs.


Not all computer programmers work at the company’s location. This is increasingly true for companies that are wholly focused on creating and distributing software as a product or service, where programmers and analysts make up the bulk of the employee roster. As technology improves, companies are learning that some jobs, such as programming, can be performed from any location, including the employee’s own home. For some companies—even large companies—partial-week telecommuting is available to staff members who want to work from home. These employees must still come into the office for meetings and team evaluation and review but the bulk of their work can be done from a PC with an Internet connection. Other companies allow full telecommuting, using video conferences to substitute for meetings, such that remote employees might work for a company several timezones away from their home location. Telecommuters can save money for the company because the company no longer has the expense of the office space and other support services for each employee. Telecommuting can make for happier employees, especially those who thrive in their own environment (as opposed to going in to a sterile office environment every day).

Understanding the Chargeback Approach

Companies have been turning away from the overhead approach to another approach called chargeback. With chargeback, the data processing center or IT department is given no funds from the overhead account (which immediately lowers the overhead expenses for all the other departments). When a department needs a program written, that department requests the program from the internal group, which estimates the cost of writing the program and sends that estimate back to the original department.

It is then up to the requesting department to accept or reject the charge for the programming resources. If the department wants the program badly enough, and it has the funds in its budget, that department’s management can then transfer those funds to the data processing department’s budget, and work begins.

One of the biggest advantages of the chargeback method is that a department cannot ask for the world unless it is willing to pay for it. A department’s own limited resources keep it from requesting more than it really needs.


Note

The money being transferred is sometimes referred to as funny money. It is made up of internal funds that already belong to the company that are being passed from department to department. The company is still out the cost of the computing resources, but when it comes directly from the requesting department’s budget, that department puts its own check-and-balance system in place to determine whether its data processing requests are reasonable.


The nice thing about chargeback is that one department works like a miniature company within the parent company, supplying services as long as those services are paid for. The company doesn’t have to worry about skyrocketing costs; after all, if the money is already in a department’s budget and that department wants to spend it on internal computer programming projects, there is nothing wrong with that. The department will not have those funds to spend on other things, and departments have the right to determine how they spend their own budgets.

Often, the computer programming or IT department hires contract programmers, analysts, and systems administrators when the company’s requests grow. If the department predicts that its workload will increase for a short time, such as when another company is bought by the parent company, or a specific project needs to be completed on an aggressive deadline, contract programmers are hired to program for a fixed time period. Whether the time is six months, a year, or longer is negotiable.

Generally, contract programmers are paid a large salary because the company doesn’t have to pay for the contract programmer’s benefits and retirement. There are software companies that hire programmers full-time, giving them benefits and insurance, and then those companies do nothing but hire out their programmers to other companies who need contract programming. Don’t rule out an opportunity for contract programming if you are looking for a job. The pay is good, the experience is often better (or at least more varied), and often a company eventually hires contract programmers full time as permanent employees if they turn out to be productive workers.

Computer-Related Jobs

Several times a year, media outlets list the job outlook for the coming year, five years, and ten years. For the last twenty years, computer-related jobs have been high on the lists for the best job environments, highest pay, long-term stability, and so forth. That trend will continue for many years. Despite advancements, computer technology is still in its infancy because there are a lot more programs to write than those that have been written in the past.

Companies, especially startups and small to mid-size companies, often allow computer programmers and managers to work in more relaxed conditions than other departments. Whereas a company’s accounting department reports in at 8:00 a.m., clocks out for exactly 60 minutes for lunch, and leaves at 5:00 p.m. on the dot, the software development staff might not all arrive and leave at a uniform time, if they even work on-site at all.

The reason working conditions can be more relaxed is that programmers and analysts often need to pursue a problem or programming task until its conclusion, even if that means staying awake in the computer room for 20 hours straight. Many programmers love to burn the midnight oil. As you now know, programming is not a science yet, and it might never be one. A large part of programming reflects a person’s style and involves a personal commitment to a project. There is a creative side to programming that programmers often find addictive. A programmer who drags in at 11:00 a.m. might be doing so because he stayed up until 4:30 a.m. trying to debug some code for the company.

Managers understand that the creative spirit that programming brings often comes in spurts. When a programmer gets involved on a programming project, she spends more voluntary overtime than any other type of worker would consider. The trade-off seems to be worth the relaxed attitude in many programming organizations.


Note

Another primary advantage of the programming field over many others is its equal opportunity. Because the business computer industry didn’t really begin until the mid-1960s—when the idea of equal pay for equal work was coming into acceptance—equal opportunity was already a part of the computer industry. There are many female, minority, and physically disabled employees in technical fields, and the norm has always been for their jobs and salaries to be equal to those of others among them.


Job Titles

You should understand the kinds of jobs that are out there for programmers. Then when you look at the employment ads in newspapers, you’ll have an idea of the qualifications and experience needed for the different jobs that are advertised.


Caution

The titles described in this section are common in the computer industry, but they are by no means universal. Whereas the title for a job in one company might be Programmer Analyst, another company might give the same duties a title of Senior Programmer. The specific titles mentioned here, although open to change and interpretation, are common enough to describe most of the responsibilities and titles you will see in larger companies.


Degrees and Certificates

Most jobs in technical fields require some kind of degree or certification; whether or not this degree or certification is useful is a common topic for debate. There is also a debate as to whether a two-year associate degree or a four-year bachelor’s degree is best. The four-year degree is always better in one respect: You are more grounded in the theory behind how computers work and will be able to learn new computer skills faster because of it. However, a four-year degree keeps you out of the work force two years longer than a two-year degree, and two years is a long time in the rapidly changing field of computers.

However, a two-year programming degree simply doesn’t give you enough time to learn much about foundational computing theory. In two years, a college will teach you as many hands-on skills as possible. You’ll become familiar with one or two programming languages but likely not have extended time to hone your skills by doing group projects or advanced work. While you may find you can enter the programming marketplace at the same job rank and get paid just as much as someone with a four-year degree (that is to say, at the entry level), a two-year degree in many companies will be a limiting factor to progression in your job.

Perhaps the best of both worlds is possible. You can get a two-year degree, go to work for a company in an entry-level programming job, and go the last two years part-time to finish a four-year degree (most four-year colleges give credit for classes taken for a two-year degree with only a few exceptions here and there). Often a company will pay for, or at least supplement, its employees’ continuing education.


Tip

If you have time and money to spare, and who doesn’t (seriously, though, there are always scholarships, grants, and loans), consider getting a second degree, either an additional two-year degree or a master’s in a field other than programming. A second degree will augment your programming skills. In addition to understanding programming, you will be able to apply those programming skills more readily to an area such as accounting or engineering.


Certification

Another kind of “degree” in the computing scene is not a degree at all. Instead of a degree, a technical certificate shows that you are well skilled in a specific area of computing. Microsoft, Cisco, Oracle, and several other companies offer certification training classes and certifications for their product offerings. After you pass the certification test for a specific area, you are then certified by the corporation offering the certificate. In some fields, job applicants in the computing industry are in much greater demand if they are certified. Unlike a college degree, the certificate demonstrates a specific, measurable ability in a high-demand area of computing such as networking or operating systems.


Caution

The certification tests are rigid and difficult. That’s a good thing (if you pass one) because it demonstrates true proficiency in a subject matter. With a certificate, your minimum skill level is known in advance by those hiring.


Data Entry

Some computer-related jobs don’t require any programming skills. On the low end of the computer ranks are the Data Entry Clerks (often called Data Entry Operators). Data Entry Clerks typically need only a high school diploma or its equivalent and some keyboarding skills. Data Entry Clerks, except for the ones who have been with a company for a long time and have often received pay raises, make the lowest salaries of any of the computer jobs in the company.

The life of a Data Entry Clerk is simple; he sits in front of a computer screen typing data into the computer. Typically, as Figure 22.3 shows, all the Data Entry Clerks type on terminals (keyboard and screen combinations) attached to a central computer, usually a mainframe. Eight hours a day, five days a week, the data entry department enters data.

Image

FIGURE 22.3 Data Entry Clerks normally enter data into the same computer.

A company’s data-entry requirements are massive. Payroll figures, sales figures, government figures, competing statistics, market trends, industry trends, projections, and so forth all must be factored into the company’s working atmosphere. The computer programs that process a large amount of data need it to be entered somehow. The larger the organization, the larger the data needs: Some companies have hundreds of full-time Data Entry Clerks.

At first glance, you might want to stay away from such a job. The data-entry position, however, can be a powerful first step into a computing career for some people. People with little or no computer training who need experience can begin as a Data Entry Operator. While with the company, they can show a positive attitude, meet others within the company, and receive the typical company insurance and benefits. If the clerk pursues the proper training, she can move into higher programming positions, such as data analyst or database administrator.


Tip

As mentioned earlier, a company will often pay for some or all of an employee’s part-time education. Therefore, a Data Entry Clerk, with no programming background at all, can take night classes to begin training in programming skills. After he finishes a degree, or is trained adequately enough, the company can move him into one of the entry-level programming jobs. Such a person might never have been able to get a programming job if he had not started out in data entry.


Programming

A person with knowledge of programming, either a self-taught programmer who has a degree in another area, a person who received programming training in a two-year or four-year institution, or a certified programmer, will bypass the data-entry job and move straight into a job actually related to programming. The first job title given to a new programmer hired fresh out of college (or one with little professional programming experience) is usually Junior Programmer (also known as Junior Software Developer or Programmer I). Junior Programmer is generally considered the entry-level job for anyone without experience as a programmer in another company.

A person typically doesn’t remain a Junior Programmer for more than a year or two. Often, a Junior Programmer does not create new code, but instead focuses entirely on programs others have written, often doing routine program maintenance. During this initial period, a Junior Programmer learns how the company operates, gets acquainted with other team members and the team’s coding styles, and generally “learns the ropes” of the company’s working environment.

After a person stays in the Junior Programmer role for a while, he is usually promoted to Programmer, along with a small raise and a pat on the back. The Programmer title means that the company expects good things in the coming years and has trust in the person. It is rare for a person to hold a Junior Programmer title for several years and still be with the same company.

The Programmer’s primary job is to collaborate on new features as well as work on programs written by others, both maintaining them and modifying them when the need arises. The Programmer’s supervisor will begin to have the Programmer write programs from scratch. Of course, the specifications of the program (the flowchart, output definition, and possibly pseudocode) will already be done and the Programmer has to implement only those specifications into a new program. After a while, the Programmer’s attitude and on-the-job learning can justify moving into a more advanced job with the title Senior Programmer.

The Senior Programmer is primarily responsible for writing new programs after being given specifications to follow, and sometimes advises other teams during the creation of specifications. In some companies, the Senior Programmer doesn’t have to worry much about maintaining older code because the new Junior Programmers and mid-level Programmers take care of that, but many times the Senior Programmer will also act as a team lead and mentor to less experienced colleagues, and naturally will revisit old code with them.

The Senior Programmer title usually commands a pay raise and maybe an office of his own instead of sharing an office with other Programmers. A person is a Senior Programmer for a few years, writing code and getting to know the workings of the company, its users’ needs, and the base of programs already in existence. Senior Programmers may eventually move into managerial roles, or they may remain as Senior Programmers for as long as the work remains interesting to them. Another option for experienced programmers is to move laterally into systems analysis and design.

Analysis and Design Staff

In many companies, Systems Analysts never write programs, but they will have done so in the past. These skills help them efficiently and thoroughly analyze and design programs that others will write.


Note

Isn’t it strange that you train for a long time to be a computer programmer and work hard at programming for several years, just so you don’t have to program anymore? Actually, the programming experience is a must for the high-level Systems Analyst. Without the understanding that programming brings, one cannot design systems for others to program.


The Systems Analyst is often a liaison between the users and the other departments who need data processing work performed. As Figure 22.4 shows, the Systems Analyst talks to both the users and the programming staff. The users don’t understand computer requirements; they only know what they want (or what they think they want). The users must work with the Systems Analyst to design the needed computer system. The Systems Analyst has worked in the company for many years. The Systems Analyst understands the needs of the programmers and the needs of the users in the company. The programmers might appear too technically oriented to the users; sometimes the users themselves don’t even know what they want. The Systems Analyst must be able to produce the output definition and logic design through numerous conversations with the users.

Image

FIGURE 22.4 The Systems Analyst is the go-between for the users and the programmers.

Some companies reward years of excellent performance by promoting a Systems Analyst to Senior Systems Analyst. The Senior Systems Analyst often participates in higher-profile projects and works on many projects at once. Additionally, there may be managerial aspects to the position.


Note

In smaller programming departments (or companies), one person might wear lots of hats, but that person’s job title doesn’t accurately reflect the range of jobs performed. For example, some companies have only two or three people in the entire software development or IT department. All of them might program and also perform systems analysis and design duties. Smaller companies give you the opportunity to perform a wider range of programming tasks, improve your skills, and gain an understanding of the responsibilities of lots of job titles. Larger companies, however, usually offer better benefits, pay, and job security, but it will take you longer to broaden your skills.


Internet and Network-Related Jobs

The online world has created its own set of job positions, many of which overlap those you’ve read about in this hour. “Programmers” for web development agencies, companies that produce web applications, and even mobile application developers might make a distinction between “front end” and “back end” programming, specializing in one or the other. You might also hear the term “full stack” developer, which indicates that a company is hiring programmers who have skills and ability to program both the user (UI) of a software application as well as the underlying logic and systems interactions. You may see the same Junior/Senior distinction in job titles that you do with traditional programmers, or you may see the distinction only in the specialization, such as Front End or UI Developer, Back End Developer, Mobile Developer, and so on.

The huge collection of networked computers generates its own set of jobs as well. You will see jobs with titles such as LAN Designer and WAN Specialist as well as managers of these positions and technologies, including security officers who patrol the network for unauthorized access. LAN is an acronym for Local Area Network, a network that links two or more computers located in the same area, floor, or building, usually by direct wiring or wireless technology. WAN is an acronym for Wide Area Network, which is a network that spans more territory than the usual one-building network.

Demand plays a big role in the pay scales and corporate level of all computer-related jobs. For example, in the last half of the 1990s when the Internet was still gaining popularity and use by leaps and bounds, people with Internet-related skills received a bonus that boosted their pay levels higher than they would have traditionally earned based on seniority. This was due to the demand for workers with those types of skills. While there is still a demand for workers in the programming and technology fields in general, to some extent, salaries have leveled because there is now a different baseline for technological competency in a position. That is to say, basic familiarity with computer technology is no longer a differentiating factor between applicants.

The higher salaries offered in the computer field can be a mixed blessing. When you’ve been in data processing for a few years, your salary becomes much higher than that of others who have been with other departments for the same amount of time. A person who becomes a Systems Analyst and then decides that computers are no longer a challenge often finds it difficult to move to another position within that company. Companies rarely let people move to a position that requires a pay cut; such employees soon miss the money they were used to, and they start looking elsewhere for a job.

Often, upward moves for computing professionals include a move into management. One of the first management-level job titles is that of Team Lead or Supervisor. Leads and Supervisors manage a small group of programmers and analysts, directing projects from a management point of view (making sure their people have adequate resources to do their jobs, are properly evaluated for raises, and so forth). Companies normally prefer their Leads and Supervisors to have experience similar to those they are managing, which is why many managers are promoted from within.

From a supervisory position, you might next move into a position with Director in its title, and be responsible for several Supervisors and their projects. The Director may be even in rank with the Vice Presidents in other departments of the firm.

Structured Walkthroughs

Once you have a job as a programmer in a corporate environment, you should soon learn the norms adhered to by your colleagues. These norms and standards within the company are most often in focus during a walkthrough, which you may participate in on a regular basis. A structured walkthrough is a review of a newly written program by some of the programming staff.

A programmer may generally follow these steps after completing a programming task:

1. The programmer tests the program at her desk and tries to get as many bugs out as possible.

2. The programmer passes the program on to the user for testing (often, parallel tests are performed).

3. The user puts the program into use.

Now that you are more familiar with the roles of the programming staff, you might be interested to know about an extra step that often takes place between steps 1 and 2. When the programmer is satisfied that the program is as accurate as possible, he prepares for a structured walkthrough.

In the structured walkthrough, several other Programmers and Systems Analysts get together with the source code of the program, with the Programmer in the room, and they pick apart the program in detail, trying to find errors, weak spots, broken standards, and poor documentation. Along the way, they make suggestions on how to improve the code. You might also find this process is called a code review in some companies, and may occur frequently (even daily).


Note

A structured walkthrough often produces what is known in the industry as egoless programmers. Programmers are often known for their egos; a good structured walkthrough often shows that a program is not as well written as the original programmer might have first thought.


The structured walkthrough is not an attempt to point fingers. Its only purpose is to produce the best code possible. The other programmers are not going to be critical of the programmer personally; after all, they are going to be at the center of a future structured walkthrough themselves.

After a programmer implements many of the suggestions from the structured walkthrough, the programmer usually finds that he agrees that the program is better written than it was originally. After many such walkthroughs, the programmer develops better programming skills and the company acquires better programs.

Putting a Program into Production

Figure 22.5 shows one version of the steps needed to get a program into use by the user. When the user is finally convinced that the program works as well as originally asked for, and the user is convinced that the parallel testing went smoothly, the program is then moved into production.

Image

FIGURE 22.5 Common steps for designing, writing, and installing programs.

When a program moves into production, it is considered complete. The user begins to use the program in a working, non-test environment. The program’s results are considered reliable within reason. (Over time, a program’s reliability improves as it is used and continues to work well.)

Being in production hardly implies that the program needs no changing and updating over the years. Nevertheless, a production program is one that is considered fixed and usable until a user makes a request to update the program or scrap it for a completely new one. If changes are made to a program that is in production, the Systems Analyst may go back to user interviews and determine what the user wants. The entire systems analysis and design stage is then repeated for the revised program.

Depending on the extent of the changes, a program’s revision might take more or less development time that its ancestor program took to write. As you have read throughout this entire book, the maintenance of programs is critical in our ever-changing world. If you write your code better, by supplying more documentation and closely following your company’s programming standards, then you will have a better chance at locking in your career in the computer field.


“I Want Job Security!”

Job security is an overused term. Often, you hear programmers jokingly talk about the cryptic code they write so that “only they will be able to understand it.” Modern programmers are only too aware of the fact that the better employers seek programmers who write clear, clean code, are more concerned with proper programming, and follow as many of the company’s programming standards as possible.

Some people can write programs very quickly, but the spaghetti code they produce is unreadable for future maintenance. Don’t fall into the trap of thinking that speed is more important than clear programs.



Tip

Version control keeps strict track of versions of each piece of source code that goes into programs, as programmers update them. You’ll learn more about version control in Hour 23, “Distributing Applications.”


Some systems don’t enable programmers to change a program once the system is instructed to treat that source program as a production program. Programmers are able to make copies of the program’s source code, but the program is read-only and cannot be changed. If an update has to be made, the programmer copies the source code and makes changes to the copy. After the updates are made and the new version is ready for production, the production records are changed to reflect the new source code. From that point, the production system treats the new version of the code as the production version, but the original remains in place as a backup.

This tight control over production source code enables a company to ensure that it always has an unmodified copy of every program used by every user in the company. Without such control, a programmer could write a program, compile and test it, and install it on the user’s system. When installed, the programmer might inadvertently change the program. Because it is virtually impossible to reproduce source code from compiled code, the data processing department would have no way to generate the original source code if the users wanted a change made to the program they are using.

Consulting

Many programmers, systems analysts, and other IT professionals find enriching lives as computer consultants. Too many businesses and individuals buy a computer system or software package thinking all their problems will be solved, and they don’t realize the amount of training that is often needed to use the computer effectively. There has been a growing niche for computer consultants over the last several years, and you might find success as a consultant yourself.

As a consultant, you can be a hero or a heroine to your clients. So many times, computer consultants rush to help someone with a problem getting a report completed, only to find that the client is inserting a disk upside-down or forgetting to press the online button on the printer. The computer is still a mystery to a vast number of people.

As a consultant, you can take on as much or as little work as you want. Many programmers moonlight as consultants, sometimes finding that their consulting business grows enough to do it full time. They might give up the benefits that a company can provide, but they like having full say over what they do.

Getting started as a consultant takes little more than word-of-mouth coverage. Offer to help your accountant, attorney, or anyone you know who uses a computer or needs a website with a little interactivity. Tell them that you’d like to start doing some consulting and that you’d be glad to give them an hour or two free of charge just to see how they like the work (and how you like the work). Often, these initial free calls turn into a long-term proposition that is good for both you and your clients.

Summary

You now have an understanding of some common types of computer departments and the people in them. There are many jobs in the computer industry, both for entry-level and advanced programmers and analysts. A computer job is a fun, well-respected, and needed occupation; you’ll be glad you’re a part of the computer industry.

Understanding the job levels and job promotions can be confusing, especially because many companies follow a unique promotion and title scheme. Nevertheless, the general order of jobs that a programmer follows from the beginning to the end of her career is similar across many companies. The online and networking worlds have increased the nature of jobs and improved demand to further complicate the industry and make the roles of programmers even more interesting.

Q&A

Q. Can I get a programming job without a college degree?

A. Many people will argue that one does not need a college degree to be a good programmer and a solid employee, as many programmers are in fact self-taught in their areas of expertise. However, it is often difficult to get through Human Resources screening without a college degree on your resume, regardless of what that degree is in. For example, you might find many holders of liberal arts degrees among a company’s programmer ranks—it wasn’t their degree that got them the job (or even their skillset), but it did get them in the door. Focus on honing your skills and producing programs that people can see and use when evaluating your candidacy for employment. Some companies, especially small companies and startups, are often more willing to look at programmers with nontraditional backgrounds who nevertheless have produced good work.

Workshop

The quiz questions and exercises are provided for your further understanding.

Quiz

1. What does MIS stand for?

2. Who do the data processing or IT department’s programmers write programs for?

3. True or false: Computer programmers may find they have the luxury of flexible working hours and telecommute options.

4. What is one downside of a four-year college degree in a computing field?

5. What does a junior programmer typically do?

6. What does a systems analyst do?

7. What is a structured walkthrough?

8. How can computer-programming personnel ensure job security?

9. What is a contract programmer?

10. Is management always the next step for a senior programmer?

Answers

1. Management Information Systems

2. Any department in the company which requests (and potentially pays for) their assistance.

3. True

4. What you learn during the course of your degree may be obsolete by the time you begin working in the “real world.”

5. Junior programmers often work only on code produced by others, and doing routine maintenance tasks.

6. A systems analyst acts as a go-between for users and programmers, and often designs the rules around the input, output, and logical features of programs.

7. A structured walkthrough, or code review, is a collaborative session to review a program for potential issues.

8. Follow good coding practices and internal coding guidelines, and always keep enhancing skills by learning on your own.

9. A contract programmer is one who is hired on a temporary basis to perform specific tasks over a period of time, often paid more to make up for the lack of benefits.

10. No. Some programmers do not see management as a step “up,” but rather a completely different step altogether that holds no interest for them. Some senior programmers may become analysts, but that is also a lateral move.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.129.218.45