I'm still very good with the terminal and it serves me well in my six-figure career
I'm still very good with the terminal and it serves me well in my six-figure career
$Command, $options $input file/directory $output file/directory
That shouldn't be overly complicated for honestly most people with literacy who are capable of functioning in modern society.
Really? The most popular computing device of our time is the smartphone, and you don't understand why people find command lines intimidating?
Command lines are unforgiving, frequently obscure, and will let you delete files and break things without blinking. There's plenty to be intimidated by for people who have no need to learn the skills.
In Windows you can delete and break things if you're a local admin. Warning messages got better, but using a PC also used to be intimidating.
Smartphones on the other hand lock all apps by default, which is way better to novices.
I believe CLIs might be made friendlier with the correct segregation / security model.
Yes, but deleting things with direct manipulation is more intuitive and less dangerous than doing it with rm and globbing.
1. Graphical UIs are inherently more discoverable. There's no way around this and "googling it" isn't a good enough answer.
2. Graphical UIs, for better and worse, hide or limit you from doing things that will break. Those guardrails reduce the fear associated with exploration. There are guardrails on CLIs as well (sudo), but we take for granted what those are and how they work.
3. You overestimate the level of skills required to function in modern society.
zsh: command not found: helpPython -help: Unknown option: -e
Python —-help: actual help
Stupid users, it’s so intuitive!
(PS it always bugs me that every program uses a different option for checking the version. Node is -v, python is -V, dotnet is —-version. Again, couldn’t be more intuitive, duck users, right?)
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)
These shell commands are defined internally. Type `help' to see this list.
Type `help name' to find out more about the function `name'.
Use `info bash' to find out more about the shell in general.
Use `man -k' or `info' to find out more about commands not in this list.
¹https://man.openbsd.org/help- What a filesystem is.
- How directories, files, and filesystems relate to one another.
- What a server is/does.
- How any kind of raw text whatsoever relates to what the computer "actually is" (the GUI)
- When or how or under what circumstances a program might read a file (say, re-reading a config file)
- What all that prompt noise means.
- Why some things they type on the command line work and why others don't—they don't understand that the things they're running are discrete programs and not somehow built in to the terminal or the OS, and they certainly don't understand the concept of a PATH.
- All kinds of magical bullshit you need to just know (or spend time finding out then internalizing) to use a command line (what the fuck is ".."? Why do I need to put "-" before things seemingly at random, but other times that breaks stuff? Et c., et c.)
- What they can even expect to be able to do on the command line (change permissions on files? Is that a thing you can do? Oh now you're going to need to learn how your OS permissions system works on a lower level than you've ever needed to know before, or else just blindly copy-paste from the Web and hope for the best)
And that list is far from comprehensive.
In general, many popular unix utilities are cryptically named and they are not holistically designed. Consequently different programs take different flags for the same semantic, or some flags must be prefixed with a single dash and others with two dashes, or some flags are required to be passed in a particular order, or to view the docs for some commands it's `man command` and for others it's a `--help` flag but in all cases they're written for power users, or the fact that gnu utilities don't have the same interface as bsd utilities, etc.
And then there's the hot mess that is bash (or sh or zsh or...)...
Another way to say this is that the people who were too intimidated to use CLIs know things that you don't that are of the same character as your own knowledge of CLIs and it shouldn't have been overly complicated for you to know those in a modern society seeing as you are literate.
If you think people should really do what you are advocating: pave the roads. Lower the acquisition cost. Make it easier for people who are time constrained to do the thing you think they should be doing.
And so people did... and now we arrive at why things are the way they are.
It turns out that in the case of CLIs there is a usability problem. CLIs are constrained to text. Other mediums are a superset. They have more options for lowering the barrier. The people who are doing the paving in those cases are able to make better progress and faster! The masses flow to the GUI, not the CLI, because the GUI does a better job lowering the acquisition cost! It is a fight. On one hand we have the CLI, a hand tied behind its back. It is not allowed to go beyond text. In the other we have the other mediums. They have text, but are not limited to it. Should the CLI overcome them, they shall just put a little window wherein the CLI is present. They might do a nasty trick when they do this, stealing the fame of the CLI, by calling this a TextArea or a TextInput or even a TextBox.
Woe to the CLI, we type into the textboxes, supposing that the GUI has won.
Your anecdotal life story of overcoming early challenges with linux, that benefited your subsequent career is likely not scalable to the entire human population.
I think any reasonable person will align with the notion that low barrier of entry, coupled with an engaging curriculum to grow their level of computing expertise, will net much greater success.
Sometimes you just got to strap yourself in and embrace the the terminal. If you're too afraid to try you'll never learn. Once around the same time I actually fried a motherboard by not mounting it properly, a nice computer repair shop owner gave me a bunch of motherboard spacers for free and told me to never Mount the motherboard directly to the case again.
I actually love programming in that it's one of the last Fields where you can teach yourself how to do amazing things for free. Sure if you need to deploy things you might need to spend two or three bucks a month on AWS, but even then you can get so much done locally.
Ramp up the complexity, with appropriate award system, to help with engagement.
Your retroactive approach is saying - gosh, if I had my present day wisdom when I was I kid, then imagine all tactical things I can learn like apt or vim. I'm saying that is not a sustainable approach given a dataset that is the human population.
90% of Linux usage is rhel based (personal machine is fedora). And the other 10% is aws Ubuntu.
Id saying get good at 1 and know thr basics with tht other.