Before I decided to major in Computer Science, I wondered if it would be too hard for me. I had good reason to think it would be hard; I wasn’t a great student in high school. And Computer Science is the most dropped major of ALL majors with a 9.8% drop rate. So why would I excel at Computer Science when it’s known to be a difficult major? The simple answer is, I’m not.
Is Computer Science Hard?
Computer Science has the highest drop-rate of all majors and it’s notorious for being difficult so yes, Computer Science is hard. What makes it hard to learn for most students is the logical programming paradigms, the high degree of mathematics required for a Computer Science degree, or a lack of interest in Computer Science.
That said, many succeed at learning Computer Science. It helps to have a mind for logic, reasoning, problem-solving, creativity. As well as the discipline to sit in front of a computer for hours at a time. However, I really think the most important part of learning Computer Science is passion and interest in it. If you have a strong desire to learn the material and you put it the time and effort to learn it, eventually it will stick.
My Experience Learning Computer Science
Community College (2 Semesters)
As I said before, I wasn’t a great student in high school. And I started community college when I was 26. That’s 8 years after I graduated from high school. So with all that time off, I wasn’t sure if how I would fair. However, I decided that I had to try.
I enrolled at community college while I was working at a restaurant as a server. First, I worked through the low-level maths and electives. My grades for the two semesters were better than I expected. My GPA was around 3.4 if I remember correctly.
Purdue Northwest University (2 Semesters)
Then I transferred to Purdue Northwest University struggled with Calculus 1 and Calculus 2 for two more semesters. During this time, I also took my first Computer Science class and… I failed it!
I had to retake ‘Intro to Java‘ and I passed it the second time around, but failing that class really hurt. I spent so much time on Calculus it felt there was no time left for Java. Anyway, after these two semesters, I transferred to a more cost-efficient state university that was closer to home.
Governors State University (1 Semester)
Governors State University doesn’t require as much math as Purdue so by the time I transferred, I was finally done with Calculus. Which is great because Calculus 2 was the hardest class I’ve ever taken. Now, I could finally focus on my core C.S. classes.
I did have to take a biology elective this semester, but I also took Intro to Computer Networks, Introduction to Computing, and Data Structures and Algorithms. Even though I got a ‘C’ on my midterm in data structures and algorithms, I ended up with straight A’s for the semester.
I was really proud of myself this semester, but I’m not celebrating just yet. I still have 4 more semesters until I graduate, so I anticipate some challenging classes to come. Maybe I don’t get straight A’s every semester going forward, but that’s okay. However, I love all the work I’m doing so I consider it to be more play than work. And that’s the biggest difference between succeeding or failing in Computer Science.
Also, I’m determined to prove that it’s okay to fail as long as you don’t give up. I’m going to go from failure to graduate to software developer to successful tech entrepreneur. I want to create technology that helps people and perhaps even changes the world. However, I won’t be able to do that if I give up on my dreams.
Why Is Computer Science So Hard?
From what I’ve seen and personally experienced, there are three main reasons that people struggle with Computer Science. If you know what you’re most likely to have trouble with, you can prepare for it in advance.
1. Logical programming concepts
I personally struggled with this at first but I know with absolute certainty that this is a common phenomenon. When you’ve never programmed, it can be pretty hard to wrap your head around it at first. There aren’t many other things like programming, so it just takes some time and a lot of practice to wrap your head around it. Laura White had this to say about learning programming.
Be kind to yourself. Believe it or not, feeling frustrated is part of the learning process. You are essentially learning how to write instructions for a computer and/or a browser. This is not easy to learn.
Build your problem-solving skills. Before diving into the code, it can help to learn how engineers think. One book you could dry is V. Anton Spraul’s Think Like a Programmer. He uses C++ to teach problem-solving skills, but at a high level, it’s applicable to any programming language. In the introductory chapter, he discusses why learning programming is difficult, and that alone will probably make you feel better if you read it.
Study math and mathematical concepts. As I mentioned above, revisiting high school and college math helped me improve as a programmer. Programming concepts are built on math, so understanding the logic in an abstract way can help you as you attempt to use it to solve challenges and write better programs.Laura White, Web Developer at youCanLearnHowToCode.com
2. High-level mathematics
I know, mathematics doesn’t bother everyone, but after 8 years with no study, math is the subject that hurts me the most. That said, Calculus ended up being one of my favorite classes, even though I struggled with it. I eventually learned to love the process of solving derivatives and integrals.
Each problem took up a whole sheet of paper so finding a solution after all of that was very rewarding. Not to mention, all of that math and problem-solving really helped me when it came to programming. Math usually isn’t used to such a high level in C.S. but the ability to solve problems is priceless.
Read here if you want to learn all about math in Computer Science.
3. Lack of interest in C.S.
This was never a problem for me because I was able to think long and hard about majoring in Computer Science. I even made my first website, a tribute to my wife (then girlfriend) for her 23rd (golden) birthday. To be honest, it was a pretty flawed site. However, I had so much fun making it and learning about HTML and CSS.
However, I have talked to many students who decided to major in C.S. without any programming background and without any real purpose for their decision. They don’t know what they want to major in and they probably thought Computer Science is cool (which it is) so they chose it on a whim. If you’re unclear on what to do with the rest of your life, I advise you to figure it out in community college. University can be a very expensive place to “figure your life out for a year.”
Key Items To Remember
- Computer Science can be very challenging because of the math
- Yes, there’s is usually a lot of math in Computer Science
- Computer Science is logic-based
- If you enjoy solving problems, you’ll enjoy Computer Science
- If you enjoy making things, you’ll enjoy Computer Science
- You will spend a lot of time sitting in front of a computer
- Computer Science can be one of the most rewarding majors