How I approached Computer Science from Zero to Learning from Open Source Society University

There is no end to education. It is not that you read a book, pass an examination, and finish with education. The whole of life, from the moment you are born to the moment you die, is a process of learning.” – Jiddu Krishnamurti


I have talked about the power of programming and the importance of self-taught education. Now, I will talk about what I believe to be one of the most powerful Computer Science Curriculums on the Internet today. When I decided to study programming and software development, I came across a bunch of different terms that I had no knowledge in. It was so overwhelming that I thought to myself – “I have to go back to school or I’ll be studying things that I may never even need to know and I’ll be wasting even more time!”. Thankfully the internet has evolved to such a powerful tool today that I was able to find out what I really need to know about Computer Science.

I looked up University Computer Science curriculums to begin with and read about the courses and topics students had to take in order to graduate. I then understood that to become a Software Engineer, they must know more than just writing code. These institutions teach a wide range of topics such as Algorithms and Data Structures, Operating Systems, Computer Networking and Architecture, Compilers and Cryptography. These topics are essential if you want to become an engineer as it helps them write cleaner and more reliable code in software development. This will ultimately lead to more efficient programs that are also easier to debug. Otherwise, you might encounter someone who wrote a 100 line program that could have been done in just a few lines of code.

Before knowing all of this, I was so fixated on what programming language to learn and kept asking Google what the most popular and easiest language to learn. It did not take me too much time to realize that learning a specific language won’t matter if I didn’t know how to actually program and approach problems in an algorithmic and computation way! It’s similar to learning the English language, it is the most widely used language in North America but it wouldn’t matter if I learned its words (syntax) but didn’t understand its meaning (semantics) and how those words should be structured grammatically. Therefore, the language itself doesn’t matter but the theory and how to think algorithmically to solve problems efficiently that is crucial.

The curriculum I found is a repository on GitHub called Open Source Society University (https://github.com/open-source-society/computer-science) and it gives students a free path to a self-taught education in Computer Science. It is designed to follow the requirements of a traditional Computer Science degree and is structured to focus on many Core CS areas – programming, math, systems, theory, and applications. In my opinion, this is a very powerful curriculum in terms of knowledge and technical skills when compared to a traditional degree because the courses offered from this curriculum are coming from the very best schools such as Harvard, Princeton, and Stanford.

Although completing these courses will not give you that traditional Computer Science degree (may change in the future as OSSU is now recognized on Linkedin as a University and working towards having its own organization such as own website and certificates etc.), I strongly believe you will obtain the knowledge necessary to become a very competent Software Engineer and have the freedom to choose your own path. You may even be exposed to much more concepts in Computer Science and thus be able to provide a more efficient way to solve a problem when compared to a typical CS graduate as you are being educated by the best professors and schools around the world and most importantly, and I cannot stress this enough, because of the self-taught mindset.

Leave a comment