Skip to content

Tools of CS draft (WIP)

hanjiexi edited this page Dec 19, 2018 · 2 revisions

Tools of Computer Science

Tooling isn't CS; it's IT. But you still need it!

Usually, you will learn a domain-specific tool, such as the debugger for a specific language, from the particular course you are taking. However, some tools are so universal that no single course even tries to teach them. This section is for collecting the best resources on those tools.

Modern Technology

Although "computer science" is mostly a branch of mathematics, most computer science courses just assume that you are going to use a computer for doing computations, and that you are quite familiar with computers. So you should take this if you are completely new to how computers work. However, the full Harvard CS50 course includes all this material, so there is no need to take it if you plan to use CS50 as your introductory course.

Prerequisites

  • None

Resources

Format Resources Use cases Length
course Harvard CS50's Understanding Technology learn 12 hours

Needed by

  • Intro CS

Version Control

Editors

Choose one to master. If you don't know, choose Visual Studio Code, which among these provides the best balance between performance, user-friendliness, and extensional power.

Visual Studio Code

Vim

TODO need help...

Emacs

Command line

Choose based on operating system: bash for GNU/Linux and macOS, PowerShell for Windows.

bash

PowerShell

TODO

Development Infrastructure

TODO

Configuration Management

Ansible, Puppet, Chef

Continuous Integration

Jenkins, Shippable, Bamboo

Test Automation

Selenium, Cucumber, Apache JMeter

Containerization

Docker, Rocket, Unik

Orchestration

Kubernetes, Swarm, Mesos

Deployment

Elastic Beanstalk, Octopus, Vamp

Measurement

NewRelic, Kibana, Datadog

Chat automation

("ChatOps") Hubot, Lita, Cog