Learn coding concepts by building real projects with modern technologies

Is Computer Science Really that Hard?

By Lane Wagner on Mar 24, 2021

With the influx of interest in the edTech site I’ve been building, I’ve been getting a question that I don’t think I had previously taken the time to really think through, “Is computer science hard?”. Like most things, the answer depends on your perspective and current situation. That said, my guess is that a standard computer science education is easier than most of my readers think.

Take as an analogy two friends, one weighs 300 lbs and is trying desperately to lose weight, the other friend weighs 100 lbs and wants to pack some on. If you were to ask them, “is gaining weight really that hard?” You’d get wildly different answers. There are so many factors including appetite, exercise, metabolic rate, starting weight, work routine, etc. In a similar fashion, some of the biggest factors when determining an answer to the question, “Is computer science hard to learn” would be:

The more of those questions you can answer “yes” to, the easier it will be to learn computer science. That said, no matter your answers, it’s always possible for you to start learning, even without any experience if you have the desire. The important question that only you can answer is “do you want to learn computer science?”.

Some factors that affect the difficulty of learning computer science

1. Do you have experience with computers in general?

It should be fairly obvious that the more you know about computers in general, the more effective you’ll be at picking up a skill that’s intimately involved with them. The less time you’ll need to spend learning how to copy & paste, configure desktop settings, connect to the internet, or open the developer console in a browser, the faster you’ll be able to move.

2. Have you taken a good amount of math?

Assuming your goal is to learn computer science, and not just basic software development, the more math you’ve taken the better off you’ll be. For example, if you’ve never even learned basic algebra it’s going to take a minute to catch up. There’s a surprising amount of algebra and basic math in even the most simple algorithms. Trigonometry and Calculus help a lot also but aren’t as necessary as a solid algebra foundation.

3. Do you like to tinker?

This one has less to do with your experience level, and more to do with your personality, that said, even if you don’t love to tinker and play with problems it’s a trait that can be learned. Once you actually get a job coding and building software systems, you’ll be surprised how much of your job is just tinkering with existing projects to see what makes them tick. If you enjoy looking deep into how stuff works, it will help you to avoid burnout when you can’t figure out why the code isn’t behaving as expected.

4. Do you like to look things up (Google them) and do research on your own?

It’s practically impossible to learn all there is about a field as vast as computer science and programming. You need to get used to the idea that you’ll be spending a good amount of your work day as a developer looking stuff up. You need to not only be comfortable without knowing the answer to everything all the time, but also be competent at finding the answer. No one should ever fault you for not knowing even a slightly-obscure fact about the industry, but you will be expected to be able to find the answer.

5. Have you ever written any kind of code before?

If you’re a coder and are just trying to learn computer science (algorithms, data structures, cryptography, etc) you’ll have a much easier time! Coding, while practically inseparable from CS, is actually a different discipline. Learning computer science is possible with just paper and pencil, but it’s much easier (and more practical) to use code.

Learn Go by writing Go code

I'm a senior engineer learning Go, and the pace of Boot.dev's Go Mastery courses has been perfect for me. The diverse community in Discord makes the weekly workshops a blast, and other members are quick to help out with detailed answers and explanations.

- Daniel Gerep from Cassia, Brasil

How long does it take to learn CS?

Again, this depends a lot. If you plan on taking the university route instead of being self-taught, then it will take four years. If instead, you decide to pursue various online certifications and learn by yourself it can take less time. If you go this route, then you, and not anyone else, are primarily responsible to make sure you cover all the material that you think is most important.

What else makes CS a hard subject?

Learn to code by building real projects

Related Reading