Email or username:

Password:

Forgot your password?
Top-level
Julia Evans

also someone elsewhere left a comment like "I CAN’T BELIEVE IT TOOK HER 15 YEARS TO LEARN BASIC READLINE COMMANDS". those comments are very silly and I'm going to keep writing “it took me 15 years to learn this basic thing" forever because I think it's important for people to know that it's normal to take a long time to learn “basic" things

119 comments
Feoh

@b0rk This is absolutely positively a true statement.

Peter Hosey

@b0rk Anyone who isn't still learning things 15 or more years into their career—even “basic” things (these are not basic)—is so deep in a rut that they can no longer see out of it.

James Cuff

@b0rk 💯 normal and appreciated, I knew you were going to knock that whole terminal piece out of the park. Well played!

emily dogmom

@b0rk wow! people love to make people feel bad on purpose! thanks for doing what you do to normalize actually needing to learn :)

Sashin

@b0rk I feel like it's unlikely that anyone was trying, struggling for fifteen years to learn them. It's more like they never got around to it. And very likely didn't need that specific piece of knowledge for their day to day.

njvack

@b0rk haha yeah I have been doing this a lot longer than 15 years and this is the first time I have really _thought_ about how terminals work

one thing I don't get is: If ^W isn't handled by readline (or friends), what *is* doing it? How do backspace and word-backspace work?

How... does character entry work at all??

Julia Evans

@njvack honestly I didn't dig into that in the post largely because I don't understand it well either, I think it's the "unix terminal driver", but like what is that?? how does it work? it's a weak point for me and I'm hoping to understand it at some point

wfk

@b0rk @njvack I think "man termios" may be a good starting point. This documents the ioctl interface of the line discipline of the tty driver, which is what the tty utility uses to do its magic. It is mostly based on the POSIX standard, with some Linux extensions. Key point is that the driver can operate in different modes. Older commands run in cooked mode where the tty driver does very basic command line editing. Bash, pico, vim, etc use raw mode and handle everything themselves.

pelavarre

@b0rk @njvack

⌃W and ⌃U and ⌃Q and ⌃S and so on hide away deep inside: stty all

for example

$ stty -a
...
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
...
$

macOS

% stty -a
...
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp = ^Z; time = 0; werase = ^W;
%

part of how you can test for this is to try inside of: cat -

the ⌃W and ⌃U will work there, even when Arrow Keys etc don't work there

<=

macOS lets you spell out 'stty -a' as 'stty all', but Linux doesn't

Linux lets you abbreviate 'stty -a' as 'stty --all', but macOS doesn't

'stty -a' reports the 'stty ixon' vs 'stty -ixon' toggle in a different output line apart from these mentions of ^Q ^S, but you often need to add 'stty -ixon' to make the ⌃S forward-search-history properly undo
the ^R reverse-search-history mentioned
by Bash bind -p |grep C-[rs]
or the ^R history-incremental-search-backward
by Zsh bindkey |grep '\^[RS]'

i can't remember how often Zsh needs this workaround = maybe less often than Bash

@b0rk @njvack

⌃W and ⌃U and ⌃Q and ⌃S and so on hide away deep inside: stty all

for example

$ stty -a
...
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V;
...
$

macOS

% stty -a
...
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
stop = ^S; susp...

pelavarre

⌃W and ⌃U are not precisely ^W and ^U, because "^" is pure Ascii and more classic, but ⌃ is the Unicode Up Arrowhead U+2303 that's part of ⌃ ⌥ ⇧ ⌘ ← ↑ → ↓ ⎋ ⏎ ⇥ ⇤

Gomijacogeo

@b0rk @njvack It helps to remember that a tty used to just be an RS-232 serial line. A character would come in, an interrupt would get generated, and the tty handler would read the char from a register and put it in a buffer for the attached program to eventually read(). That's raw mode. Cooked is when the driver kept a line-buffer, and would interpret chars as they came over the wire - printable? echo and place in buffer; ^J?, send buffer on to consumer to read(), ^U, kill buffer and start over

Gomijacogeo

@b0rk @njvack ^H? send back '^H ^H' to erase char on terminal, and move the head of the buffer back one. Other chars like ^C, ^Z, ^\, etc would instead send a signal to the process group attached to that tty and the signal handler would be invoked or the process killed.

