What programming-related computer skills should I teach?



  • I'm getting the chance to move from using iPads for my basic HTML/CSS class at the high school level to using Macbook Pros (very old white ones, but still). They'll have a shared user account and Visual Studio Code installed, as well as Chrome (my preferred HTML editor and browser, just for standardization). But working with students has made me realize that many of them (not all, but many) are totally computer illiterate. They can use phones and apps, but the idea of files, naming files, filesystems, folders, basic organization, etc. are totally alien to them. Sad, but true.

    So what skills should I teach in my opening weeks? Things I can think of:

    OS/filesystem skills

    • Using Finder (because MacOS) to navigate the filesystem.
    • Creating and organizing files using folders
    • zipping and unzipping bundles of files
    • Proper file name patterns (capitalization, endings, not leaving spaces after the ending, etc)

    Browser Skills

    • Using the developer tools menu, especially the "inspect element" part, since they're not working with javascript or APIs.

    What else is there? What basic computer skills do you use constantly as part of your job?



  • INB4 someone comes along with the "OMG GIT is so important source control OMG omg OMG"



  • @Benjamin-Hall said in What programming-related computer skills should I teach?:

    Creating and organizing files using folders

    THIS. I still don't know how to do em properly


  • Fake News

    • Telling to leave system folders well alone (though maybe that's not such a problem as with Windows).

    • Recovering stuff from the "trash can", maybe how to empty it. Clarifying that you never want to "hard delete" files in finder because it'll bite you.

    • Do they know how they can make shortcuts, or not? It's not like a phone where there's an app for GMail / BookFace / <insert whatever>. Only downside is that they can name it, meaning the following user might have the weirdest things on his / her Mac.


  • 🚽 Regular

    @Benjamin-Hall We've gone full circle. It used to be our elders being computer illiterate to that degree, but now it's the youngins.

    It's hard to answer this question because you're asking the equivalent of "What skills should I teach astronauts if they don't know what a yoke is?" But I'll try my best:

    • Copy/Paste
    • Avoiding my uncle's habit of "if it's underlined, I click it. No exceptions" (He got scammed, installed viruses, etc. using this method of browsing)
    • The difference between left and right click (oh wait, you're using a Mac, nevermind :trollface: )

    And, of course, once you get to actual programming I could write so much more, but I'd say just explaining how object oriented programming and how imperative programming follows a flow is going to be a challenge. I know it was a challenge for me to wrap my head around way back in my teenage years figuring it out.



  • @The_Quiet_One said in What programming-related computer skills should I teach?:

    @Benjamin-Hall We've gone full circle. It used to be our elders being computer illiterate to that degree, but now it's the youngins.

    They're app literate, and they can google for simple instructions, but they don't know what they don't know. They're blindly following rote instructions. But yes.

    It's hard to answer this question because you're asking the equivalent of "What skills should I teach astronauts if they don't know what a yoke is?" But I'll try my best:

    • Copy/Paste
    • Avoiding my uncle's habit of "if it's underlined, I click it. No exceptions" (He got scammed, installed viruses, etc. using this method of browsing)
    • The difference between left and right click (oh wait, you're using a Mac, nevermind :trollface: )
    • Keyboard shortcuts...that's an important one (reminded by your "copy/paste") reminder.
    • Yeah, right/left click (well, click vs 2-finger click) will be important.
    • True about basic web hygiene. I teach a "are you paranoid enough" lesson (pro-tip: the answer is NO) and get them every year.

    And, of course, once you get to actual programming I could write so much more, but I'd say just explaining how object oriented programming and how imperative programming follows a flow is going to be a challenge. I know it was a challenge for me to wrap my head around way back in my teenage years figuring it out.

    Fortunately this class is purely visual--just HTML and CSS, making simple static websites. There are other classes that cover Python (intro and advanced), C++, and Swift/iOS development. But this is not those classes.



  • @Benjamin-Hall source control, the most easier to grasp. Give them a workflow, probably linear, enough to let experiment and go back.

    Probably svn, because:

    • bzr was very understandable and with nice docs, but It is cleary going out
    • hg too much ways to do something (how many ways to branch?), Docs not so good.
    • git the html clases Will turn into a git class


  • @cabrito said in What programming-related computer skills should I teach?:

    @Benjamin-Hall source control, the most easier to grasp. Give them a workflow, probably linear, enough to let experiment and go back.

    Probably svn, because:

    • bzr was very understandable and with nice docs, but It is cleary going out
    • hg too much ways to do something (how many ways to branch?), Docs not so good.
    • git the html clases Will turn into a git class

    @Benjamin-Hall Told you!



  • @Benjamin-Hall Undo/Redo.

    Window management - as in: How to properly arrange and switch between different programs.



  • @cabrito said in What programming-related computer skills should I teach?:

    @Benjamin-Hall source control, the most easier to grasp. Give them a workflow, probably linear, enough to let experiment and go back.

    Probably svn, because:

    • bzr was very understandable and with nice docs, but It is cleary going out
    • hg too much ways to do something (how many ways to branch?), Docs not so good.
    • git the html clases Will turn into a git class

    I would love to teach basic source control, but I'm not sure I will be able to install anything else on these laptops. And I don't think that any of those come built in. How well does the web interface for Github work for actual commits?


  • Considered Harmful

    @Benjamin-Hall said in What programming-related computer skills should I teach?:

    I'm getting the chance to move from using iPads for my basic HTML/CSS class at the high school level to using Macbook Pros (very old white ones, but still). They'll have a shared user account and Visual Studio Code installed, as well as Chrome (my preferred HTML editor and browser, just for standardization). But working with students has made me realize that many of them (not all, but many) are totally computer illiterate. They can use phones and apps, but the idea of files, naming files, filesystems, folders, basic organization, etc. are totally alien to them. Sad, but true.

    So what skills should I teach in my opening weeks? Things I can think of:

    OS/filesystem skills

    • Using Finder (because MacOS) to navigate the filesystem.
    • Creating and organizing files using folders
    • zipping and unzipping bundles of files
    • Proper file name patterns (capitalization, endings, not leaving spaces after the ending, etc)

    Browser Skills

    • Using the developer tools menu, especially the "inspect element" part, since they're not working with javascript or APIs.

    What else is there? What basic computer skills do you use constantly as part of your job?

    Using an environment variable.



  • @cabrito If it's just for a class, and for concepts, how about darcs?



  • @Captain said in What programming-related computer skills should I teach?:

    @cabrito If it's just for a class, and for concepts, how about darcs?

    darcs? I'm not familiar with that.



  • @JBert said in What programming-related computer skills should I teach?:

    • Telling to leave system folders well alone (though maybe that's not such a problem as with Windows).

    Most of those, the Finder hides from users. Unless the students are being taught how to use the terminal, better not even mention to them that there are system files at all, let alone that they could get to them with ⇧⌘G.

    • Recovering stuff from the "trash can", maybe how to empty it. Clarifying that you never want to "hard delete" files in finder because it'll bite you.

    Good, because you can’t :) There’s no Shift+Del equivalent in macOS — everything has to go to the trash first (again, unless you’re using the terminal).

    • Do they know how they can make shortcuts, or not? It's not like a phone where there's an app for GMail / BookFace / <insert whatever>. Only downside is that they can name it, meaning the following user might have the weirdest things on his / her Mac.

    The Mac equivalent is to put the app’s icon in the Dock permanently, which may be a good idea to teach them how to do.

    Other things I can think of that I consider basic OS/filesystem skills, but which a lot of people don’t seem to know about:

    • Dragging and dropping things, within an application and between them. (For text: click-hold-and-then-drag, which often catches Windows users out.)
    • Opening files by dragging them onto the app’s icon (either in the Dock or even in the /Applications folder)
    • Changing directories in a Save or Open window by dragging a directory or file onto that from the Finder. (You may have to warn them that this doesn’t work under Windows — it copies the file to the directory represented in the Save/Open window instead. Very annoying.)
    • Using Spotlight to find stuff.
    • Hiding applications they’re not actively using with ⌘H to get the clutter off the screen.


  • @Benjamin-Hall said in What programming-related computer skills should I teach?:

    zipping and unzipping bundles of files

    HTML/CSS is perhaps not the right environment for this, but mentioning the difference between build artefacts and actual sources would be nice, and which of those should be included in e.g. a distributable .zip file. I mention this because I've recently received 500MB zip files where about 480MB of those 500 were totally unnecessary (e.g. the zoo of autogenerated files from Visual Studio, mainly).

    Overall, going over a few basic file types might be helpful. Like, what is a good format to use for distributing information in various and so on. Might be a bit hard to keep objective, but if they are largely computer illiterate, it might be useful for them to know that sending ${mac-office-suite} files to other people might result in them not reading those files, because they can't open them. (Personally, I also don't read Microsoft Office files sent to me. Give me PDF or I'll have an excellent reason to ignore you. But YMMV.)


  • Considered Harmful

    @cvi said in What programming-related computer skills should I teach?:

    the difference between build artefacts and actual sources would be nice, and which of those should be included in e.g. a distributable .zip file.

    Differs wildly by stack, although, the distinction does keep existing for nearly all stacks.



  • @Gribnit said in What programming-related computer skills should I teach?:

    @cvi said in What programming-related computer skills should I teach?:

    the difference between build artefacts and actual sources would be nice, and which of those should be included in e.g. a distributable .zip file.

    Differs wildly by stack, although, the distinction does keep existing for nearly all stacks.

    Maybe I'm overly optimistic, but I want to believe that once people are explained the concept they would be able to apply the idea in different scenarios.

    ...

    I'm being overly optimistic, aren't I?



  • @cvi said in What programming-related computer skills should I teach?:

    Overall, going over a few basic file types might be helpful. Like, what is a good format to use for distributing information in various and so on. Might be a bit hard to keep objective, but if they are largely computer illiterate, it might be useful for them to know that sending ${mac-office-suite} files to other people might result in them not reading those files, because they can't open them. (Personally, I also don't read Microsoft Office files sent to me. Give me PDF or I'll have an excellent reason to ignore you. But YMMV.)

    I plan on doing this. I get too many foo_pdf.note (.note is a format used by one of the iPad apps we use) that I can't open on my computer.


  • Considered Harmful

    @Benjamin-Hall if you have a Unix env to teach in, file will be a handy prop.



  • @Gribnit said in What programming-related computer skills should I teach?:

    @Benjamin-Hall if you have a Unix env to teach in, file will be a handy prop.

    We'll be using MacOS, so that might work...now to learn file 😄



  • @Gurth said in What programming-related computer skills should I teach?:

    Good, because you can’t :) There’s no Shift+Del equivalent in macOS — everything has to go to the trash first (again, unless you’re using the terminal).

    Does Command+Option+Delete not work anymore? (I don't have a current Mac on which I can test.)

    @Gurth said in What programming-related computer skills should I teach?:

    Changing directories in a Save or Open window by dragging a directory or file onto that from the Finder. (You may have to warn them that this doesn’t work under Windows — it copies the file to the directory represented in the Save/Open window instead. Very annoying.)

    On Windows you can copy the path from the breadcrumbs bar of an Explorer window and paste it into the breadcrumbs bar or the filename box in the standard file dialog. Not as nice, but it's still helpful sometimes.


  • area_can

    AppleScript might be a nice way introduce programming because it lets them manipulate and interact with GUIs that they may already be familiar with. But I dunno, I haven't done a lot of playing around with it


  • Discourse touched me in a no-no place

    @Gurth said in What programming-related computer skills should I teach?:

    There’s no Shift+Del equivalent in macOS — everything has to go to the trash first (again, unless you’re using the terminal).

    62c5af1a-fe78-4a68-9063-d87f269d572b-image.png

    Command + Option + Backspace/Delete.

    edit: :hanzo:


  • Considered Harmful

    @loopback0 rm -rf at command-line isn't linked to trash either, far as I know. Then again I've never actually checked. It's pretty neat how MacOS "just handles" filenames with spaces or slashes here.


  • Discourse touched me in a no-no place

    @Gribnit said in What programming-related computer skills should I teach?:

    @loopback0 rm at command-line isn't linked to trash either, far as I know. Then again I've never actually checked.

    Indeed but that had already been covered.

    unless you’re using the terminal


  • Considered Harmful

    @loopback0 Fixed. Fixed more.


  • BINNED

    @Benjamin-Hall said in What programming-related computer skills should I teach?:

    How well does the web interface for Github work for actual commits?

    Not sure what standards determine "well" here. You can edit files directly through the site, or upload new versions which overwrite any with the same name. And you can create branches etc., should you wish to cover that.

    It's pretty horrible to use, but sufficient for having a copy of the end of the day's work.



  • @Benjamin-Hall
    Ah, yes: renaming a .tiff to .jpg doesn't make it one. Understand what file formats are and which ones to use especially when you want someone else to use your file. (And while I'm talking about Naming Things: URLs are not file paths.)


  • Considered Harmful

    @Watson said in What programming-related computer skills should I teach?:

    URLs are not file paths.)

    file:///etc/passwd?



  • @Watson said in What programming-related computer skills should I teach?:

    @Benjamin-Hall
    Ah, yes: renaming a .tiff to .jpg doesn't make it one. Understand what file formats are and which ones to use especially when you want someone else to use your file. (And while I'm talking about Naming Things: URLs are not file paths.)

    But URLs may have file paths in them. Resource paths, really, but getting them to understand the nature of the src and href attributes is...painful at times.


  • Banned

    @Parody said in What programming-related computer skills should I teach?:

    the breadcrumbs bar

    TIL how it's called.



  • I'd recommend one class be an introduction to proper 10-finger typing. Some of your students will already know how, but many will not. A single class will not be enough for them to really learn, but it would be an introduction and maybe inspire a few of them to learn to type.



  • @kazitor said in What programming-related computer skills should I teach?:

    It's pretty horrible

    It's git; horrible is a basic assumption. :trollface:


  • Considered Harmful

    @chozang said in What programming-related computer skills should I teach?:

    I'd recommend one class be an introduction to proper 10-finger typing. Some of your students will already know how, but many will not. A single class will not be enough for them to really learn, but it would be an introduction and maybe inspire a few of them to learn to type.

    +1. If you can't touch-type, the class will be hell. And most of them can't touch-type.


  • Banned

    @chozang said in What programming-related computer skills should I teach?:

    I'd recommend one class be an introduction to proper 10-finger typing. Some of your students will already know how, but many will not. A single class will not be enough for them to really learn, but it would be an introduction and maybe inspire a few of them to learn to type.

    Considering how miniscule part of programming (or really anything using a computer, maybe except copywriting) is actual typing, this would be mostly a waste of time.



  • @Gąska said in What programming-related computer skills should I teach?:

    @chozang said in What programming-related computer skills should I teach?:

    I'd recommend one class be an introduction to proper 10-finger typing. Some of your students will already know how, but many will not. A single class will not be enough for them to really learn, but it would be an introduction and maybe inspire a few of them to learn to type.

    Considering how miniscule part of programming (or really anything using a computer, maybe except copywriting) is actual typing, this would be mostly a waste of time.

    Really? I type every day. How else would you get your code into a file? How do you post questions to Stack Overflow (or whatever your favorite useful forum is), except through typing? (BTW, my mother was a copywriter. Copywriting is writing commercials. And you're right, she did have to type for that.)



  • @Gąska said in What programming-related computer skills should I teach?:

    @Parody said in What programming-related computer skills should I teach?:

    the breadcrumbs bar

    TIL how it's called.

    It may actually be called something else, like the Path or Address Bar, but it shows breadcrumbs in Windows 7/8/10 so I called it that. :)



  • @Benjamin-Hall Once they understand how to make more than one HTML file that uses the same CSS, teach them about contrast and readability. Expensive web designers still screw that up regularly.



  • @Parody said in What programming-related computer skills should I teach?:

    Does Command+Option+Delete not work anymore? (I don't have a current Mac on which I can test.)

    TIL Command+Option+Backspace does delete things without sending them to the trash. (I don’t see the use of this, but perhaps some people do.)

    I also learned somebody forgot to localise “Close all” in the Finder’s File menu in macOS 10.14. It only appears when you keep Option pressed, so it’s not usually obvious.



  • @Benjamin-Hall said in What programming-related computer skills should I teach?:

    We'll be using MacOS, so that might work...

    It does:

    $ file image078.jpg 
    image078.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 150x150, segment length 16, baseline, precision 8, 566x430, frames 1
    

    now to learn file 😄

    Type file (with trailing space) into a terminal window, drag-and-drop the file you care about into that same window, then press Return.


  • 🚽 Regular

    @Parody said in What programming-related computer skills should I teach?:

    @Gurth said in What programming-related computer skills should I teach?:

    Good, because you can’t :) There’s no Shift+Del equivalent in macOS — everything has to go to the trash first (again, unless you’re using the terminal).

    Does Command+Option+Delete not work anymore? (I don't have a current Mac on which I can test.)

    @Gurth said in What programming-related computer skills should I teach?:

    Changing directories in a Save or Open window by dragging a directory or file onto that from the Finder. (You may have to warn them that this doesn’t work under Windows — it copies the file to the directory represented in the Save/Open window instead. Very annoying.)

    On Windows you can copy the path from the breadcrumbs bar of an Explorer window and paste it into the breadcrumbs bar or the filename box in the standard file dialog. Not as nice, but it's still helpful sometimes.

    Kind of weird that you can't just drag a directory in there, actually. It works in command line and Powershell. But it doesn't work in Windows Explorer's address bar either.



  • @stillwater FHS is supposed to be a standard, but somehow also works like religion.

    I've had debate with my colleagues on where some "not included in distro" package should be installed.


  • Banned

    @chozang said in What programming-related computer skills should I teach?:

    @Gąska said in What programming-related computer skills should I teach?:

    @chozang said in What programming-related computer skills should I teach?:

    I'd recommend one class be an introduction to proper 10-finger typing. Some of your students will already know how, but many will not. A single class will not be enough for them to really learn, but it would be an introduction and maybe inspire a few of them to learn to type.

    Considering how miniscule part of programming (or really anything using a computer, maybe except copywriting) is actual typing, this would be mostly a waste of time.

    Really? I type every day.

    Me too. Fifteen minutes per day total, split into ten sessions or so. Programming really isn't that much about typing.



  • @Gąska thank God for auto completion / intellisense


  • Banned

    @stillwater intellisense is autocompletion. You're being redundant in that sentence.



  • @chozang said in What programming-related computer skills should I teach?:

    @Gąska said in What programming-related computer skills should I teach?:

    @chozang said in What programming-related computer skills should I teach?:

    I'd recommend one class be an introduction to proper 10-finger typing. Some of your students will already know how, but many will not. A single class will not be enough for them to really learn, but it would be an introduction and maybe inspire a few of them to learn to type.

    Considering how miniscule part of programming (or really anything using a computer, maybe except copywriting) is actual typing, this would be mostly a waste of time.

    Really? I type every day. How else would you get your code into a file? How do you post questions to Stack Overflow (or whatever your favorite useful forum is), except through typing? (BTW, my mother was a copywriter. Copywriting is writing commercials. And you're right, she did have to type for that.)

    Honestly, I don't use 10 finger typing, I touch type with really about 5 fingers. No, do not say it isn't efficient, I've done this for about 20 years and it works for me and with that much practice I type about as fast as any average person using 10 these days. Knowing where the keys are without having to look is important, what finger you use isn't as high on that list.



  • What to teach? Forget environment or language specifics, there can be a lot of debate on what is best there and what is a waste of time. As a programmer the two most important skills are critical thinking and problem solving. You get those two down, you can figure out the environment and the language is just syntactical sugar over the logic.


  • Banned

    @KattMan said in What programming-related computer skills should I teach?:

    No, do not say it isn't efficient, I've done this for about 20 years and it works for me and with that much practice I type about as fast as any average person using 10 these days.

    There are people who've been doing PHP for about 20 years and it works for them and with that much practice they develop software about as fast as any average person using a sane programming language these days.



  • Consider teaching them to use a password manager? Not sure if macOs doesn't already have one. Anyway, if they're doing html, eventually they'll need to connect to servers, meaning they'll have different credentials, and you don't want them to use password1 everywhere.

    Plus, it's a useful life skill for when they actually handle accounts that contain sensitive information or money.



  • @Gąska said in What programming-related computer skills should I teach?:

    @KattMan said in What programming-related computer skills should I teach?:

    No, do not say it isn't efficient, I've done this for about 20 years and it works for me and with that much practice I type about as fast as any average person using 10 these days.

    There are people who've been doing PHP for about 20 years and it works for them and with that much practice they develop software about as fast as any average person using a sane programming language these days.

    I agree. I personally don't like the language and would probably never use it, but the saying goes, "I can write crap code in any language. I can write good code in just a few." The languages referenced are different for every programmer. That's not to say I won't voice my opinion on why I think PHP is crap, but that isn't what this thread is about, and it is just an opinion.


Log in to reply