Does a Developer need Computer Science? | TeloHub

Does a Developer need Computer Science?

Created on April 4, 2022.

No!, I am not going to tell you to get a computer science degree 👀. I don’t have one too.

As developers, we don’t care about computer science. Its usually too abstract and mathematical in nature. But we know deep down, computer science is at the heart of what we do.

Our Programming Languages, Important libraries and Concepts were created by computer scientists, usually at a university somewhere.

We just watched a couple of YouTube videos or attended a bootcamp/online course and we learnt practical skills we can use to build websites and web applications.

But, the honest truth is that we barely understand the tools we use and how to use them to solve deep and complicated challenges as much as the computer scientist would like us to.

We would never understand the mathematics behind these algorithms and theories. But what we can do is at least understand their purpose and where to apply them. Because our job is to essentially apply the theories of computer science.

My journey as a developer and shear curiosity has led me to dive into a little more complicated computer science concepts than i would like and i definitely understand why most developers avoid them, these concepts are presented in a school-ish manner. Its like their intention is for one to pass exams or write reseach papers. And Exams and research papers are the last thing on my mind. I want to apply these concepts to understanding and solving real life problems.

I think i have found the line where both worlds would co-exist fine. So this blog is how i am teaching developers the bridge between both worlds.

I want to keep this blog as practical as possible so the articles are usually geared towards solving challenges. But, sometimes it is impossible to follow the code/solutions unless you has an idea of what we are even talking about. so i am also creating crash courses to bring developers up to speed.

Fundamental Computer Science Concepts

I am not an expert in computer science but i do my best to read and watch materials on computer science so i can come up with a summarized version of important concepts a developer might need to understand from computer science.

These Topics are universal between all programming languages. This list will improve with more knowledge and practice. If you have suggestions you can email me at admin@telohub.com;

These topics are:

I found that the more I understood these topics the more comfortable i became with programming and the easier i solved problems, i feel like i understood computers at their lowest level.

💡 The articles are tagged by these topics so you can filter and read them accordingly.

Why NodeJs

NodeJS was created 14 years after JavaScript. NodeJs was created by Ryan Dhal as a runtime to enable developers use JavaScript outside of the browser.

A runtime is a bunch of tooling that helps execute and run our code. Most programming language don’t really differentiate the runtime from the language, for example you just install python on your PC to start developing with python programming language.

I personally like the fact that NodeJs is usually differentiated from JavaScript. That’s mostly because JavaScript also run on Browsers. But that helped me a lot in differentiating what is a language syntax and runtime API and support modules.

For example NodeJS ships with a runtime and bunch of support modules like require, fs, net, http, crypto etc. Looking at these and asking what there were for was the beginning of my understanding that these libraries are usually abstractions for important computing and computer science concepts.

Most of these modules are written in C++ for best performance and binded to our program via NodeJs internal bindings. The NodeJS project also allows us extend these bindings if we want to write performance optimized functions and use them in our JavaScript programs.

NodeJS with this architecture of splitting CPU intensive functions to the C++ half and allowing us write our program’s business logic in the simple JavaScript syntax to me is the true realization of what programming should look like.

Programs should be easy for humans to write and also be optimized for machine performance. This split nature of NodeJS and ability to let us extend this model if we want to, for me is pure beauty.

I am almost never in a place to write my own C++ bindings but the knowledge that i can do that when performance is at stake gives me a rest of mind.

Hey 😁, did you enjoy this article?

Then you will enjoy our courses

See in on the other side, bye 👋🏾.

By using this site, you agree that you have read and understand its Privacy Policy.