Hacker News new | past | comments | ask | show | jobs | submit login
The Missing Computer Skills of High School Students (nullprogram.com)
163 points by OberstKrueger on Oct 31, 2018 | hide | past | favorite | 191 comments

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.

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.

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.

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.

> 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.

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

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

Yeah that's a thing Microsoft did a few years ago, they wanted to change the locations and names for certain types of files, but instead of doing a move / copy, they created virtual folders like Documents and Pictures where you can add multiple folders to. It's confusing and I hope they'll offer to consolidate all that at some point.

Which reminds me of iTunes, which I've used on Windows for years. It had an option to automatically consolidate files and store them in a sane location automatically when adding music. It was great.

They are super special folders too. I like to have my Downloads on a separate hard drive because of my tiny SSD. You can't make symlink with those Quick access directories though, you break them. You have to go into the properties of the item and change their Location.

Oh, and if you broke them it's not like Windows will fix them for you, no you need to head over to Super User and read some solutions.

Neither some people at Microsoft, as evidenced by recent 10 update delete fiasco.

why "directories" were renamed to "folders"

I was just reading about that today. Alan Kay is to blame it seems, as for so much. :-)

"The desktop metaphor was first introduced by Alan Kay at Xerox PARC in 1970 and elaborated in a series of innovative software applications developed by PARC scientists throughout the ensuing decade. The first computer to use an early version of the desktop metaphor was the experimental Xerox Alto"[0]

For the wider context about desktop/folders etc see [1][2]

I found this [3] story linked to a while ago on here fascinating, about all the user testing done for Windows 95. They did a lot of watching people use the file/folder system, change things around etc, repeat etc. It's kind of funny, the problems people had.

[0] https://en.wikipedia.org/wiki/Desktop_metaphor

[1] https://en.wikipedia.org/wiki/Graphical_user_interface

[2] https://en.wikipedia.org/wiki/History_of_the_graphical_user_...

[3] https://socket3.wordpress.com/2018/02/03/designing-windows-9...

Because Windows 95 intended to shamelessly ripoff the Mac, where the "folder" nomenclature originated.

But files, directories and paths are just abstractions we use for convenience. There is no mechanical reasons computers should have a single inheritance structure for locating files except familiarity and files being what files are now isn't a necessity either, zip files have a whole collection of files inside of them.

I think as time goes by we'll see which of the concepts of computing we grew up with end up being core to the usage of a computer and I'd be especially excited if we went in the direction of relational linkage of assets the computer has access to.

I often grumble at the lack of usability of the directory hierarchy. Even though I grew up with directories and the FHS. To often I know what file I want but have to navigate an entire filesystem. This is especially true for non native open source Linux tools on macOS. They don't use the native file browser (which is not without its faults either) and often force you to start from root instead of a logical place like your home.

There is really no use to have all files and folders on your fs available for opening or saving in most apps. Often you just need the most recent modified file or only files of a certain type. And there are really not a lot of places it makes sense to save files to outside of your home folder and personal project layout.

> But files, directories and paths are just abstractions we use for convenience

Abstractions common to literally every home computer operating system from the last several decades.

And absent from (or at least heavily obfuscated on) the mobiles and tablets young students use as their primary computing devices.

Except games consoles. And tablets. And phones. And quite a lot of online services..

Phones have files and directories and there are several apps targeting normal audiences.

In other words, "that's how we've always done it". Is the justification for continuing to do it that way when the very foundation of that is based on outdated abstractions? As mentioned, there's no tangible reason for using directories and files as organizations except that we're fitting modern paradigms into existing ones. We're retro-fitting them to a system that existed because of technical limitations that don't exist now, for some reason.

Ted Nelson used to refer to it as "the tyranny of the file".

But he didn't really offer an alternative (other than Xanadu). And a hierarchical system of storage is convenient for lots of people - once they understand what "hierarchy" means.

I think understanding hierarchy is one of those epiphanies that a new computer user can sometimes have. Others simply don't seem to be able to grok it.

I've always found WinFS[1] to be a pretty interesting attempt at a relational filesystem. Although it was probably a bit too ambitious, which led to it being cancelled.

[1] https://en.wikipedia.org/wiki/WinFS

Consumer PCs these days make it hard. There are so many (really terrible) tools on these Computers. Ex. last month I asked a friend (a very not computer guy), if he could give me some pictures from an event last summer. I gave him an USB drive. Next day he came and asked for help to copy the files. We saw the pictures in his Photo App. Of course it was NOT possible to copy the files from this App. I had no idea where they where on his PC. Even for me it was finally difficult just to copy some files on his new Win 10 PC.

