That's a shame. Having a "project" is what kicks off learning the cool bits about computers. If you can't do it with the devices we're giving kids, we are robbing our future inventors.
I’ve noticed most of the people we hire these days for dev roles have no idea how computers or operating systems work. I’ll have someone with a pretty impressive title reach out to me with a basic OS question, and I wonder how they got to where they are without this foundational knowledge. Most of this stuff I learned on my own when I got my first computer.
There are people here on this forum openly admitting they don’t see how ‘knowing Linux’ is useful, so no point actually learning it.
I have no idea if they really never learn and wing it until they become managers or become great cloud engineers who simply scale up instead of running strace.
I don’t know how someone uses modern dev tools without understanding some very basics of the Linux CLI. I see this all the time. If a command in some documentation isn’t a straight copy/paste, they’re done for.
Knowing Linux is different than knowing how to use a CLI.
I dislike that the two are conflated.
Firstly, Mac and Windows both offer a very mature command line interface.
But also, I don’t think knowing Linux should require you to know the command line either. If other operating systems don’t require it, neither should Linux.
If you’re focusing on “developer tools”, even then, what tools do most devs need that can’t be done from a UI? I live a lot of my time in the terminal but there’s very little that can’t actually be wrapped in a UI
all your points are valid, and you don't "need" the knowledge but it sure feels like the UI can get in the way of some things, mislead your formation of a mental model, or reduce the clarity & density of information. I find most source control tools with mouse-driven UIs like this.
Let me flip that around on you: why would someone need to know Linux specifically for the majority of jobs out there?
I’m very familiar with Linux. My day job for years was Linux based and I honestly do not think one needs to know it, or any other OS specifically , unless your job specifically requires it.
Your question is a trap because you’re not qualifying what type of job you’re talking about. I could say “because your code runs on Linux and you should learn it” and then you’ll just say “well I wasn’t talking about jobs writing code running on Linux”.
Assuming the discussion is about a typical developer that runs code that is deployed to “the cloud”, and the cloud is basically 99% Linux, yes. You absolutely need to know enough about how Linux actually works to be effective at your job. Otherwise you’ll fall into the sort of trap zillions of “big data” engineers fall into, where you spend countless hours writing custom code that takes up terabytes of RAM that could have been a simple sed/awk/grep pipeline that uses a handful of kilobytes.
Surely, if my question is a trap then so is the initial premise I’m replying to?
It doesn’t specify a job and that’s exactly what I’m calling out.
Even your response assumes that a “typical” developer is one who deploys to the cloud , but what is that based off of? And how many of those need to interact with the cloud infrastructure itself?
Your second point about taking up terabytes of RAM doesn’t really matter if it’s on the cloud or not, and certainly doesn’t matter if it’s Linux . It’s also assuming that you can’t have a UI frontend that just calls the necessary efficient code or CLI commands behind the hood.
So my question remains: what percentage of jobs actually require you to know Linux specifically?
Yes, I wasn't specific enough: it comes from developers. I can see how frontend devs don't want to 'learn Linux' but not wanting to learn how to configure an HTTP server because 'this is Linux' is at the very least poor taste.
Now, talking about people who actually deploy code to backends... these are the folks I had in mind. I imagine most of them don't deploy to Windows Server and they sure aren't deploying to any macos backends.
I think you’re arguing backwards from the assumption that people aren’t learning those skills because it’s Linux versus the actual learning of the skill itself.
Why would a frontend dev need to know how to configure a http server beyond what node or wamp/lamp gives them?
The number of full stack people is very low compared to dedicated backend and frontend folks. People focus on the needs of their job, and if their job doesn’t require wearing both hats they usually don’t go out of their way to do it.
Even at many companies that deploy things to the cloud, they’ll have dedicated folks for that because the people writing the code to run are busy writing the code.
That it eventually runs on Linux is not very meaningful to most devs unless their app needs special compiling configurations or libraries.