45
submitted 5 days ago* (last edited 5 days ago) by communism@lemmy.ml to c/asklemmy@lemmy.ml

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?

(page 2) 4 comments
sorted by: hot top controversial new old
[-] Lightfire228@pawb.social 0 points 5 days ago

Python

It's an amazing scripting language, and my goto for writing automation scripts.

It's the most lenient of the 3 with dynamic typing and managed memory. It'll let you learn the basics of reading / writing / running code as well as basic control flow and logic

C is also great to learn, as it teaches you how computers work at a fundamental level, but it's more stuff to learn up front, and can lead to some very difficult to fix bugs

Java is good as an "application" language. Being memory managed like Python, but statically typed like C. Static typing makes it easier to manage larger code bases

[-] WolfLink@sh.itjust.works 0 points 5 days ago

Mac is very similar to Linux in that it comes with bash (these days zsh) and a lot of the command line tools you’d expect on Linux, including gcc and python3 installed by default. You’ll want them to have a decent text editor with code coloring. Sublime is what I was taught to use in university.

Windows is more difficult. The command line is very different (it inherits from DOS instead of Unix like both Mac and Linux). It doesn’t come with Python pre-installed. I’ve generally installed git-bash when working on Windows. There are some Python libraries that work fine on both Mac and Linux but have issues on Windows.

You could look into VSCode which is a decent IDE that works on all platforms. Of course, an IDE can be a bit of an information overload for a beginner, especially something like VSCode that’s constantly pushing AI features and plug-ins.

load more comments (3 replies)
[-] tyler@programming.dev -4 points 5 days ago

Absolutely do not use Python. It’s a nightmare to install on random computers and the majority of your time spent will be trying to get it working on everyone’s computer (that was my job at one point). As far as I remember, there isn’t a “good” C compiler that comes on windows and the one on Mac is missing some stuff.

I’d go with Ruby, it’s dead simple to install on every OS, easy to teach and learn, and doesn’t work differently across OSes. There’s an installer for it for windows and it comes installed by default on Mac (or it did? Maybe they stopped that).

load more comments (3 replies)
load more comments
view more: ‹ prev next ›
this post was submitted on 09 Dec 2025
45 points (95.9% liked)

Asklemmy

51626 readers
627 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy 🔍

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~

founded 6 years ago
MODERATORS