• @UnderpantsWeevil
    link
    English
    1732 months ago

    handing my friend a screwdriver

    “You can use this for simple crafts and home repairs”

    Me, backing away from the screwdriver in terror

    “Nice try, but I know what that is. They use that thing to build the Space Shuttle.”

    • @[email protected]
      link
      fedilink
      102 months ago

      Nah, give me that Fisher Price Baby Screwdriver that’s easy to use and cannot build a space shuttle.

    • @[email protected]
      link
      fedilink
      English
      52 months ago

      -.- you’ve just described a significant portion of my home remodeling….

      -.-

      I think I need to learn new skills…

    • @HStone32
      link
      32 months ago

      are you sure python is a screwdriver? Its not the all new AI-driven Smart screwdriver that requires an account, wifi connection, and for you to input the name of your project before you can use it?

  • lime!
    link
    fedilink
    English
    1242 months ago

    honestly i expected the fifth panel to be full of things like “GIL”, “2to3”, “virtualenv” “pip vs conda vs poetry vs…”, “mypy”, etc

    • @dariusj18
      link
      632 months ago

      Yeah, it’s not about complexity things you can do with python, it’s the complexity of getting it to run. That continues to be the biggest pain point for me.

      • @[email protected]
        link
        fedilink
        25
        edit-2
        2 months ago

        This is why I refuse to work in production code bases in python, it’s a nightmare of build systems, linters, package managers (dear god help the poor soul who accidentally pip’d from pypi and not your companies artifactory instance), formatters, convoluted ci pipelines that always seem to fail, a series of “senior” devs that will make you redo everything because you wrote your own map (we don’t use functional programming here meme) instead of a for loop (can’t use list comprehension for “code readability issues”). Got to the point of just saying fuck it, I’ll write it in Scala or rust, SBT and Cargo god tier.

          • @[email protected]
            link
            fedilink
            6
            edit-2
            2 months ago

            C++ is at least backwards compatible (for 99% of code anyway, yes I know about some features being removed, but that’s an exception and not the rule).

        • @[email protected]
          link
          fedilink
          32 months ago

          Wait does python not have built in functional list comprehension? Even PHP has that built in at this point.

          • @Phrodo_00
            link
            10
            edit-2
            2 months ago

            Python is probably the language that popularized them, if not invented them. They’re saying the team doesn’t like using them.

            My take is that other than C++, where it’s reasonable, forbidden language features are a smell for the team not having a healthy understanding of the language

            • @[email protected]
              link
              fedilink
              42 months ago

              As per all too often, the functional programming world invented them. Haskell (and its ilk) usually has all the future cool stuff already. Then python picks it up, then it moves over to C#/Java, then C++ says “mee too”!

        • @grue
          link
          English
          22 months ago

          Ha, you haven’t lived [in Hell] until you’ve tried to maintain a Jython build, with Python package dependencies (not just Java ones), in a production environment, in the 2020s.

    • @[email protected]
      link
      fedilink
      English
      5
      edit-2
      2 months ago

      Surprised not to see meta-classes or package management in the meme.

      EDIT: clarification

      • @jacksilver
        link
        42 months ago

        Am I an idiot or isn’t the “pip vs conda vs poetry” line talking about package management?

        • @_stranger_
          link
          32 months ago

          It is, and it’s a valid complaint. Go and Rust have handled it differently than Python or JavaScript, and all of them have their faults and bonuses.

  • @[email protected]
    link
    fedilink
    50
    edit-2
    2 months ago

    Python is a general purpose language. Yes you can do ML stuff and some mathematics, but that doesn’t mean you need to do them.

    • @[email protected]
      link
      fedilink
      442 months ago

      I was doing a job interview and the manager asked me why I choose python over other languages like R, like if I tough that python was the best language or what? I answered that python is not the best language for anything, for any job you want there’s a better language, but python is the second best one for everything, so it offers a flexibility that no other language can. Like in my actuarial sciences MBA, all the professors use R, for 99% of they do I have an equivalent library in python, for the 1% that don’t I can use rpy2 and run R code directly in python. Guess they liked my answer because I was approved and I’m about to start there in October.

      • Lettuce eat lettuce
        link
        fedilink
        202 months ago

        “python is the second best language for everything…”

        I love that summation! Python has been key for me to learn programming concepts. I hope to move into other languages in the future, but for now, Python does everything I need it to.

  • @HStone32
    link
    422 months ago

    Sure python may be easier to learn, but it makes learning actual programming more difficult. Ever since the CS department switched to python, my workload as a computer systems TA has doubled.

    • @[email protected]
      link
      fedilink
      322 months ago

      Everybody hating on Java being the de facto language every student learns first (at least back when I was in university) but I think it’s actually a great first language while I don’t think python is for one simple reason: it has types but tries to hide them from you. It is soooo important to understand types early though.

      • @BleatingZombie
        link
        152 months ago

        Strictly-typed languages are the BEST for learning programming. I also like Java for it because there’s a difference between int and Integer (forcing you to learn about objects)

      • @acid_falcon
        link
        62 months ago

        Java was my first language over ten years ago. I haven’t touched it in a decade (I’m mostly a hobbyist). I am grateful that I had to type all that shit out, and grateful that I don’t have to anymore (I’ve been using python since then).

        I just recently helped a younger friend with their Java homework. I had to Google the syntax, but otherwise helped them ace it. I’ve mostly used Python since then, but learning java gave me such a good base of the fundamentals

      • @Quetzalcutlass
        link
        English
        4
        edit-2
        2 months ago

        The main problem with Java (or garbage collected languages in general) as a first language is needing to unlearn the bad habits it ingrains when you move to a systems programming language with manual memory management. Other than that it’s a pretty good first language, though I’d suggest learning a bit of C at the same time just to get a basic grip on things like pointers and stack vs heap.

        Edit: it occurs to me that C# would be the perfect learning language. It’s very similar to Java and an easy first language, but you’d also learn about stack allocation through structs, and can teach pointers using unsafe (though I think unsafe code is still GCed, so this wouldn’t help with the memory management side of things. Haven’t touched C# in fifteen years so I’m not sure how it works anymore).

    • @grue
      link
      English
      142 months ago

      I learned Python after I already knew C, and I will forever be grateful for that.

      I took an Operating Systems class in undergrad whose first assignment was to implement a simple web server in C, and it was fine. Later, I took the same prof’s grad-level class and had to do basically the same assignment again, and all I could think was “wow, this is incredibly tedious: this whole thing would be literally two lines of Python.” Python absolutely ruined my patience for writing C (or at least, for writing C socket code that has to manually juggle IPv4 and v6 struct addrinfos and whatnot).

    • ProdigalFrog
      link
      fedilink
      English
      8
      edit-2
      2 months ago

      That sounds similar to this quote:

      “It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.” — Edsger Dijkstra, 1975

      But there’s been a good deal of programmers who have said that BASIC, and its ease of use and seeing almost instant results is extremely useful to not turn people off learning to code to begin with. Python is functionally the new BASIC in that regard, and while the language itself may not teach you to become an expert programmer, it may have gotten more people in the door than otherwise would have.

      But that’s just my 2 cents.

      • @HStone32
        link
        7
        edit-2
        2 months ago

        that may be true for CS and software development, but I think that has ended up being more harmful for other fields like electrical engineering. Kind of like how non STEM majors are too afraid to try engineering or sciences, because they all think calculus is this big scary incomprehensible thing that only einstein-level geniuses can learn. I’m seeing that same kind of fear preventing students from going into engineering because they don’t want to learn anything besides python.

      • @[email protected]
        link
        fedilink
        English
        32 months ago

        I was exposed to both basic and python first. No wonder it was so much harder for me to do code!

    • @[email protected]
      link
      fedilink
      3
      edit-2
      2 months ago

      shit I was planning on learning programming starting from python… so what now? I’ve got some high-school level microcontroller C memories, and I’m proficient with Ladder and simple Instruction List. I tend to learn by doing, that’s why I was going for Python, it felt like I could make something straight away.

      • @Knock_Knock_Lemmy_In
        link
        72 months ago

        If you learn by doing, chose the language appropriate for the pet project you are developing.

      • @[email protected]
        link
        fedilink
        42 months ago

        You could use JavaScript although I would go straight to TypeScript. Or maybe C#.

        I am biased as I work with TS and C# .Net.

        • @Sinuousity
          link
          32 months ago

          Assuming we are not developing for Apple devices, it’s C# all the way for me. I haven’t touched another language that I would choose over it. The language is clear and functionally complete and all I suspect I will ever need for desktop application development.

          Sidenote: I am fond of using JS for web dev, though the looseness of the syntax and the whole ‘objects are just arrays’ things make it hard to recommend for beginners

      • @HStone32
        link
        3
        edit-2
        2 months ago

        buy yourself a copy of K&R 2e (The C programming language by Brian Kernighan and Dennis Ritchie). Its not only a good c book, but a great beginner programming book in general. If you’re a learn by doing guy, it has a lot of exercises you do.

        i normally don’t learn by reading textsbooks myself, but this book proved an exception. its inexpensive too.

    • @[email protected]
      link
      fedilink
      32 months ago

      Ouch, I feel your pain. My high school education consisted of one course in C getting as far as pointers, then the next in Python.

  • @WhyFlip
    link
    242 months ago

    Math is going to perpetually be the downfall of most morons wanting to computer science.

  • @MashedTech
    link
    202 months ago

    Sure, python is easy. But have you tried package management in python versus other languages?

    • @[email protected]
      link
      fedilink
      32 months ago

      I started using Python ~15 years ago. I didn’t go to school for CS.

      Compared to using literally anything else at the time as a beginner, pip was the best thing out there that I could finally understand for getting third party code to work with my stuff, without copy paste… on Windows.

      When I tried Linux, package managers and make were pretty cool for doing C/C++ work.

      Despite all that, us “regular” engineers were consigned to Windows.

      We either had to use VBA or a runtime that didn’t need to be installed.

  • @EnderMB
    link
    32 months ago

    I’ll die on this hill.

    If you want an easy language for beginners, Ruby is a much better alternative. It’s like a simpler Python, and aside from a crazy loop syntax teaches clean programming principles better than most languages.

    With that said, Rails IS a ghetto, and many of the kinds of companies that use Ruby as their main language are stuck in the past or are full of the biggest toolbags you’ll ever meet. DHH, in particular, built a reputation on being a programming contrarian, so much so that there’s a golden rule where if he says something, the opposite is probably the correct choice.

  • @Fredselfish
    link
    1
    edit-2
    2 months ago

    This exactly how learning Python is like.