hnordt.dev

🇺🇸 I Neglected Computer Science

March 05, 2019

Photo by Isaac Smith on Unsplash

I have always believed that studying Computer Science at college is a waste of time and money. This is mainly because I think each person has his own timing and preferred learning methods. Trying to teach generically, by ignoring each person’s talent and individuality does not make much sense to me.

My big mistake was to believe that the concepts of Computer Science that are taught at college are also useless.

I have been involved in software development for 11 years. I have never studied Computer Science formally, but rather, I learned indirectly by reading documentation and books. I have learned languages like PHP, Ruby, Python, and JavaScript, as well as frameworks and libraries like CodeIgniter, Laravel, Ruby on Rails, jQuery, Backbone.js, Angular, React, React Native, and Redux.

I work as a freelancer, and even without any formal knowledge of the theory, I deliver good results and am being well-paid for it. I always seek to improve the quality of my code, and for that reason, I have fallen in love with functional programming.

When I started learning functional programming, I came across many concepts that are “trivial” to those that had been to college (or at least studied Computer Science by themselves). I previously always ignored those concepts, because I believed that they were purely academic and had no practical usage at all.

After 11 years, I acquired the maturity to understand that things like numeral systems, algebraic structures, time complexities, and algorithms are vital if you want to be more than a person who writes code. Is knowing those concepts necessary to produce results and/or earn money? Not necessarily. There are tons of people earning money and delivering results without any knowledge of Computer Science in general. I’m proof of that.

Similarly, you don’t need to learn how the engine of your car works to drive it. However, if you do, you’ll be able to take full advantage of your vehicle. For example, you might reduce the consumption of gas or maybe increase its service life. If driving is just something you do for fun, learning how an engine works might be overkill, but if driving is what you do for a living, it’s going to pay off in the long term for sure.

To stop being a driver and become an engineer, you need to learn the theory.

Is learning theory useful for everyone? It certainly is not. It depends on your goal. If you want to build software efficiently and produce high-quality code, learning theory is essential.

In the coming months, I’m going to learn computer science by myself. I want to write a few posts to share the knowledge I have acquired and maybe help other people.


Heliton Nordt

Personal blog by Heliton Nordt.
React, Redux, Statecharts, and Computer Science.