IDEs are used to make your life easier. You may do well, using text editors like vim, emacs, or sublime text, but you may want more (auto-completion, code hints, auto-import, syntax errors hints without needing to recompile the project, etc.), without too much configuration.

This course is about JetBrains's IDEs,

  • CLion: write C or C++
  • IntelliJ: Java, R, OCaml, SQL
  • PHPStorm: Write PHP, HTML/CSS/JS, Node/Typescript, SQL
  • WebStorm: same as PHPStorm without PHP and SQL support
  • PyCharm: Python
  • DataSpell: Python for DataScience
  • AndroidStudio: Write Kotlin/Java for Android, by Google and JetBrains

It's a feature of JetBrains: instead of providing an IDE that is only doing its job, their IDEs are providing advanced help, and language-specific features, without too much configuration. The best alternative in one IDE would be VSCode (free), you should try it too.

Note: The IDEs are free for students (you may apply for GitHub Student Pack too here). You can download all their IDEs using the toolbox.

Note: this course was made before 2021.2, so a lot of things have yet to be updated.

What you can expect from their IDEs

  • some important RAM consumption 😱
  • Good to go. (no need for plugins, a lot of tuning, etc.). You got a lot of predefined features that may not be available by default in others editors.
    • Database (either local, remote, or remote using a SSH Tunnel)
    • Open a remote project locally
    • Invite your friends/team on your IDE (CodeWithMe)
    • Git integration (easy merge, easily track changes, revert, GitHub integration)
    • Generate UML from your code (Java, JS, PHP)
    • Basic spellchecker
    • Deep refactoring (ex: renaming a variable and its usages, renaming a database column and its usages, etc.)
    • File history (even without GIT, rollback to a previous version of your file)
    • Terminals (you can open a terminal, including WSL ones, directly inside the editor)
  • auto-install (easy install of JavaFX, Java, ...)
  • They got many IDE, but they are consistent (same interface, same shortcuts, etc.)
  • the code hints/advice/suggestions to fix errors, optimize your code, or detect wrong code logic 🚀

Interface presentation

JetBrains's IDEs are underlining in

  • red: errors
  • yellow: warnings
  • green: typos
  • or color in grey unused variables

You may click on an underlined word and press alt+enter to see a quick fix of it.

IntelliJ IDEA

Examples of cases where you might be using it

  • code in Java (with or not with Gradle and Maven)
  • code in Kotlin
  • code in R (with a plugin)
  • code in OCaml (with a plugin)
  • code in JavaFX and with Scene builder

One thing to note is the menu Project structure(CTRL+ALT+MAJ+S). You can

  • change your JDK
  • change your module configuration (set source folder, tests folder, output folder, ...)
  • add libraries (such as JUnit4, ...)

Then some tutorials


Examples of cases where you might be using it

  • code in PHP
  • code in HTML/CSS/JS or Boostrap (but WebStorm might be wiser)
  • code in Node.js

Please note that you can directly code on a server, which may be useful for those that were uploading their files each time they changed on a server.


Examples of cases where you might be using it

  • code in C
  • code in C++

CLion was using CMake to compile your project, but since 2021.2, it's now really easy to use a Makefile. Still, since CMake was not that hard, I'm letting it here.