Why You Should Learn Computer Science

Software engineering and computer science are not the same. Computer scientists aren’t always software engineers, and unfortunately, many software engineers don’t know much about computer science. Software engineers focus on building products, writing maintainable code, and deploying maintainable architecture. Computer Science is the fundamental mathematics that software engineering is built upon.

Sorry to interrupt! I just wanted to mention that you should check out my new free Python course, “Big-O Data Structures”. You’ll learn all you need to know to crush your upcoming coding interviews and whiteboard sessions.

What exactly is computer science?

Computer Science is the science that deals with the theory and methods of processing information in digital computers, the design of computer hardware and software, and the applications of computers.

dictionary.com

In other words, computer science is the study of computers and computational systems. While software engineers and application developers focus on the end-result of a piece of software, computer scientists study how to accomplish those complex tasks at a lower level.

Mechanical engineering is to physics as software engineering is to computer science.

The more you understand Computer Science, the better developer you’ll be

Core computer science principles such as algorithms and data structures are fundamental to engineering systems that are useful at scale. While its possible to deploy simple web apps without much knowledge of CS fundamentals, as you grow in your career you’ll start to brush up against barriers that can only be crossed through additional education.

A shift in front-end development

Front-end development has really come into the limelight over the last decade, with frameworks like React, Angular, and Vue.js championing that movement. Server-rendered template pages previously provided a lot of functionality (PHP, Django, Rails) that now exists as a decoupled front-end bundle.

This is fantastic news for a couple of reasons. Firstly, I’m of the mindset that this decoupling is a good architectural decision. It also means that front-end developers take on more responsibility, which allows them to grow and learn as engineers. Years ago, when front-end work was more HTML/CSS and less Javascript, front-end development was less development and more design. For that reason, to work on the front-end developers didn’t need as much of a background in computing as they did in design.

Nowadays, front-end developers need to have strong logic and programming skills not only because they will be required to handle more logic in the browser, but because there is a high chance they will be asked to do server work in Node.

Where should you start learning?

There are millions of topics in the computer science field, and no one understands them all, but below I’ve listed some good starting points. You could even spend years just studying history of computer science, but if you’re looking for a job in tech, your time will be better spent learning the actual concepts.

In the following list, we’ll give a quick breakdown of the most important concepts to study, though we have a more detailed list in our comprehensive guide to learning CS online if you’re interested in that.

Have questions or feedback?

Follow and hit me up on Twitter @q_vault if you have any questions or comments. If I’ve made a mistake in the article, please let me know so I can get it corrected!