I’ve finished 3 classes and 16 credits at OSU so far, which means I’m about 25% of the way finished with the program. So, I think it’s worth taking some time to reflect on why I enrolled, how the courses have lived up to my expectations to far, and what I’m hoping to get out of the remainder of my studies.

I started at OSU in the fall of 2017. At the time, I had been working as a software developer for just over a year, having attended LEARN Academy’s web development bootcamp in the spring and summer of 2016. Previously, I had worked as an ESL teacher for five years, after I graduated from college with a BA in Art History.

Here are some of the motivations that led me to enroll at OSU:

To understand how computers actually work

I work with very high-level programming languages: Ruby and JavaScript. Before I started at OSU, I felt very confident and capable with those languages, but what was going on behind the scenes was basically magic to me. I knew that everything was represented as ones and zeros, but how do you get from ones and zeroes to running Ruby code?

The classes I’ve taken so far have done a lot to answer this question. Learning C++ and assembly demystified Ruby for me by teaching me about things like pointers, the system stack, how values are represented in memory, and how loops and conditional logic are executed on a low level.

To explore specializations other than web development

I really enjoy web development. I love the fast release cycles, the openness of web applications, and the tools that I get to work with.

However, there might be other specializations that I would also really enjoy. With OSU I’ll have the opportunity to take classes in operating systems, computer networks, security, parallel programming, and mobile development.

To be a more well-rounded engineer

Even if I stick to web development professionally, I’ll know more about other aspects of computing as well. The classes I mentioned above and others like Data Structures and Algorithms will make me a more well-rounded engineer. I’ll understand more parts of the system and be able to contribute to the development of programming languages and frameworks.

To explore my “unknown unknowns”

This is the biggest reason I chose to enroll at a university rather than study on my own. There’s nothing in computer science you can learn at a university that you can’t learn on your own, but you have to know that you want to learn it. Studying a curriculum that somebody else designed means that I’ll be introduced to topics I never would have explored on my own.

Some things I’ve learned about so far that I wouldn’t have studied on my own:

  • Propositional logic and various kinds of proofs
  • Graph theory and Dijkstra’s algorithm
  • Floating-point representation and operations

These specific topics haven’t proved practically useful for me yet; time will tell. However, I know that as I continue studying at OSU I will learn about more topics that I wouldn’t choose to study on my own.

To be a better leader

A long-term goal of mine is to be in a leadership role where I can be a mentor and a sponsor to bootcamp grads and other junior developers.

By learning what universities teach that bootcamps don’t, I’ll be more effective at leading developers without an academic CS background, because I will know what their “unknown unknowns” are.


This is the other main reason I wanted to study at a university instead of on my own. The fact that I pay tuition for my classes, have firm deadlines to stick to, and get a grade at the end has a magical way of helping me make time to learn. 😁