I’ve been waiting quite a while to write this article, but now that I’m graduating I feel now is the most appropriate time! This is a more informal article, but I’m going to give a list of tips that would have helped me. I also give these to my friends starting their CS degrees.
#0. Code in your free time.
I cannot stress this enough! If your major involves computers and computation, you must write code in your free time. It does not matter what you code – it can be a side project or exercises you find on a website like Codewars, Codechef or Hackerrank. Keep it simple and within your abilities. Just like art, you need to practice.
#1. Don’t neglect your gen eds.
Those classes are required for a reason. They improve your reasoning and critical thinking skills. They can also be good GPA fodder.
#2. Be notified. Save everything.
It’s a good chance your university or college uses an online portal (EMS) to post announcements, assignments, grades, discussion posts, etc. A few of these are Blackboard or Canvas. Check if yours has a smartphone app and enable email and push notifications. Archive every email in your .edu email address. Set the notification sound from the online portal to something recognizable. Finally, every time your professor uploads a presentation, notes, files, anything – save it to your computer. ESPECIALLY SYLLABI (your class syllabus).
#3. Organize class resources, and shortcut them.
It’s current year and there’s no excuse to have an organized folder structure. Don’t spread everything out. Try something like:
- C:/User/<name>/Documents/College/<Semester>/<Class>/<Resource>/
- C:/User/Ozzy/Documents/College/2018-Spring/Database Systems (COP 4710)/Assignments/Homework1.docx
The key here is to make the location of everything predictable. Add shortcuts to your Desktop and Quick Access (use “Pin to Quick Access” on either a semester’s folder or each class folder). Tell your web browser to always ask you where to save files so your Downloads folder doesn’t become a behemoth mess.
#4. Don’t skip hard classes (ever). Pay attention.
I’m not telling you to never skip, but I’m not telling you how to skip. Go to class. However…… There are always going to be professors that will simply not make showing up worth your time. That said, if a class is known to be difficult, like Calculus, Discrete Math or Computer Architecture, you better get your ass in class. I’ve had to repeat entire courses because I’ve been a slacker. Avoid the temptation altogether for the harder classes, and never skip on a day before an exam (or the exam itself – yikes).
#5. Review in-class presentations a day later.
The human mind is a crazy thing. Memorization is a lot easier if you expose yourself again a set amount of time later. Anywhere from 18-36 hours later will help your memorization skills tremendously, even if it is just a skim through the last PowerPoint. Use more traditional methods (like note cards) on memorization-heavy classes (like languages or Biology) if you have them. Spoiler alert: you will.
For exercise-based classes in which you will have to memorize a series of steps, do the following:
- Perform a given example on paper (even if it is trivial). Just get used to writing the exercise.
- Pick an example that has a solution and do it with the steps in front of you, but not the solution. Compare the solution with yours.
- Pick another example and do it without the steps. Repeat step 2 if you’re not confident enough.
#6. Collaborate with fellow students out of class. Help each other.
You’re all going through classes together and information is a powerful thing. Help yourself gauge your understanding by comparing it to your fellow students. If the online web portal has a “Discussion Board” don’t hesitate to create a means of communication (like a Facebook group, or instant messaging group chat); if you build it they will come. If the professor doesn’t like your post, they’ll delete it; after all it’s better to ask for forgiveness than for permission. And ask people as they are walking out of class if they wanna join. The ones that do will appreciate a lot more than the ones who say no.
Oh, and there’s that important aspect of making friends while in college. That helps too.
#7. Many textbooks can be found online.
I’m not telling you to break the law; all I’m saying is that you will surprise yourself when you see the sheer number of textbook PDFs and their solutions manuals on the Internet. Make yourself “very aware” of these. Unrelated: saving money is important too. Do that wherever you can. For people you meet in #6, you should make them “very aware” too.
#8. Don’t cheat. Know your resources.
I cannot speak from personal experience on this, but some computer science professors will catch cheaters very easily. Even if they have some automated grading system (something that automatically compiles + runs your code, for example) it is trivial to catch cheaters when it comes to coding. Write everything from scratch, even if the algorithm is a common one found online.
Many students post their code to GitHub after the class or graduation as a sort of archive of the work they’ve done while in college. These repositories may be public and very similar to your assignments. Avoid the temptation to heavily reference these repositories, since it is an easy way to get an academic misconduct mark on your transcript (and those don’t go away).
#9. Always type code examples out.
We get it, you have a computer that can copy and paste. You have hands, a keyboard and a brain (hopefully). You need to type out code examples to understand why every single variable and function call is in the place it is. Don’t give into the temptation to copy and paste examples online. This is also a good way to adhere to #8.
You should have hands-on experience with every algorithm and data structure that you learn about in classes. There should be a text editor between you and binary search trees, not a PowerPoint.
#10. Get away from the computer screen from time to time.
It’s important that you actually get some sunlight here and there and not just walking between classes. Don’t be a cryptid and lose your social skills while trying to better your coding skills. Take breaks and make sure you remind yourself that you are a human and not a coding robot. Extended coding sessions are great for the soul but so is some nice fresh air.
Hope some of these tips aren’t terribly obvious or cliché; these are just the bits of advice that would have come in handy for me the most. If you have any questions or want further advice, don’t hesitate to reach out to me on Twitter.