Is Computer Science Hard?

I’m an upcoming freshman and I’m currently majoring in Computer Science.

Ever since I was very young, I was always interested in computers and technology just like many of the people who are choosing this major. Computers and programming are really, unfortunately, the only thing I’m interested in with all the majors to choose out there. I’m not the best at math, and that’s what made me stumble whether or not to choose this major. But because nothing else interests me, I decided to give this a try.

I started (over this past summer) looking at certain coding language beginner tutorials on YouTube, and I liked it a lot and it it was the only thing that didn’t seem like work to me.

I was excited to go to College to pick up my first intro to programming textbook that I will be using in class for the rest of the semester. After reading some of the pages, I got the biggest headaches ever. Some of the stuff made absolutely no sense to me, and I honestly wasn’t excited anymore and I felt like quitting my major that I haven’t even started yet because I hear that it “takes a certain person” to succeed in this field.

After re-reading the material in the book, I started to get the material. But I mean, some of it gets so confusing, and I’m wondering that if confusion and struggle is normal in this kind of major. Is it? I still want to program and enter this field, but I’m asking you CS majors: is it normal that you struggle so much that to want to quit your major, but then solve the problem, and love it again then repeat?

I’m really hoping when I start College CS works out for me, because I don’t see a different path in College for me because I just don’t have any interest in anything else there.

CS definitely has it’s frustrations. It also is something that builds upon it’s self. Some of the things that perhaps confused you were because you were looking too far ahead, especially if you don’t already know a programming language. By the time your professor covers them, you’ll probably be prepared to understand them. I’m usually one of the people that just “gets” it, but I know plenty of classmates who have to work to understand it. However, you shouldn’t be struggling so much that you want to quit the major; that’s not a healthy cycle.

You should like you should be okay. As guineagirl said, knowing a language will help a lot. CS is best learned through practice and doing: it’s not a read the textbook type of major. Personally, I am yet to read a single textbook on CS through over 3 years in the field: I learned via instruction, projects, lectures, and online resources and API’s.

It certainly isn’t the easiest thing, but your struggles seem to be based around things that will solve themselves by simply taking the classes. Reading ahead as you are will cause problems because CS is so cumulative, and the basics of it are very foreign to most people. So start with the basics and make sure to build a good base.

Good luck!

You haven’t started yet, so don’t freak out yet. There’s a reason you have classes and homework, not just a textbook. The profs know they’re dealing with beginning CS students, so they’ll help you make sense of all these pieces. Don’t be afraid to take advantage of resources available like office hours, TAs, and free tutoring.

Also, there will likely be some classmates who have done quite a bit of programming before and think that they’re God’s gift to CS. Ignore them. First, (from my experience as a CS TA) they don’t know as much as they think they do. Second, it doesn’t take long before the playing field is leveled. After probably 2-3 semesters, it won’t be clear anymore who had programming experience before starting and who didn’t.

Depending on the type of professors you will have, the textbook may not even be that relevant to learning the concept itself. There are a ton of examples in my textbooks that are, I have to admit, very challenging, but some are very bloated and don’t seem to encompass the main idea and applications.

And I can definitely agree with PengsPhils. I’m a TA as well, and I’ve had many students struggle over reading a textbook because it is so dense and bloated. It’s really not a textbook major, unless you’re getting into more theoretical and mathematical subjects (e.g. theory of computation, complexity, artificial intelligence, etc.)

The concept of “quit…but then solve the problem, and love it again then repeat” is the story of programming – both in college and beyond, once you have a job. You have to love programming enough to want to figure it out and solve the problems. That’s the kind of person who sticks with it and thrives.

For some people – very rare – programming is easy and they just “get it.” Most programmers have to work at it a bit to understand it, especially starting out.

There are other majors besides computer science that deal with computers, but without so much programming and technical work. These majors can be in computer departments or in art departments (graphic design), science departments (bioinformatics, GIS), business departments (information systems/security), etc. Check out some of these other options if you think you really won’t like computer science after all, but still want to use computers a lot.