I have been thinking of learning some programming recently, but I don’t feel confident enough. Is there any point in beginning with something like Zig or Go, and switching to something more serious later?

  • Zak@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    1 month ago

    I question the suggestion that Zig and Go are not “serious” programming languages. They certainly weren’t designed to be “easy” beginner languages.

    I don’t think it matters a whole lot which language you start with. Learning to program is largely separate from learning a particular language, and if you do programming for a while, you’ll probably learn several. I do think someone who wants to understand programming deeply should learn each of:

    • A lisp, probably Racket, but others will do. This teaches a lot about how computation works, and is at least a local maximum for abstractive power.
    • C, an assembly language, or something similar where the developer must manage memory manually and has the ability to mismanage it. This teaches how computers work.
    • A statically typed functional language, probably Haskell. This makes programming more math-like and probably represents a local maximum for what can be proven about a program’s behavior without solving the halting problem.
    • SQL. I wish there was something prettier with a modicum of popularity that does what it does (PRQL is my favorite recent attempt), but there isn’t. This teaches thinking about data in sets and relations, and you will almost certainly use it in practice.