Everyone else is talking about Apple, but I thought you were talking about Windows, because I had the same problem: the Metro Photos app likes to store things in AppData\Local\Packages\Microsoft.Windows.Photos_8wekyb3d8bbwe (!)

> the Metro Photos app likes to store things in (AppData)

I think that might be a bug. Windows 10 Photos app is surprisingly good about exposing your file system nicely, without the jank of a 'private proprietary hidden library' that other photo apps sometimes use.

Right click any photo to "Show in File Explorer" directly, or click Settings and it will show you a list of "Source Folders" it scans for pictures. Double click any "Source Folder" to jump straight into it.

At least, that's all present in the current version of Photos (2018 v18081.14710)

Oh yeah, Apple is being very difficult with this app; stashing all photos in a not easily accessed folder structure, and basically pushing people to preferring sharing via icloud over just the files.

You can literally drag them from the Photos app to your usb drive, my dude…

But not into e.g. the terminal. Apple Photos is useful, but it absolutely mucked up the idea of pictures as files (it has to.)

You can drag images from Photos directly into the terminal and they will drop as a path to the image you dragged. If you drag a thumbnail, you get a path to the thumbnail; if you drag a full-resolution image, you get a path to that.

That's pretty much how I would expect an app like this to work on a Mac!

> You can drag images from Photos directly into the terminal and they will drop as a path to the image you dragged. If you drag a thumbnail, you get a path to the thumbnail; if you drag a full-resolution image, you get a path to that.

Really? What if you want to copy a group of images? If what you describe is correct, when you drag and drop a group of images, wouldn't you get copies of the thumbnails.

I'm pretty sure my GF did this. I asked her for full res copies of some images of us, and got resized low-res versions. She uses iPhoto said she just dragged them out of the app. I had to fuss around with it and finally got what I wanted by using an export feature.

Dragging and dropping each full-resolution images one by one sounds like a nightmare.

> That's pretty much how I would expect an app like this to work on a Mac!

If this is what's now expected from Macs, oh how Apple has fallen. I can think of zero use cases where you'd actually want to drag and drop the thumbnail out, but not the full resolution image.

I think you misunderstood. If you're dragging thumbnails onto a flash drive, it'll copy the source photos, not copies of the thumbnails. The terminal example is thumbnails or full photos since the files themselves can't be used by the terminal. You have to specify whether you want it to pull a location for the thumbnail or the full photo. In that instance, you wouldn't be using multiple files because there's no use case for a terminal where sequential files would be used without some kind of additional characters or arguments.

As the other person has pointed out that you can easily drag/drop, in macOS you can usually find the paths by right clicking and going to some ‘info’ part.

Having not touched windows for almost a decade and getting told I had to use a windows 10 laptop to work on... well


That said the performance of the OS is pretty good. When I learned Powershell wasnt available at cmd things got a bit better.

Ended up with a Linux VM simply because I dont have time to figure out how to reproduce simple Linux CLI commands on windows.

Every consider trying WSL? It's built into windows and gives you a full linux shell

Thanks. I will look into this when I get a chance. I am sort of hoping to convince people I dont need windows.

That's like Google using .webp to serve photos on some of it's sites. Great, now I have to teach someone else to find the download button to get a jpeg.

In general, only a minority of power users truly understand files and folders. Most other people organize information differently.

A true "universal" application needs to flex its interface for people who understand files and folders, and those who don't. (Most applications don't need to be this flexible, though.)

Files and folders make perfect sense to someone who worked in an office 20 years ago. The office would likely have been furnished with cabinets full of literal folders containing paper documents.

I haven't used a file cabinet at work in over a decade. I still have a file drawer at my desk but there are no folders in it. So in that regard, familiarity with the concept is probably a lot lower than it used to be.

What probably makes more sense to users today would be tagging or labeling documents into categories. Could still be implemented as files, folders, and links, but the presentation might make more sense using other analogues.

Just a little nit: files, directories and paths are popular concepts today due to the prevalence of hierarchical filesystems, but not necessarily fundamental to computing. You can have a computer without any of those things, just not one that looks like today’s computers. My home computer in the 80s had only one of those(files) and even that concept was optional because storage was optional.

Working in a school, not as a teacher, it is amazing to see how students litter their desktop with files, similar to how most of the staff save their files.

I am not a programmer by any means and I know how important it is to create a filing system with directories. It is irritating how much time is lost while waiting for colleagues to locate a file hidden among the many on their desktop.

