Now that I am starting my final semester as a Computer Science undergrad, I feel like I can share some of my personal tips to new CS majors who are starting their programs. These may not work for everyone, but these are some of the things I knew back when I first started as a freshman.
This is definitely the most important tip I can give anyone beginning their CS program! Like many, I always end up procrastinating when it comes to doing assignments or studying, especially for classes that are not interesting to me. This became more of an issue for me the tougher the classes became. For example, I could write up an assignment for my intro to C++ class in maybe an hour or two. However in my COBOL class, it would take me, at times, 30 hours to write a complete program! One time in my COBOL class, after not starting early on an assignment, I was forced to program till 6AM for three nights in a row. I quickly realized that I should be starting all assignments at least a week before they are due.
TL;DR Start your assignments at least one week before they are due.
When I came to college, I was not the type of person to talk to other students during class. It just wasn't my thing. So when a professor brought up how students were allowed to pair up with one another and work on assignments in teams, I took no interest in trying to find a partner. At first, your assignments may not seem difficult enough to find someone to do them with, but as the classes get harder you should ask yourself if having a second set of eyes could benefit you in your programming. Seldom do programmers work on an application on their own, so working with a partner can help set you on a path of knowing how to work with others when writing software. It can also help you and your partner get your homework done faster.
TL;DR Work with other students on assignments/projects if possible.
This is probably the second best advice I could give, and it's to either start or join a discord server that has channels for every CS course offered at your university. There was one at NIU that was created in senior year, and it was probably one of the most helpful tools I could have asked for. Students could help each other on code, and if it wasn't for the discord server I am not sure if I would have passed all of my classes.
TL;DR Start or join a discord server with channels for all the CS courses.
I finally came around to learning git this year after putting it off for a while. This may not help you in your studies, but nearly all professionals use some sort of version control and git is one of the most popular. You can use git for all your projects and it is a good way to build your GitHub profile.
TL;DR Learn the basics of git, or some kind of version control.
This should not come as a big surprise. When applying to jobs, recruiters want to see some projects that you have worked on. Final projects for classes are a great way to demonstrate your skills and what you have learned at college. If anything, just put a few of your final projects up on GitHub, so potential employers can see what you have accomplished.
TL;DR Upload a few of your major projects to GitHub.
This is more of a personal thing I do. I like to save all my assignments I turn in, so that if I ever need a quick reminder on something I can look over what I have done in the past. Personally, I have just one GitHub repository where I upload all of my assignments after I complete the course for that semester.
TL;DR Upload every assignment you complete onto one GitHub repository.
I am a believer that when someone first starts to learn how to program, they should pick one language and stick with it till they have a solid understanding of it. Java was my first programming language in my opinion it is the best language to start with. However, there are many opinions on what language people should start with. No matter what language you start with, once you learn it well, it is very easy to learn another programming language. The biggest difference is usually just some minor syntax variations. So please, pick a language to start and don't pickup another one till you are very comfortable with your original choice.
TL;DR Learning a second language is easy if you master your first one.
Here's a little backstory about my history with programming. My first experience with programming came in high school. My senior year, a few friends and I signed up for an intro to Java class as an elective, thinking it would be an easy A. However, we quickly realized that this class was going to be difficult.
Initially, I kept up with the material, and I understood the beginner concepts like variables and their types. I was able to initialize any kind of variable and assign it a value, and I understood how to do arithmetic with integers and doubles. I remember the last concept I could understand was arrays. From there the class moved on to classes and methods. This is where I got completely lost. For the life of me I could not wrap my head around what a class was! From that point on till the last day of class I was completely lost. In order to pass my class I had to basically teach myself a great deal. I would be in my room struggling to understand object oriented programming, but I just kept watching tutorials and reading Java books until one day it came to me. I finally understood the concept of classes and objects.
The thing I want to stress is patience. People learn at different paces. In my high school class, there were students who also had no programming experience and picked it up almost instantly. This made me angry at first, but as time went on and I kept reading and practicing it finally came to me. The same will happen with you if you put your mind to it.
TL;DR Be patient when learning how to write code.
© 2023 by Ryan Rickgauer