Windows

A good use of Windows is not difficult but it can provide you much, thanks to some basic configurations, some shortcuts, the “Quick access” feature and knowing about environment variables.

Basic configurations

These settings are mostly up to you but I think you should know about them.

  1. Windows search

    First of all, locate the Windows key as most shortcuts rely on it. It is usually placed in the bottom-left part of your keyboard (usually just right to the Control key which is -usually- the leftmost key. Lots of keyboards exist so one cannot place for sure this Windows key).

    The Windows key is useful on its own: press it to open the Windows menu, way faster than using the mouse. Then try to type some text: the Windows search will kick in and provide you anything that matches your input (apps / settings / etc).

    The Windows search is a very quick way to launch any installed program or to access a specific settings of Windows.

  2. Windows search
    open Windows menuWindows key
    trigger Windows searchenter text when Windows menu is opened

    quick way to launch any app or access any settings

  3. File explorer options

    A one-time thing: some options regarding the display of files and folders are often disabled out-of-the-box on Windows. To my recollection anyway, I always needed to change some things there when I got a new install of Windows.

    Just do a Windows search (see above) of “File explorer options” to access the proper settings panel and do check out the first tab named General. Although it is often fine for me (= open each folder in the same window & open via double-click), I think I have to disable showing recently used items in the Quick access area.

    The real work is under the View tab however. First, I want hidden files and folders to actually be shown, and I also need the file extensions to be shown. Less important but useful nonetheless, I want to display the file size information in folder tips and the full path in the title bar.

  4. File explorer options

    Access settings “File explorer options” (via Windows search for instance):

    “General” tabdouble-check the options (defaults are often good here)
    “View” tabshow hidden files & hidden folders & extensions of file + display as title the full path

    all file information are directly available (no interaction needed)

  5. Night light

    The default luminosity of my screens is usually too bright so I decrease it: just play with the buttons of your own screen(s) to see what options they offer you. Complementary to this hardware setup, you can have a software applying a filter to warm the overall tone of your display, making it less aggressive on the eyes.

    I personally always install f.lux but know that Windows has such a feature out-of-the-box, called the “night light”. It just has less options but you may want to activate it to test the effect, instead of going through the (pretty mild) hassle of installing a software that you may uninstall the very next minute.

  6. Night light
    hardwareconfigure the brightness of your screen(s)
    softwaretest the “night light” feature. If not okay for you, maybe use a dedicated software, like f.lux

    better on your eyes

  7. Keyboard layout

    I am not a native English speaker: my keyboard has a French layout. In some instances, switching to the English layout is useful. A nice shortcut is to hold the Windows key and then press Space to loop through the keyboard layouts.

    There are two less nice shortcuts though: Alt+Shift and Ctrl+Shift. I find these shortcuts to be a poor choice as combining Shift with Alt or Shift with Control is quite common in many applications. Once in a while, I forget the letter of a particular shortcut in a particular application. And I thus only press Alt+Shift or Ctrl+Shift. Suddenly, my keyboard layout changes and the text I'm typing gets weird.

    Surprising at first, then distracting as you need to unfocus a bit to enter the shortcut again, it is actually frustrating on the long run. There is actually a way to disable them but it is not easy to find. Open Windows Settings then select the “Time & Language” tile then the “Language” item in the left sidebar then select the “Keyboard” tile and finally click on the “Input language hot keys”. There you can disable these frustrating shortcuts.

  8. Keyboard layout

    Windows key + Space to loop through the keyboard layouts

    Disable Alt+Shift & Ctrl+Shift in Windows Settings Time & Language Language Keyboard Input language hot keys

    Safe shortcut to change keyboard layout & bad shortcuts gone

  9. Taskbar

    Okay, this one is truly up to you. Personally, I prefer to have a minimal taskbar and so I remove everything that I feel is cluttering it. I hide everything that is not an application (search, news, etc). I also hide the name of applications.

    I keep only icons offering an important information with a quick glance: the network icon (shows a red cross if network is down), audio volume (shows the level and a click on it offers to switch the audio output), my keyboard layout, the date & time.

  10. Taskbar
    1. hide everything that is not an application (search, news, etc)
    2. hide the name of applications
    3. keep only the icons offering an important information with a quick glance (network, audio volume, keyboard layout, the date & time)

    Clear and uniform taskbar

  11. Display language

    At first, I would have said “truly up to you”. But then it dawned on me that I should strongly advice you to display and install everything in English. The reason is simple: it will make everything simpler if you use English. In growing importance:

    1. you will reinforce your knowledge and practice of this language, of course.
    2. the bulk of documentations, tutorials and videos about programming are in English anyway.
    3. creators, founders and power users of any programming language, library or framework are using English first and foremost. By using English yourself, you have a direct access to their intellectual realizations.
    4. if you ever have an issue on something, you will be able to use the very same terminology that these guys are using, and actually that the majority of fellow programmers is using.
    5. searching for deep knowledge will require you to use the proper specific terms: better use them from the start.
    6. you will not have to maintain two terminologies in your head, one in English, one in your native tongue.
  12. Display language

    Display and install everything in English.

    Everything will be simpler

