2.6 KiB
Things to consider / try
LaTeX / Typst
While handing in hand-written notes is accepted in almost all cases, it is still a good idea to hand things in that are typeset using LaTeX or Typst. For LaTeX, you may use my LaTeX helpers, found at https://github.com/janishutz/latex
Linux
Development is much easier on Linux compared to Windows in about 95% of cases. There even are some courses where you absolutely need to use Linux (though you can use WSL also).
Installing new dev tools is as easy as running a single command (such as pacman -S <pkgname> or apt install <pkgname>), or updating a config file (in case of Nix),
no need to click "Next" a lot of times, it all just works.
Docker is also a first-class citizen, Virtual Machines are much faster, etc.
Tiling Window Managers
Using a mouse is objectively slow if you use things on a regular basis. Always fighting to put windows into the correct position using a mouse can get annoying and time consuming if you use them all day, every day.
This is where tiling window managers come into play. They automatically split your screen and you can navigate between windows entirely using a keyboard.
Good examples include bspwm, i3 (an sway for Wayland), Hyprland (albeit that isn't necessarily a full-blown tiling WM), dwm and more.
NeoVim (or Emacs)
Using a good text editor will massively improve your developer experience and speed. Thus, choosing a fast editor is important. VSCode, JetBrains IDEs or Sublime Text are the "easy", slow and boring options, which are called "user friendly" options.
User friendly in general refers to applications that are easily approachable, by providing a legible, good looking graphical interface, while sacrificing usability, speed and customizability, thus meaning that the user isn't really in control of the software.
User focused software on the contrary is meant to be easily and extensively configurable and (typically) highly extensible. This means that the application is minimal by design, only providing features that the greatest portion of users will use. In the case of NeoVim, this means that things like AI completion are not included at all and need to be added using plugins. Language Servers on the other hand can be added natively because it is an entirely optional feature, as is syntax highlighting, which most, if not all developers use.
If you are to give NeoVim (or Vim, or Emacs or another terminal editor) a try, just be aware that they have a very steep learning curve compared to things like VSCode. However, if you push through, you will gain superpowers, and your IDE won't use half a gigabyte or more of RAM just sitting there.