njvack

@gomijacogeo @b0rk I think the thing I need to keep remembering is that at some point, ... something (I'm not 100% sure what — the tty handler? readline?) is telling _my terminal emulator_ to do something with the characters

Gomijacogeo

@njvack @b0rk Yeah, it was a lot simpler 40+ years ago where each component was a separate, tangible box connected by wires. Made it easy to keep track of what was done where. A modern terminal emulator, on one side talks to the window system and sees keypress events and does advanced font rendering. On the other side, it talks to a pty which is an abstraction of that ancient RS-232 line and is mostly a serialized byte stream that the kernel then treats as input and output.

Gomijacogeo

@njvack @b0rk If the tty is in cooked mode, those simple tasks - echoing, ^H, ^W, etc are done by the tty driver. In raw or cbreak (like raw, but still looks for things like ^C ^Z ^\ etc), then it is the consuming program (eg readline, vim, etc) that reads chars and then decides what to send back to the tty and then to the emulator to be displayed (usually lots of escape codes to handle positioning along with the one or two chars to actually display).

Gomijacogeo

@b0rk @njvack Then X11 came along and we needed a tty-like abstraction to attach these newfangled terminal windows to processes, because all the I/O and job control was wired to talk to a tty-shaped device. And some new side channels were added (e.g. SIGWINCH). So there are a ton of ioctls() to talk to the driver and control/interrogate exactly what kind of tty it really is.

Gomijacogeo

@b0rk @njvack Oh yeah, you also needed ptys for telnet/rlogin/ssh-like services. And the tty driver was already hellishly complex even before GUIs entered the picture. Tons of respect to anyone who unpeels the onion in the modern era - so many moving parts.

Gomijacogeo

@b0rk @njvack One other thing that was an A-ha! moment for me back in the day was learning that stty uses an ioctl() to determine the tty behind stdin, so you can redirect from another tty (assuming you have permission) to see its settings. So, assuming /dev/ttys000 is a different window, I can 'stty -a < /dev/ttys000' and see how the flags change between cat, bash, and vim for example.

Mark Dominus

@njvack @b0rk In Unix there are parts of the kernel, called "device drivers", that handle device I/O. In this case it's the "terminal driver". The terminal driver gets control when a process issues a `read()` or `write()` call on a file descriptor that has been opened to a device. Also, when the hardware I/O bus signals an I/O interrupt, the kernel transfers control to the appropriate driver the handle the interrupt.

When you type a character on a terminal, there is an I/O interrupt and the kernel asks the terminal driver to handle it. Normally, the driver just copies the character into a per-device buffer, waiting for the next read() call from the user process that has the terminal open. If the character was a control-W, though, the driver instead erases characters out of that buffer back to the last whitespace. Later, when the user process does `read()` to ask the driver for the contents of the buffer, the erased characters will be gone as if they had never been typed.

The driver may also send some delete characters back to the terminal to cause it to backspace and delete the erased word. (Normally, the terminal is in "no echo" mode which means it doesn't display what you type on it, instead it only displays whatever the terminal driver sends back.) If the driver knows you're on a non-backspacing terminal it may send something else to try to indicate that the word was deleted.

This is all in what's called "cooked" mode. Unix terminal devices also have a "raw" mode where the driver just copies stuff into the buffer with no processing. Tools like readline put the terminal into raw mode.

@njvack @b0rk In Unix there are parts of the kernel, called "device drivers", that handle device I/O. In this case it's the "terminal driver". The terminal driver gets control when a process issues a `read()` or `write()` call on a file descriptor that has been opened to a device. Also, when the hardware I/O bus signals an I/O interrupt, the kernel transfers control to the appropriate driver the handle the interrupt.

kepstin

@njvack @b0rk I think this dates back to the days of slow remote serial terminals, or even teletypes? If you put some really basic line editing into the terminal itself and only send the entered text when pressing "enter", the experience feels a lot more responsive - and every program doesn't need to independently write its own implementation of backspace.

But yeah, very interesting legacy thing at this point, even tho many tools still rely on the behaviour.

I think in Linux it's implemented in the kernel's pty layer rather than separately in each terminal app?

@njvack @b0rk I think this dates back to the days of slow remote serial terminals, or even teletypes? If you put some really basic line editing into the terminal itself and only send the entered text when pressing "enter", the experience feels a lot more responsive - and every program doesn't need to independently write its own implementation of backspace.

kepstin

@njvack @b0rk I only just realized why the mode where the terminal does line editing is called "cooked" mode. It's in contrast to the mode where apps get all the key presses one by one without preprocessing - "raw" mode.

njvack

@kepstin @b0rk I do know that a lot of this dates back to teletypes and the like. "/dev/tty0" is referring to a teletype, and a pty is a pseudo-teletype, and "vt100" was a "DEC Video Terminal 100" system.

I suspect you could, today, hook a modern linux system up to a teletype over a serial line and have it work correctly with relatively little effort

Then you wouldn't have a "terminal emulator program" — you would have a literal terminal

hmm

kepstin

@njvack @b0rk oh, I agree that would probably work! I don't know anyone with a teletype, but I do know that one of my friends uses a pre-ANSI (not vt100 compatible) monochrome IBM terminal connected to their Linux box with only minor issues. Issues are mostly apps that don't use terminfo or termcap and assume an ANSI terminal is in use - they often print escape codes the terminal doesn't understand. Using "screen" as a translator is the easiest workaround.

njvack

@kepstin @b0rk hmmmmm looks like you can get a DECWriter for as little as $600 plus shipping

I could spend a lot of money and learn to use `ed`

I cannot think of a worse idea, and yet

Ray Lee

@b0rk working in software requires people to be lifelong learners. Thanks for setting a good example.

dcbaok

@b0rk there are literally millions of basic things no one can learn all of them no matter how many years they have

Aral Balkan

@b0rk I’ve been coding for 40 years. I still learn new things every day. And forget other ones every day. We’re people, not books.

Michael

@aral @b0rk Exactly, especially the "forget other ones every day". I think by now I've learned the order of the parameters to "ln -s" about a dozen times or so. 🤷

deraffe

@mmeier If it's useful to you, I did notice that ln is symmetric to cp, in that you create a new file from a source (and you can also leave out the new file's name and just specify the containing directory). One command copies the contents, the other just references the source.

But tbh, I just remembered the melody of "target link name" at some point and keep saying it inside my head.

@aral @b0rk

raphael

@b0rk yes, this! so so much this!

like, what is this fictitious world in which every aspect of every tool is learned right away? everybody looks at things from a perspective informed by where they are at that moment and what they want to do. sometimes, that puts the spotlight away from (otherwise) foundational tools. sometimes that puts one in positions where memorising 1–2 command variations without fully understanding the entire tool is good enough(tm).

and everybody has these ‘blind spots’ – i.e. things that were more front and centre for somebody else.

it’s silly to pretend otherwise.

@b0rk yes, this! so so much this!

like, what is this fictitious world in which every aspect of every tool is learned right away? everybody looks at things from a perspective informed by where they are at that moment and what they want to do. sometimes, that puts the spotlight away from (otherwise) foundational tools. sometimes that puts one in positions where memorising 1–2 command variations without fully understanding the entire tool is good enough(tm).

Kevin Boyd

@b0rk right? That sort of commentary serves no purpose. And there's always new stuff to learn.

There's probably even a better way to do my go-to readline use case, one I haven't discovered yet:

```
read -s PASS
export PASS
```

Nick Aubert

@b0rk I've been using variants of the unix command line for 25 years and I'm still stumbling into new things. Nobody knows *everything*.

klutzagon

@b0rk i too was born naked, screaming and confused. and i still ask my partner if 12 past meridiem is noon or midnight.

it always and will never not confuse me.

Paul J Stevens

@b0rk There are lots of 'basic' things I will never learn. Assuming otherwise seems presumptive at best, basically!

Shane Celis

@b0rk I just found out yesterday there are terminal extensions to get key up events in the terminal. I naively thought for the last 20 years those were already there. sw.kovidgoyal.net/kitty/keyboa

anukul

@b0rk there is something particularly juvenile about people assuming there is one particular order or traversal for how people should learn things – that if someone else doesn’t know a particular bit they are BEHIND or BELOW or BASIC.

it’s NORMAL that we all encounter the staggering diversity of technical details at different times and stages and it doesn’t mean something fundamental about your place in the hiearchy.

Gersande La Flèche

@b0rk Comments like that (which I have heard over and over and over all the way back to my baby web dev days making my first website in 2004) only end up ensuring that overly sensitive autodidacts such as myself write off programming as a viable hobby/career forever…

DELETED

@b0rk and not remember all the details from manuals and documentation. But it’s easy to be a smartass on the web writing silly comments

Sky :veryiffied:

@b0rk there is something a little funny to me about how i was (and effectively now am) going to reply to this about how while i am very seasoned with computers and running infrastructure i struggled with git for a long time and so this post resonated with me

but your pinned toot is about your zine “how git works”!!! which i think i will now have to check out

Alvaro :rstats: :python:

@b0rk you're an internet treasure Julia, thanks for doing what u do.

You're like that kid in class that when a teacher explains something complex in a horrible way raises their hand and says "actually I didn't get any of that" and prompts every other student (who don't feel confident enough to admit they didn't understand) to lower their guard and go "yeah no, please explain that again".

Publicly admitting ignorance is so powerful! Nothing that you don't know already of course :D

Ángela Stella Matutina

@b0rk

WTF? If I don't use some so-called basic thing and therefore I don't need to learn it, so what? Am I learning or working under the person who judges me for their opinion to matter at all?

Eliot Lash

@b0rk That's nonsense, *nix is a complex beast and nobody can be reasonably expected to know everything even after using it for a long time. I've been using it for 24 years and I am still learning stuff including several things from your blog post, such as reverse-i-search being available in all readline programs, and the existence of rlwrap! So thank you for that.

I don't like having to memorize lots of different keybinds so I prefer to use vi mode in bash/zsh but this isn't always possible.

dimsumthinking

@b0rk I always point these things out to my readers-

Spicy Potato

@b0rk Thank you.

I very much appreciate your content, even when it is a topic I know well. Your research is always very thorough, and you do an excellent job of explaining things in an easy to understand form.

There have been a number of times when I've found myself adjusting how I explain things to others because of that, not because I didn't know the topic well, but because I didn't know how to make it relatable to someone who doesn't.

"Basic" is relative, and that's okay.

vksxypants

@b0rk imagine being so committed to lifelong learning that after 15 years you still have the curiosity to discover new things!

Benjamin Braatz

@b0rk 💯 That comment is so 🤦‍♀️. I use a lot of things every day and do not have the time to become an expert on every single one of them, use a tiny fraction of what is possible with readline, bash, (n)vim, … That makes your approach so interesting, because you choose a topic and then do: “Well, I maybe somehow know this exists, maybe even use some of it often, but now I really want to know what's going on and maybe write a zine on it.”

Julia Evans

@HeptaSean i wrote a thread about why I only write zines about topics that I already feel confident with recently social.jvns.ca/@b0rk/112631771

Benjamin Braatz

@b0rk Oh, missed that. That makes the “maybe” a whole lot bigger. And sounds like a really good approach.

Peter Bindels

@b0rk I only know ctrl-K and regular navigation with home/end/arrow keys, and searching with ctrl-R.

The rest of it may come later. Or not.

CEASEFIRE NOW 🇧🇫

@b0rk I hate comments like these because clearly you've been able to do (well-documented) very cool stuff without this "basic" knowledge... so even if it's a "basic" skill, clearly it's not absolutely necessary... 🤷

john fink ok!! :goat:

@b0rk spud, you're somebody I have *for years* looked up to for technical stuff and to hear you say this means an awful lot.

Dawn

@b0rk I can't believe it can take a person 15 years to stumble across documentation of such basic functionality.
Documentation needs to get better.

Nelson Minar 🧚‍♂️

@b0rk Ive been doing Unix for 35 years now and only just learned from you about Ctrl-U and Ctrl-W in the tty driver.

Purple

@b0rk it took me almost 20 years to learn to knot my shoes properly. I learned faster to code than to lace my shoes.

Jeff Grigg

@PurpleShadow @b0rk

It took me a lot longer than that, for the shoes.

And in the meantime, I learned to code. Fairly well, I think.

🙄

Daniel aka CyReVolt 🐢

@b0rk Absolutely this. I had that very experience with folks in the (Free)BSD community recently when I said that the current UX of setting up services and timed processes is just subpar at the moment. Of course their point was that piles of shell scripts would be so much simpler than tools just doing their job. 🙃 Never be ashamed of not knowing something "basic". I can call anything I want "basic" or "simple", but that will hardly mean anything; it's just a POV (or simply disparaging).

Alexander Bochmann

@b0rk Heh. It took me almost double that time of using UNIX shells to learn about Ctrl-R - I mostly made do with !! and friends, and ^search^replace until then...

Alexander Bochmann

@b0rk ...also I don't know how many shells I closed after some terminal emulation weirdness until I learned about reset(1)

James Cuff

@galaxis @b0rk

Oh so many binaries “catted” to the screen.

Today we are all Alexander!

Paul Barker

@b0rk There's also no one order for learning things. There's plenty of "basic" things that I'll just never come across in my career and so will never know.

羊肉串

@b0rk
"I think it's important for people to know that it's normal to take a long time to learn “basic" things"

this is such a tilde.town statement (and that is a compliment), I love it. tilde.town is this online ssh server community that thrives on empathic and making the command line not scary for people, and not shitting on people with sentiments like "omg how do you not know this?".

it's basically like a fun place to learn things without being shamed, and fosters an amazing community

@b0rk
"I think it's important for people to know that it's normal to take a long time to learn “basic" things"

this is such a tilde.town statement (and that is a compliment), I love it. tilde.town is this online ssh server community that thrives on empathic and making the command line not scary for people, and not shitting on people with sentiments like "omg how do you not know this?".

Stéphane Bortzmeyer

@b0rk These people probably never did even 0.0001 % of what you are doing to teach people about computing. Ignore these dumb fools and keep on the good work!

Central Illumination Agency

@b0rk People who make this sort of comment should really, I don’t know, just shut up??

Their attitude is just rude and supremely unproductive. Not sure what they’re after, but if they want to be liked and respected, they picked the wrong strategy.

(I’m phrasing this as politely as I can.)

Richard "mtfnpy" Harman

@b0rk I'm sure I'm preaching to the choir here, but with how large and diverse the computer industry is as a topic of things to learn it should be expected for everyone to "not know" a "basic" thing. It's like getting upset that someone doesn't know every single word in an unabridged dictionary.

Jamie

@b0rk we never stop learning, your work helps new engineers and us old ones alike. Love your work, it's both fabulous and essential across all levels of engineers 🥰

Havu :v_enby:

@b0rk i still have a readline cheatsheet bookmarked because typing text in a terminal is hard

Leonardo Ferreira Fontenelle

@b0rk in my humble opinion, anything further than "type command line and press enter" is fifty shades of arcane

Michael

@b0rk Yes, they really are. It took me about 10 years of Linux CLI usage to finally learn that there's a better alternative to tapping the "up" key a 100 times to find a previous command.

Linus Lagerhjelm

@mmeier @b0rk opened this post to also learn this after about the same amount of time. But I guess I’ll have to stay ignorant 🥺

Michael

@linuslagerhjelm
Sorry, I really should have shared. 😔

The trick is CTRL+R. That will bring up a prefix-string search interface for your history. So no more 100 taps on the up button to find that "cp" command you could have sworn was at most 5 commands ago. 😁

For even more QoL, look at tools like HSTR, which allow you to do fuzzy searches over your command history.

@b0rk

Jen Zarzycka

@b0rk I re-learn basic awk/sed syntax every time I use it.

There's no shame in not knowing or not remembering something (especially when you don't typically need it).