Useful shortcuts

Most shortcuts use the Windows key, usually placed in the bottom-left part of your keyboard (usually just right to the Control key which is -usually- the leftmost key (lots of keyboards exist so one cannot place for sure this Windows key).

The most useful shortcut is Windows key + number key.
It opens the application pinned on your taskbar at the position matching the pressed number key. If already opened, it will make it the current window. If already current, it will minimized it.

The next one is Windows key + E to open a new file explorer window. It plays a big part in the way I work and track my advancement.

Other shortcuts, useful daily:

open a pinned appWinkey + <number-key>
open file explorerWinkey + E
open Windows settingsWinkey + I
reaching advanced settings
& environment variables
Winkey + Pause
closing a windowAlt + F4
switching between windows<maintained>Alt + <repeated>Tab
Copy a file/folderCtrl + C, Ctrl + V
Move a file/folderCtrl + X, Ctrl + V
Rename a file/folderF2 (Ctrl+C to copy the filename)
Open Task ManagerCtrl + Shift + Esc
Lock your PCWinkey + L
Quick access

In the File Explorer, the top area of the left sidebar is the “Quick Access” section. Right-click on the “Quick Access” to be able to pin the current folder. Then, no matter what the current folder of the File Explorer is, you can get back to your important folders in just a click (very good in combination with the shortcut Windows key + E).

Another positive is that the “Quick Access” is in all “Open/save file” dialog window. So everytime you want to open or save a file with any software, your important folders are readily accessible.

If you do not want the “Quick Access” to show you frequently used items, access the settings “File explorer options” and configure the options under the General tab.

  1. in the File Explorer (Windows key + E), right-click on the “Quick Access” to be able to pin the current folder.
  2. access the settings “File explorer options” and configure the options under the General tab to tune the “Quick Access”.
Environment variables

With the shortcut Windows key + Pause, you can get to the “Advanced program settings” link which shows a panel with the “Environment variables” button. You can also get to this panel immediately with a Windows search of “env”.

Windows key + Pause Advanced program settings Environment variables
OR Windows search of “env”

  • Concept

    Environment variables are a way of configuring softwares and even Windows itself. A more frequent way is through a configuration file, which is why environment variables are often optional, even non-existent. Sometimes though, a particular software will mandate that you define such a variable, especially when it comes to fundamental configuration.

    A variable associates a value to a name: environment variables form together a dictionary where each name is unique and means one precise thing. When a software queries Windows with a name, Windows provides the associated value. This way, a software does not need to know and hold a particular value: it leaves the control of the value to the owner of the PC.

  • Concept
    • environment variables are a way of configuring softwares
    • a variable associates a value to a name
    • names are unique: environment variables form together a dictionary where each name means one precise thing
  • Documentation and verification

    The maker of a program has to document the environment variables its software will query. He must spell out each name and explain for which goals the associated value is used and how it plays its role. In turn, it means you have to read the documentation (always read the documentation) and setup some variables on your PC with the correct spelling and the correct value.

    The name needs to be exactly the same in the software and in your configuration, because the middle man —Windows— will not invent nor mend the name. Neither will it verify the value. Misspelling the name thus prevents the software to get any value, misspelling the value can block the software or have unintended consequences.

    To verify your setup, even on a fresh Windows, launch a Command Prompt via a Windows search of “cmd”. You can indeed query Windows yourself in one command: echo %<variable-name>%. If the variable does not exist, the result will be %<variable-name>%, else you will have the value, which you can double-check.

  • Documentation and verification
    • read the documentation, always
    • pay attention to the spellings, as Windows won't validate nor fix your variables
    • verify, always: Windows search of “cmd” and use echo %<command-name>%
  • “What knowledge is available?”

    I have had some hard times to understand various things regarding programming. An important reasoning is to put yourself in the shoes of the other parts.

    Picture yourself programming the environment variables in Windows. What knowledge is available to you? Nothing. You can only put in place the dictionary. You have no idea about any name. Because the decision is in the hand of the maker of the software. And you have no idea about the values either. Because the decision is in the hand of the owner of the PC.

    Even if you did know the name, you would then need to know more. Is the value a number, or a path, or some free text? Should it follow a specific format, maybe have a maximum length? You cannot make a rule general enough to satisfy all use cases. Except accepting anything as it is.

    The wider the audience, the harder it is to make rules and to take decisions. You can still do but you have to document things, and then guarantee proper service to both the maker and the owner. Even if you want to modify and enrich your program. Even if your code went through an overhaul. Deciding a rule can be very easy: you can just decide without giving a thought. Implementing the rule will reveal all kinds of difficulties. And maintaing the rule in the long run can prove to be even harder.

    Beginning programmers and other laymen often attribute much more agency to programs than they really have. Just ask “What knowledge is available?” The more general or basic the program, the more probable the answer is “Not much” and the more probable the program does not decide much.

  • “What knowledge is available?”
    • the wider the audience, the harder it is to make rules and to take decisions
    • programs do not do as much as laymen think they do
  • Managing the variables

    The UI is self-explanatory: use the “New” button to register a new variable, the “Edit” button to change the name or the value, and the “Delete” button to remove an existing variable. Since environment variables are often used to configure paths, you can use the “Browse” button to manually select a file or a folder. That will prevent any misspelling. Then click the “Apply” button. Note that if you use an already used name, the existing variable will be updated: names are unique and cannot be duplicated.

    I would advise you to put all your environment variables under the “User variables”. They would work fine too under “System variables” because these ones are accessible to every account defined on your computer.

    Personally, I have never worked with several accounts. The actual reason why I'm using the “User variables” is just to group everything I have done myself under one umbrella, and to avoid mixing these variables with the ones defined by Windows. No technical reason here, just a purely organizational concern.

  • Managing the variables
    • the names of variables are unique and cannot be duplicated
    • for better organization, just put all your environment variables under “User variables”
  • The “Path” variable

    You will have a different UI if you edit the “Path” variable rather than another variable. This is because the “Path” variable contains a sequence of paths to folders. This explains the bulk of the UI.

    The order of the sequence is important because Windows goes through the sequence one path at a time to find a program and it stops as soon as it finds it. In other words, if you have registered two folders and both contains a program (a .exe file) of the same name, the folder that comes last will be ignored.

    And if that folder coming last actually holds the latest version of the program, Windows will always execute the version from the first folder, i.e. the oldest version. That is why there are two additional buttons “Move up” & “Move down”, to reorder the paths.

    This is also why, in most cases, the order will not cause any conflict. It is pretty rare to have two versions of the same program, as automatic installers override the previous version. And if you are manually installing programs, unless you are a bit absent-minded, you would replace the previous path with the new one in the “Path” variable.

    Actually, the most common case of conflicts, comes when some programs ship with their own copy of a classic program. Their installation path is added at the front of the “Path” variable, so that Windows can find the program, obviously. But it also has the unfortunate effect that Windows will find first the copy of the classic program, and this copy will take precedence from now on.

    In a terminal, use the command where <program-name> to double-check the location chosen by Windows.

  • The “Path” variable
    • “Path” holds an ordered sequence of paths
    • Windows goes through the sequence one path at a time and stops on the first folder containing the searched program
    • it is rare for the order to matter but if, one day, an installed program behaves strangely, especially after having installed another program, just use where <program name> to quickly verify that the installed program is used from the location you expect
  • Troubleshooting

    The commands echo %<variable-name>% and where <program-name> may not produce the correct result, even though you did everything right. In that case, close and open a new command prompt.

    This is not only the perfect illustration of a program not doing much, it also represents a widespread situation with softwares. The reason you need to launch again the command prompt is that it captures the environment variables on startup and never reload them again.

    For a program to register data on startup, to never reload them, much less to be in sync with them, that is the rule rather than the exception. Hence the famous joke “have you tried to turn it off and on again?”

  • Troubleshooting
    • close and open a new command prompt if some commands return old data
    • the rule is that a program registers data on startup, never reloads them and is never in sync with them
A note about desk and hardware

When you begin programming, focus on programming. Two screens is nice but focus on programming. There isn't a right keyboard or a right mouse. Preserve your money. Focus on programming.

If, after some years, you have, like I did, a bit of pain around the wrists, maybe up to your shoulders, here's what worked for me:

  1. good posture
    (still occasionally bad at it)
  2. moving the control key up thanks to SharpKeys by RandyRants
    (usually exchanging the Caps Lock and the Left Ctrl keys)
    Life-changing, do try it! No more twisting your wrist and bending your pinky.

  3. a good chair
    No advice, just a sad story…
    I wait for problems to get real. Here for too long: I could had bought a chair earlier than I did. It would have spared me a few months of gratuitous back pains (no after-effects thankfully).
    A desk chair seemed like an investment. Some chairs are expensive. Makes you doubt whether the more affordable ones are worth it. I finally skipped the cheap chairs, the expensive ones and the ones labelled “ergonomic”.
    I bought a Sihoo chair on Amazon around 200€, full mesh, paired with a sitting cushion (the gel thing, “honeycomb” design) and a big memory-foam pillow for my back. Total around 300€. Still don't know why I waited for so long.
  4. a vertical mouse
    Affordable, look into it if you have wrist pain. Does not take that much time to get used to it.
  5. a TypeMatrix keyboard
    Smart and elegant but pricey. The silicon protection against spills also reduces the noise of the keyboard.

Preserve your money. Focus on programming. If you develop some pains, think about:

  1. good posture
  2. moving the control key up thanks to SharpKeys by RandyRants
    Life-changing, do try it! No more twisting your wrist and bending your pinky.
  3. a good chair
  4. a vertical mouse
  5. a TypeMatrix keyboard