I bet you'll love this: https://johnnydecimal.com/

Edit: Sorry, I should have saved you the bother of clicking. It's a digital file management strategy loosely inspired (I assume) by library classification systems like Dewey's. I don't use it myself, but I admire the simplicity, clarity, and flexibility of the system.

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.

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

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.

If you'd be willing to publish it, the study guide/course outline/lesson plans for this would be really interesting -- especially as its getting results.

Pretty impressive, don't know if I'd consider ssh a basic computer skills though.. the rest seems rather practical.

in so far as ssh is just one of dozens of commands that the girls learn on the command line, it's perhaps not.

in so far as it makes them realize that computers are discrete entities that are networked and that this is what the internet actually IS... it's priceless.

The first time we connected to a remote machine in a different state it BLEW THEIR MINDS. One of them asked if it was EVEN LEGAL :)

It's a single command, yes, but it's also the pivot point for a whole unit on remote access, networking, IP addresses, etc.

So consider SSH shorthand for that whole subject.

Cool, it blew my mind the first time I telneted to the east coast or used CUSeeMe to Australia. Glad to see kids can still be impressed.

I think if ssh is really just "time with a command line" then it's a super valuable exercise. You can remember none of it and still go away with the lesson that the CSI looking thing really ain't that complicated.

I've done something similar, but with the boys in my kids' circle, who have all grown up with playstray-tions and whatnot, only we are using retro computers that don't have internet or amazing games or heavy tooling, but rather just Amstrad or Commodore or Spectrum or Oric Basic, a bit of modern disk tech (48k RAM with 8Gigabytes of storage) and some happy game-playing, or so, before getting stuck into what programming is, how different computers work in different ways to accomplish similar things, and so on.

Kind of a hacker experience, really.

(A few have moved on to Linux...)

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.

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.

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?

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.

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.

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.

I never learned to type formally and type fast but with a lot of typos. It is a problem when programming. Particularly the location of special characters, and particularly given that many IDE are "path dependent", i.e. if you type the wrong character and press back, you are not in the state in which you were before you mistyped, auto-complete doesn't reset properly, some auto-format may have inserted lots of new lines and symbols, etc.

To me typing reliably is almost more important than typing very fast.

> I can type at 50 WPM minimum by just pecking two fingers on the keyboard

I don't believe this TBH. I've seen people who think they are fast hunt-and-peckers, and I'd be surprised if they're getting to 30 WPM.

Have a go at one of those online tests and you might be surprised. eg https://www.typingtest.com/

I believe it. “Hunt and peck” may be a misnomer. Full disclosure, I’m a pianist as well and use all ten fingers, but my fingers float all over the keyboard rather than using the home row, and I might use three or four different fingers to hit any particular key. This style is muscle memory, but it’s also not “touch typing.” I typically type around 110wpm with high accuracy, and am slowed by figuring out what I want to type not by my fingers. I mostly don’t look down as long as I’m using my own keyboard, though I am slowed considerably when moving to an unfamiliar keyboard. I say all this because I know some of this style translates well to reduced fingers, eg sometimes I type exclusively with my left hand because I’m too lazy to move my right hand off the mouse and I’m thinking hard and don’t need to type as quickly anyway. Good two-finger typists probably also rely on spatial-muscle memory, and may not look at their keyboard at all despite only using two fingers.

Not the ones I've seen, lol!

You sound like a super-advanced hunt and pecker. I've never seen someone who can type without looking but their hands not in the "correct" positions.

I remember this too. Funny thing is that I never got good until I enter the industry after college. And even then, the times I need to type quickly is when I already know what I'm typing, otherwise I'm thinking more than going for WPM.

Yep. I did a touch typing course in year 8 which did almost nothing for me (or so I thought). I started using the home row and the right fingers per key but nothing more than that. Then in first year uni everyone communicated primarily via ICQ / irc / ytalk and suddenly typing fast was important. A year later, someone talked to me while I was typing, I looked up and responded to them and then realised I'd finished typing the sentence I was working on as I was talking. Accidental touch typing!

Very similar experience. I learned to type fast because typing faster meant "winning" more arguments on Runescape. Also AIM helped me as well

I had a similar experience as well- I attribute most (if not all) of my typing ability to an unhealthy Runescape habit in my younger years.

Typing "333333 to buy a R2H!" repeatedly led to my initial discovery of copy/paste in my younger days. +1 for nostalgic smiles.

A friend of mine used a macro tool to automate things like mining, another thing you don't really learn in school.

