
The Missing Computer Skills of High School Students - OberstKrueger
https://nullprogram.com/blog/2018/10/31/
======
jcfrei
Files, directories and paths are such a fundamental concept, yet I am
surprised how few computer users are actually familiar with them. To me it
seems that most computer classes at the high school level can be divided in
two groups: One which is basically a class for typists, where you learn how to
type fast and how to edit documents. And then another one which directly (and
often exclusively) teaches coding.

However what's often missing is a class which teaches basic computing
concepts. Files and directories are just some of them. The basic von Neumann
architecture (a CPU changing ram), what a program is, how the internet
protocol and the domain name system work, different parts of a URL, how a
frame buffer determines what is shown on the screen, how colors are encoded
with RGB values, etc. These are all very interesting concepts that could be
taught at the high school level. There's a lot to be learned even without
going into the technical details and I am confident that these students would
then find (desktop) computers much more accessible. Smartphones and their
touch interfaces have been a runaway success and I think this is in part
because most people never got comfortable with traditional desktop computers
(and their GUIs) due to decades of misguided computer classes.

~~~
WalterBright
I always wondered why "directories" were renamed to "folders".

Now, in Win7, I bring up file explorer. Click on "Documents". It says at the
top it is located in "Libraries -> Documents". But that isn't where it is.
It's in c:\users\name\documents".

I never understood why there are two separate file systems mapping to the same
files. It's madness.

~~~
SiVal
I think "folder" is a more practical name than "directory". Group or fileset
or collection, etc., would probably work, too. The problem with directory is
that it is describing the implementation instead of the result.

The result you're after as an ordinary user is a container holding a group of
files, not a "directory" that lets you look up a filename and be told where to
go find it. As an implementation, of course, the latter is closer to what a
file system "directory" really does, but that's not the most useful metaphor
to present to the ordinary user.

And does a phone directory contain individual listings plus other phone
directories? No, but that's what "directory" meant to most people back when
the name was changed to "folder". And the name change happened when GUIs were
first created and needed icons to represent a thing to drop files into. You
don't drop files into directories, you drop them into folders or file drawers
or something. (Of course, my father can't stop calling a folder a "file",
because file folders were so often called "files" at the office way back when.
Oh, well.)

I've called them "directories" since before the Mac existed, so the word was
long ago defined in my head by the thing itself and could be called a
watermelon for all the difference it would make to me, but if I look at it
with a beginner's mind, "directory" doesn't seem like a very good name.

~~~
sureaboutthis
No. A directory gives you a list of pointers to data and files. A folder
contains that data and files (though directories can conveniently contain
them, too). On the web, any URI that ends with a "/" is specified to look
first for an index file--such as index.html--which should contain a listing of
links to files and other directories.

~~~
afarrell
> A directory gives you a list of pointers to data and files. A folder
> contains that data and files (though directories can conveniently contain
> them, too)

From an implementation perspective, you are correct. But that doesn't rebut
what your parent comment is saying.

> On the web, any URI that ends with a "/" is specified to look first for an
> index file--such as index.html--which should contain a listing of links to
> files and other directories.

That is not my experience with most of the web. I've seen it, but not really
that much in the past 6 years.

~~~
sureaboutthis
I don't recall the RFC number but it is in the standard specification.

~~~
afarrell
I'm not saying that this is incorrect, just that it is irrelevant.

------
Adaptive
I work at a girls middle school and taught a class called "technology
literacy" last year to 6th graders.

I covered what I felt were basics:

* Basic communications tools (email)

* Word processing/Spreadsheets/Presentation software via g suite

* Basic command line usage including bash basics, paths, file creation and edition, sshing

* Basic HTML and "how the internet works" (also with CLI editing of html files in user directories)

* touch typing (typingclub.com)

These girls as seventh graders are coding in Python and nailing it.

~~~
Adaptive
I should also mention that their "downtime" activity was CLI text adventures.
I recommend using these to teach basic "verb object" CLI usage.

~~~
poormansevo
This sounds impressive. I too would be interested in seeing the teaching
materials you are using for your curriculum. As a father of two girls, aged
two and five, I enjoy reading about girls getting exposed early to
programming. I plan to start introducing my oldest soon once she progresses
her reading skills more.

------
sfRattan
I have a distinct memory of 8th grade typing class: once a week over the whole
fall semester we practiced typing on these awful AlphaSmart devices. Made
almost no progress in our words-per-minute. Then, over Christmas break, we all
started using AIM to message each other. Spring semester began and our teacher
was flummoxed... We had all jumped up by 20-30 words per minute from where we
had been on the first day back in class.

~~~
bcaa7f3a8bbc
Completely agree.

Touch-typing in standard finger position is ABSOLUTELY NOT REQUIRED to be a
successful computer technician unless you are doing office document
processing. As long as you can type in a reasonable speed so it doesn't become
a significant bottleneck of your human-machine interface, it is okay. It's
good to have this skill to become a more efficient computer operator, but it
is optional in many cases.

I can type at 50 WPM minimum by just pecking two fingers on the keyboard, and
even faster when I use more fingers. I barely need to look down at the
keyboard, I only do it to readjust my hand position, but most of the time, I
can do this by using the text I just mistyped on the screen as my negative
feedback. Many people I know who are not touch-typers, have also naturally
acquired a similar "just works" way of typing - you don't need to actually
study it, if you use computers day-by-day, you have probably obtained it.

