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?

  • Swedneck@discuss.tchncs.de
    link
    fedilink
    arrow-up
    3
    ·
    edit-2
    6 days ago

    i mean, you’ll be able to write things in that language, which i’d say is somewhat useful 🤔

    It’s kinda like asking “is it worth doing long hikes before training to do 5km runs?”, you probably don’t need to go on hikes in order to start running, but it’s less intimidating and if you then realize you’re just not into running then you’re still left with a useful skill.

  • Phantaminum@lemmy.zip
    link
    fedilink
    arrow-up
    84
    ·
    11 days ago

    Learing the bases of programming is language agnostic really. You can start even with pseudo code, then learn the language you will like to work with. Just choose any language that seems fun and enjoy the process.

    Good luck!

      • Droechai@piefed.blahaj.zone
        link
        fedilink
        English
        arrow-up
        11
        ·
        11 days ago

        Avoid BASIC though, never had much use of the hours I spent on it as a preteen.

        I did learn alot of useful stuff when I was playind around with arduinos, and since then the market of fun microcontrollers have expandes quite a bit. Its great to see your code immediatly change stuff in the real world even if its just a basic display connected to a thermometer

    • mesa@piefed.social
      link
      fedilink
      English
      arrow-up
      4
      ·
      11 days ago

      Yep the thing is to learn at least one, then its VERY easy to jump into another (usually). The simple things such as loops, functions, classes, etc…etc… are all about the same nowadays. Its more about what you are trying to do rather than the language you find yourself using.

      If I had to do it again, I would try out either python (for a on computer solution), javascript for web stuff, or C/C++ if you want to go crazy and learn low level stuff. Go/Rust is fine too. Any language is ok really. Just try it out and see what you like!

  • Zak@lemmy.world
    link
    fedilink
    arrow-up
    59
    arrow-down
    1
    ·
    11 days 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.
    • 0t79JeIfK01RHyzo@lemmy.ml
      link
      fedilink
      English
      arrow-up
      13
      ·
      11 days ago

      The creator of Go has an infamous quote on the language.

      The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike

      source

    • galaxy_nova@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      11 days ago

      I really hate SQL it often feels like you have to work backwards instead of procedurally when you get anything complex going. Thank goodness I mostly work in pyspark.

      Edit: Also thanks for the shout to prql looks cool might try it in a personal project or something

        • toynbee@piefed.social
          link
          fedilink
          English
          arrow-up
          1
          ·
          10 days ago

          CRUD

          When I was growing up the most advanced console to which I had access was the Genesis (or Master System, if you prefer). On it, by far the game I played the most was Ultimate Mortal Kombat 3. (I liked Tobias Boon - sorry - Noob Saibot).

          For that game, you could unlock debug mode by pressing b, a, down, left, a, down, c, right, up, down. BADLADCRUD. I don’t know what CRUD is in the context in which you were commenting, but it reminded me of this.

          • Womble@piefed.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            10 days ago

            It stands for Create, Read, Update, Delete. Those are the primary operations on a database and a crud app refers to one which is little more than a front end to a database.

        • Gonzako@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          11 days ago

          Same! The more I learn the more astounded I am. You mean I can retrieve 5m records in .01 seconds?

    • thingsiplay@lemmy.ml
      link
      fedilink
      arrow-up
      2
      arrow-down
      1
      ·
      11 days ago

      Depending on what he means by “serious”. I don’t know what hat means in context of languages. So, depending on his personal definition what “serious” means, Go might not be serious at all.

  • kibiz0r@midwest.social
    link
    fedilink
    English
    arrow-up
    20
    ·
    11 days ago

    The trouble with “easy” languages is that they allow you to write incorrect code without much pushback.

    The trouble with “serious” languages is that they push back even when you’re writing correct code.

    There’s plenty to learn from either route. Just pick something that piques your interest and dive in.

  • Kissaki@programming.dev
    link
    fedilink
    English
    arrow-up
    17
    ·
    10 days ago

    Anything is better than nothing.

    Go and Zig are serious languages. Go is especially established and has a big ecosystem and capabilities. You could stick with Go forever if you don’t want to expand afterwards.

    Starting ‘simpler’ is better because it gives you successes. It keeps you going.

  • thingsiplay@lemmy.ml
    link
    fedilink
    arrow-up
    14
    arrow-down
    1
    ·
    11 days ago

    Python is designed as an easy language. Yet it is a fundemental important language in the IT, backbone of many Linux operating systems and servers. One could even say… a serious language.

    I personally wouldn’t care if a language is called “easy” or not. You should also look at what it is capable at its peak and where it is used most often, if it works for you. Pick the language that you think fits you the best. I wouldn’t call Zig as an easy language to get into, its still low level language.

    • tristynalxander@mander.xyz
      link
      fedilink
      English
      arrow-up
      3
      ·
      11 days ago

      Yeah, I’d like to add that there’s something to being dedicated to one language, especially if you’re self taught. I could certainly cobble something together in C, but having coded in python for nearly a decade I’ve built up an intuition for it. I know where things fail. I know what to do when things fail. I know what packages are common. I’ve built up a collection of utility functions. I know common patterns. Despite never having been taught algorithms or data structures, being committed to one language has led me to learn how to write efficient code in that language (rather than hoping switching to C will magically solve bad algorithms).

      My code is still weird as hell and offends professional programmers, but it’d be hard to deny that I know what I’m doing.

      • chunes@lemmy.world
        link
        fedilink
        arrow-up
        7
        ·
        11 days ago

        Try uninstalling Python from Ubuntu and see what happens. (Do NOT actually try this.)

      • dastanktal@lemmygrad.ml
        link
        fedilink
        English
        arrow-up
        3
        ·
        11 days ago

        Did you not know that several package managers like DNF/yum are written in python? There’s a ton of tools like that for each os and a lot of the time Python is the tool of choice.

        • ThirdConsul@lemmy.zip
          link
          fedilink
          arrow-up
          1
          ·
          11 days ago

          Dnf5 is written in C++

          My point is that I wouldn’t call it a backbone. There are always alternatives in different languages, and python version is oft not the default or main one. C(++) is the backbone of Linux.

          Except Fedora I think, iirc they use python packages often.

          • dastanktal@lemmygrad.ml
            link
            fedilink
            English
            arrow-up
            1
            ·
            9 days ago

            Sure, I think we can just ignore the fact that the Red Hat Core package manager was driven by Python for almost 20 plus years and only recently, as of two years ago, switched to C++.

            You are correct at seeing C as a backbone, but most tools, especially early tools were written in a language like Python. Its easy to prototype and adopt.

            I guarantee you if I go through a list of system tools that every Linux distro is dependent on, including something like a package manager, which the linux os is absolutely dependent on You would be genuinely surprised by the amount of tools written in a language like Python or Ruby.

            Also, a package manager is not core to a Linux distribution, Really? That seems like stretch.

            Yes, you can compile everything from source. Very few people do.

            • ThirdConsul@lemmy.zip
              link
              fedilink
              arrow-up
              1
              ·
              9 days ago

              Also, a package manager is not core to a Linux distribution, Really? That seems like stretch.

              My point is that calling Python a backbone of Linux because 2 package managers out of many are in Python is a stretch like from Kilimanjaro to Kuala Lumpur.

              (AFAIK only Gentoo has the package manager written in Python, second one being historical DNF).

              APT, dnf, pacman, zypper, flatpak, snap, nix, yay, pikachu and akukaracha (last two are me being facetious :P) are not written in Python.

              • dastanktal@lemmygrad.ml
                link
                fedilink
                English
                arrow-up
                1
                ·
                9 days ago

                Let’s not be obtuse, I was simply using one tool as an example. There’s a lot more, and there’s a lot of other reasons why Python is critical as a component of a Linux system.

                Let’s just start with systemD. Did you know that systemD requires Python to build? GTK4 has the same requirement.

                Systems that have replaced the Python component often use a different language like Lua in their place, like alpine Linux.

                Python is literally the glue that people use to bind all of your C programs together because it can be done quickly, easily, and efficiently unlike C and C++.

                You literally cannot use a modern Linux system without Python. It’s just straight up not possible Unless you’re using something that is specifically stripped and built for the removal of Python. It is assumed for a ton of packages and scripts, including major component tools like Ansible, which are critical in the commercial environment.

                • ThirdConsul@lemmy.zip
                  link
                  fedilink
                  arrow-up
                  1
                  arrow-down
                  1
                  ·
                  9 days ago

                  Let’s not be obtuse, I was simply using one tool as an example.

                  You obviously used a wrong example.

                  You literally cannot use a modern Linux system without Python

                  Android.

  • AMillionMonkeys@lemmy.world
    link
    fedilink
    English
    arrow-up
    12
    ·
    11 days ago

    It’s not so much easy-difficult, it’s high-level-low-level. Low-level languages can be easy in the sense that you don’t have many entities to juggle (stacks, registers, etc.) and high-level languages can be miserable, like C++.
    Of you’re interested in starting with the fundamentals, go with C. If you just want to get something made, go with Claude Python.

  • Caveman@lemmy.world
    link
    fedilink
    arrow-up
    12
    arrow-down
    1
    ·
    10 days ago

    Is this bait? Zig and Go are very much serious, especially Zig.

    Generally python/Javascript is good for learning the basics. To know how types work learn c#/java/go. To learn how the memory works Zig/C are good. To learn about what a fully defined behavior means in a program you learn Rust. To learn what actually happens on the processor you learn assembly.

    Honestly, if you’re hyped about Zig go for it, although I’d suggest “warming up” by doing a tic tac toe in python.

  • Juice@midwest.social
    link
    fedilink
    arrow-up
    9
    ·
    10 days ago

    I found it easier to start with something considered medium difficulty, because “easy” languages abstract away a lot of problems of programming. So when certain problems arise, its hard to understand what is happening behind the scenes.

    If you want to build something, python is great. If you wanna learn programming, it might be confusing.

  • WolfLink@sh.itjust.works
    link
    fedilink
    arrow-up
    9
    ·
    9 days ago

    Yes 99% of programming is the higher level thought process behind making a program, and that skill transfers between programming languages. The specific syntax doesn’t matter that much.

  • boonhet@sopuli.xyz
    cake
    link
    fedilink
    arrow-up
    8
    ·
    10 days ago

    I don’t think most languages you’ll encounter in the wild are too “easy”.

    Universities here start you off with Python in the first semester because it’s easy for beginners to grasp. That doesn’t mean it’s not “serious” though, the whole AI/ML/Big Data ecosystem is ALL Python, largely because there are excellent data processing libraries for Python and stuff like PyTorch for offloading work to the GPU.

    Just don’t try to use Powerpoint for programming, it’s possible but you’ll go mad.