The 4 Most Important Things to Know as a Computer Science Major

Evan Wireman
CodeX
Published in
5 min readJul 6, 2021
By Markus Spiske on Unsplash.com

Recently I finished my undergraduate studies at Arbitrary State School University. Majoring in computer science, I learned a whole lot about algorithmic complexity, operating system design, networking, etc. However, what got me through my studies were actually tips and tricks I learned outside of the classroom. These are all things I still use today in the workplace, and will continue to use in graduate school.

1. Visual Studio Code

In my humble opinion, VS Code is the single greatest text editor for students. The ability to install extensions makes life so much easier when collaborating with others on a project, using a new language, and more. VS Code is also incredibly easy to download, configure, and use. Furthermore, there is built-in Github functionality that provides a small UI to do things like commit, push, pull, and stash changes. I prefer to use the command line for most of my Git operations, but this tool can be incredibly helpful to the Git novice.

Extension Marketplace

The main draw of VS Code in my eyes is the built in extension marketplace. I’m often shocked by the sheer amount of extensions available. The marketplace allows you to customize your editor to do almost anything you could ever want it to. Some notable extensions are:

  • Prettier: A code formatter that helps your code look clean and consistent. I find this most useful when looking at JSON files.
  • Live Share: Perhaps the most useful extension for students, this essentially turns your editor into Google Docs. It allows you to work on a project at the same time as a partner, where both of you can make changes at the same time on the same, or different, files.
  • Remote SSH: This extension allows you to use any remote machine as your development environment. This is useful for students who are provided VM’s from their university.
  • TODO Highlight: Every programmer has the habit of writing todo comments in the middle of their code. This extension highlights those comments so you don’t forget about them later.

2. Git

Git is undoubtedly the most important tech skill in my arsenal, yet it was not taught in the classroom. It is the most widely used source control system in existence. At its core, Git allows you to easily track changes to files. This is most useful when working on projects with others. Note that GitHub and Git are not the same thing. GitHub is a site that hosts projects that use Git.

Git is notorious for confusing newcomers. In reality, there are only a few things you need to know to get started with Git. Some of my most used git commands are:

  • git clone: Allows you to create a local copy of a GitHub repository. This local copy is linked to the hosted repository, thus allowing you to push changes to the online version.
  • git commit: When you make some progress on a project, you can commit those changes. This essentially creates a checkpoint where any file changes you have made since your last commit are grouped together and summarized by whatever commit message you decide to type.
  • git add: When you create new files in your project, they will not automatically be tracked by Git. This means that they will not automatically be included in any commits you make. This command allows you to add files to be tracked by Git.
  • git push: This allows you to send any commits you have made locally to the hosted version of your repository. By pushing, any collaborators you are working with will be able to see the changes you made. These changes will also now be seen on GitHub.com.
  • git pull: If you are working with other people, this command allows you to download any changes they have made. So, if your project partner pushed some changes, you must pull them to view them locally.

Those 5 commands are enough to get you started with Git. There is more advanced functionality, but I find it is best to get comfortable with the basics before exploring deeper into Git.

3. The Command Line

When I said Git was the most important tech skill in my arsenal, that was actually a lie. The command line is what allows you to use Git. So, by the transitive property, the command line is the most important tech skill.

The command line gives you a text interface to communicate with your computer. Some of the seemingly infinite things you can do from the command line include:

  • Launching applications
  • Navigating your file system
  • Running your code
  • Installing software
  • Process management

Another use of the command line that is crucial for computer science students using Linux is the Man Pages. These are comprehensive explanations of the commands offered by the Linux kernel, and some C library interfaces.

4. Notion

Over the course of a week, Notion went from something I had never heard of to my most used tool. It is a productivity tool that allows you to do almost anything. For instance, I now use Notion to:

  • Take notes
  • Store recipes
  • Plan projects using boards
  • Track my workouts
  • Upload my course syllabi
  • Create beautiful write-ups for school related projects

The best part about Notion, in my opinion, is the ability to write in Markdown. This allows you to easily write beautiful notes with code blocks, bulleted lists, and more.

There are several ways to access notion. Their website can be found at notion.so, but you can also download their desktop app and mobile app. Note that, if you have a student email, you can get free access to Notion’s Personal Pro Plan. However, Notion’s free tier comes with everything you could ever need as an individual.

If you are new to Notion, there is countless articles on Medium on how to get started with Notion. Even if you are not a CS student, I can’t recommend the tool enough.

Conclusion

Thank you for reading. I hope this article helped introduce you to some tools s worth familiarizing yourself with this Summer. If you would like me to write a more in-depth article about anything in this list, feel free to leave a comment.

Happy Hacking.

--

--

Evan Wireman
CodeX
Writer for

Graduate computer science student with a passion for low-level systems.