In the same way, when the cool kids in the 2000s were using SMS to text all
the days, they learned to type at an unbelievable speed on the 3x3 numpad
phone keyboard.

On the other hand, if one is struggling to type words and commands on the
keyboard to operate the commandline, it doesn't mean one is merely an
inefficient typer, but often indicates a larger problem: A LACK OF GENERAL
EXPERIENCE ON USING COMPUTERS, and this is the real problem, as general-
purpose computers are becoming less and less common and many people of the
young generation do not share your experience, which was how the older
generation learned to type.

~~~
erfgh
You can learn touch typing to a very good standard in 1-2 weeks if you give it
a try. It is not required but it will definitely help you.

Sure, you can learn to type fast using another way, but what's the point? It's
like learning to play the guitar stand-up. You can do it, but what's the
point?

~~~
ghaff
I never learned. (I think the first time I used a typewriter was senior year
in HS.) I went to a "prep" school and we didn't have classes for secretarial-
type stuff.

I type quickly enough and have developed good enough typing muscle memory over
time that I've never quite gotten up the incentive to properly teach myself to
touch type but I would almost certainly have benefited from both typing and
shorthand classes at some point.

~~~
ams6110
Same. I generally rest in the home row, but I'm sure the fingers I'm using to
strike specific keys are not the "correct" ones. I've never been formally
trained in typing. I do find that I make fewer errors when I have a correct
keyboard height and I keep my wrists elevated.

~~~
amrx431
Didn't have a computer till I went to university(grew up poor in a developing
world). I am pretty fast without touch typing and I move my hand all around
the keyboard. I also feel it when I happen to strike an incorrect key.
Currently I look at keyboard occasionally when I make a mistake, but I think I
have got an idea as to which keys are where. Its almost touch typing except I
never start with the "home" position and yet manage to almost touch type. I
believe as we type more and more we will eventually develop the touch typing
pattern. The pattern might be different than the standard recommendation of
"home" positioning.

------
vinceguidry
His main complaint seems to be that he couldn't teach kids how to interact
with a file system. I don't think the concept of a file system is an easy one
to grasp. And it's not something we should be expecting schools to teach.

I once had the privilege of doing the converse, teaching an 80 year old woman
the same concepts. I had _exactly_ the same problems he described. These
things are not simple nor intuitive, nor are they really needed for basic
usage of a computer.

I taught them to her because that was what my formative years using computers
was like, and because that is how you understand what's going on under the
hood. But I had to quickly roll back my ambitions to non-CLI interfaces
because she just didn't have the same kind of time I had when I was 13 to just
spend hours and hours figuring it all out.

It's _not_ necessary to learn how to touch type, and it's _not_ necessary to
learn the file system concepts used by the userland. You can do amazing work
with a computer without that knowledge.

Pedagogy doesn't just involve knowing _how_ to teach, but also in knowing
_what_ needs to be taught. You don't need to dive into the intimate details of
radiocarbon dating to get kids excited about dinosaurs.

------
skywhopper
I'm not surprised at all about the pathing things. I doubt there's any cohort
in the last forty years who commonly had knowledge of "." and "..", though.

But the typing thing is disturbing to me. There's lots of hand-wringing over
whether or not to make students learn cursive, but my daughter was expected to
write timed essays on computers (in tiny web textareas, even!) without ever
being given even basic typing instruction. She's a junior in high school now,
but never once in all her years of being in classrooms with computers, doing
computer labs, doing online standardized tests, and being required to submit
papers in electronic format, has there been any opportunity, much less a
requirement, to learn to type.

Somehow, miraculously, she's a prolific writer (of fan fiction, original
fiction, and humor articles for her school newspaper--along with multiple
completions of NaNoWriMo, which she's gearing up for again this year), but she
still types half by sight and almost all with her first two or three fingers.

I realize this can work fine, but nothing helped my own computer usage more
than being forced to muddle through a typing class in high school. I'm agog we
don't invest in such a basic skill in our schools.

~~~
qohen
_never once in all her years of being in classrooms with computers...has there
been any opportunity to learn to type...I 'm agog we don't invest in such a
basic skill in our schools._

