Students often ask how graduate school works so this page attempts to explain a bit about the process and merits. I believe that a Masters degree, at the very least, should be a part of most student's future. However, unlike a traditional undergraduate education, there are many ways to go about graduate school. There is the question of Doctorate vs. Masters degrees as well as full-time vs. part-time, and finally, where to go. So let me attempt to answer these and other questions. I'll describe my own path through a Masters degree onto a Doctorate at the end.
The Masters degree is pursued by people who want to broaden and deepen their knowledge of the subject in order to excel and advance in an industrial setting. Some people will move to academia with a Masters degree, but you are generally limited to Community College or smaller Liberal Arts colleges and, even there, are often limited to certain professorial ranks. So, while a Doctoral degree is important for someone who wants to do research in academia, it's overkill for most who want the knowledge but have no desire to do academic research and/or teaching.
The Doctoral degree is generally pursued by people who want to do research in either a University or public/private corporate setting. Most people pursuing the doctoral degree are not interested in teaching, that is merely a part of life in the University setting. The purpose of a doctoral program is really to certify that you are capable of doing publishable research. Along the way you will often complete the same sort of course-work that is required of a student in a Masters program, but you will also engage in a multi-year research project that will conclude with a written dissertation (think of this as a book that describes your work). When pursuing a Doctoral degree you will be working closely with an advisor who acts in some ways as both a mentor and a boss. That advisor is a faculty member who has ongoing, funded research projects and your research is expected to be related to the overall research areas where your advisor works. Graduate students are essentially a research faculty's employees.
Pursuing a Doctoral degree is quite literally a full-time occupation. In a sense you are a paid employee working for your faculty advisor. However, there are an increasing number of non-traditional programs offering Doctoral degrees in Computer Science. But by far the majority of students will pursue a Doctoral degree as a full-time student. Completing a traditional Doctoral program can take approximately 4 to 6 years full-time, and longer if you're in no hurry although most programs have a limit on the number of years of financial support they will provide (see below).
For Doctoral students, while there is technically a tuition cost, that cost is generally paid for you by the University via a scholarship. In fact, as a Doctoral student, you are paid while attending school. Most Doctoral students receive both a scholarship that covers tuition as well as a stipend for being either a "research assistant" or a "teaching assistant" for your faculty advisor. These stipends are barely enough to live on if you're very frugal and perhaps live in shared housing. Of the two assistantships I mentioned above, the research assistant is the preferred position. As a research assistant you will be getting paid for conduction your Doctoral research along with your faculty advisor. Teaching assistants are paid to teach courses or run laboratory sessions for classes in your faculty advisor's teaching load. At large research Universities, it is not uncommon for lower-division introductory courses to be taught by teaching assistants. If we had those roles here, you could imagine that CSIS 201 & 202 might be taught by a graduate student and not a faculty member. When you're admitted to a program, you will also be presented with a financial package that will include stipends and assistantships; most incoming students will have a teaching assistantship initially and then perhaps move to a research assistantship later on. Your scholarships and stipends actually come from the various grants that your faculty advisor has received.
Masters programs rarely provide the sort of financial support that Doctoral students receive. For most schools, Masters students are an important source of revenue. Still, full-time Masters students can sometimes get involved with a research faculty and become a part of a research group, earning a small stipend. More generally, most Masters students are pursuing their degree part-time and the tuition is being paid by the student's employer. This is a great benefit provided by many employers and I encourage all students to take advantage of this opportunity if it is available (see my experience below).
For a full-time student you have more flexibility. While financial considerations will certainly play a role (the amount of any stipend and the cost of living), the most important consideration, especially for a Doctoral degree, is the research interests of the graduate school's faculty. With the exception of a few very large and well-known (and difficult to be accepted into) schools, most graduate programs have only a few areas of specialty. It's important to choose a school that has faculty doing active research in the areas that interest you as that improves your odds of being accepted into the program and getting connected to a faculty with the funds to support you. You need to consider your application to a graduate program as a sort of job application. So if a particular school doesn't conduct research in areas that interest you, you're unlikely to be an attractive research assistant to any faculty in that program. As a result, you need to investigate a number of schools to find out who's doing research in areas of interest and target your applications accordingly. The web is an obvious place to start your search for a graduate school. Another approach is to look through the proceedings of recent conferences and see where the authors and conference participants are coming from. It also helps tremendously to have some connection to the school through friends, family, or colleagues.
However, my first job was with the Pacific Northwest National Laboratory, one of the US Department of Energy research labs. At PNNL, many of my colleagues had advanced degrees and so it didn't take long before it was suggested to me that I should probably pursue a MS/CS. At the time, Washington State University offered an MS/CS at what was called the Joint Center for Graduate Study less than a mile from my office at PNNL (the JCGS is now WSU-TriCities - a formal branch campus of WSU). Almost all courses were held in the early evening, making it convenient for part-time students. PNNL had an employee educational benefit that paid all tuition, so I was able to pursue my MS/CS at no cost to myself. It took approximately 3 years to complete and my sense was that it was tremendously valuable as it filled in lots of things my BS/CS missed and let me explore topics I was interested in at a much greater depth.
Having been with PNNL for about 5 years by the time I completed my MS/CS, I began to consider going back to school for a Doctorate which I felt would open up the opportunity to move into academia, primarily to teach. Because PNNL was a research institution, employees with Doctorates were highly valued and they were eager to have some Computer Scientists with Doctorates (at the time there were a few Doctoral degrees in my department, but none in the area of CS). So I was fortunate that PNNL was willing to give me a leave-of-absence to pursue a Doctorate as well as provide me with a modest stipend that made it possible for my wife and I to live "comfortably" while I attended graduate school full-time. This is probably uncommon as most employers would not value an employee with a Ph.D. as highly as PNNL does and therefore they were willing to give me the time and money to pursue this. Some employers might be willing to give a leave-of-absence, but in other cases you may just need to terminate employment. However, PNNL's assistance did not come "free." In exchange for approximately 4 years of support, I was obligated to return to the lab for a minimum of 4 years to repay the stipend they had provided (or reimburse them for the entire sum). I chose to return and spent 4 years at PNNL before I began looking for an academic position that was teaching-oriented.
So in the fall of 1989 I enrolled at the Oregon Graduate Institute of Science & Technology (OGI) and moved to Aloha, OR. OGI was a very small school but it had a very good reputation in the area I was most interested in - Object-Oriented Database Management. I found OGI while reading journal articles on OODBMS where I discovered that one of the principal researchers in this area, Professor David Maier, was at OGI (Dr. Maier and many of the CS faculty at OGI have since moved to Portland State University as the CS department at OGI changed focus as a result of OGI's merger with OHSU). I had applied to, and was accepted at, a couple of other schools (and turned down by a few) such as the University of Oregon, but some of those schools did not guarantee financial assistance or weren't my first choices while OGI, my first choice, also offered me the best financial package; I happily took that as an indication of God's providence.
The program at OGI began with an intense year of full-time classes, some of which rehashed what I had done previously during my Masters degree. At the end of the year students took a few days (literally full days) of comprehensive "qualifying exams" that were written exams over the coursework we had completed. Students who did poorly on these exams either dropped out or, in some cases, took another semester and finished a Masters degree instead. The second year at OGI I took a few classes of interest, but the time was spent doing research and developing a research question I wanted to work on for the next couple of years. At the end of the second year, all students had to give a written and oral presentation that was called the "research proficiency exam." Again, some students who hadn't made progress and were judged to have done poorly, dropped out. It is not uncommon for Doctoral programs to have one or more points where they weed out candidates (although OGI would later drop the "qualifying exams" as they felt the exams were too difficult and weeded out too many capable candidates).
Those of us who passed these exams then moved on to completing our research over the next few years. The one trap many students fall into at this point is that, unlike a "real" job, there are few external pressures on you to conduct and complete your work. It takes a tremendous amount of self-motivation, or, in my case a wife and the birth of my first son, to keep you moving along. While I finished my degree in just over 4 years, many of my contemporaries took 5 years or longer, and quite a few never finished at all and simply moved on when OGI ended their support after 7 years.
After OGI I returned to PNNL in 1994 where I started teaching at WSU-TriCities in the evenings as an adjunct professor in the Masters program in which I had once been a student. I enjoyed the teaching and it confirmed in me the desire to eventually move on to a teaching position at a small Christian Liberal Arts College such as GFU. I left PNNL for GFU in 1999. Had I remained with PNNL I would have moved into leading a research team, large projects, or managing a group of staff.
If you're interested in pursuing a Ph.D.,