This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-02-10
Channels
- # announcements (6)
- # babashka (38)
- # beginners (85)
- # biff (3)
- # calva (2)
- # cider (11)
- # clerk (14)
- # clj-kondo (6)
- # clj-on-windows (27)
- # clj-together (2)
- # cljsrn (18)
- # clojure (106)
- # clojure-austin (1)
- # clojure-belgium (1)
- # clojure-europe (19)
- # clojure-nl (1)
- # clojure-norway (9)
- # clojure-uk (2)
- # clr (2)
- # cryogen (1)
- # cursive (10)
- # datahike (3)
- # datavis (2)
- # datomic (15)
- # emacs (7)
- # graalvm (10)
- # graphql (20)
- # gratitude (1)
- # hyperfiddle (1)
- # improve-getting-started (23)
- # joyride (24)
- # london-clojurians (1)
- # lsp (22)
- # malli (4)
- # matcher-combinators (3)
- # membrane (13)
- # off-topic (1)
- # pathom (24)
- # polylith (9)
- # react (31)
- # reagent (9)
- # releases (1)
- # remote-jobs (1)
- # reveal (3)
- # shadow-cljs (50)
- # spacemacs (3)
- # specter (5)
- # xtdb (5)
Does anyone have experience in teaching Clojure to "non-programmers" such as admins, accountants and similar? Especially for smaller businesses? From what I've gathered there might be an opportunity in related fields, where people are doing very difficult and tedious things manually such as lots data entry, migrating data from legacy systems to new ones, think Excel to specialised applications, comparing and visually testing a lot of minutiae and so on. For many of these kinds of things there aren't necessarily good general solutions, depending on scale of course. But in SMBs etc were talking about a couple of weeks, maybe months of manual work versus two days of scripting and testing. Think hundreds to low thousands of datasets. In these cases the cost/overhead of bringing in developers might not always be a good trade off. Because many of those tasks aren't repeatable and the scale is not big enough to warrant more than ad-hoc programming. I assume there is often one person (1/5 or 1/10 or so) that has the chops to learn some programming to automate these kinds of tasks. I have a specific case in my close circle and we've talked about this a couple of times. We're going to try and teach her a little bit of programming to see where this is going. My initial hunch was to use Python, but it seems like Clojure might be an even better fit if I set up the environment and write some building blocks that do the I/O stuff with some of the common applications/formats/APIs they are using (too tedious and overwhelming for beginners).
Should be viable, I think. The approach is a bit similar to this Joyride Advent of Code project of mine: https://github.com/PEZ/joyride-aoc-2022. There I am trying to bring the task for the user down to only solving the AOC problem. Giving them buttons and UI to make puzzle data available where it needs to be available. I don't think buttons and UI is necessary, the right utility functions and some well placed Rich comment forms will serve well.
I had a colleague at a former job who was good at creating ”DSL”s for our non-programming colleagues.
Right, it's probably going to be a mix of providing high level stuff and putting well documented code in rich comments
Yeah I have to think of the code as kind of an interface, not as something that is done from scratch. A non programmer that does this only occasionally needs that kind of guidance with predefined stuff that has a place in the code where they go to and use it.
We have to put "non-programmer" in quotes I think. I'm sure there will be more and more programming literacy in the future.
I saw this great talk about everyone being a programmer. Can't remember enough of it to find it again. The speaker was dutch, I'm pretty sure. And she was energetic such that I almost got electrical watching offline. Could have been @U064X3EF3 posting the link somewhere... In this talk she mentions how some programmers think Excel/spreadsheet work is not programming. I think it could be a good talk for you to watch to get in the right mindset. But I don't recall enough to be sure about that...
I'm really interested in seeing that talk! On the side I have been teaching a coding course at a designer school for similar reasons (HTML/CSS/JS). I want to dive more into that general topic. Trying to find it now
Found it! https://twitter.com/Felienne/status/1624005934233096192?s=20&t=7GCgAuv6ix5hTguehQaMHg
@U01EFUL1A8M ClojureBridge is/was aimed at beginners and I remember we certainly had some "non-programmers" come to workshops in San Francisco and they got on just fine learning Clojure, once their environment was up and running (installation and wrestling with an editor were the two biggest obstacles when they first got started).
I'm sorry for not getting back to you sooner! I've had my mind and hands full with a new baby in the house. 😅 As @U0ETXRFEW says, I have taught some basic Clojure to "non-programmers" using VS Code and Calva with built-in tutorials. I just sat them down and walked through the first part, and they continued on their own. It's quite cool to see how fast people pick it up when the feedback is instant directly within the editor! Side note: They were data scientists, so not non-technical.
We figured out she can already program! She just didn't know it! She knows how to and actually does a simple form of parsing (!), conditional branching, joining tables, computing fields and she knows how to generate output from table data. It's all in Excel! I don't know Excel but I certainly recognise that it's actually pretty similar to how Clojure looks. It's also data in data out within the confinement of a spreadsheet. I have a very easy job now to introduce her to more programming. The leaps now are just • "hey if you can export and import data formats from end to end, you can skip all of these manual steps" • "When we program in this way, we have more flexibility as to where things are defined and how the data flows from a to b"
We figured out she can already program! She just didn't know it! She knows how to and actually does a simple form of parsing (!), conditional branching, joining tables, computing fields and she knows how to generate output from table data. It's all in Excel! I don't know Excel but I certainly recognise that it's actually pretty similar to how Clojure looks. It's also data in data out within the confinement of a spreadsheet. I have a very easy job now to introduce her to more programming. The leaps now are just • "hey if you can export and import data formats from end to end, you can skip all of these manual steps" • "When we program in this way, we have more flexibility as to where things are defined and how the data flows from a to b"