Skip to content

Your Ultimate Guide: How to Get a 4.0GPA in Computer Science

Photo by Joydeep Pal

Learn to learn code faster, using techniques honed by years of study, neatly packaged into one book: How to Learn Code

There are two types of Computer Science programs, easy & hard. Both have their pros & cons. Easy schools give you a quick degree and you learn a little bit. Hard schools take a few years and you have the potential to learn a lot, depending on you.

For this article I will focus on hard programs, the typical 4 year university types.

Often, people in these programs do not learn much. They skim through the program, completing homework and not studying much on their own. They think, “the teacher is teaching therefore I am learning”.

Though, this is not the case. You can take two people of equal status, intellect and background then place them in the same class, same seat, same professor. These two same people can undergo the same program yet have vastly different skills at the end of the program.

I have personally seen individuals obtain a Master’s and a Bachelors of Computer Science and still not know how to create a class in any programming language.

And, we are talking about the hard programs here. They did the minimum work, effort and study, therefore got the minimum education.

Yet, I have seen another person, in the same program, flourish in skill and stature in computer programming.

In the end, which is more important, skill or the paper degree? I say degree.

The secret behind maximizing your time at university or an online college (hopefully a harder one) is to engage in your studying, do side projects and simply learn the material with gusto, not just for grades but for your future.

Computer Science Programs Are Hard

You should find you are way over your head, constantly, in a Computer Science program. If you are a beginner at programming this is especially true.

In the real degree programs, most to all projects should be coding. Though, I have seen cases where the class is pure writing and occasional coding exercises. In those classes I personally learned nothing.

As a potential Computer Scientist the idea of creating coding projects should excite you. You should enjoy the learning process, or at least learn to enjoy it.

To pass your classes, I am going to give you a few pointers below.

Why you need to code

I have seen students struggle, sweat & worry about their coding assignments. They don’t know how to complete their homework, turn in the minimal work, then depend on a grading curve, learning nothing.

Why does this happen? The usual reason, they don’t know how to code. 

If you truly want to pass a Computer Science program, get the most out of it and finish your assignments with ease, you must learn to code.

You will find, just learning coding from your classes & professors is simply not enough to become proficient. You have to apply your knowledge from that Data Structures & Algorithms class. You have to practice everything learned from Introduction to Programming.

This means, implementation with side projects and going for depth of learning outside your classes.

Do this and you are in the top 20% of students who simply pass the class.

Study the syllabus before hand

This is a trick which helps me land a solid 4.0 in every class. As early as possible get a copy of your syllabus from your professor. If they don’t post it early, I always always ask for the syllabus over e-mail.

The goal, should be to learn what is in the syllabi for your courses before the class begins. In fact, before every class, I study what the lecture is going to be about.

Often, I already know the material of the lecture before the class starts. You will be amazed at how studying the syllabus before the semester starts & studying the lecture before the lecture makes the class super easy.

This was one of my cornerstone habits which gave me an epic 95+ grade on all my assignments, easily, while my peers struggled to get an 80.

To study the lecture, I get the PowerPoint slides or, take a look at the chapter from the textbook. A few days beforehand if the teacher has not posted lecture notes, I ask for them.

If the teacher did not prepare lecture notes at all for themselves, that means you can safely not study the lecture. It usually means they are going to do a massive curve and you can worry less.

Sounds hard to believe. But teachers who don’t prepare tend to just be teaching because they have to and tend to not care.

If you get a bad teacher that does not care and gives out bad grades, sucks for you. You will have to depend on the syllabus, textbook and anything you can find. In these cases you will have to swallow a B.

I always filter those professors out and avoid them.

Okay, but how do we prepare before the semester starts with a syllabus? Often, what I do is find a paid Udemy course on the subject and watch that. If that is not available I find some type of monolithic course that matches the syllabus. About 50% of the time I find a course.

When I do find a relevant course, I gain a MASSIVE advantage over the other students. My work shown to my professor is far superior to my peers and I readily/easily get 95–98+ on all my assignments.

I took 4 Machine Learning courses in my undergrad and graduate studies and was able to get 98+ on all my assignments, including the “create your own model architecture” term project.

I have been offered to publish my model in an academic journal by my professors before. It was all thanks to a series of YouTube videos and a full Udemy course on an introduction to PyTorch (the framework our class uses).

For every Machine Learning course I took I built on the previous class, studying 1–2 months before every semester.

In all my Computer Science program, I only got 1 B, using these methods. That B was by a teacher who believed only exceptional students should get As & his standards were impossible.

In that class I believe 1 person got an A and they were some savant in a class of 40 students.

If you can’t find a course or YouTube series I recommend studying terminology in the text book. Put a focus on the introduction and foundational chapters. Just knowing the terminology gives an amazing advantage when you are in the lecture.

Oh, and also don’t skip a lecture. Always go, even if you are sick. You have to be like death defyingly sick to skip class. Lectures are the most important part of the class, so never miss.

Check your professor on RateMyProfessor

Difficult, apathetic professors should be avoided at all costs. Your goal should be to find a professor who is both easy to pass and a great teacher, who will help you learn the most.

RateMyProfessor.com is great for this. I have seen classes where I have a choice of 4 professors and I always choose the best one. The secret? 

Register for classes on the first day courses becomes available! Out of all the tips I can give you in this article choosing the right professor will make or break you.

In the course I got a B grade in, he was the only option of that course. I had no other choice but to suck it up.

I actually got the right answers to all my homework too! He would give me a C because my “work was not the same as the lecture”. He wanted me to apply only what he taught.

And, it was stuff like, create a diagram of transistors which performs an if statement. I used my own custom logic, which worked and I learned a lot. But, he wanted me to use the exact logic he taught and none else.

