feat: first semester tips and tricks, things to try
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user