Missing
CSci Semester
During your Journey through the CSCI Major, you will often find that professors believe you have some background knowledge about some number of tools.
We find that this is actually the farthest from the truth, and many, if not most, of us, do not have this background.
We present a list of topics and tools you may wish to check out to aid in closing this knowledge gap. Other concepts are also found here!
Basic Tools
Text Editors
At the very core of Computer Science are text documents. Regardless of the language, c++, python, javascript, every file is essentially a text file. Here are several of the recommended text editors from current and previous students.
Terminal (cmd, shell, bash)
The terminal, or console, is the cornerstone of working with computers. While nearly every application has a Graphical User Interface, several core functionalities are only truly accessible through the terminal. Having a basic understanding and capability with the terminal will be invaluable to you as a student.
This free course by Mama Samba Braima Nelson is an amazing crash course to get you familiar with the terminal and its basic functionalities
Version Control
Git & SVN
Git and SVN (Subversion) are known as Version Control Systems. These allow you to track all the changes to your code, store it remotely, and update it on the fly. It's the industry standard, and is the #1 recommended skill to know by Industry Professionals.
Advanced Tools
Integrated Development Environments
Integrated Development Environments, or more typically called IDEs are a more powerful version of a text editor. As your projects get more complicated, many many more features become needed.
They are generally heavier than text editors and take more power to run, but when needed, nothing beats it.
Unix , WSL and Virtual Machines
Unix is the most popular kernel, MacOs and Linux distro's are built on it. Window's, until recently was not, however they have recently provided Window's Subsystem for Linux (WSL), to allow windows user's to use a Unix System.
Virtual Machines are an alternative to using an entirely different operating system. They provide a 'virtual' instance of another computer with another OS.
Virtual Box and VMWare are two popular providers.