Missing computer skills at high school students
I have been working as a mentor for high school interns for a little more than four years , and recently I took a fourth student. This is enough to notice some patterns. Of course, each of them comes with different computer knowledge and experience, but there are two consistent and disturbing gaps. The first is the concept and the other is the skill. But both of these things must be done by an advanced high school student, who is especially interested in computers. This gap remains, although schoolchildren attend computer science lessons.
File, directories and paths
A significant gap in concepts is files, directories or, in general, paths . Students initially come with a basic understanding of files and directories (ie, “folders”) and, perhaps, with some general idea that there is a hierarchy in all of this. But they do not understand that the file location is determined by a sequence of directory components, which can be either relative or absolute . Namely, they never met the concept
First of all, with the students, we install Linux, and then I put them in front of the terminal. Since in the console most arguments other than options are file paths, shell commands are very limited if you know nothing about paths. You cannot navigate between directories or access files outside of your home directory. So one of the first things I have to teach them is how the paths work. We do exercises that construct and explain the concept of paths, and it takes some time and practice for the student to truly understand this concept.
And it takes longer than you think! Even when the student has understood the basic concepts, he still needs practice to really consolidate these concepts and talk about them. This is such a widespread problem that I even think of preparing a training brochure and, perhaps, some interactive exercises. Then these materials can be simply transferred to the student so that he can learn on his own, as they do with other topics.
Paths are not only important for the command line. They are used daily in programming when you need to access files. In some contexts, it is even important for security, regardless of the programming language. For example, care must be taken to process and verify paths from an unreliable source. The web application may need to convert the path string in the query to a file path. If you do not understand how it works
.., then you can do it in a dangerous way. Or if you do not understand how to normalize the paths before comparison.
I believe that paths are a basic concept when examining files and directories. This is a basic level of a person who is considered computer literate.
Another serious gap is blind typing. None of my students had this skill, and it slows them all far more than they think. I spend a lot of time next to the keyboard, so I watch some of them poke their fingers at the keys.
An important step in mastering a computer is the rapid repetition of new ideas and concepts, testing and playing with things as they are learned. Tedious and tediously slow set not only slows down this process, but also actively prevents experiments. He becomes an obstacle. Advanced computer use is not very fun if you cannot print quickly.
Honestly, I myself mastered the blind seal less than two years ago. It is a pity that no sooner: it’s really my own fault that it took so much time. Fortunately, I have developed my own pseudo-blind printing method, which does not require either to poke a finger or look at the keyboard. My main problem was accuracy, not tedious or slow dialing.
The bad news is that I can't fully teach this, unlike the concept of paths. First, one of the basic principles of the mentoring program is that we do not have to spend much time on basic skills. Training in blind typing requires several weeks of daily effort. It's just too much time, which we don't have. Secondly, it will not work in any case, if the student is not motivated. I have no idea how to provide such motivation. (And if a student is motivated, he will still do it in due time). I think that's where the school program gets stuck.
The bad news is that the problem will only get worse. There was a mobile revolution, and for most people, mobile devices are gradually replacing a home computer, even a laptop. I already know one student who doesn’t have a regular computer at home. The big difference between a tablet and a laptop is that the tablet is intended purely for consumption.
In the future, children will work less and less with keyboards and productive computing in general. Keyboards will remain a vital tool for professionals. I wonder if the future will look a bit like, say, the 1980s, where only a small number of children saw a full-fledged computer. Only instead of a PC clone, a Commodore computer or an Apple II will be a Raspberry Pi.
I want to clarify: I do not blame schoolchildren for these gaps. They are not to blame. What they are taught and with what they are working at the moment in their lives is largely beyond their control.
I place most of the blame on schools. All my students studied programming in high school, but these courses somehow manage to skip the basics. Instead, they teach certain IDEs without real understanding. Finally, I can understand all these mathematicians who complain about how mathematics is taught in high school!
What can be done? If you are a parent, make sure that your child has access to a general purpose computer, even if it is only a Raspberry Pi or one of its clones, as well as a keyboard and mouse. (Of course, if you are reading this article, you do not need such advice). This is a good experience anyway.
Upon reflection, I now think that one of the shortcomings of my mentoring is that I don’t spend enough time — usually not at all — on demonstrating how to work with the keyboard so that students can watch me in action. I usually approach them to check their progress, and there is simply no such possibility. Perhaps they can be motivated by a demonstration of how effective and classy work is at higher levels of skill — to show how blind typing and a powerful text editor can lead to such a dramatic difference. This will be the answer to the question "Why should I learn this?"