this post was submitted on 12 Feb 2026
59 points (100.0% liked)

Learn Programming

2087 readers
21 users here now

Posting Etiquette

  1. Ask the main part of your question in the title. This should be concise but informative.

  2. Provide everything up front. Don't make people fish for more details in the comments. Provide background information and examples.

  3. Be present for follow up questions. Don't ask for help and run away. Stick around to answer questions and provide more details.

  4. Ask about the problem you're trying to solve. Don't focus too much on debugging your exact solution, as you may be going down the wrong path. Include as much information as you can about what you ultimately are trying to achieve. See more on this here: https://xyproblem.info/

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 2 years ago
MODERATORS
 

I don't need something practical. I just need something fun to keep me motivated.

(page 2) 50 comments
sorted by: hot top controversial new old
[–] olafurp@lemmy.world -1 points 1 day ago

Just pick a thing you want to work on. If it's a website it's JS/TS, if it's a terminal app then python (or JS/TS). If it's a desktop app then I'd personally say C# but opinions vary wildly. If you want to do something embedded (microcontroller) then C, Zig or python. If it's a mobile app then Swift for iOS, Java/Kotlin for Android or Dart/Flutter.

Honestly, python is IMO the best to get going unless you want to make a website then it's JS/TS.

Web frameworks can be fun to learn but it might be a bit much to start out but making an Astro blog is easy and fun. If you want to spice it up to a Web app then I recommend Vue even though I work with angular and know react.

But yeah, I recommend python to most beginners unless you want your first thingy to be a website.

[–] natecox@programming.dev 11 points 2 days ago (2 children)

If you’re looking for something fun to write you might want Ruby. Literally built from the ground up with developer satisfaction as the primary goal.

Very expressive, plenty powerful. Not my absolute personal favorite but I can’t deny it’s satisfying to use.

Haskell or Clojure (or Common Lisp) if you want something weird but neat as alternatives.

[–] somegeek@programming.dev 9 points 2 days ago (14 children)

People calling functional programming weird hurts me. It's just unfamiliar not weird.

[–] natecox@programming.dev 6 points 2 days ago

Weird is subjective. If you’ve only ever done C++ style object oriented programming then jumping into a lisp or a pure functional language is absolutely weird.

load more comments (13 replies)
load more comments (1 replies)
[–] cerement@slrpnk.net 9 points 2 days ago* (last edited 2 days ago) (1 children)

since you mentioned Rust, it can also be a matter of how you approach learning it – maybe learning a game might be more comfortable – as an example, Reddit’s r/roguelikedev links to multiple tutorials in multiple languages (with at least three Rust based options):

load more comments (1 replies)
[–] JackbyDev@programming.dev 3 points 2 days ago (3 children)

So, if you're brand new and want to learn concepts of how to write code, I might suggest a game. There are a lot of programming games. Obviously it's never a one to one about learning something useful, and a lot of them even make "bad" things useful (though not bad enough to think it's going to teach you bad habits you won't be able to unlearn). I really enjoyed Exapunks, but it's sort of unrealistic. The Farmer Was Replaced looks fun as well and uses a "simple Python-like" language, but I haven't played it.

If you sort of already understand the concepts and want to dive into a real language, well, it's hard to say what will be fun. Chase your fun. It might be easier to think about what's not fun and avoid languages at the start that deal with that. For example, if setting up an environment to code in is the problem, then maybe something like JavaScript would be a good place to start. It runs in your browser! Press F12, click "console", type alert("Hello, World!"), boom, done, you just did Hello World in JavaScript without downloading anything at all.

load more comments (3 replies)
[–] cerement@slrpnk.net 8 points 2 days ago (1 children)

take a look at one of the “fantasy consoles”, can do quick scripts and see results immediately:

  • TIC-80 – primarily uses Lua but they’ve added in support for Ruby, JS, Moon, Fennel, Scheme, Squirrel, Wren, WASM, Janet, and Python as well
  • uxn – virtual machine using uxntal, a kind of Forth/assembly hybrid

for an actual language, don’t discount Lua – simple, fast, tiny – “real programmers” like to ridicule it, and yet it keeps turning up everywhere from video game scripting to text editor configuration to databases to web servers

  • Learn X in Y Minutes – a good introduction to a lot of languages, gives you a good idea of their look-and-feel
  • Rosetta Code – LOTS of languages with LOTS of code examples
[–] orclev@lemmy.world 5 points 2 days ago (2 children)

Lua to me is the language JavaScript wishes it was. It's super minimal and actually designed reasonably well. It knows what it is and isn't trying to be something else. I wouldn't want to try to write an entire app in it, but for a scripting language embedded in something else there's not a lot of languages I'd rate higher.