My typing breakthrough came from EverQuest, as did learning a lot of archaic and interesting words as a young child (grotesque, diadem, sepulchre... etc!). Being forced to type to party members or to auction items whipped me into shape as a typist pretty fast.

Plus sheer manual dexterity, "/yell TRAIN TO ZONE" while running like the dickens yourself.

Back in the 90's I had a computer...a 386. It had Windows 3.1 but still I used a lot of DOS. I also played BBS games where there's multiplayer chat...so I typed pretty fast. I was fastest type in the class in middle school, even better than the teacher in our computer class. A year or two later, everyone gets computers, AOL...AIM....and the classroom is now clickity clack, full of fast typers.

I can touch type, though my technique is definitely not standard. I learned it entirely from playing Starcraft online as a child. I couldn't type fast when I started playing, but I had to learn to type fast if I wanted to spend more time micromanaging my units and winning than typing messages to my allies.

Maybe we should teach kids to type by having them copy simple computer programs. They could progress to correcting errors in those programs, or adding minor features. It wouldn't be full blown programming, but it might spark an interest and teach a little bit by imitation without being frightening.

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.

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.

It could also be assumed that students would learn this on their own time. You can see similarities in other areas - personal finance, taxes, and cooking are all essential skills, but are rarely taught in schools.

One argument for this is that, because these skills have plenty of publicly accessible resources and are relatively simple, students can be expected to learn them on their own. More complex subjects (ie, calculus, biology, etc) should be reserved for school, as students are unlikely to learn those on their own time, without a teacher / mentor.

It's strange to single out macOS when the vast majority of these issues (as stated in the original article) stem from users not using traditional personal computers at all anymore as primary computing devices (i.e. growing up on Android/iOS).

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 or, as mentioned by a commenter above, 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.).

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.

He was specifically talking about kids interested in computers. I had knowledge of this things with my first IBM clone as a small child, maybe 3-5 years old. I knew how to insert my game discs, navigate between directories, list the contents, and execute commands I found there.

It's not complicated if you use it for a while, but kids these days just aren't exposed much to real computers.

It's not complicated if, like you and me, you have to learn it as a child if you want to get your games to start. Many a career in technology was launched by CONFIG.SYS.

"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.

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.

The other thing to consider about Macs when it comes to file organization and such is Spotlight. Macs were the first to have automatic file indexing, including file contents, that actually worked well. Organizing files and understanding what directory something is in is significantly less important if you can just CMD+SPACE and type what you're looking for and have the computer find it no matter where it's stored.

I remember reading a design book (IIRC, "Don't make me think") that grouped people into two categories...navigators and searchers. When building a website, some people will automatically gravitate towards trying to click the right links to get them the information they care about. Others will look for the first search icon they can find and start typing. I'd imagine growing up in the age of Google has made the younger generation fall primarily into the searcher group, so it's totally unsurprising that people who have capable search tools at their disposal would have no concept of how to organize files in ways that are navigable.

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.

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?

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.

Have you used ranger, Linux's command line visual file manager? You might like it. Navigate directories/files with arrow keys, space to open/view, ton of shortcuts for eg copy/paste/move/rename etc.

You're right that the problem is unfamiliarity rather than a lack of features per se, but since every other GUI file manager 'just works' (I can intuitively tell how to do basic tasks) and finder doesn't I think it's a legitimate complaint.

I've always thought Miller columns were underused.

I personally love Sunflower on linux because of the columns.

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

I keep hearing this, but I've never had even the faintest idea what's wrong with it. Are there obvious deficiencies I'm just… totally missing?

No, it's fine but the idiom for going up a level is unlike every other file manager and it's totally baffling if you don't know how to do it.

As primarily a Windows user, who grew up with an orthodox file manager[1], I am not a fan of either Finder, or Windows Explorer.

Still using FAR in 2018 does tend to make me one of the odder ducks in a room. I very much prefer it to the *nix terminal.

[1] https://en.wikipedia.org/wiki/Far_Manager

Note that Linux often has GNU Midnight Commander, a clone of Norton Commander (Far is also a clone of NC.) So, whenever you're in Linux and wishing you had Far, check out MC!

Apparently there's a port of FAR to Linux: https://github.com/elfmz/far2l

I'm the same, someone was using my Macbook recently (which I got primarily for iOS development) and discovered I had never used Spotlight (in 2 years of ownership).

I will say spotlight is ok, but the finder interface can still be quite painful.

