1. 6
  1.  

  2. 25

    I see your list of technologies for non-programmers that starts with Git and somehow becomes less plausible from there and raise with an introductory reading list for non-literature graduates:

    1. Finnegans Wake
    2. Naked Lunch
    3. The Iliad
    1. 7

      I raise with an introductory recipe list for beginner cooks:

      1. Kek lapis
      2. Soufflé
      3. Hard Cheese
      1. 1

        I fold to your (presumably) Julia Child soufflé.

        1. 2

          Making a properly moist, tasty and good looking Sarawak kek lapis is no small feat either.

    2. 12

      My usual technologies to introduce non-programmers to:

      1. Excel. It’s only the most popular multitool in the world!
      2. AutoHotKey (or HammerSpoon, or similar). It’s a much gentler introduction to “the computer should do what you want, not the other way around”. I’m starting to feel like Linux is not as configurable as Windows, perversely enough, because it doesn’t have an AHK equivalent.
      1. 1

        I’ve heard a lot of love for AHK, but I’ve not seen any scripts that I couldn’t manage the equivalent of in sxhkd and a hacky shell script. Do you have a specific example of one?

        1. 1

          It’s great for non programmers, same for Sublime on Chrome/Firefox. If you just want to automated something, install the plugin and enjoy.

      2. 8

        I find the order of the technologies a bit strange. Why start with Git and what filesystem(!) to use?

        I refuse to believe that Emacs is a good editor to introduce someone who is used to anything else… (and I love Emacs).

        1. 4

          The order appears to be based on how bold the claim the author thinks it is. This list is by someone who I believe has only ever talked to programmers.

          1. 1

            Not so much of a claim, it’s rather a discussion and I’m very open to suggestions! ;)

            I came up with this article after seeing a couple of non-programmer friends implement those ideas. This led me to the question: what if we tried to raise the bar a little and stop dumbing down / limiting non-programmers?

            Obviosly, those tools are not for everyone. It can only reach to an audience of curious and dedicated computer users.

            1. 3

              The general idea of challenging non-programmers to develop tool literacy is a good one. However I think you forget that most non-programmers can’t even use a terminal. In my experience the hurdle to get people to use a terminal is primarily fear, but until they overcome that a lot of these tools are not that accessible (except maybe emacs ,gnome, jitsi, tor). Gnome is assuming they run linux. Jitsi and Tor is assuming they know networking basics.

              1. 4

                To clarify: I chose the word “non-programmers” carefully (as opposed to “beginners”) to include tech-minded people who don’t know how to program. I believe it’s a significant and growing portion of computer users.

                “non-geeky” or “non-techie” seems to exclude those users and to target complete beginners. My article does not target complete beginners.

                1. 1

                  I agree, but note that my article does not address all non-programmers: I target a subgroup, the one that is prone to already be using GNU/Linux, like many people in academia. I also target the tech-minded macOS users.

                  I’ve tried to emphasize this in the introduction, without being too intimidating. Maybe it’s not that clear though. What do you think?

                  1. 3

                    I applaud your attempts to explain how technology can help people who may not be aware of its benefits.

                    However, I have re-read your introduction, and your target audience is very implicit.

                    At least you should add the pre-requisite that your reader already uses Linux or other non-mainstream OS.

                    You mention image and video processing, but none of that is addressed in the further text.

                    1. 1

                      Good point, I’ll update the intro.

                      Sorry, I’m not sure I understand your point about image and video processing. What do you suggest?

                      1. 2

                        You can mention ImageMagick for batch-processing of images, and Shotwell as a DAM (digital asset manager).

                        1. 1

                          Good idea!

              2. 1

                *nix programmers, at that…

                1. 1

                  I intentionally stuck to free software in this article.

              3. 3

                I started with Git for a few reasons:

                • Everyone working with computers (and other people) needs some form of version control at some point.
                • The concept of version control is refered to in multiple places in the article.

                Why file systems in second place? No strong opinion here, but I thought that “backing up your pictures / music / video” one of the most common things to do.

                Regarding Emacs… I know :D But I can’t think of an editor that fits the bill. Plus I need to introduce Emacs in this article to present M-x shell, which is one of the few sane ways to introduce command line to non-programmers. Indeed, one of the first reflexes of most users is to search the output, which most terminals can’t do.

                1. 2

                  I actually don’t think Git is a bad place to start…. if you have a GUI overlay to use it with. GitKraken etc are a great way to get someone using Git without needing to overcome the terminal terror.

                  1. 1

                    Absolutely, I’ve had great feedback from non-programmers using GitKraken. A shame it’s non-free :/

              4. 5

                What a weird article. I wonder what is left for the actual programmers’ tech list if ZFS and Git are merely layperson’s tools.

                1. 1

                  Programmers are also users ;) What defines programmers is that they program the software while users simply use them. There is no fundamental reason why ZFS should be “programmers only”, it’s about storage and backups after all, most computer users deal with data storage :)

                  1. 7

                    I’d really like it if more people knew how to use file system file ZFS, because they’re amazing. They are magic. However. I don’t even know where to begin that conversation with any of the non-programming people I know.

                    "You know the file system you use?"
                    "Say what now?"
                    "Don't you sometimes wish there was a better way?"
                    "No? Also, again, what's a file system?"
                    "What if I told you your file system could be like Git?"
                    "Git out of my house?"
                    
                    1. 1

                      I think we’ve got to consider roughly 2 groups: the tech-minded and the beginners. The tech-minded often have a rough idea of what a file system is (e.g. when they tried to exchange flash drives between macOS ans Windows). Beginners have often no clue.

                      In both bases, we’ve got to start with the practical benefits:

                      • Access your data in the past.
                      • Automate the backup of your data.

                      Then the question, usually by the tech-minded: “But won’t this use extra space on my drives / require extra performance, etc.?” Answer: “No, that’s why you need a special file system (the logic behind it) that’s smart enough.”

                      Question: “Doesn’t it require a lot of work on my side?” Answer: “That’s the magic: you’ve got mostly nothing to do but schedule the backups!”

                      Then a couple of demos with interfaces like snapper (or possibly better) can be shown.

                      Git can be demoed in similar ways with anyone who had to write more than a paragraph of text, and GitKraken is a good example of an easy-to-use, appealing interface.

                    2. 1

                      Maybe a more fitting title for the post could’ve been “Hacker tools useful for everyone” or something along those lines? It would’ve avoided the artificial distinction between programmers and other users.

                      1. 1

                        There is a good idea there. Sadly as everyone points out in this posts, those tools are not yet for everyone. Mostly for tech-minded people.

                        So maybe “Hacker tools for tech-minded users”?

                  2. 4

                    I love many of the technologies listed in this article, but of the ones listed, GNOME is probably the only one a non programmer could use. I’d grant a few more if the target audience is tech savvy sysadmins that don’t “code.” But even most sysadmins would be capable of hacking up a shell or python script to get the job done, which is still programming…

                    1. 1

                      In this day and age it becomes increasingly relevant to know bits and pieces of programming, even for non-programmer jobs. Many highschools have already started teaching basic programming. It’s a skill that is generally useful enough. I believe it’s not too far fetched as a non-programming computer user to batch process some data for instance. What we deemed an exclusive skill of professional programmers some years ago may slowly enter the mainstream ;)

                      Regarding the tools other than GNOME: It seems that most comments in this thread agree that Tor Browser is somehow too hard to use. I think this is something that’s worth debunking. There is very little education required behing using Tor and it is a very precious tool for everyone’s privacy.

                      1. 2

                        In this day and age it becomes increasingly relevant to know bits and pieces of programming, even for non-programmer jobs.

                        I believe it’s not too far fetched as a non-programming computer user to batch process some data for instance.

                        Oh, I agree – and I think non-programmers would (eventually) find these tools useful, particularly if they silently worked in the background with minimum setup (e.g. filesystems). My qualm is that, even if they were capable of installing/configuring most of these tools, most non-programmers wouldn’t be able to utilize the power-user features without putting in some serious effort. For example, Guix is largely useful because of reproducible builds/environments, but to set those up, you need to be able to read/write Scheme.

                        Two of the key skills that programmers have (that non-programmers will have a hard time picking up) is the ability to recognize what can be automated, and the ability to debug problems. And you really need those to skills to be able to effectively use most of the tools listed.

                        […] Tor Browser is somehow too hard to use. I think this is something that’s worth debunking.

                        Yeah, I don’t think Tor Browser is that hard to use, but I don’t think most people will bother trying to understand how it works. They’ll just think there’s magic “anonymization” happening and will proceed to log into their Facebook account, invalidating the usefulness of Tor and tying the traffic back to their identity. Even Tor requires a basic understand of how the web fits together.

                        Another disagreement I have is with the choice in introductory programming language. Python is far more popular and broadly supported than Racket, has more “useful” packages, and more documentation [1].

                        Now, I say all this as someone who’s thinking about pragmatic users who want to put in minimal effort. They want the computer to work without much friction. They absolutely do not want to have to learn new things to get the same job done. This is a broad portion of the population, but may be a different audience than what you are considering.

                        These tools are great to introduce to people if they’re legitimately interested in learning them (i.e. things that would be useful to include in an introduction to programming curriculum). Scheme is a much better language to teach if you want to give someone a “classical” foundation in computer science (students can read books such as SICP and the Little Schemer which give a strong foundation in programming concepts. Much better than the plethora of garbage CS101 college textbooks floating around). Git is an absolute necessity for basic SDLC (it’s amazing they still don’t really teach it in college). Emacs and Vim are better text editors than VSCode or Notepad++. But most people, especially those who’ve been using bad tools for years, will consider these things “too hard” and will just go back to their Excel sheets and VB scripts…

                        On an unrelated note, I read through the rest of your site, and thought your Guix posts were awesome. I’m now inspired to give Guix another shot so I can have my setup ready to go as a profile :)

                        [1] I do actually prefer Racket docs to Python (I feel they provide better descriptions/examples), but they are much sparser. Racket code quality is also generally better than Python, so I’m usually less frustrated when I have to jump into source code to understand a package’s functionality. I still end up using Python over Racket for most projects, though.

                        1. 1

                          Thanks for the praise, very much appreciated! Give Guix a go, it’s a must today and it’s only getting better ;)

                          You made a very good point: I’m not targetting the broadest audience, only those with genuine technical interest. As pointed out in the comments here, it’s not clear enough in the introduction :p

                          Guix: Actually, no, you don’t need scheme for its most important features:

                          • Roll backs (a.k.a. unbreakable system).
                          • Guarantees and privacy protection (that you get from libre software + reproducibility + bootstrappability).

                          I know it might come off as a surprise considering how advanced Guix is, and that’s the magic about it: most of the magic happens in the background! I can install Guix with GNOME on a techie’s computer and show them how rollbacks work: they love it!

                          Tor: Actually the Tor Browser makes a genuinely good effort at “educating the user on the go”. For instance, if you go fullscreen, it warns you that your screen resolution might be used to track you. Many things can be done to educate users online.

                          Racket: I’m the kind of people who like to defend quality against popularity. I know Python is more popular, and popularity alone brings its load of benefits, but Python has done enough damage already to the industry (to the world?). Recommending Python seems to me like adding oil to the fire. I want to make the world a better place and it must start from somewhere ;)

                          Thanks again for your excellent feedback!