I’m going to be delivering an online intro to programming session to a non-technical crowd who will be “following along at home”. Because it’s online, I can’t provide them with machines that are already set up with an appropriate development environment.
I’m familiar with Linuxes and BSDs but honestly have no idea how to get set up with programming stuff on Windows or macOS which presumably most of these people will use, so I need something I can easily instruct them on how to install, and has good cross-platform support so that a basic programming lesson will work on whatever OS the attendees are running. Remember they are non-technical so may need more guidance on installation, so it should be something that is easy to explain.
My ideas:
-
C: surely every OS comes with a C compiler pre-installed? I know C code is more platform-specific, but for basic “intro to programming” programs it should be pretty much the same. I think it’s a better language for teaching as you can teach them more about how the computer actually works, and can introduce them to concepts about memory and types that can be obscured by more high-level languages.
-
Python: popular for teaching programming, for the reasons above I’d prefer not to use Python because using e.g. C allows me to teach them more about how the computer works. You could code in Python and never mention types for instance. Rmemeber this is only an intro session so we’re not doing a full course. But Python is probably easy to install on a lot of OSes? And of course easy to program in too.
-
Java: good cross-platform support, allows for teaching about types. Maybe a good compromise between the benefits outlined above for C and Python?
Any opinions?


You should read the Python documentation for how many ways there are to set it up. It’s not easy. It might be easy for a pro, but for a beginner it will be a nightmare. Python’s own documentation is thousands of words long for how to get it running correctly, it’s the exact opposite of what you want for beginners. And no it’s most definitely not the most human readable. They call it Ruby Prose for a reason.
I’m not here to have a flame war over Python vs other stuff, but I’ve used both professionally for over a decade. Python is good at stuff, but being human readable by beginners and having good tooling are not even in its ballpark. It has syntax unlike any other modern language and its tooling is shite. https://chriswarrick.com/blog/2023/01/15/how-to-improve-python-packaging/
For a basic setup to learn hello world and basic if/then logic, it’s extremely simple to setup Python on Windows or Linux. For Windows, which I’m guessing every non technical viewer will be using, download the installer and hit next taking the default values. Open idle, type the very human readable, print(“hello world”). Save and press f5. That’s it no complicated setup.
OP isn’t talking about teaching a lesson where any confusing syntax will come into play. They are giving an intro to programming class. That’s all about learning basic programming concepts which is done very easily in Python. You wouldn’t teach a non technical first time programmer a ternary operator or a list comprehension. You’d teach them:
if a == 10: print("a = 10") else: print("a is not 10")and simple for loops
for x in range(10): print(x)I don’t know about you, but to me that’s about as human readable as it gets. No imports required. No extra packages. Just default python install and copy paste and this will work.
There are other languages with minimal setup that can be used. OP could go as far as basic JavaScript in JS fiddle so no setup would be required. The basics of JavaScript are also very easy to read compared to a language like C where explicit typing is required. That can be a difficult concept for people that have never even seen code before. Python and JavaScript soften that blow. Once the concepts of if/then, loops, and functions are grasped it’s much easier to pivot to other languages with more verbose syntax.
I’m not here suggesting that Python is by any means the superior language of the universe, just that it’s a very good option to learn with for it’s entry level simplicity and syntax readability, which I’ve demonstrated.