I know typing used to be taught in typing classes at school, but, these days,
is there really a need for that? Typing-tutors can be downloaded or used
online (e.g. [http://www.typing.com](http://www.typing.com) or, as mentioned
by a commenter above, [http://www.typingclub.com](http://www.typingclub.com) )
to develop typing skills on one's own time -- students just need to be
encouraged/mandated to use them.

Perhaps students should spend a few minutes in class trying them out to get
exposed to them and then told that they'll need to demonstrate a certain basic
proficiency by the end of the week -- I think some sites can save results for
entire classes, schools, etc., so a teacher could just login and check results
that way with a few in-class spot-checks to make sure students don't outsource
the work to a ringer.

The programs are already gamified, but you could add a bit more on top by
doing competitions for a prize or certificate or something. And you could do
things like this over the course of the year to make sure people are keeping
their skills up.

(Of course, if students don't have access to computers, then perhaps there
should be a lab in school to give kids access, but, again, the programs can be
run by the kids themselves during their free time or after school, etc.).

~~~
cdoxsey
Typing is a skill that can be painful to learn, and so students take
shortcuts, like looking at the keys instead of the screen.

Just like with sports, a typing "coach" can be very helpful to correct these
errors, particularly with children who may need help choosing short term pain
for long term gain.

------
jtnews
"Instead it’s rote learning some particular IDE without real understanding."

The reason for this is that very few of the people doing the teaching of
computing concepts in high school understand themselves and all they can do is
follow the script in the textbook. Teaching degrees focus more on the concept
of teaching than the content of teaching. I have first hand seen teachers with
years of experience "teaching Word" get lost and come to a full stop the
second something doesn't line up exactly with the book.

Using a computer does not translate into understanding a computer. I know very
intelligent teachers, some with advanced degrees (Master's and Doctorate's),
that have trouble navigating to a website that doesn't start with www and are
unable to distinguish between a url and an email address. All of the letters
and symbols (real strange ones like :, /, ., or @) might as well be part of a
magical incantation that teleports words, pictures, and videos to their
screens.

------
ux-app
I'm a high school IT teacher, and can definitely relate to the lack of
knowledge of the file system. It's particularly bad with students using a mac.
We're now seeing a 50/50 split between win/mac and it seems that most kids are
getting macs because that's the current fashion, but they really struggle with
basic file ops. About 90% (no exaggeration) of mac students simply never
discover the little down arrow that expands the file save dialog. This leads
to students simply hitting save and having all their files dumped on the
desktop. Then they minimize their app and move the recently saved file into
another folder (usually also on desktop). Of course, in the case of a save as,
this leads to a 'file deleted' message when they return to their program. Thus
was a particular issue when I was teaching web dev and using vscode.

I try to teach file management in context where it makes sense. Web dev is a
good topic to focus on it. Creating a folder to hold a site, sub folders for
css,js,imgs and then relative file paths in html and css. These concepts are a
first for many middle schoolers.

On the other hand kids are great at using virtual desktops on mac, whereas
only maybe 2% of win users have discovered/use virtual desktops.

~~~
YawningAngel
To be fair to them, the finder interface for files is absolutely fscking mad
and lead to me using a terminal for all file management for more than a year
because it was completely opaque to me how to get access to the "real"
filesystem.

~~~
AzMoo_
I can't believe how terrible the Finder interface is. I've never understood
why they don't fix it. Are there people who like it?

~~~
copperx
I use Linux on my workstation, Windows at work, and Mac on my laptop. I don't
get what's so terrible about the Finder. If anything, it makes you miss column
view in other desktop environments (and space to preview!). [An aside,
regarding Open/Save file dialogs: dragging a file into an open dialog is
great, and neither Windows or Linux have been able to do copy that
functionality. The best you can do is to copy and paste a path.]

I've asked this before and I've never received a list of grievances which led
me to conclude that people are just not familiar with Finder.

~~~
androidgirl
I personally love Sunflower on linux because of the columns.

~~~
copperx
Does Sunflower offer column view like Finder? or is it just 2 panes? I don't
see any columns in the screenshots.

------
snazz
> In the future, kids will be less and less exposed to keyboards, and
> productive computing in general.

I'll go out on a limb here and say that this isn't a new thing at all. It's
just that, in the past, fewer students had access to computers, and those who
did generally understood them better. Now, it's not that the average high
school student doesn't have access, but that the vast majority don't have any
interest in how the machine works. It's the same percentage of the total who
are interested and good at computing but it's just that a much lower
percentage of the computer users are good computer users, in my experience.

High school "computer science" classes in my area seem to teach "you always
need to type public static void main(String[] args) for your program to work",
as opposed to teaching students what that means. As with in the past, the
students who are really good at computing do most of their learning outside of
school.

~~~
nextos
I think it's more of a neomania problem. New and shiny equals better.

Now "IT" is thought to be good, and lecture rooms are getting "digitalized".
Where digitalization means something horrible, using tablets and slides (which
will encourage shallow thinking and distraction). That's at least the trend
now in some elite schools I attended more than a decade ago.

In contrast, when I went to a (pretty forward thinking) kindergarden in the
late 80s, we were taught Logo. During early elementary school I vividly
remember how recursion blew our minds.

From any possible point of view, the same school had a much more _avant-garde_
education 25 years ago. Now try to convince policy makers.

Same applies to CS schools. I was lucky enough to be taught Prolog, Smalltalk
and ML during freshman year. We emphasized concepts over technologies. Now
it's the other way round.

------
MayeulC
This is true in my experience. Even a (materials science) PhD student I'm
working with told me he is so "bad with computers" that when someone asked him
to open a specific directory, he answered "what is a directory?".

I can only imagine it being much worse for the general population, and this
makes me wish I could teach in high schools, even if just a bit.
Unfortunately, part-time teachers, or teachers that just come for the odd
conference/course on a specific topic seem to mostly be a uni thing, at least
where I live.

I was just thinking about this the other day: kids should probably get more
exposure to cryptography, maybe even before high school, for the following
reasons: \- kids love secret messages \- crypto math is quite basic algebra \-
even without the maths, asymmetric crypto and hashes are quite easy to grasp
\- maybe it will allow them to better understand security as adults

I would love to see a future where public/private keys can be used as a
general authentication mean, without it needing to be too dumbed down, as we
can expect people to know the basics. It would also likely lower phishing
issues.

I agree that schools are to blame here, even when they try to broaden the
scope of their teachings. But I would give teachers some slack, as they were
likely not prepared at all on some topics. So, maybe the solution here is
indeed to ask parents to come and teach students some bits of their
speciality? It could be done in multiple domains, and I feel like this would
be a lot better for kids to be able to relate and project the content their
are taught onto a person's job.

~~~
Balgair
> I was just thinking about this the other day: kids should probably get more
> exposure to cryptography, maybe even before high school

> So, maybe the solution here is indeed to ask parents to come and teach
> students some bits of their speciality?

My SO taught HS Math for 2 years in the US. One in a VERY low income school,
one in a 100% college acceptance rate school. Via what we talked about over
dinners at night, I learned that what kids need is food and guardians that
aren't abusive/neglectful. Honestly, ~30% of her students, from either school,
would not eat at all over the weekend. No, not that they would eat Cheetos or
drink Coke. They plain-jane went hungry. Long weekends were not a source of
excitement for them. Their folks either didn't have the money or just didn't
care. The 100% college acceptance rate school fed the kids breakfast and lunch
each day, for free. That was likely the largest single contributor to the
success of the school (unproven, granted).

So, if you are US based and want to help out with these issues, PLEASE DO! A
lot of kids really do need very simple things like food or pencils. It's
amazing how smart kids are if you just give them a sandwich and a pen to work
with. They just amaze you.

Boys and Girls clubs are a great starting place:
[https://www.bgca.org/](https://www.bgca.org/)

Google your local after school organizations and volunteer

Become engaged in your school boards and PTA. They need guidance and citizen
participation.

~~~
pseudonom-
> ~30% of her students, from either school, would not eat at all over the
> weekend. No, not that they would eat Cheetos or drink Coke. They plain-jane
> went hungry.

Can you help me reconcile that with the data from the USDA as described here?
[https://blog.givewell.org/2009/11/26/hunger-here-vs-
hunger-t...](https://blog.givewell.org/2009/11/26/hunger-here-vs-hunger-
there/)

They describe children in 0.3% of households as skipping a meal almost every
month and the number of children that did not eat for at least one day in
almost every month is too low to measure.

~~~
Balgair
Don't know what to tell you. I guess my SO was just that 'lucky'.

------
walrus01
The increasing use of walled garden things like iOS which abstract the file
system away from the end user, making it impossible to know what the system's
actual directory structure looks like, certainly doesn't help.

"where is your data?"

"uhhh, it's in the app, or in the cloud"

"yes, but specifically where?"

"i dunno"

The comment here nails it:
[https://news.ycombinator.com/item?id=18350671](https://news.ycombinator.com/item?id=18350671)

Children and teenagers these days spend a lot of time using passive media
consumption devices. An iPad is great if you're watching youtube or netflix
passively, not so great at all if you want to create your own content, edit
it, manipulate it, back it up, transfer it places, etc. Touchscreen devices
and phones are great for browsing web pages. It's a media portal with a walled
garden app store, not a real computer, though its hardware may be capable of
more than its operating system allows it to do.

This comment could easily devolve into a "get off my lawn" rant, but I
seriously believe that people who learned how to use x86 type computers from a
command line first are much more capable of understanding what's going on
underneath a GUI. If you spent time mucking about with config.sys and
autoexec.bat settings in MS-DOS 3.3 and 5.0, a long time before you saw a
Windows GUI, you could immediately grok what was going on when you _did_
install Windows.

I am not a big fan of Arch Linux, but in the modern era there's a lot of value
to getting people to learn what is going on when they do a brand new Arch
install on an empty disk. What's happening with fdisk, partitioning,
formatting, grub2/bootloader, etc. And why it's happening. If you don't want
to go that far in an educational environment, start people from a debian
stretch barebones install with CLI only + sshd.

~~~
ryandrake
> "where is your data?"

> "uhhh, it's in the app, or in the cloud"

> "yes, but specifically where?"

> "i dunno"

We can keep going:

“It’s in /home/walrus01/docs”

“But specifically where? What physical drive?”

“It’s on /dev/sda2”

“What cylinder/track/sector?”

At some point it stops mattering practically. The abstractions presented to
users today are often such that it doesn’t matter if the user knows what path
something is stored in.

~~~
brokenmachine
It _will_ matter when that data goes missing or the abstraction stops working
for whatever reason.

From what I've seen, people who don't understand or aren't interested to learn
about computers will only learn precisely one method to achieve exactly what
they are trying to do.

Not knowing how it works is a very fragile way of doing things and could fall
over at any minute, and that's bound to be the worst possible minute, and in
the worst possible way.

------
systematical
Are you telling me kids don't click around the C drive anymore and all those
"weird" folders in Windows just to see whats there? That's probably one of the
first things I did when I got a computer (Windows 95), including deleting
random files just to see what happened.

~~~
Jackim
Kids barely use computers these days. Schools buy tablets (iPads/Android) and
Chromebooks. Neither encourage computer literacy. At home they have phones and
iPads for the most part.

~~~
systematical
You're right, hadn't thought of it that way. Never thought I'd be the old guy
who prefers a "big clunky" laptop.

------
Aelius
I am wary of making predictive generalizations, but I have been thinking about
the effect of "just works" computers for roughly ten years. The robotics
program in my highschool folded after I left, in part because no one was left
who could write the programming. Watching my nephew grow up on iPads and
iPhones: I learned how to use computers by breaking them, and then fixing
them. iOS doesn't let you screw it up, and there are too many addicting games
to suck up all his time anyway. I'm considering teaching him some things now
and giving him a cheap laptop or rPi, but I doubt he'd choose to use that over
the silly endless games on iOS, or the bottomless pit that is YouTube.

~~~
dmoy
You can make the same argument about basically any technology that has gotten
more reliable, cheaper, easier, etc over the years.

Cars is a big one.

Going back farther, textiles. We don't spend a staggeringly large percentage
of our time making and/or repairing our own clothes anymore. For the most
part, clothes "just works", and the average person doesn't have to worry about
it.

~~~
Green_man
I'm not sure thats a perfect analogy. in both those cases, the big change has
often been machine aided manufacturing (especially with textiles), combined
with lots of engineering/materials science. engineering and materials science
has definitely aided the speed and effectiveness of computer hardware design
as well (and anecdotally, people seem to be buying phones and laptops less
often, they last longer), but that isn't true of software- we need (or the
market demands) more software engineers than ever, afaik. and, as far as i am
aware, we are still a ways out from machine aided software design.

~~~
munk-a
I disagree, modern textile workers probably aren't good at hand-carding wool,
similarly modern software developers tend not to be good at writing hand-
optimized assembly code. Sure, you _could_ do that and there are resources
available to learn how to, but (except for some niche fields) there isn't a
reason to do it. It isn't productive when a compiler can do a good enough
(sometimes better) job quicker.

~~~
Green_man
That's a very good point, assembly does work as a good analogue for more
primitive textile manufacturing. but as a CS student that hasn't yet learned
assembly, is a programmer using a compiler so much faster as to be analogous
to a spinning jenny? or a modern loom?

~~~
canhascodez
Assembly is one of the roots of computing, but so is lambda calculus. One
might also argue for gates or boolean logic as fundamental concepts. Higher
levels of abstraction are much, much more productive, but it's hard to compare
like with like, since you are fundamentally measuring different quantities. Is
a coder "faster" if their compiler generates much more code than necessary, or
if they use optimizing flags to generate fewer instructions?

The point of abstraction is rarely (if ever) speed, either of coding or code
execution. Abstraction is about managing complexity. It's not that one
couldn't write a prime-finding algorithm just as quickly and easily either
way, it's that you can't write Facebook in assembly, and if you did, you would
have to reinvent a ton of features from higher-level languages. Are
programmers using HLLs more productive overall? Probably: more abstract code
uses fewer symbols to express the same concept. However, you lose precision.
One can say, "make me a sandwich", and assuming that you have sufficient
access privileges, you will likely get some kind of sandwich, but since that's
a pretty high-level description, you may not get the kind of sandwich you were
expecting. Most of the time, it's easier and faster to just say (e.g.) `let x
= 5` than to get bogged down in the details of what that might actually mean.
However, if what you really want is `mov eax, 5`, then all of the other things
that your HLL might be doing may not be a net benefit.

Hopefully that thoroughly clarifimuddles the subject.

------
japhyr
> I lay most of the blame on the schools.

I'm a high school teacher, and I've been in this world for a long time. I'm
surprised no one has mentioned the issue of pay yet. The median pay for
teachers in the US is around $50k. Starting salaries are under $40k. Max pay
is around $70-$90k, but it takes 10-15 years to get there, and in many states
the max pay isn't this high.

If you're a good high school CS teacher, you can basically walk out the door
and get a job that will double your salary. How many of you have been in a
field where your pay absolutely does not depend on the quality of your work? I
am leaving the classroom after this year, to focus more on technical work. It
feels entirely different to be heading into work where the better my
performance is, the more I'll get paid.

I've been teaching for 24 years, so I'm not leaving just for pay reasons. But
I don't think we can look at solutions to better HS CS education without
addressing the issue of teacher pay. If I were graduating college today with
the skills I had 20 years ago, I'm not sure I'd go into the classroom.

~~~
rhexs
Do a majority of public high school teachers still enjoy pensions, three month
breaks a year, and legendary job security, or is that going away as well?

~~~
japhyr
\- Pensions are going away as states find they're unsustainable. My state
(Alaska) has moved into a defined-contribution model, which I believe is like
most jobs that offer any retirement benefits.

\- Yes, 2-3 month breaks are pretty sweet.

\- "Legendary job security." I believe this is going away. I have tenure, and
my district still offers it. That's a good thing, I believe, because it allows
good teachers to stand up for good educational practices. I am definitely able
to support students and new teachers better because I am not in fear of losing
my job. I know some states have moved away from tenure; I'm not sure how many.

Are these enough to keep good CS teachers in education? I don't think so. If
you're a good software developer, I believe you can manage a career where you
take some time between jobs. You can build toward a much earlier retirement
than you can as a teacher. You can live a wealthier lifestyle along the way.

Neither career is a rosy field of happiness. But my point is that if you're a
good high school CS teacher, you can probably find a much more appealing work
situation outside of education. If we want good CS teachers available for high
school students, we should probably look at this pretty carefully.

------
thrower123
I don't think this was any different ten or fifteen years ago when I was in
high school.

We even had actual keyboarding classes and Mavis Beacon and everything, and I
wasn't able to consistently touch type until about a year and a half into my
first job as a software engineer. This was coincidentally about when I started
using IBM-layout mechanical keyboards almost exclusively; I'm still regularly
thrown for a loop when I switch to keyboards with other layouts, so I probably
am still not actually touch typing properly, I just have built up enough
muscle memory that I get by on the particular hardware I spend 8-12 hours a
day hammering.

As far as pathing goes, and specifically the use of the particular convention
we have around . and .. meaning present directory and parent directory, I'm
not sure I was even exposed to that until I took a C/Unix programming course
in college and had to get used to navigating a Linux file system in a
terminal. The first computer I ever had started out with some type of Curses-
style DOS shell that abstracted most of the nitty gritty details, and from
there went to Windows 95->98->XP->Vista->7\. As a regular PC user on Windows,
you don't deal with the command prompt, you deal with the file explorer and
the save/open file dialogs. When I started programming in high school, it was
QBasic, then VB6, then basic C++ with Visual C++ 6 and Bloodshed, then Java
working out of an IDE (JCreator or Netbeans?), and again, pathing was not
particularly emphasized. Building out student-level projects, I think I just
dumped whatever files I needed in the cwd, or in paths under that tree, or
popped open file picker GUIs.

You really have to live and breathe this stuff day in and day out for a while
to internalize it, and I wouldn't say I was really comfortable until maybe a
year or so into being a "professional" programmer.

~~~
matt_j
I finished high school in the late 90s and we learned to touch type on
mechanical typewriters for 2 years. I'm not the fastest typist in the world,
but it sure is a skill I've put to use every day of my life.

Programming is a little different from typing prose, and intellisense helps if
you're using an IDE that supports it, but even then, a few characters > tab >
a few more characters > tab, it really helps to be able to hit those keys
without looking.

If there was one skill I wish I'd learned as a young 'un it's how to use a
proper text editor. I was 32 before I used Vim for the first time. I'm getting
better at it, slowly, but I wish I'd been exposed when I was younger to give
that skill a good decade of exercise.

~~~
u801e
> I was 32 before I used Vim for the first time. I'm getting better at it,
> slowly, but I wish I'd been exposed when I was younger to give that skill a
> good decade of exercise.

You'll get there. I switched to CS as a second career in my late 20s and first
learned the basics of vim a year later. I'm quite proficient with it now more
than a decade later :)

------
Mistri
I'm a senior in high school and some of this is relevant to me. I'm a self-
taught programmer since the beginning of high-school (although I was pretty
bad at the time, and still am), but after just a few weeks of playing around
with arbitrary code, I was able to pick up the filesystem pretty easily. I
took AP Computer Science last year and the basics of the filesystem were
briefly taught in class, however not very in-depth and most of my classmates
still don't understand it to this day.

As for typing, I'm a touch typer and have been since around 5th grade. When we
started using computers at school (a new phenomenon, I know) everyone had to
be able to type fast. In first grade we also had to learn how to type in the
"computer lab" and for homework on our home computers, which I'm very grateful
for now. I can type at around ~119 WPM now.

~~~
bvy
I think in spite of those computer classes in elementary school, 119 is still
on the higher end. You'd still have a lot of kids typing sub 40-50.

~~~
Mistri
Yeah, definitely! Some of my friends are definitely on the slower side for
typing.

------
yardie
I can agree with almost everything the OP states except the dig at tablets. My
first PC in university didn’t use local storage. So I get cloud computing. At
the end of the day it’s all just NFS storage and chrooted apps. You don’t need
a PC or laptop for that.

------
epberry
File systems suck anyway. They’re useful for programmers and software but
pretty awful for people organizing data. My exclusive approach for finding
things these days is Spotlight on Mac or google drive search. Drive search is
so good that it’s not even necessary to name documents correctly or put the
right content in them. Sometimes it seems like the search is context aware and
you can type ideas into the search bar and get a list of documents that might
be relevant to them. I think of my document memory more as a hashmap than a
tree and typing in part of the file and going straight to it is extremely
satisfying.

------
paavoova
Fundamentally, abstraction fosters illiteracy. You have an entire generation
or two of people who grew or are growing up solely on touch devices, and many
of these devices expose no native filesystem (e.g. iOS) to its users. And as
the article says, these devices are used largely for consumption (media,
social extensions), all by design. You now have to go out of your way to learn
even the basic, trivial fundamentals, but kids handed a smartphone at age 9
may very well have no desire to do so.

Of course, and to use an analogy, not everyone has the time or motivation nor
even reason to become an auto mechanic. But something like transportation has
always been a means to an end. The difference with consumer technology now is
that nearly everyone fancies themselves a "tech" enthusiast in one form or
another thanks to proximity and thus familiarity. But at the same time, many
(perhaps most) remain underexposed to the very technology they use as a
lifeline. There's a pervasive "just works" mentality that has influenced
everything, partially spearheaded by tech companies like Apple circa Steve
Jobs. This wouldn't be so bad, if it weren't for people spending so many hours
of their own spare time using technology, but simultaneously learning nothing.
The equivalent time spend in a traditional computing environment would teach
the fundamentals whether one is interested or not, simply through exposure.
But there's little such exposure in modern personal computing.

------
trey-jones
I mostly speak from my own experience growing up (90s). Briefly, this was
Apple II in middle school learning BASIC for 6 weeks, Windows 95 in High
School, XP in college (Liberal Arts). I didn't start writing code until I was
about 25, and was 28 when I started in tech.

I can understand that it's possible kids don't know about paths, since most
modern operating systems abstract this from the users, but I wonder if it has
as much or more to do with never having been exposed to Linux. That was
certainly my situation.

One of the first pieces of advice I read when I started teaching myself to
write code was "So you want to be a hacker? Ditch Windows and use Linux full
time." I realize there are lots of good Windows programmers out there - not
trying to bash anyone - but for the programmer on a budget I think this is the
correct path. I will also admit that I haven't used a Linux GUI in many years
and I suspect that one could get by without understanding paths using a recent
version of Ubuntu. One of the reasons I suspect this is that I have had my
parents using Ubuntu since 2011 or so.

Nevertheless, many basic linux concepts were foreign to me when I started
using it. Ever since, I've definitely thought Linux computers in schools
rather than Windows would be a good idea. Linux computers without a GUI at all
might be even better (at least for teaching computer classes), but I guess you
might have difficulty holding their attention.

~~~
bischofs
I would have been so much better off in my CS degree if I would have walked
into computer lab in high school and there was just a terminal with a blinking
cursor. It took me far too long to clear all the nonsense and finally get to
that stage where I felt close to the operating system

------
codemusings
I think what's worth noting is that users in general are less and less exposed
to the concept of files and directories. Let's face it. The computer most
students use are their smartphones. Everything is sandboxed. You never ever
select a file path. It's more about context than location.

------
scotty79
I code for more than two decades and I never learned to touch type. I tried
for a bit but it didn't stick. I can't type in complete darkness but if I can
see with the corner of my eye where the keyboard is I'm just hitting the keys.

Touch typing for coding felt awkward because there's a lot of special symbols
that are kind of hard and unintuitive to make if you try to touch same keys
all the time. Also I wiggle in my chair quite a bit and believe it's essential
for healthy sitting. I feel like touch typing could interfere with my
wiggling.

My style of typing is yet another factor why I get infuriated when I sit in
front of a Macbook. For some reason Mac keyboard is about 3/4 of the key to
the side of where I expect it to be (and literally every other keyboard is
exactly where I expect).

~~~
_Donny
I am somewhat surprised how important fast typing seems to be for computer
users, mainly developers.

It is never the typing that is my personal bottleneck. As a developer, I spend
perhaps 99% of my time thinking of the problem, before actually writing the
best and most concise solution. When writing reports or other academic papers,
I first construct the sentences before writing them slowly while reading out
loud.

I guess this is personal preference, but I think it is worth the time to type
slowly, instead of letting the fingers do the thinking.

~~~
ryl00
I'm not surprised, given the power of the CLI and the composibility of tools
like grep, awk, sed, find, etc. IDEs are great, but sometimes what you need to
do just isn't already defined in a GUI checkbox or menu item...

~~~
gizmo686
Even with CLI tools, you rarely spend most of your time typing, but rather
looking at the output. Knowing how to modify and rerun previous commands is
far more important for CLI fluency than typing speed. (things like ^r, !!, !*,
etc...)

In fact, I have noticed that my default hand posistion has shifted to placing
my left hand on the bottom left corner of the keyboard (thumb on logo-key,
pinky on shift), because that is where I need it for shortcuts.

Sometimes I shift to a normal typing stance (such as making this comment),
when I actually need to bang out a large amount of text, but that is the
minority of what I need to do when programming.

------
_ph_
Touch typing is one of the most underappreciated skills for tech workers. Few
of my colleagues are true touch typists. So yes, you can survive without touch
typing. But it is one of those skills, where a few weeks up to months of
thorough practise early one give you a life-long benefit, as you save valuable
work time and screen attention with every single word you type. As a touch
typist you can not only type faster, but also can concentrate more on what you
are typing as your attention never leaves the screen and the typing itself
doesn't require any concious typing effort any more.

------
vezycash
Not understanding paths isn't alarming they just haven't had a need for it
yet.

Teach em how to copy, delete, move, rename stuff via CMD and they'll get it
fast!

Make them use cmd exclusively for playing music, opening games, deleting
stuff... And the concept of Path, directory and files will simply click.
Besides they'll have something cool to show off to their friends

If I only use explorer, I don't need to know . and ..

However, if I do lots of file operations via CMD, then I'll get tired of using
cd\ all the time when I only want to go up one level.

------
bitwize
As it turns out, understanding hierarchical directories is _really, really
hard_ for most people, which is why iOS eschews them entirely, at least as far
as the UI is concerned.

According to Jaron Lanier, the concept of a "file" is an accidental one in the
history of computing, not an essential one. If we want computing to truly be
available to the masses, maybe it's time we leave things like files and
folders behind, and not allow the dead weight of the past to hold us back now.

------
maceurt
The touch typing part is not true, at least from my experience. Almost every
kid I know in my school can type at least 30wpm touch typing. In fact, we had
2 required typing classes in middle school that both were a semester long.
This is not even a rich private school thing either this is a public high
school that is composed of mostly kids from lower income families.

------
Axsuul
The keyboard on mobile devices has the same layout as the computer's so
shouldn't that translate somewhat to touch typing? At least they should have
an advantage over those who never grew up with technology.

High school students still talk to their friends via iMessage or Facebook
Messenger so they have plenty of exposure to this interface.

~~~
celeritascelery
But that is all thumb typing. Which is a very different notion then full hand
typing.

~~~
mastazi
In addition, on mobile you have on-screen keyboards, so you can never practice
touch-typing (which entails being able to type without looking at the
keyboard).

~~~
u801e
Years ago, I purchased a HP touchpad which has an on screen keyboard (big
enough to use the traditional home key hand position). I'm a proficient touch
typist, but I was never able to successfully touch type on it. Tactile
feedback is a must and isn't something that you can get with touch interfaces.

~~~
mastazi
Yes you are right, my definition of "touch typing" was incomplete because it
didn't mention the tactile element. There have been some prototypes where the
screen has a surface that can produce "bumps" in response to electrical
impulse, which could lead to having on-screen keyboards with some sort of
tactile feel[1], however this is not available on the consumer market just
yet.

[1]
[https://www.youtube.com/watch?v=JelhR2iPuw0](https://www.youtube.com/watch?v=JelhR2iPuw0)

------
jccalhoun
I teach college and the problem is much more fundamental than that. Certainly
I have tech literate students but I can't tell you how often I see students
struggle to just log onto their email when they try to pull up a class
presentation.

The old cliche is searching for google is not only alive and well but now it
is search for google, go to google, then search for youtube, then search for
the video you want to show.

Even when they actually have the url for a video, in the last several years
since I have started paying attention I don't think I have ever seen a student
use the "paste and go" option in the right click menu. They ALWAY paste it in
then hit enter. Paste and go is right under paste!

When I post a link to a survey or something I want them to go to I have
stopped just copying and pasting the url. I now have to paste it in and make
sure to delete [http://www](http://www) because nearly all of them will type
it in and a large percentage will do it wrong.

showing them ctrl+f to find something on a page blows their mind.

I have started teaching some sections of public speaking online and I was
driven crazy by the complete tech illiteracy of some of the "digital natives."
(pro tip: emailing and saying "it doesn't work" is not useful.)

I try to keep the xkcd comic about being excited when I get to show someone
something new but it is hard.

~~~
brokenmachine
_> Even when they actually have the url for a video, in the last several years
since I have started paying attention I don't think I have ever seen a student
use the "paste and go" option in the right click menu. They ALWAY paste it in
then hit enter. Paste and go is right under paste!_

I usually go Ctrl-L to focus the location bar, then Ctrl-V to paste, then
enter. Is there a keyboard shortcut for "Paste and go?"

I agree - I'm not sure these "digital natives" are all they're cracked up to
be. Of course there are exceptions.

------
thewizardofaus
Really interesting that touch typing is a skill lacking!

Maybe it was growing up on age of empires that improved my typing.

At age 8 I typed 32wpm At age 12 I typed 120wpm

Typing speed never really improved beyond that, occasionally hit bursts of
140+wpm but eh. Regular qwerty non mechanical keyboard.

~~~
moduspol
> Maybe it was growing up on age of empires that improved my typing.

I'm definitely the fastest in the office at typing PEPPERONI PIZZA dozens of
times in a row.

------
Sophistifunk
Unpopular opinion: Relative paths (paths in general, really) are a terrible
thing, and it's excellent that people are able to get by without that
knowledge.

~~~
zaphar
I don't think we'll ever get away from hierarchies as a useful organizational
strategy as a species. Paths are a useful way to encode those hierarchies.
They are concise and easy to read.

Most of the replacements for paths try to pretend that there is no hierarchy
or force people to not use a hierarchy. Personally I find the hierarchy to be
a very useful tool and paths on a file system to be a useful way of
representing them.

~~~
TeMPOraL
There is always a hierarchy. Trying to pretend there isn't one is _just
stupid_ , because hierarchy as a concept is as fundamental to how our minds
work as it could be. If a platform tries to hide the natural hierarchy, users
will still build their own out of clues given by the UI, and the result can be
unnecessarily confusing.

~~~
dragonwriter
> hierarchy as a concept is as fundamental to how our minds work as it could
> be.

Whether it's fundamental or a product of socialization, ISTR there is a
substantial empirical difference to the degree to which heirarchy is used to
model the world between men and women, so if that is true at all it may be
true only for certain values of “our”.

~~~
TeMPOraL
Hierarchy is created when you start considering whether or not a thing is a
part of some other thing. Sexual reproduction forms trees. _Causality_ forms
trees along time axis. I think the concept it's pretty fundamental, even if
some specific connotations are learned through socialization.

~~~
gizmo686
> Sexual reproduction forms trees.

No it doesn't; it forms directed acyclic graphs. (Consider the fact that all
humans share a common ancestor). There are probably parts of biology where
reproduction does form a tree, but given the existence of horizontal gene
transfer, I am not confident in speculating what they are.

------
catchmeifyoucan
Agreed. New schools give ipads to students in lieu of laptops. I think typing
is very important, and schools should continue teaching typing as a skill.

------
justifier
i advocate for computer education being complementarily folded into the
current math curriculum

i have interest in changing the math curriculum as well, but for people who
like the current math curriculum I think there are enormous benefits of
teaching computer skills.. science.. through implementation

------
hrshlb
typing.com is a great place to learn touch typing. I reached ~35wpm in less
than 3 weeks.