[–] ageedizzle@piefed.ca 1 points 1 day ago (2 children)

This might sound silly but why would you not want to write an app with it? Like, what are its limitations? I know very little about Lua

load more comments (2 replies)
load more comments (1 replies)
[–] grue@lemmy.world 5 points 2 days ago (1 children)

Logo. Turtle graphics spirographs go weeeeeeee!

At least, that's the most fun I had programming as a kid. There might be other good options nowadays, like Scratch or whatever they use to program those Lego robots.

load more comments (1 replies)
[–] tomenzgg@midwest.social 6 points 2 days ago* (last edited 2 days ago) (1 children)
load more comments (1 replies)
[–] ImgurRefugee114@reddthat.com 6 points 2 days ago* (last edited 2 days ago) (1 children)

C and assembly if you like learning how computers work

Python and typescript if you want to make blinky lights

[–] ageedizzle@piefed.ca 4 points 2 days ago (5 children)

How does C compare to Rust? I've heard you can learn the syntax in a weekend, but you spend years trying to master it because of all the memory leaks and such that it leads to. Would you say that's accurate?

[–] CameronDev@programming.dev 7 points 2 days ago (1 children)

Rust is close to C++, in that you get a lot of high level constructs to help you. C is very low level, and you can learn the syntax in a weekend, but you'll also have to learn memory management and implement advanced structures (linked lists, etc) yourself.

Memory management isn't too hard, it's mostly remembering who created what, who reads and writes to it, and who is responsible for cleaning up. With some additional comments as you go it's not too hard. Also, depending on what your doing, leaks may be acceptable. A short lived program can leak all it likes, and the OS will clean up for you ibthe end :D

load more comments (1 replies)
[–] otacon239@lemmy.world 7 points 2 days ago (3 children)

Python is like your automatic transmission. It handles a lot of work on the backend to make life easier, but the trade off is performance and control.

In C/C++, you’re reaching into the gearbox and moving it by hand. It doesn’t clean up anything for you and doesn’t prevent you from making dumb mistakes. In exchange, it can be wildly faster than Python.

In Assembly/Binary, you’re crafting the gears before you can even start the car.

load more comments (3 replies)
[–] orclev@lemmy.world 5 points 2 days ago (1 children)

So C is basically assembly with a bunch of syntactic sugar on top. It manages a lot of the book keeping and boilerplate, but at the end of the day there's not a ton of difference between them in terms of the abstractions it provides. If you know assembly learning C is a piece of cake. If you don't you're probably going to take a while to really wrap your head around pointers and the myriad ways C can use them for great and terrible things. Beyond pointers (and race conditions if you're crazy enough to do multithreading in C) the rest of C is super easy because there really isn't much else there.

Rust on the other hand is a much higher level language more comparable to something like Java, C++, or Python. It gives you a lot of tools to solve complicated problems but unlike Java and Python and like C++ it still gives you the option of working at a low level when you need to. The big advantage it has over C++ is that it learned from the many mistakes C++ made over the years, and the borrow checker really is a unique and powerful solution to both memory management but also crucially concurrency problems.

[–] ageedizzle@piefed.ca 4 points 2 days ago (1 children)

Interesting. I always assumed that Rust would be more similar to C since they are now using Rust in the linux kernel

[–] orclev@lemmy.world 6 points 2 days ago (1 children)

No, for a good modern C alternative I'd look at Zig. The main reason C is used for the Linux kernel is because Linus hates C++ for a variety of reasons. For what it's worth I agree with him. Most other OS kernels are written in C++. Linus allowed Rust in because it demonstrated that it could provide the same power as C++ without all of C++'s problems (mostly that over the years it became a kitchen sink language, anything that anyone ever thought might be a good idea got rolled in even when it was incompatible with some other feature already in the language).

[–] ageedizzle@piefed.ca 1 points 1 day ago (1 children)

Thanks for the suggestion. How does Zig compare to C safety wise? One of my main reasons for going for Rust was because I was looking for something like C but safer

[–] orclev@lemmy.world 1 points 1 day ago (1 children)

It's a bit safer and a lot more convenient to use, but still lets you do dangerous things with pointers. At its core it's still fundamentally the same as C just with a bunch of helpful tools and features to make doing all the stuff you do in C easier and more convenient.

Really the biggest thing it does significantly better than C is its macro system. C macros are "dumb" in that the C pre-processor does a simple find and replace on the source files without doing any kind of processing on the underlying C code so you can E.G. write C macros that spit out mangled illegal C code when you run them. Likewise a C #include is literally the same thing as copy and pasting the contents of the included file before it gets fed into the compiler.

Zig on the other hand has a smart macro system that's actually aware of the zig code and works in concert with it at compile time.

