Just a kid with a computer here. I am familiar and have reached a reasonable level of fluency with javascript and python, with typescript being a somewhat satisfying switch I made.

It’s been 4 years, I haven’t touched another language. I wanna study something future proof and genuinely helpful. The reason I never went beyond js and py was because I already had everything I needed, I could make anything I wanted. I really want to dip my toes in the strong programming waters.

Can you suggest a language?

  • Lil' Bobby Tables@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    This won’t be a common suggestion, but I encourage you to pick up assembler as early as possible. It’s basically one-to-one with what your processor sees, and most of all, it’s actually a lot of fun to play with. In learning it, you’ll come to understand a great deal about how other languages work “under the hood”, too. HLA (“High Level Assembler”) is a decent place to start if you want some basic structures like if statements in there too.

    • dhruv@lemmy.worldOP
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      I took a look at it. The syntax looks scary and there’s tons of words that seem simply alien. Any idea where I should start from? I haven’t toyed with programming at a level this low.

      • kartoffelsaft@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        There is this excellent video which shows how a simple C program looks in assembly (don’t worry about it being C, the program is simple enough to be understood without C knowledge). There’s also this which does what the video shows automatically for you. Neither of these are fully sufficient to understand assembly but they are still incredibly useful resources.

        Also: watch out for AT&T syntax vs Intel syntax if you’re doing x86. It took me way to long to figure this out. And as another commenter mentioned look at TIS-100, but also some other similar games (sorted from easiest to hardest, TIS being harder than all of these): Human resource machine, EXAPUNKS, Shezhen I/O, and Box-256

        • dhruv@lemmy.worldOP
          link
          fedilink
          arrow-up
          2
          ·
          1 year ago

          I’ll add it to my watchlist for next month. I wanna get started with it once I’ve tried out rust.

          And I’ve played quite a bit of Shenzen-IO actually. I have a full paper book labelled and marked haha. I even made little notes to remind me how to make loops and little hacks. That’s one reason I’m considering getting into real assembly, I hope it’ll be as fun.

          I’ve come across TIS-100. Looking at the steam store images made me give up before even trying haha. I wonder if it’ll torture me like Shenzhen or be a nice tutorial.

          Didn’t know about the AT&T / Intel thing. Thanks!

      • Lil' Bobby Tables@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        edit-2
        1 year ago

        It’s not actually that bad once you know what they mean and do. I’ll look something up for you when I’m home later, but for now, I’m sure that there are a bunch of simple tutorials for it on YouTube.

        If you speak Assembly, everything is open source!

      • Lil' Bobby Tables@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Here’s a decent start: https://youtu.be/wLXIWKUWpSs?list=PLmxT2pVYo5LB5EzTPZGfFN0c2GDiSXgQe

        The man uses NASM specifically, on a Linux architecture. It’s what I use when I’m doodling around with it, and he’s reasonably well articulated. I might even go through this one just to refresh my memory. If you want to use something like MASM or GASM, the changes should be pretty minimal. HLA is also a decent stepping stone to pure assembly, though it isn’t in theory a true assembler. There’s a book called “High Level Assembly Language” which serves as an excellent introduction.

        There are probably better tutorials out there, too, but once you understand this, everything else will get a lot easier. Assembler is hair on a programmer’s chest. You can’t always decompile an executable; but you can always disassemble it!

        If you prefer something gamified, I suggest looking up TIS-100. It’s a progressive mystery game that incorporates assembly instructions. Fun stuff.

      • Mechaguana@programming.dev
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        the three letter combinations actually are acronyms or diminutives for all the normal syntax of a programming languages, if you have a cheat sheet and study a bit everyday it greatly helps. Remember that each processor has its own language also.