• pinchcramp@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    59
    ·
    1 year ago

    That programming as a career means you’re going to spend writing nice, clean code 80% of the time.

    It’s rather debugging code or tooling problems 50% of the time, talking to other people (whether necessary or not) about 35% of the time and the rest may be spent on actually spending time doing the thing you actually enjoy.

    I may be exaggerating, but only a little.

  • Dr. Wesker@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    40
    ·
    edit-2
    1 year ago

    That you can just go to a bootcamp, and be good at or naturally suited for it.

    That you can go to college and get a degree, and be good at or naturally suited for it.

  • halloween_spookster@lemmy.world
    link
    fedilink
    English
    arrow-up
    38
    ·
    1 year ago

    Myth: software engineers replicate value similar to a factory worker making the same item over and over

    Truth: software engineers are closer to artists than factory workers IMO. We find and create new value, not replicate existing value

  • Addv4@kbin.social
    link
    fedilink
    arrow-up
    38
    ·
    1 year ago

    That if you know how to code, you understand how computers work and understand really complicated math concepts.

    • BrianTheeBiscuiteer@lemmy.world
      link
      fedilink
      arrow-up
      13
      ·
      1 year ago

      That’s the difference between a programmer and a computer scientist, but even I (a computer scientist) I’m not an expert in hardware, networking, or OS level operations because that’s not my daily focus.

      • Landless2029@lemmy.world
        link
        fedilink
        arrow-up
        11
        ·
        1 year ago

        I compare my career to the medical field. Sure there are some crossovers but lots of specialties.

        Would you consult a dentist about your bowel movements?

      • cole@lemdro.id
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        and what you just described is the difference between a computer scientist and a computer engineer!

    • jadero@programming.dev
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      I call that the “nerd equivalency problem”. I think it’s the source of much (most? all?) of the problems with software that comes out of organizations that are not programming shops by nature.

      “We’re not moving fast enough (or, “I have this great idea!”), hire another nerd!”

      The problem also exists within individual programmers (“sure, I can do that UX/UI thingy, just let me finish building this ray-tracing thingy”), but that’s just an ordinary cognitive weakness that affects us all (thinking that being expert in one field makes one expert in all). It’s the job of proper leadership to resist that, not act as though it’s true.

  • tatterdemalion@programming.dev
    link
    fedilink
    arrow-up
    33
    ·
    1 year ago

    That a “working” prototype with no tests is just as good as a carefully-designed and well-tested feature. I see this happen so often that a coder puts a prototype in front of a product manager or exec and they are like, “this is exactly what we need, now! Ship that!” And then misery ensues for all of the engineers that need to maintain this piece of garbage. As managers pressure the engineers to build new features on top, they inevitably break fundamental parts of it, and without a confident leader to demand that tech debt is paid off, that product will consume the souls of many desperate coders.

    In contrast, if you do it right the first time, there will be significant parts of code that never need to change, and the parts that do need to change will be much easier, because it will be obvious if it breaks the tests.

    • nilclass@discuss.tchncs.de
      link
      fedilink
      arrow-up
      9
      ·
      1 year ago

      That sounds super familiar :D

      Anyway, a prototype is not a bad thing, if the managers know the difference. It’s easier said than done to “do it right the first time” if you don’t know how / what to build. Prototypes can be built to validate hypotheses and generally figure out what works, then build the real thing afterwards.

      • tatterdemalion@programming.dev
        link
        fedilink
        arrow-up
        9
        ·
        edit-2
        1 year ago

        Yea I should have clarified. Prototypes are a great idea. The problem occurs when you say, “this is good enough we can improve on it as we go.” Yea good luck balancing priorities when everything breaks from tapping your keyboard too hard. You MUST NOT MERGE the prototype.

      • asyncrosaurus@programming.dev
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        The company I work for is smort

        This is every company I’ve ever worked for. If other people didn’t vouche for their own tests, I’d assume automated testing was a myth.

    • waz@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      I like puting my prototype code in namespaces like “garbage” “trash” “throwaway” etc to emphasize how unfit for production. I’ve no concrete evidence of it’s success, but I like to think it dissuades other team members from using it where they shouldn’t.

    • Ethan@programming.dev
      link
      fedilink
      English
      arrow-up
      3
      ·
      1 year ago

      As my first job out of college (when I didn’t know what I didn’t know) I was hired to build a bespoke inventory system for a manufacturing company. My prototype became a production system the second I showed it to one of the engineers. The next three months of my life were a living hell as I frantically fixed bugs on a live system. Lesson learned.

    • anti-idpol action@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      oh yeah and the overt emphasis by suits on frontend development because it feels more tangible. like yeah sure we can add a follow button in a couple lines of code… granted you want to allow duplicate requests by non-signed in users or users that block each other with no manual approvals support, no protection against CSRF and the followee not getting notified

  • I Cast Fist@programming.dev
    link
    fedilink
    arrow-up
    33
    arrow-down
    1
    ·
    1 year ago

    “Programming is just writing code”

    Programming is, first and foremost, understanding what the fuck you want/need the computer to do. That means that some programmers (mostly analysts) may understand workflows and processes better than the people whose job depends on their knowledge of said things.

    • Daxtron2@startrek.website
      link
      fedilink
      arrow-up
      11
      ·
      1 year ago

      People don’t realize that as you get better at programming, the amount of code you write goes down. At least in my experience, my work day has shifted to 80% thinking about what I’m going to write and then about 20% actually writing it.

          • okamiueru@lemmy.world
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            It was the job switch that landed me in that situation. A change from a small company where about 70% was actual productivity, to a large corporation, in a team where there was severe issues with planning and working on the correct problems. So far it’s been 6 months of… well, wondering if I’m missing something, or a bigger picture somewhere, to trying to turn the ship in the right direction. If it’s still like this in another 6 months, I’ll consider a change of scenery.

            • Daxtron2@startrek.website
              link
              fedilink
              arrow-up
              2
              ·
              1 year ago

              That’s fair, that definitely can happen with a switch. My first year at my current company was like that and occasionally still is lol. Luckily our next few quarters I’ll be on a team that has much nicer processes so I won’t be twiddling my thumbs waiting for solid requirements.

              • okamiueru@lemmy.world
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                1 year ago

                waiting for solid requirements

                This is exactly the situation. Except that my team consisting of consultants just “started”, instead of trying to scope out the constraints and larger picture. I joined a month or so after.

                Six months, and the result so far of their exploration is a fairly uninteresting happy-path use of some technologies, barely related to the task that had unclear requirements. Turns out the work done is unsuited for it. Boggles the mind how much resources are wasted on such things.

                Feels extremely unrewarding to have worked, relatively hard, for half a year, and the fruits of my labour is… getting to the point where the actual problems are solved. Which one could have done from day one, if one had started in a team without wrong preconceptions, or, no team, for that matter.

                • Daxtron2@startrek.website
                  link
                  fedilink
                  arrow-up
                  2
                  ·
                  1 year ago

                  Yeah I would not like that situation at all. I was very adamant about not starting our latest project until we had firm requirements. Of course that didn’t happen but I was very careful about designing in a way to be flexible enough to change to requirements. Had a major change halfway through but only lost a week or two which could’ve been much worse.

  • Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    31
    arrow-down
    2
    ·
    1 year ago

    This one’s a hot take, but: That Python is easy.

    I’ve had to work with it in three projects in the past five years and I consider it one of the hardest programming languages, for anything but very short scripts.

    You don’t get proper compiler assistance, unless you have 100% test coverage. You don’t get a helpful text editor. You don’t usually get helpful type hints in libraries you use, so you have to genuinely just study the documentation and/or code. You get tons of quirky behavior in the stdlib, build tools, async stack, imports. You get breaking changes in minor versions of the language.

    I find writing code in Python extremely mentally taxing, because you just get so little assistance, that you have to think of everything yourself.

    • ursakhiin@beehaw.org
      link
      fedilink
      arrow-up
      9
      ·
      1 year ago

      I think Python is easy to learn but difficult to get past the basics. I’m also not convinced that getting past the basics is even worth it in three long run. I say this as a person who has used all Python at work for roughly 70 percent of the last 15 years. My current position is moving to Rust and my last 2 positions were moving to Go. Everybody was happier.

    • aluminium@lemmy.world
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      1 year ago

      Agree, also just in general I find many things Python very odd and syntactically isolated to some extent. Constructors, lamba, dictionaries in particular are extremly whack.

    • alsimoneau@lemmy.ca
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      I’m a scientist that has been coding almost exclusively in Python for the past decade and I strongly disagree.

      Python is great at being the glue that holds everything together, and everything crunchy part of the program is being handled by a library anyways.

      I code with two terminals, one for iPython and one for vim. And you don’t need anything else. The beauty of Python is that it’s not a language that is so full of boilerplate that you need an IDE to type it for you to be remotely productive.

      Overall, Python is a language made to be used by people that need to make something that just works and don’t need to spend years learning programming paradigms and industry practices. Fortran and C are so unwieldy in comparison and everything more modern lacks the expansive and diverse libraries of Python.

      • Feathercrown@lemmy.world
        link
        fedilink
        English
        arrow-up
        4
        ·
        edit-2
        1 year ago

        Overall, Python is a language made to be used by people that need to make something that just works

        This is why you find it easy, and why the person you replied to finds it a big pain. The friction other languages would give you exists to provide structure on a larger scale that makes that guy’s work easier. Like you implied, different languages for different jobs.

  • BrianTheeBiscuiteer@lemmy.world
    link
    fedilink
    arrow-up
    30
    arrow-down
    1
    ·
    1 year ago

    I’ve got a lot of these.

    Programming is not doing leetcode problems all day long. Those problems can be a good brain exercise or a good prep for a [misguided] technical interview but in a real programming job you have next to no chance of running into problems like those. Even if you do, you’re an idiot if you spend hours toiling away at a problem that somebody else already solved much more efficiently than you will. Your boss doesn’t give a crap if you pulled all of the code straight from your brain.

    Programmers are not hackers. The reverse might be true but hacking is about finding problems (and exploiting them) while programming is about fixing problems.

    A programmer can do anything that involves code. Maybe not quite this succinct but I think most will assume you can write a mobile app or a website just because you say you can code. Websites, games, apps, and so on are written in code but they all involve different technologies, toolsets, and standards. I’m sure I could fumble my way through any kind of software but don’t expect it done quickly if it’s not my area of expertise.

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      10
      arrow-down
      1
      ·
      1 year ago

      I’m pretty sure that when programmers and other techies call themselves “hackers”, they don’t mean in the security-breaching sense. It means that you can “hack together” something.

    • abhibeckert@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      1 year ago

      Programmers are not hackers. The reverse might be true but hacking is about finding problems (and exploiting them) while programming is about fixing problems.

      You have to find a problem before you can fix it. All good programmers are hackers.

      • BrianTheeBiscuiteer@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Programmers have the source code right in front of them, hackers usually don’t. It’s quite amazing what they can do taking shots in the dark.

        • anti-idpol action@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          depends. Desktop code, sure, reverse engineering from assembly takes some time but some good dissasemblers might be able to produce some C skeleton to start from. Though you might get lucky just exploiting the supply chain of bloated open source with a hellton of vulnerabilities deps/infra like glibc, apache or sudo.

          But web code? Sure, minifiers exist but not every website uses them and even if their do, thanks to all the new stuff since ES5 you can for example spend way less time doing something like finding a Math.random() based, ergo cryptographically utterly broken PRNG.

          Or for example you can easily rule out whether the website uses header-to-cookie based CSRF protection by just checking the console on any authenticated write-like request. The rest could be automated with things like zaproxy or selenium/curl-impersonate/puppeteer scripts.

          • BrianTheeBiscuiteer@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            “Hacking” also has plenty of specialties like programming. When I think of hacking my first thought is remote, non-http services. Webservers are fair game for hacking but they’re also meant for public consumption so I’d guess monitoring is a bit more severe (not that companies don’t skimp on intrusion detection).

    • anti-idpol action@programming.dev
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      tbh the biggest upside of competitive programming sites was when I finally learned some Scala so that I can feel smug about my elegant one-line solutions dabs in a very specific way that makes my arms resemble a lambda /s

  • jplee@lemmy.world
    link
    fedilink
    arrow-up
    29
    ·
    1 year ago

    Programming != Computer Science. Programming is just a tool used in computer science. Computer Science is so much more and follows scientific theory and methodology.

    • anti-idpol action@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      CS is also what most problems on leetcode and the like are about. Programming is just application of CS concepts, usually wrapped in several layers of abstraction, to domain specific problems. But I’ve never seen a job posting for a computer scientist specifically, yet we all know how it often looks like.

    • anti-idpol action@programming.dev
      link
      fedilink
      arrow-up
      3
      ·
      edit-2
      1 year ago

      especially if the other person uses some stupid bloat like MIUI. I assume under the hood it must be a real hot mess if in the process of adding new features they broke support for standard stuff if last time I needed to do something on two people’s xiaomis these shitboxes didn’t show a password below the wifi qr code and it has this thing with accent colors derived from wallpaper but absolutely no control over it unlike in standard android despite the fact that it landed two major releases ago.

  • Cyclohexane@lemmy.ml
    link
    fedilink
    arrow-up
    27
    arrow-down
    1
    ·
    1 year ago

    Requiring a candidate to know a specific programming language is stupid. Nearly all of the commonly used languages in industry are similar.

    It’s maybe more valuable to require knowledge in a specific framework, where knowledge is less transferrable between popular frameworks. Nonetheless, I personally rather hire an engineer that solves problems and learns flexibly rather than one that happens to know the right tech.

    • AnyOldName3@lemmy.world
      link
      fedilink
      arrow-up
      6
      ·
      1 year ago

      I’d say this is pretty dependent on the language. For example, with C++, you need to micromanage (or at least benefit from micromanaging) a lot of things that you can get away without knowing about at all with other languages. That stuff takes time to pick up if you’re self-teaching as you can write stuff that looks like it works without knowing its half as fast as it could be because you aren’t making use of move semantics, and if a colleague is teaching you, then that’s time they’re not spending directly doing their own work. On the other hand, someone with Typescript experience could write pretty decent Javascript from the get-go.

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

        C++ is unique in that it is wildly dominant in its niche. I am sure that any developer who has worked with another object oriented, manually memory managed, systems programming language (are there any other popular ones out there?) should have no trouble picking up C++.

        • AnyOldName3@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          1 year ago

          There are other rarely-used C+±like languages that fit your criteria, and they basically all aim to eliminate the kind of thing I was talking about. If someone was used to one of those and tried picking up C++ for the first time, they’d probably end up with working, but unnecessarily slow C++, having assumed the compiler would do a bunch of things for them that it actually wouldn’t.

          The popular low-level systems programming languages that aren’t C++ are C and Rust. Neither is object-oriented. C programmers forced to use C++ tend to basically write C with a smattering of features that make it not compile with a C compiler, and produce a horror show that brings out the worst of both languages and looks nothing like C++ a C++ programmer would write, then write a blog post about how terrible C++ is because when they tried using it like C, it wasn’t as good at being C as C was. Rust programmers generally have past experience with C++, so tend to know how to use it properly, even if they hate the experience.

    • neomachino@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      I generally agree with this, there’s specific circumstances but for the most part its true.

      I went from a C# position to PHP, to Python, to perl all with little or no experience with what I was jumping in to. There’s different nuances and the syntax might take a bit to get used to but as long as someone understands the how and why of what their code is doing that can be pretty easily transfer to most other languages. It’s all about the fundamentals.

    • onlinepersona@programming.dev
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      1 year ago

      It’s not a black and white issue. “Jack of all trades, master of none” vs “expert of one”. Both have their place and I think it’s better to have a mix than just one or the other.

      I’ve seen python newcomers writing code as if they were writing in another language. They don’t know about dataclasses, operator overrides, __init__ vs __new__, metaclasses, __init__.py vs __main__.py, @property, match, the walrus operator, or assignments, or the common pitfalls of python like mutable defaults, type hints, and a bunch of other things.
      Knowing a language in-depth helps write DRY code, avoiding common pitfalls, handling things better like debugging, profiling, and other tooling, and avoiding pitfalls of the language, which newcomers have to first learn, regardless of how their experience with other languages.

      A lot of stuff is transferable, for sure, but every language uses different idioms, covers different paradigms, and so on. It’s good to have at least one expert on the term to teach others, and to have people flexible enough to switch of willing to learn. Having only experts can mean a static team unwilling to experiment or use better programming languages or technologies. Having only beginners or mediors of a language can produce functional, but sub-optimal code. YMMV

      CC BY-NC-SA 4.0

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

      It is better to find a developer that has experience with the language features you use rather than one that is experienced in the exact language you use. For example, I work on distributed systems in Java/GoLang/Python. We want candidates that understand how to write concurrent logic and stay away from people who are just Java web developers.

      The big issue is doing a coding interview with candidates. We have a standard straightforward problem that candidates need to solve by filling in a stubbed out method. We have it in Java and have ported it to GoLang. If we have to interview a candidate who does not know either of those languages, we would need to find a language that the candidate knows and we know well enough to port the problem to. We would also have some difficulty digging in to design specifics like choice of concurrency primitives.

  • stoly@lemmy.world
    link
    fedilink
    arrow-up
    24
    ·
    edit-2
    1 year ago

    Honestly? The people who say “learn to code” as the solution to getting a better job. Only some people can do this.

    Also the idea that tech “just works”. Have had freshly-minted CS/info types suddenly realize why the phrase “back away slowly” exists.

    • Asafum@feddit.nl
      link
      fedilink
      arrow-up
      8
      ·
      1 year ago

      I learned this the hard way like 3 times lol

      I keep trying to “better myself” by learning programming, but I’m just a fucking moron, I’m not capable. That and I really have 0 interest in it, but I can’t make enough to survive as a single individual being a fucking moron…

      • stoly@lemmy.world
        link
        fedilink
        arrow-up
        2
        arrow-down
        4
        ·
        1 year ago

        The people who really succeed are the ones so obsessed with tech that they wrote their first app at the age of 10 and were in the high school robotics club.

        • anti-idpol action@programming.dev
          link
          fedilink
          arrow-up
          4
          arrow-down
          1
          ·
          1 year ago

          only if the definition of success excludes having a stable, well paying position working for someone. I wrote some websites for fun at the age of 13, got into Linux at 12 but does anyone care? No, because that’s not commercial experience and that’s what matters in the world of job postings written mostly by non-technical people.

          • stoly@lemmy.world
            link
            fedilink
            arrow-up
            1
            ·
            1 year ago

            Yeah, that’s totally exactly what I was saying, thanks for being charitable in your interpretations.

            People who do what I suggest are very interested and driven, and will pursue a career in these fields.

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

          Nope. I only learned to use computers as an adult, and only learned programming incidentally as a tool for other work.

          The truth is that it’s actually much faster to learn as an adult, you just have more momentum if you start as a child.

  • CodeBlooded@programming.dev
    link
    fedilink
    arrow-up
    22
    ·
    1 year ago

    The misconception that we’re the person to go to to fix your printer…

    …I mean we probably can fix it, but it’s a waste of our time…

  • aluminium@lemmy.world
    link
    fedilink
    arrow-up
    23
    arrow-down
    3
    ·
    edit-2
    1 year ago

    You NEED to be good be in math to program.

    Whilest for some highly specialist fields you definitly do, but for a lot of jobs things don’t get more complex than calculating averages.

    • lolcatnip@reddthat.com
      link
      fedilink
      English
      arrow-up
      32
      arrow-down
      2
      ·
      1 year ago

      OTOH, you need to be good at the same kinds of reasoning that leads one to be good at math. Not knowing much math isn’t a problem, but not being able to learn math is probably a dealbreaker.

      • Landless2029@lemmy.world
        link
        fedilink
        arrow-up
        10
        arrow-down
        1
        ·
        1 year ago

        Nail on the head.

        The reason programming curriculums are so math heavy is because of teaching logic.

        You’re either right or wrong in math. There is ONE answer to the formula. You can sometimes get there different ways though. The logic on your path is the key.

      • saplyng@kbin.social
        link
        fedilink
        arrow-up
        4
        ·
        1 year ago

        I’d I unironically say that philosophy and logic classes are extremely helpful for programming.

        • lolcatnip@reddthat.com
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          When I was in college I took a symbolic logic class taught by the philosophy department that was indeed useful. OTOH, I was told later it was originally created as a CS class and only moved to the philosophy department for political reasons.

    • Redkey@programming.dev
      link
      fedilink
      arrow-up
      11
      arrow-down
      2
      ·
      1 year ago

      I’d argue that you do need to be good at math to be an effective programmer, it’s just that that doesn’t mean what a lot of people think it means. You don’t need to know all the ins and outs of quadratics, integrals, and advanced trigonometry, but I think you do need to have a really solid, gut-level understanding of basic algebra and a bit of set theory. If you’re the sort of person whose head starts to swim when you see “y=3x+2”, you’re going to find programming difficult at best.

    • callouscomic@lemm.ee
      link
      fedilink
      English
      arrow-up
      5
      arrow-down
      1
      ·
      1 year ago

      I don’t think it’s so much about the actual math, but learning good logic and problem solving skills, which math helps with.

  • Cyclohexane@lemmy.ml
    link
    fedilink
    arrow-up
    18
    ·
    1 year ago

    Some programmers are software engineers. They solve problems, sometimes problems with great ambiguity or non-straightforward solutions.

    And some programmers are… code technicians? They understand and write code, but their job seldom involves problem solving. Often times, they’re asked to code an already solved problem, or mostly solved.

    This is not a diss. I was in the second camp for a while. But it hurts your career to stay in that. So be careful.

    • souperk@reddthat.com
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      1 year ago

      Totally agree, I had the fortune to read Domain Driven Deign by Eric Evans early in my career. While, the book may be outdated, it helped me understand that my job is to turn the unknown or ambiguous into code. I find that much more exciting than being a coder.

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

      Same. Writing code is FUN! However that’s not the only goal there is. It’s a part of the puzzle. Perhaps it takes some maturity to reach that point.