load more comments (1 replies)
load more comments (2 replies)
[–] tiny_hedgehog@piefed.social 6 points 2 days ago (1 children)

Probably Python. It’s very accessible.

[–] ageedizzle@piefed.ca 4 points 2 days ago

I was looking for some 'Big Daddy-O' super-fun rando programming language that some guy wrote in C over the weekend in his garage, but Python should work too.

[–] SinTan1729@programming.dev 5 points 2 days ago (1 children)

I had the most fun learning Haskell. Mostly because it was so different from the languages that I knew. Also, learning Lean was fun. But I guess that's kinda niche since it's not very relevant for anything but pure mathematics.

load more comments (1 replies)
[–] somegeek@programming.dev 4 points 2 days ago (1 children)

I am having the time of my life with Clojure. Lisps in general. They really change how you view software. I was showing how clojure works to my Java coworker and showing her the REPL and powers of Clojure, and we both almost teared up :)) It's tgat good.

[–] ageedizzle@piefed.ca 1 points 1 day ago (2 children)

This might be a stupid question but what is Lisp they use in emacs? People talk about 'lisps' in plural so I can't tell if its a family of languages or just one language thats just really flexible

load more comments (2 replies)
[–] nate3d@lemmy.world 5 points 2 days ago* (last edited 2 days ago) (1 children)

Python is one of the more forgiving and extremely versatile.

I highly recommend checking out the game “The Farmer Was Replaced” on Steam as it might be the best way to introduce yourself to programming concepts outside of a classroom. (Not affiliated, just love the game XD)

Then in no particular order:

  • Rust (and understand C++ and all interops)
  • Typescript
  • Bash
  • DotNet (Java that works)

And as always - learning the anti patterns is more important than learning the patterns.

[–] ageedizzle@piefed.ca 4 points 2 days ago (4 children)

Hey thanks for the game recommendation. It's always nice to have some leisurely activity that is fun to do but you can feel productive doing anyway. Thanks for the language list too.

This might be a basic question but what do you mean exactly about 'learning the anti-patterns'? Can you expand on that?

load more comments (4 replies)
[–] Kacarott@aussie.zone 4 points 2 days ago* (last edited 2 days ago)

The most fun languages to learn that I have learned so far, are Haskell, Factor, Prolog and Agda. Each are quite different from mainstream programming and each other, and it is really satisfying when concepts "click"

[–] Thorry@feddit.org 3 points 2 days ago (1 children)

Z80 assembly, nothing is as fun as getting back to basics. After I learnt Basic on my home computer back in 1984 I quickly branched out to assembly. My home computer had a Z80 cpu running the show. I had this book which introduced the basics and explained how to combine Basic and ASM code, so you could do neat tricks without needing to go full assembly right away. Of course there wasn't a compiler, just pages in the book showing the opcodes, their encoding and which code had what bit representation. So compiling was done by hand.

I miss those simpler times.

load more comments (1 replies)
[–] Penguincoder@beehaw.org 4 points 2 days ago (2 children)

Fun? Lua, Odin, nim, zig.

Impractical? Brain fuck.

load more comments (2 replies)
[–] tyler@programming.dev 3 points 2 days ago (1 children)

I see a lot of people recommending things that a beginner definitely isn't going to find fun. It's not fun to bang your head against problems before you even understand what is going on. If that sounds like you then you do not want to be touching anything like Rust, C, C++, etc. Some people are recommending Python. I strongly recommend against that. Yeah it's a simple language, but it breaks all conventions that other languages have set up. Whitespace, tooling, comprehensions. They're all different. You'll struggle with the terrible tooling, the whitespace syntax isn't used in any other popular languages, and the stuff that is in other languages is implemented completely differently.

I like Ruby for fun. It's an incredibly approachable language, it's extremely fun. The tooling is dead simple and works on every system out of the box. Of course everyone else in here is gonna recommend other different stuff, but I can tell you that I have developed professionally with both Ruby and Python for over a decade and the people suggesting Python have most likely not programmed with many other languages.

I'll give a second suggestion. I recently started learning Unity and it was a blast. It brought back that joy of programming for me. Of course, most of it isn't programming, but that might help things in your case. So maybe if you're looking for something that isn't so ... 'backend' then that might be what you want, a video game engine that can get you started easily.

Some others suggested esoteric or less used languages like Lisp or Forth, and I can't give any recommendations about those. Maybe you'll have fun with those, maybe you won't.

Finally, one last thing, you can compare a lot of languages to see what 'equivalents' would be with this tool. https://evmorov.github.io/lang-compare/ruby-python/ There's also https://codethesaur.us/, but it covers different bits and doesn't seem to have much for Ruby.

load more comments (1 replies)
load more comments
view more: ‹ prev next ›