I completed my first year of study in the Online Master of Science in Computer Science (OMSCS) program at the Georgia Institute of Technology (3 out of 10 courses). I wanted to share some intermediate conclusions.
You shouldn't go there if:
1. You want to learn how to program.
In my understanding, a good programmer needs to:
- Know the structure of a specific language, standard libraries, etc.;
- Be able to write reusable and extensible code;
- Be able to read code and write readable code;
- Be able to test code and debug errors;
- Know basic data structures and algorithms.
There are books on this topic, MOOC courses, and good work in a nice team. Individual courses in the MSCS program can help with some of the aforementioned, but overall the program isn’t focused on that. Language knowledge is either a prerequisite for courses or it is assumed that you can quickly master it to the required extent. For example, in the Graduate Introduction to Operating Systems course, we had to complete 4 projects totaling over 5000 lines of C code, plus read about 10 scholarly papers. In the Artificial Intelligence course, in addition to six complex projects, we had to pass two challenging exams—solving tasks of 30 and 60 pages in one week.
There are often no requirements for "good" code in terms of readability. Often the assessment is done automatically based on automated tests, and there are frequently performance requirements; code and texts are checked for plagiarism.
2. Your primary motivation is to apply new knowledge in your current job.
Some courses may provide you with tools. But the question is what you will do with a ton of projects and materials that will consume all your free time over the next few years. I feel the MSCS experience aligns well with a joke:
A scientist and a science communicator were asked about the goals and results of a certain study:
Communicator:
— The results of this research helped test a hypothesis… And significantly contributed to the development of…
Scientist:
— That's just f***ing awesome!
I believe that completing the entire program without losses is only possible if it is interesting and enjoyable for some reason. However, this does not change the fact that employers (especially in the States, but I think not only there) look at such education. After adding information to LinkedIn about my studies there, I started receiving inquiries from recruiters of decent companies from Europe and the States. Among my acquaintances in Toronto, several people have advanced in their careers or found new jobs during their studies.
In addition to professional opportunities, the MSCS program offers other possibilities as well. One can engage in interesting research projects within Georgia Tech if they successfully complete the necessary courses. The head teaching assistant (TA) in AI is a Russian guy who, after a year in the OMSCS program, transferred to campus and moved to Atlanta for study and research. As far as I know, he plans to pursue a PhD.
3. Are you planning to go through the program in proud solitude?
Approximately 50% of the profit from the program is the opportunity to communicate. OMSCS has a large and active community. For each class, a large team of TAs is hired (often students from the same program who have successfully completed the current course). All these people want to work and learn together for a reason. What communication provides:
- The enjoyment of suffering not alone;
- New acquaintances from around the world and the development of soft skills;
- The opportunity to get help and learn something;
- The opportunity to provide help and learn something;
- Professional networking.
The majority of students are people with industry experience, often department heads, architects, up to CTOs. About 25% do not have formal CS education, meaning they have diverse enough experience. At the beginning of the program, I had 5 years of Java development experience at Yandex.Money, and now I am working part-time as a researcher in a medical startup (deep learning in dentistry).
Many students are motivated and open to communication. The program can be completed individually, but as a result, you invest 2.5-3 years of your time (considering work) and only get 50% of the potential profit. For me, this point is the biggest challenge, as there is insecurity and a language barrier, but I’m trying to work on it. We regularly meet with colleagues living in Toronto. They are all quite active and interesting people and advanced professionals; one of them organized a meeting with Zvi Galil, the "father" of the OMSCS program, the dean of the Computing faculty at Georgia Tech, who left his position this year.
An example of motivation: there is a legendary student who combined the program with military service. He would connect to the forum during flights, working on projects and listening to lectures while undergoing field training. He now works at a research institute associated with Georgia Tech and plans to pursue a PhD.
4. There is no readiness to seriously commit time.
At first glance, it may seem that OMSCS is similar to a set of MOOC courses or a specialization on Coursera or a similar platform. I have listened to several courses on Coursera, such as the first parts of Cryptography and Algorithms from Stanford. Additionally, I took one paid online graduate course at Stanford (which is also attended by MS and PhD students) and audited the Stanford CS231n (Convolutional Neural Networks for Visual Recognition) lectures for free.
Based on my experience, the main differences between online graduate courses and free MOOC courses are:
- The already mentioned much greater involvement and motivation of TAs, instructors, and other students, as well as a much higher commitment (no one wants to listen to the program forever, especially since there is a 6-year limit);
- A fairly strict timeline: lectures in the case of Georgia Tech are available all at once (so you can listen to them at your convenience). You can read the textbook in advance (many do this during breaks between semesters). However, there are projects with deadlines, often tied to specific lectures. There are deadlines for exams (usually two per semester). It's advisable to keep up the pace. The amount of time needed per week depends on the courses and experience. I wouldn't expect less than 10 hours a week for one class. On average, I spend 20 (sometimes very little, but it can also be 30 or 40);
- The projects are more complex and interesting than in MOOCs, and significantly larger in scope;
- Such courses attract more attention from universities and potential employers. Specifically, Georgia Tech requests during the application process: 'NOT List non-graded, non-academic-credit MOOC-type coursework.'
5. I want everything to be clear, broken down, and precise.
Firstly, the MSCS is not an undergraduate program. There are lectures, but they provide a rather general overview of the subject. All projects require personal active research. This may include communicating with classmates and TAs (see point 3), reading books, articles, etc.
Secondly, OMSCS has a large and robust infrastructure with many passionate individuals creating and supporting the courses (see point 2). These people enjoy experimenting and challenges. They modify projects, experiment with questions on tests and exams, change testing environments, etc. As a result, this can lead to some unpredictable outcomes. Based on my experience:
- In one course, something broke after an update, servers and those servers stopped providing any stable test results under load. People reacted by adding a server error emoji in Slack and attempting to submit their work overnight;
- In another course, tests and exams were released with incorrect or questionable answers. After discussions with students, these errors were corrected along with the grades. Some took it calmly while others were outraged and complained. All changes for me were positive, and it was even somewhat gratifying (you don’t do anything, yet your grade improves).
All this certainly adds a bit of stress to the already thrilling American rollercoaster, but these aspects relate well to real-life situations: they teach you to explore problems, solve tasks under conditions of lesser certainty, and build dialogue with others.
The OMSCS at Georgia Tech has its specifics:
- Georgia Tech is one of the top technical universities in the USA;
- One of the oldest online MSCS programs;
- Possibly the largest online MSCS program: ~9,000 students over 6 years;
- One of the most affordable MSCS programs: about $8,000 for the entire education;
- Classes simultaneously have 400-600 students (usually fewer by the end; in the middle of the semester, you can withdraw with a W grade, not affecting GPA);
- Not all on-campus classes are available online (but the list is expanding, and there are already some good options, while deep learning is still not available, but we remain hopeful);
- It’s not easy to get into any class due to priority queues and a large number of applicants (Graduate Algorithms paradoxically mostly are taken closer to the end);
- Not all classes are equal in terms of material quality and the activity of TAs and professors, but there are many good classes. There is plenty of information online about specific courses (reviews, reddit, slack). You can always find something that suits your taste.
Considering all the specifics, with a good level of motivation, an active attitude, and an overall positive outlook — this is an interesting and quite feasible path. I hope that in a year my opinion won’t change drastically, and this information will be useful to someone.
Source: habr.com