flere-imsaho

@b0rk this hubris is fascinating. i'm using the unices for 30 years now, and i just learned about rlwrap today, thanks to you.

(and learned from you about a bunch of other tools on another occasion, for which i'm going always be grateful)

Leo Robinovitch

@b0rk I saw this comment and was pretty appalled/amused at the idiocy of it. Some people...

Colin the Mathmo

@b0rk I would say:

"I CAN'T BELIEVE THERE ARE PEOPLE WHO FEEL THE NEED TO MAKE COMMENTS LIKE THAT AND ARE SO IGNORANT ABOUT HOW LEARNING WORKS" ...

... but sadly, I completely can believe it.

You do fabulous work, and while mostly I stand on the side-lines, and I'm sure you already know that you are doing amazing things, I just thought I'd say so explicitly.

You do amazing things.

Thank you.

Dave Pimlott

@b0rk in the same vein: it's taken me 40 years to learn basic surgical procedures (removing splinters from my skin), I just don't get that much practice - or have that much interest...

People have different areas of expertise and interest. I am extremely unlikely to ever use the "basic readline commands" in either a professional or personal capacity as I'm not a programmer.

So, yeah, the "I can't believe it took so long comments" are ridiculous.

jasonkarns

@b0rk I think your zines are like the best embodiment of the sentiment in this xkcd so keep on keeping on please and thank you!

xkcd.com/1053/

WTL

@b0rk I learned about control-e in terminal to move to the end of the line after decades of using control-a to get to the beginning of the line. 🤷🏻

WTL

@b0rk For some inexplicable reason, I just never bothered to look up the keyboard command to jump to the the end of the line.

I think it’s important to remember that everyone’s experience using computers is slightly different. Besides, learning new things is good for the noggin! 🤣

Timothy Leverett

@b0rk you should take those comments and turn them into clickbait headlines advertising your zines:

"YOU WON'T BELIEVE IT TOOK HER 15 YEARS TO LEARN THESE BASIC READLINE COMMANDS"

AndrewF

@b0rk Yeah… I was thisyear years old when I learned about “Ctrl-A” to go to the start of the line (having used Unixes for 3 decades). I should really try to internalise the other ones.

DELETED

@b0rk And the thing is, it's not like you thought about it for 15 years! Maybe you only ever saw it one time, in passing, as you were trying to figure out why something *else* wasn't working.

Who the hell are these people who read the entire documentation, cover to cover, exercising every part, figuring out every possible utility, and only THEN start using it? Wild.

Julia Evans

@dax i think those people are very real and i really appreciate them but I’m not one of them

Glyph

@b0rk I've been doing this for 10 years longer than *that* and there was news to me in this article too. Thanks for all the great information and thanks for not letting these asinine commenters stop you, modeling this sort of openness to new information is super important.

(I accidentally discovered the *particular* fact in question early on by accident, because I'm a long-time Emacs user, and muscle-memory just had me trying those navigation keys…)

mwlang

@b0rk -- Truth. I like to say you may learn the basics quickly, but it will take YEARS to master the basics.

Martijn Faassen

@b0rk

@gvwilson

It's also such shortsightedness. Unless they know all the "basic things" that anyone anywhere considers basic and thus approach omniscience

Stewart Russell

@b0rk it's taken me since the early 1990s to learn enough vi commands to write on one side of an index card

Going T. Maine

@b0rk I 100% do not understand readline and avoid all things about it. What an unhelpful comment

🆘Bill Cole 🇺🇦

@b0rk It’s entirely normal to learn new “basic” things with Linux/Unix/POSIX command line usage because there is so much lurking right under the surface, and people come to it by learning different workable subsets.
I had a big leap forward in my efficiency almost 20y into my career due entirely to having a new senior sysadmin join our team. We worked in radically different styles; just seeing his work in his style added a pile of little things to my knowledge that I've used ever since.

Scott marsroverdriver Maxwell

@b0rk Those people are behaving like jerks. Instead, they should be saying, "Congratulations! You're one of today's lucky 10,000!" m.xkcd.com/1053/

Alaric Snell-Pym

@b0rk I am 45 and there's a number of things I've never gotten round to learning: like spelling "beauraucracy" or whatever that word is for stuff with too much paperwork. Or which side port and starboard are (I did briefly know this, but I didn't use it so I forgot). Or how to use that Linux "ip" command, almost all the network config I do happens on BSD machines. I'll learn things when I need to. Only worth learning things sooner if they're interesting or something!

Mike Mathew

@b0rk great attitude! I’ve been doing this a long time, but I still looked up how to use `ping` today just to be sure. I’m glad I know how to look for answers instead of pretending like I know everything. 😇

Galbinus Caeli 🌯

@b0rk I've been a professional Python programmer for 15 years. I still look up "file.ope n()" every time. (Or is it "file.Open()")

Stuart

@b0rk I've been using terminals for close to that long and only knew Ctrl-R so /shrug

iwein

@b0rk i'd go even further, and say that it's perfectly ok for us to get worse at things because #agism #ableism

Respect for your achievement and thank you for sharing it. You are obviously smart, and it's totally cool that you're not arrogant about it 🙇‍♀️

Consider me a new fan.

Julien Colomb

@b0rk
it took me 15 years to learn to recognize mansplaining comments, it will probably took me another 15 years to learn to shut up before making them.

Regines Radsalon

@b0rk Human beings are the animals who need the longest time to become adult. And regarding these comments some will never be. Now tell me about 15 years ...

Grey Pilgrim

@b0rk
"Can't believe" to me spells lack of imagination and understanding.
@clarebee

dotemacs

@b0rk considering that you're not using Emacs, it's only natural that you wouldn't pick up on those key bindings.

Ancient Greeks had a saying “Only everybody knows everything”.

tindomisel

@b0rk if it weren't for that blog post of yours, it would have taken me 15 years too! I didn't know about them 😭
anyway, you really improved my life 😆

John W. O'Brien

@b0rk Yes, this! I mean, just think of how many basic things there are that one could learn.

James Jefferies

@b0rk amazing stuff, having typed command for 30 odd years, often badly, you’ve cleared up some mysteries for me - thank you!

Lunaphied

@b0rk gods for real

People don't understand also that there's lots of reasons to not sit down and specifically learn this stuff; most people are busy, in the middle of a task it's hard to find time to rip away and just go memorize some commands that you don't technically need

Also there's always a million things to learn, not everyone will learn the same ones and people need to really chill out about that.

We really appreciate having people like you in spaces trying to let people enjoy things without being made to feel miserable

@b0rk gods for real

People don't understand also that there's lots of reasons to not sit down and specifically learn this stuff; most people are busy, in the middle of a task it's hard to find time to rip away and just go memorize some commands that you don't technically need

Also there's always a million things to learn, not everyone will learn the same ones and people need to really chill out about that.

Greg

@b0rk Why would I learn something basic when I can use the brain cells for learning non-basic things and look up basic and infrequently used stuff in a zine when I need to, instead?

Dimitri Merejkowsky

@b0rk

I've been a professional dev for about 15 years now. A few years ago, I failed a job interview because I was not good enough at designing a "basic" database schema. I'm a bit better at it now, but not much (most of the schemas I've been designing still are very very basic)

The field of computer science is HUGE - you can't be expected to know everything - and that's ok !

1/2

Dimitri Merejkowsky

@b0rk

But that means you have to be able to keep learning, and so you must be able to say "I don't know how this basic thing works".

And in order to be able to say that, you must not be mocked for what you don't know ...

2/2

Vaishali Thakkar

@b0rk Very well said. 'Basic' is subjective and I can't believe some people still like to make others feel bad for learning something instead of celebrating them.

Pixel Doge

@b0rk the older I get, the more it feels like I'm still learning “basic” things. What's basic for one person may not be for another and vice versa, depending on each one's learning journey. It's good to normalize this!

Ben Rolfe 🌳

@b0rk And nobody talking about the cool things they've learnt, because they're too chickenshit to admit it took them 15 years, is one of the reasons it sometimes takes us 15 years to learn things.

Mirek Długosz 🕸️:python:🐛

@b0rk

I started using Linux in 2005. I had a printed book back then. It covered readline, emacs and vi modes, so I was aware of these shortcuts and how to find them. But it wasn’t until few years ago that I made a conscious effort to list few that seemed most useful and try to use them every day. There are 5 or 6 that stuck in my muscle memory.

You are not alone.

Raphael

@b0rk It's more of an "I haven't bothered to learn it before", anyway, isn't it? 😉

I can say that I've been Linux-first for about 15y. I've taught Git and Bash. And I still learn something from following you. Thanks!

Anant Shrivastava aka anantshri

@b0rk if you need more such quotes. I am using linux since 2000, mostly focused on commandlines, managed lots of website and online services, self host stuff, still cant use emacs and tmux, still learning new things about screen and vim.

Go Up