I didn’t fight him, but I thought “really?”. The point is to learn Computer Architecture dude, like, “I am learning and applying your knowledge here, give me a break”.

Also, he did not explicitly say to use that logic. He was real critical of my assembly solutions too, needlessly. 

That is why I always pick the best professors as early as possible.

You may need to do it part-time

A real Computer Science program it can be so time consuming and difficult, you may have to go part-time. There is nothing wrong with this and is often recommended.

You can focus more on each class, learn more in the overall program, improve your GPA & not stress so much over deadlines.

In my program about 80% of the students were part time due to how difficult the classes were.

Every time, without fail, we would get a new student who takes a full-time load. I tutor them over Discord and they say “I regret going full-time”.

Most to all of them, switch to part-time the next semester and are quite the happy camper. The part-time load is about what you would think a full-time load would be, at least at my school.

Don’t be ashamed of part-time if you need to do it.

You must prioritize your school

To get the coveted 4.0 you must prioritize. Do not miss a lecture, focus in every class, do every homework early & do not wait till the last minute for assignments and deadlines.

This means, if you have homework, you skip the family party. If there is a video game you want to play, but you have homework, don’t play that video game. Do the homework and go to class.

Once class, homework & studying is over, then switch to something else.

Do Your Darnest to Get a Side Job

I did not do this. I am struggling right now. I have been unemployed for about 5 months, which is why I am writing this. I have amazing skills(so me and my friends say), I have a Master’s in Computer Science, I have published 6 research papers and I have the coveted 4.0 in all my graduate classes.

Why am I unemployed? Well, I focused all my attention on my skills, open-source projects and university classes. I neglected getting an internship/side job during my school.

No joke, I have put out around 1,300 applications after graduating and have only gotten around 13 interviews, about 1/100 applications. They all say the same thing. Can you guess it?

“We are looking for someone with experience for this entry-level role”. Junior level software development jobs (my skill, according to my swe friends, is way beyond that) require 1–4 years work experience to hire.

Guess what, I don’t have work experience, so to them I am “a big risk for HR”. The hiring manager does not want to recruit me because, well, degrees are worthless in the software engineering world.

There are simply too many people, with poor skill, who have a Master’s in Computer Science.

It is so important to get a side job as experience. I am paying for this, learn from my mistake.

Why you need to interview during your school time

Even if you don’t get any jobs, interviewing is immensely valuable. It is a skill which can be improved after every interview. 

Prepare for each interview. Study the company, their needs, their potential questions & their technology.

I did not do this during my school time and found my interview skills out of grad school to be abysmal. 

After about the 8th interview my skills dramatically improved and now, often I am at the edge of my seat, thinking I slam dunked it. 

Though, the typical response is a rejection e-mail talking about experience. Still, this is a great habit to get all early “bad interviews” out of your system.

Why you should do LeetCode

This is controversial nowadays, but out of my 13 interviews about 10 of them had a technical interview in their stages. I failed every single one. Why? I did not study LeetCode during college. 

My Software Engineering friends told me “don’t study LeetCode, it is a waste of time, focus on your skills instead”. And, oh yea, I focused on my skills for 7 years straight. 

During my first interview, I was given LeetCode problems & fumbled like brand new programmer.

Here I am, machine learning models, graphics programming, super cool web backends & APIs, and I cannot finish an “easy” LeetCode problem. For all of those interviews I did not study LeetCode, because I believed my SWE friends.

Personally, my opinion, you need to practice LeetCode. It is just too crazy to go through so many interviews and not practice what is in them.

Nowadays I can complete most mediums, but had I practiced during college, I would probably have a job right now.

Should You Get a Masters in Computer Science

There are three reasons to get a graduate degree. Academic research, becoming a professor & specialized knowledge. When it comes to plain old software engineering, all you need is a Bachelor’s of Computer Science.

Remember, we are talking about the hard & true Masters programs here.

If you want to go farther into things like graphics programming or Machine Learning, a Master’s with this specialty is a good idea. Even a PhD in topics like these is a good idea.

The salary scales for these majors in the programming space. A true master of graphics programming and Machine Learning is just epic. I have seen great benefits for my skills studying Machine Learning in college. And, I have seen graphics programmers in their college thoroughly learn a graphics API and graphics research through college in a much deeper way than without the program.

As for research, some people really enjoy writing papers on Computer Science. It is kind of fun and it is nice to see your work in a textbook or journal. If this is something you enjoy a graduate degree is a good idea.

Becoming a professor also usually requires a graduate degree. As a teacher at a university, you are still required to publish academic papers though. Often the professorship requires periodic publications under the university name.

A final benefit to get a graduate degree is to improve your self-esteem. Sounds cheesy, but, for me, having a Master’s degree gives me a constant source of confidence & positive self-image. It reminds me of the grueling 7 years of skill building I went through and validates my effort. 

I wish the best for your time at university. Perhaps you can learn from my mistakes and finally have that degree posted on your wall…

Anywho, I hope you learned something…

Happy coding!

Resources

RateMyProfessor: https://www.ratemyprofessors.com/

Do you need a college degree?: https://jessenerio.com/do-i-need-a-college-degree/

How to read Computer Science Papers: https://jessenerio.com/how-to-read-computer-science-research-papers/

Learning LeetCode: https://jessenerio.com/how-to-get-good-at-leetcode/

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

What is a loop?

When coding it is common to need to repeat lines of code. Loops help us do this in mass for all our coding needs. You

Read More »

Search this blog

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Newsletter

Subscribe now to get my library of freebies + weekly emails with coding, tips for learning, and resource tips.

Learn to learn code faster, using techniques honed by years of study, neatly packaged into one book: How to Learn Code

Top content