I've been on a mac for five years now, and I still sometimes struggle to remember how to show hidden files in finder. In nearly every Linux file manager I've used it's either '<right click> > show hidden files' or 'View > show hidden files', usually both work. In Mojave you either have to know the keyboard shortcut or edit your finder defaults from the command line, but I swear I've seen it as an option in a dropdown menu in previous releases.

> how to get access to the "real" filesystem.

If you click on the icon of your main drive, it will take you to the root folder.

You have to do the same in Windows, click on the C: drive.

How is this opaque?

For starters I think the local drive doesn't even appear in the Finder sidebar by the default - it's the one place where I'd expect it. Of course I can easily change, but most users won't ever change default configurations.

The other thing I'm really missing in Fidner is persistent network drives. Connecting to a network share is often slow, inconsistent and error prone, but I guess macOS' SMB issues are worth a separate discussion.

Of course part of the problem is that finder is absolute and utter garbage as a file manager and the mystery of the save dialog is complete nonsense. I've been using Macs since MacOS8 and I still can't figure out how to navigate in finder or properly save files maybe 20% of the time.

I think it comes from some kind of pathological belief inside of Apple that people can't possible learn how the file system works and try to hide it even as it exists in reality.

Even in your example the students managed to figure out how the filesystem hierarchy works, but only through a saner interface so I believe it really is the software that's the problem here.

Can you elucidate why the Finder is "garbage"? From what you describe it seems that you're not familiar with its conventions. As a Linux/Windows/Mac daily user, I have never been able to find an objective list of bugs or problems with the Finder. Are you sure it's not just unfamiliarity?

> 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.

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.

> "you always need to type public static void main(String[] args) for your program to work", as opposed to teaching students what that means.

I've always wondered how practical it is to truly teach that though. Programming is incredibly abstract, and the less abstract you make it the harder it is to learn. I feel like making that leap from "just write this to get it to work" and understanding what's really happening will always take individual initiative.

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.

> 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/

Google your local after school organizations and volunteer

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

> ~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...

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.

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

> and this makes me wish I could teach in high schools, even if just a bit

Reach out to a local school and set up a https://www.codeclub.org.uk/

These guys are working on a solution to general authentication for the web https://universallogin.io/

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

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.

> "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.

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.

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.

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.

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

I think it has a lot to do with how phone and tablet OS's (iOS and Android) deliberately try to hide the notion of paths or even files for that matter.

Windows has been doing the same since Windows 7 with the "Libraries" concept (Documents, Pictures, etc. instead of paths). Never liked it. Where's my stuff?!

Exactly, when I plug my phone into the computer I want it to show up as another drive so I can just drag my mp3s over to the music directory. It's sort of works that way with Android but the directory where your music lives on your phone is buried deep.

It's one of the reasons I still use a Blackberry :)

Not to mention file extensions. Windows hides them by default now, and nobody seems to know they even exist

It’s hid them forever, and been a problem that long as well.

Yes but it was easy enough to show file extensions. I am not sure how much Windows has changed. I think the last time I used it consistently was Windows XP.

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.

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.

Taking cars and textiles as an example, though, is pretty disheartening if you would like to see a future with a lot of computer programmers in it. Although taking the cynical view, as a young-ish programmer today it probably points to a world where your skills only get much more valuable over time, as there will be less competition from a younger cohort in the future...

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.

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.

I’m not trying to step into the discussion, but analogies usually make for weak argument tools IMO. High quality textiles cannot be copied and distributed at almost zero cost.

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?

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.

I think that work done at a higher level of abstraction yields much higher productivity, and if you haven't worked with assembly compare working in Python without packages or plain-old-javascript vs. node or react. Our language abstractions improve expression (if they're done right) and make it easier to turn concepts into actions...

But! That isn't even the part I care about. Once you get into the world you'll find that maintenance and improvement, rather than greenfield development, is the majority of what you'll be doing and that's where this difference really pays off. Higher level languages and programming tools have let us comprehend, inspect and refactor logic with much greater ease, and that's where the improvement hits the most. Coincidentally, that's also what whoever pays you will actually care about.

> 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.

This is really it. Kids grow up with Ipads as their computer and cloud storage. They dont see the need for local paths, desktops, memory, disk etc.

Soon, computer programmers who actually understand what a computer does will become as rare as a IC engine engineer.

Yeah, but this spins into another problem - dependencies.

Cars, be it 60 years ago or today, were and are things you buy and own. You may take them to specialists for maintenance, but you're generally responsible and in control of the overall operation of the machine. Computing today is ceding most of it to third-party services. Suddenly, your experience is dependent on multitude of companies (which fold as quickly as they pop up), and you don't own anything.

