After Finishing 2 Years Of College As A Computer Science Student
By: Payton Dennis
Tags: Programming, Computer Science, Coding, College

After Finishing 2 Years Of College As A Computer Science Student

What I wish I knew 2 years ago.

Photo by John Schnobrich on Unsplash

This article is intended for:

The HS senior majoring in Computer Science who wants to know what they’re getting themselves into…

The self-taught engineer/developer who wants to know what they’re teaching in college…

The experienced engineer/developer who is simply curious about what they are teaching the kids in CS courses nowadays.

And anyone who stumbled over this article. Welcome and read on…

My freshman year of college (2018) was the first introduction I had to anything related to Computer Science (CS). Prior, I had no idea what CS even was and what the job comprised. What I had was a strong interest in technology (if that’s what you call staying up late watching YouTube videos) and ambitions to create my own app which ultimately carried me to declaring my major as CS. And boy, if only I knew what I was getting myself into…

Honestly though, I was blessed for my major to be a perfect fit for my aspirations. Computer Science is a fantastic field and has so much space for new technologies and research with great pay, opportunities, and challenges. Currently writing this during COVID-19 times, and it only magnifies how society, businesses, schools, governments, and depend on technology. So how do colleges in America go about teaching a CS course (at least in the first 2 years). I’ve broken this article down into 3 sections: Topics You Will Learn, The Struggles You Will Face, Biggest Lessons that I Have Learned. My aim is for these 3 sections to give you a good bird-eye’s view of the first 2 years of college with things that you can expect to be presented with.

**DISCLAIMER: This is simply my opinion. Situations always vary, which rings true to a fundamental of CS: no one set of principles works for every use case.**

The Topics You Will Learn

The structure, format, and names may differ from college to college. But mostly, you can look forward to taking classes in these areas:

Using a powerful programming language like: Python, C++, Java, or Go.

Basics of programming: Data Types, Loops, Conditions, Functions, Classes, Etc.

Basics of and Implementation of Data Structures + Algorithms (Sorting / Searching) & Algorithm Analysis.

A simplified Lower-level (i.e. how computer works under hood) class that goes into Assembly Language / Bits / How Memory Works

A touch of Database Design & SQL.

Learn the basics of OOP and Program Design for Scalable Apps.

If you’re new this probably looks scary. Trust me, I was questioning my capability of learning this after the first day of class too. But don’t worry if you understand nothing at all. I would estimate after your first year you probably will explain almost half of the list (which is to be expected considering the title of this article). As many experienced engineers and developers will tell you, the first couple of weeks learning Computer Science will be the most frustrating. Which leads me to the next section…

Quick Note Before Next Section:

Although you may cover a lot of information over the course, most times it will just be the basics. I can say with confidence that most of my major learning and progress in CS came outside of class. Most college classes are only about 50–55 minutes meeting a couple times a week. So you will not cover everything (you will come to find out the scope of CS is just too grand). So I would strongly suggest learning outside of class (pick at least 3):

Apply For Internships

Hackathons

Competitive Programming

Go Through Online Courses

Contribute to Open-source Projects

Make Your Own Projects

Read a Programming Book About a Topic

Learn Something That Interest You

Make Free Videos Online

Create Your Own Blog

Teach Topics You Learn To Others

Start a Tech Business

It doesn’t matter what you choose, the important thing is that you are DOING something. Try not to get discouraged about other people’s accomplishments and what their doing, which is easy to do. Focus on your growth. The most important thing is that you are LEARNING and DOING things outside of class whatever they may be. This concept is called taking responsibility of your learning.

Success is a seed that sprouts from the hard work of the roots, water, sun, and environment. You may see nothing for days, weeks, or even months. But the gardener loves getting up every day and working in the garden. Then one day suddenly, there’s a speck of green shining through all the dirt.

The Struggles You Will Face

The experience every programmer faces, hoping their program will work. Photo Credit: Google Images.

You will face struggles! Where do the struggles come from, you ask? Computer Science is like learning an unfamiliar language and an alternative way of thinking. If ever you feel:

Frustration.

Wanting to quit.

Overbearing.

Understand that this is normal. Whenever you learn something new, you have a beginning period of discomfort. Did you know: A “I don’t know what I’m doing and I probably look foolish,” mentality is required to learn. I’ll speak more about this in the Biggest Lessons I Learned section, but when I first started I was struggling much in the class and I would just try dumb things in my IDE — slowly learning “Oh… so if I do this, this works, but doing this doesn’t work”.

Also, there are many careers related to technology other than the traditional Computer Science that keeps you away from all the programming. But, all that being said, if after a little less than a year you absolutely hate your life, then it’s okay to switch majors or careers.

Biggest Lessons I Learned

So, what did I learn after 2 long, hard years of programming? Honestly, not much. I’ve definitely learned some lessons (which I’ve broken into 2 most important themes when you’re beginning), but what I mean is that I haven’t mastered anything yet. Computer Science is not a skill to be mastered, rather I think of it as a subscription to learning. And that leads me to my first point…

Learning

I’ve learned that learning how you learn is the most important skill that a software developer / engineer can have. You will never be a master at everything in Computer Science. The journey is more important than the destination, learn to have the mindset of caring about the journey. Taking responsibility for your learning or in other words knowing what you don’t know.

Fantastic Book To Get You Started: Mastery: The Keys to Success and Long-Term Fulfillment by George Leonard.

Fantastic Article: 10 Signs You Will Suck At Programming — Jonathan Bluks

Struggles

Build these characteristics in yourself by practice: Discipline, Persistence, Consistency, and Detail-minded. If it feels like you’re making no progress, it’s OK. Most of our learning occurs in sudden spurts, but is dominated by a concept known as the plateau. (Discussed in Mastery by Leonard). Take Breaks. A WORK, WORK, WORK mindset is never good on your body, mind, and soul. Put down the laptop. Computer Science is hard (employers don’t just pay them for nothing), expect that and don’t be surprised if you’re not automatically getting everything in 1 week of studying. Don’t ever quit.

Closing

I really hope this was helpful! Anyone can be a successful software engineer, but it’s determined by your qualities and characteristics. Thanks for making it all the way to the end. Stay tuned for part 2 Lord willing! And as always, God bless.

If you’re reading this, you are truly outstanding! If you are interested, I’m uploading on my new YouTube channel more advice and tips. Check it out!