I spent a lot of time scouring google with queries like “is computer science hard reddit” back when I was deciding whether I should go ahead and get a computer science degree. I wanted advice from someone who had boots on the ground in the computer science field.
I was in a weird spot in my life. I already had a degree in biology from a decent school. But honestly, fieldwork didn’t appeal to me, nor did becoming a teacher. I didn’t care enough about any particular discipline to go in deeper. So I was at loose ends, working odd jobs while I decided on my next move.
I had heard from a few of my friends that computer science was a good job… if you were up for it. With that ominous caveat, I took to Google to try to find the answer. Was computer science hard? More importantly, was it too hard for me? (Was it worth it for that hefty software engineering salary
Here were some of the answers I found after searching again today:
“I have a CS degree - while there is a lot of math, if you’re willing to study and take it serious, with all the resources nowadays I don’t see why you would have problems passing.”
“Don’t choose a CS career if you just want money. Choose the CS path because you enjoy technology work.”
“Computer Science is effectively a math degree that teaches you programming. If you are struggling with math, you will probably find computer science to be very upsetting and stressful.”
After scouring the internet, I realized my problem. I wanted someone to give me a straight-up:
“Yes, computer science is too hard”
“No, computer science is fine.”
However, like so many other things in life, there isn’t any one answer to the question. All the answers said the same thing: if you like math and tech, then you’ll probably enjoy computer science enough to stick through a course or degree.
Ultimately, I decided not to get a degree. They were expensive, and I kind of wanted to get a move on in my life faster than four years. So I embarked on my own journey of learning computer science. I am now happily qualified to answer the question, “Is computer science hard?"
Let’s jump in.
The short answer: Yes, computer science is hard. 🔗
I’ll give you what I wish I’d had back in 2020, when I was wondering if computer science is hard. Yes, it’s hard. But so are statistics, calculus, biology, English literature, social media marketing and psychology. There’s no such thing as an easy subject. There are only people who make it look easy, and people who don’t.
A lot of folks ask questions like, “Is computer science harder than engineering?” or “Is computer science harder than medicine?”
My answer: these comparisons aren’t helpful. Like anything, if you want to learn it well enough to get a decent job, it’s hard. You’ll have to apply yourself to pick up the lessons and code for hours in front of a screen cramped with code. It takes a toll on you. It’s not easy.
Come to the dark side
Regards and sorry for the interruption, Lane here! I built Boot.dev to give you a place to learn back-end development the...hard way? I mean easy? Maybe the "heasy" way? I don't know.
It's hard because you will have to write code... like a metric ton of code. It's easy because my courses have a built-in game that's pretty darn fun. Give it a try.
What exactly is hard about computer science? 🔗
Why is computer science hard? Slightly paraphrasing Leo Tolstoy here: every difficult subject is difficult in its own way. Computer science is hard due to a unique set of characteristics.
There’s a bias about who is good at computer science. 🔗
Here’s a set of images created by DALL-E mini with the prompt, “computer scientist.” Notice anything?
Apart from looking like escaped demons from the ninth circle of hell, they’re all white men. That’s the predominant image of computer scientists on the web. (You can check out DALL-E’s disclaimer here about its biases and limitations.)
Why does that make computer science hard? Because for a long, long time, if you weren’t a straight white guy, you would face discrimination from peers, professors, and bosses.
And it’s still the case today, if to a lesser degree. The LA Times published this article in 2022 about the lack of diversity in Silicon Valley, highlighting some of the author’s experiences as a Latina woman in tech. It sucks, but it’s still true today, even if hopefully it’s getting better over time.
Mistakes are easy to make and hard to fix. 🔗
One thing that makes computer science hard is the stubbornness of errors. I remember spending hours trying to debug a script I’d written. It came down to a single misplaced comma. One single comma! I spent an entire frustrating afternoon staring at my screen, fixing different things, and trying to interpret obscure error messages before I finally caught my typo.
With computer science, you need to come armed with patience and resilience. Things can and will go wrong.
There’s a steep learning curve. 🔗
Think of computer science as a complex video game. When I started gaming, I played two different games. I tried “Divinity: Original Sin” and “Lego City Undercover”. Both were hard for me at first, because I’d never played video games before. But Lego City Undercover was a lot easier to pick up.
DOS had a much steeper learning curve. It took me much longer to get the lessons to stick, what to do when. It was a more complex game, with more options. I could go much deeper, too. Computer science was like DOS for me. It took a while for me to get comfortable with it. I had to learn a lot of the same lessons over and over again. And when I thought I’d mastered a concept or angle, I’d screw up in a way that taught me I had a lot left to learn.
This complexity and depth mean computer science is hard to learn.
Lack of pop culture 🔗
Don’t laugh! This is a real issue with computer science. Some subjects are easier to pick up because there’s a lot of cultural immersion. For example, when I studied literature, I already knew a lot of the beats of the classics we studied. Dracula appears in pop culture, as do the Grimm stories and a lot of the 19th-century British literature we read. Not only that, but someone had gone to a lot of effort to make complex subjects easy to grasp through resources like SparkNotes.
Computer science doesn’t really have an equivalent because there’s no agreement on what “the classics” are. There’s very little overlap between your day-to-day life and what you learn in computer science. You start much less familiar with the source material than you do with other subjects, which makes it less accessible. Ergo, computer science is hard due to a lack of familiarity in pop culture.
Computer science is easier depending on the format. 🔗
Computer science is challenging in a different way, too: the entry bar is lower. Nobody’s going to hire you to be a postdoc in chemistry unless you have a PhD in chemistry. But due to the chronic shortage of capable computer scientists, people can and do get hired for computer science positions based on their self-taught lessons.
So now the door is open. You could conceivably learn computer science without going back to school for it. And guess what? That’s really hard.
I did it the hard way. I checked out the best places to learn Python online. I googled and read blog posts and watched YouTube videos. I took tons of free online courses and a few cheap Udemy courses. I’m glad I did, but boy, I spent so long and so much of my blood, sweat, and tears when there’s an easier way.
- Go back to school. You have the option of going back to university. It takes four years and a ton of money, but the option is there. Get spoon-fed information, projects, knowledge, and get a fancy diploma at the end of it.
- Lean on pre-existing curricula. This is what boot.dev offers – a complete and ever-growing course of knowledge to help you cover the theoretical and practical side of computer science. There’s also a kickass community and weekly events to help fill out your resume.
- DIY. This is what I did. It’s not for the faint of heart, and you risk missing massive integral areas of study because you just don’t know they’re there.
- A mix of the above. You can get a certificate here, a bootcamp there, a YouTube series too, and maybe a college-certified course off Coursera.
Want to learn Python and Go?
The rumors are not true. I've been writing Go and Python for many years and I smell delightful.
Computer science is easier to learn if you have these advantages 🔗
Is computer science hard for someone with no experience? Well, it’s a lot easier with the right background. For example, like Reddit user SouthernRhubarb implies, you need to like math to comfortably get through a computer science curriculum.
If you have experience with and enjoyment of these things, then you’ll find computer science a lot less hard:
Computers in general 🔗
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. This makes computer science less hard.
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.
This one has less to do with your experience level and more to do with your personality. However, 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.
Self-directed research 🔗
Did I mention how much of my time has been spent googling and reading StackOverflow questions? 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 workday as a developer looking stuff up.
No one will ever fault you for not knowing even a slightly-obscure fact about the industry, but you will be expected to be able to find that answer.
Writing code 🔗
Coding, while practically inseparable from computer science, 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.
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 learning computer science.
Is computer science hard? 🔗
The short answer, again, is yes. Computer science is tough to learn. It’s easier or harder depending on your background or how you choose to learn it. Do you have zero experience coding and want to learn the DIY way? Then you’ll struggle, though it’s still doable. Are you an avid programmer who’s handy around a computer and spent a lot of time behind a keyboard writing scripts for your favorite videogames? Then you’ll find it easier – but not easy.
For example, I had an interest in animals and science growing up. I’d read a lot of the textbooks that were assigned later in college. I had seen some David Attenborough documentaries. All these things made it easier than computer science for me personally, though the degree was still hard. If things had been different, maybe biology would have been harder than computer science.
When you ask, “Is computer science hard?” I have to assume you’re really asking: “Is computer science too hard for me?" or “Is computer science too hard to be worth it?”
And I can’t answer that question. Only you can. After reading this post, I hope you’re a little closer to your answer.