I started in Spring 2016 and about 2.5 years later, I graduated in August, 2018.
In this post I talk about why I chose OMS, how I balanced it with a full-time job, what it is like to study with almost no supervision, and in what conditions I recommend it.
About 3 years ago, as I was growing as a software engineer, I really wanted to spend more time with CS theory. But, in 2016, my financial priorities did not allow me to leave a job and go to university full-time.
I heard of OMSCS and Georgia Tech’s great reputation. It ranks pretty high in several university rankings. I don’t care to find the links because these 2.5 years have given me enough proof of the merit of students who graduate from this program. Very humble brag, of course. 🙂
Moving to a remote job was necessary too – I couldn’t afford to waste time in daily commute. Thankfully, I got a job at Travis CI, and I started looking forward to Mondays a lot more than Fridays. 🙂
These logistical changes helped a lot, but even with very supportive employers and colleagues, balancing all the workload was a challenge.
Working full time and studying in the evenings and weekends meant, that my weekends began at 2am on Sunday nights and ended on Monday mornings. Friday evenings were about settling at my study desk with coffee, jumping right into that weekend’s assignments.
Over time things got better as I learnt from some mistakes. Here are some of them that I’d advice OMSCS students against.
First mistake – starting with a hard course.
I started with Advanced Operating Systems, without even taking the corresponding introductory course. Rookie mistake!
Second drawback was being out of touch with a university model of learning.
I thought I’d take from this program what I cared to learn and not care about the grades. While that is generally a mature thought, inspired by a profession where you need to learn constantly, Georgia Tech expects really good grades to confer a degree.
I dropped my typical Indian ambition of straight As long before starting this program. But GA Tech’s rules for the program, brought back some of the memories.
I needed to clear 2 foundational courses in the first year, with a minimum of grade B, and, I needed to complete all courses needed for my specialization, again, with a minimum of grade B. Then, there were others…
Another problem was with my style of working on programming assignments – I worked on them like an engineer.
Nah, I should have worked on them more like a researcher – curious, diving deep into the theory and excited by the results, but not one who’d write code professionally – well documented, style checked, complete with an extensive test suite.
And then there was the mismanagement of time – thinking it’ll be enough to leave all homework till the weekend!
Weekends alone weren’t enough to complete the coursework. What I needed were completely focused, highly productive weekends. All weekends.
It caused me a lot of anxiety when I did not get started on a week’s school-work, pretty early in the week.
As I learnt from these mistakes and adapted to remote work and studies, side by side, I began to enjoy my studies a lot. I loved the sense of accomplishment at the end of every project.
So, for prospective students, I have a few things to say.
Definitely apply – this is a great opportunity and if you’re missing university because you’re bound geographically or by other life priorities, do it!
Bump up your organizational skills.
Lists, calendars, reminders, notes for context switching – do what it takes.
omscentral.com is your friend.
This is the central place for course reviews. They are abundant and help a lot with setting expectations clear.
(This was the typical solution my parents offered to almost all my childhood problems, years ago.)
Start working on assignments as early as possible. Get into full productive mode from day 1. In many courses you might even have the first assignments due the very next week. The summer semesters are much shorter than the spring and fall semesters, but the workload is the same.
Prepare in advance for harder courses.
Umm, yes. For some courses, some students prepared in advance, e.g. the Graduate Algorithms course. Sometimes you need to brush up on undergraduate level courses like Linear Algebra before taking courses like Introduction to AI, or Graduate Algorithms.
What about travel, relationships, personal time, etc., you ask?
Each train, bus, and flight that I’ve taken in the last 2.5 years has been occupied by schoolwork… to-go. careful planning, offline resources and a computer with good battery life, is pretty much all you need.
I took an exam 2 days after my very Indian wedding. So, yeah!
That said, I am sure there are people who had a decent life outside of course forums, gradebooks and their python code. 🙂
Was it worth it? Do I recommend it?
OMS was a very satisfying challenge. Definitely because I was curious about some famous algorithms and learning about AI.
Every week felt like enormous progress. It took a lot of context switching, between work, studies and the rest of life. But I have come out a lot more organized, and a learner for life. There is not much barrier to learning well into a career any more.
I recommend it to people who can shell out more than just the weekends for schoolwork. It is best suited to people who are self-driven, organized and dedicated. Aiming to balance out OMS with a 30-hour work week, might be ideal.
Having a supportive family and employer is definitely a plus. At Travis, I was able to take days off around exams and even a shorter contract to do a jumbo semester with 3 courses, to speed up the program. Big shout-out to my fellow builders at Travis. ❤
If you’re thinking of applying and have questions, feel free to ask. 🙂