why you should teach yourself cs

If a person happens to find himself, they have a mansion which they can inhabit with dignity all the days of their life. - James A. Michener

If you can1, you should learn the fundamentals of computer science. Why? Many will answer because you become a better programmer. My motivations in learning cs are quite different, yet yield the same results. For me, every programmer without a formal cs background should teach themselves cs so that they can find themself.

The essence of the problem is when programmers stick to their comfort zone instead of continuing to explore. Actually, it's quite similar to the secretary problem. Let's say someone started, and built their entire career via web development. Who knows, perhaps that person would have much more enjoyed working on distributed systems? It's like deciding on an ice cream flavor after taste testing only one of them.

To give you some more context, here are some of the many flavors of computing.

Personally, my programming journey so far looks like: frontend -> backend -> platform -> systems -> backend/platform. After exploring the many flavors of computing, I now know which one I enjoy the most. I can fully excel in my work without any fear of missing out. At the same time, I also become a better programmer overall as I'm now t-shaped.

So, if you're intrigued with the idea of strengthening your fundamentals, here are two resources you should check out.

You can read more about my thoughts on here and those on the recurse center here.

Good luck on your journey,


1 The whole premise of this post is to follow the advice only if you're able to. I am so so so priveledged to be able to spend as much time as I did learning cs, and realize not everyone has the opportunity to do so as well.
Naruto studying.