You worked on windows, but you probably know about environment variables, how they are passed around, what PATH is, how to list files in a directory, cd around, copy/delete files, redirect, pipe and how to use git given your profession. Isn't that the case? I've been on Windows and learned all that as a hobbyist (I'm a professional developer, but I work on unix systems)
I asked the company I work for to add as a requirement "familiarity with bash", because otherwise we would get candidates that don't know how to use PATH, or environment variables, and that was a serious problem. It's equivalent to having the requirement "know how to use a computer"
> Isn't that the case?
Yes, of course. But there is certainly a wide variance in people's understandings of all the command line tools and uses cases that they are presented with in their own work and experience.
Software engineering is a huge field with a ton of use cases and different contexts and applications and domains. It's really all over the place. There is some patience needed when interfacing between all of these.
I took this opinion towards some presentations for co-workers and their came back to me saying that they have gotten, even if a glimpse, a broader sense what can be done. That really transcends a bit from the hot-new-tech rush, because these bits are foundational, in one way or another, to our unix/linux/bsd systems.
For me, I have been developing for several years in several different contexts and consider myself a decent software developer who focuses a lot on proper design and implementation, readability, maintainability, speed when needed, etc. However, I am relatively weak on all the various Unix tooling (I know the general basics of course) and am currently trying to address that. Reasons for this are that I worked professionally for a long time in a Windows environment. Any scripting done was via PowerShell, which is a quite powerful tool and language and something I actually often prefer given the readability, if not verboseness, of the commandlet names or via the programming language used. My more Linux oriented roles or projects are more recent and have used languages like Elixir or F#. Since both of these languages have built-in scripting, any scripting was done with the languages themselves. Elixir has such powerful tooling that, for whatever reason, I just rarely found that I needed the Unix command line tools for what I was personally responsible for or working on or what wasn't provided by Elixir or my editor in VS Code. Elixir allows you to build custom Mix commands, which is also nice. However, now I'm in an environment where many of these tools could be very useful, so I am trying to pick them up. And it's always possible that I was missing out, so it's important just to be willing to learn as things present themselves.
Just stating this because context is everything.