# Tools

Here be a list of tools and useful things for programming.

## Integrated Development Environments (IDEs)

### JetBrains IDEs

[A suite of IDEs](https://www.jetbrains.com/) for various different languages, [free educational licences are available](https://www.jetbrains.com/community/education/#students). IDEs include

* [IntelliJ IDEA](https://www.jetbrains.com/idea/) - (Java and Kotlin)
* [PyCharm](https://www.jetbrains.com/pycharm/) - (Python)
* [PhpStorm](https://www.jetbrains.com/phpstorm/) - (PHP)
* [CLion](https://www.jetbrains.com/clion/) - (C and C++)
* [GoLand](https://www.jetbrains.com/go/) - (Golang)
* [Android Studio](https://developer.android.com/studio) - (Android Development with Java or Kotlin)

### Visual Studio

[Standard IDE in most environments](https://visualstudio.microsoft.com/), developed by Microsoft for multiple platforms including .NET, Visual C++ and Visual C#, Visual Basic, Azure Devops etc.

### Xcode

[Apple's own](https://developer.apple.com/xcode/)IDE, ([App Store](https://itunes.apple.com/us/app/xcode/id497799835)) [macOS](https://wiki.hacksoc.co.uk/operating_systems/macos) only. Best for [C](https://wiki.hacksoc.co.uk/programming/c), C++ and Objective-C.

## Text Editors

### Sublime Text

[Sublime](https://www.sublimetext.com/) is cross platform and has a free trial for life. It supports loads of languages, has a built in terminal, etc.

### Atom

[Github's homemade editor](https://atom.io/)is cross platform, [Open source](https://github.com/atom/atom) and has lots of support.

### Visual Studio Code (VSCode)

[VSCode](https://code.visualstudio.com/) by Microsoft “Free. Built on open source. Runs everywhere.”.

### Vim

A highly configurable (normally) [terminal based text editor](https://www.vim.org/). Open source, huge amounts of support. High skill ceiling due to the [unique way the editor is navigated](https://vim.rtorr.com/), but improves workflow/efficiency massively

## Git

### Tower

[Tower](https://www.git-tower.com/) is cross platform and extremely powerful while still being accessible for Git novices

### GitHub Desktop

[GitHub Desktop](https://desktop.github.com/) is GitHub's own cross platform GitHub client.