That people are pushing the RPi as a good alternative to a desktop is scary. The thing is a closed source mess with a single arm core hanging off a gpu.

A beagle bone black with the XINU book is an amazing introduction to computers because you start from nothing and have a working system by the end of it.

The RPI runs what is essentially bog standard Ubuntu with root access. What more could you possibly want? I swear the whining in this thread...

Raspbian isn't 'bog standard ubunutu'. The beagle bone black on the other hand does run bog standard everything. The right tool for the right job, the rpi is amazingly cheap and disposable for hardware projects. It is not a good machine to teach computers on because it's architecture is pretty odd.

Well raspbian is Debian, so you're right in that it is not Ubuntu. What would you say is the substantial difference between Ubuntu for arm and x86?

> 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.

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?

- 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.

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.

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.

> 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 :)

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.

Touch typing is one of those things it's easy to underestimate the importance of. I've been using computers heavily since the late 80's. But, I've only learned to touch type in the past couple of years. I'm going to be kicking myself over that for years to come. Programming isn't particularly better with touch typing. However, it's done wonders for my ability to communicate with others. It's really a must have skill.

119WPM is really impressive. I'm in the low 80s on my best days now. I partly blame intellisense as typing and tabbing through the object or function you need was too compelling. In fact I just remembered a comment a graybeard made to me a long time ago. The kids were all on visual studio, using intellisense. My response was it was faster having the computer clean up the code rather than us trying to remember all the calls in all the objects in all the libraries.

I'm curious about this.

As I mentioned in another comment, I think the concept of hierarchy is somewhat difficult to understand initially. But it is a key abstraction for almost everything having to do with computers, and especially programming.

Programming is all about understanding abstraction, at some base level. I don't know how many junior programmers I've encountered that look at source code and see it as a linear set of instructions, and just never developed the skills to abstract the problem first.

Once you understand hierarchy, the world changes a little bit. The filesystem is a simple example, but often the first a person encounters.

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.

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

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.

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.

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.

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.

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

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.

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).

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.

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...

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.

To write good code, you need to write a lot of code that you throw away. Draft after draft. After a few such trials, the correct formulation of the code becomes apparent. Writing it right on the first try wouldn't have been possible. If one isn't a quick typist, there is more resistance involved in this writing and rewriting process, whereas for one that is, rewriting isn't as costly.

I learned the symbols last, simply started adding a couple to every password and after a year or so, viola.

Yeah, not too surprising given that typing speed is never the limiting factor for any programmer.

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.

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.

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.

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.

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.

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

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).

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.

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

Very different indeed!

I recently switched my phone's keyboard to Dvorak to learn the layout. Interestingly, my thumb typing speed has increased with no effect on my touch typing (using QWERTY).

It's as if touch typing and thumb typing use different parts of the brain.

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 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.

> 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.

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.

> 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.

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.

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.

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.

> 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”.

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.

> 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.

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.

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

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


check out the job market and how much entry-level grads who are good with computers can make: https://www.levels.fyi/SE/Google/Facebook/Microsoft/

Being "good with computers" does not fetch $200k.

Knowing the difference between "file" and "directory" and being able to touch type won't get you a $200K engineering position at Google...

Furthermore, if the goal is to generate as many $200K-comp-caliber engineers as possible, parent's point is the right one. A kid who shows up at college with the ability to write well and a bit of mathematical maturity has a much brighter future than a kid who is "good with computers" but struggles with basic math.

computer literacy is the first step down the rabbit hole of compsci, and as we offload more and more of our cognitive, memory, and computing load onto computers, i would argue it will only become more important than knowing your sohcatoa and how to take derivatives. it will come to replace some fundamental skills that kids are forced to learn today (and most never end up using) whereas almost everyone uses a computer today but very few know how a transistor works, how a website is served, what x86/Arm is, etc.

learning the concept of variables, and learning basic language syntax is still obviously very important, but learning basic computer skills is a prerequisite for becoming interested in computers, the internet, and how digital technology works in the first place that can lead to the development of skills to land one of these jobs. focusing on math, maybe will get you there, focusing on english/history definitely will not, unless you go to an ivy league and transition into "data science". it's just the reality of the job market

“How” to take derivatives is not the education that people need.

Why to take derivatives is much more important.

There's a good market in how to take integrals.

Taking derivatives is easy.

You can't get a job for being "good with computers" unless it's an IT support job. Software development is much, much more.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact