43
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
this post was submitted on 09 Dec 2025
43 points (100.0% liked)
Asklemmy
51592 readers
348 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!
- Open-ended question
- 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.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
- Lemmyverse: community search
- sub.rehab: maps old subreddits to fediverse options, marks official as such
- !lemmy411@lemmy.ca: a community for finding communities
~Icon~ ~by~ ~@Double_A@discuss.tchncs.de~
founded 6 years ago
MODERATORS
I would suggest taking a look at Scheme or Clojure for somebody who has no development experience. The big reasons being that these are high level languages so you can focus on learning the actual concepts without all the incidental complexity of imperative languages. Scheme in particular was designed as a teaching language. The other aspect is interactivity, Lisps have a tight integration between the editor and the REPL and you can evaluate functions as you write them. This is incredibly helpful for learning as you can write a function, send it for evaluation, and see the result immediately. So you can play with code and get an intuition for how things work.
Speaking of Scheme, I would suggest Racket, which comes battery included and ready to go in ONE installer. Easy to install on any system, and has a decent text editor/IDE provided. Also, the documentation is great, but can be daunting at first.
Seconded, I should've just said Racket really.
My university chose to teach a pure functional lisp-like language without for loops as they very first programming course in the computer science program lol. Everyone who "already knew" how to program in Python/Java/JS/etc hated it (including me at the time) because it knocked us from the peak of the Dunning-Kruger curve into the valley of despair like everyone else.
Took me years to understand the method to the madness and appreciate learning it.
It's very frustrating to be in a situation where you know how to do something one way, but you can't do it like that and you have to learn a completely different way to do it. Feeling like a beginner again makes people feel stupid, and most people don't like that. But it really just means you're learning a new way to approach problems.
That's a really interesting suggestion. I've not used either. I had the impression that those languages are kinda esoteric, but maybe I'll have a look.
While they're far from mainstream, they're definitely languages worth learning. And I'd argue that learning functional style first gives you a much better intuition regarding state management which makes you a better imperative programmer as a result. It's much easier to go from functional to imperative than the other way around.
I mostly work with Clojure myself, and it's pretty easy to set up with VSCode and Calva plugin. There's also a lightweight runtime for it that doesn't require the JVM which is great for a learning set up. You just run
bb --nrepl-serverand then connect the editor to it as shown here. From there on you can run code and see results right in the editor. This is a good overview of what the workflow looks like in practice.Also have some beginner resources I've used to train new hires on Clojure.
Introductory resources
A deeper dive