• Dr. Wesker@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    46
    ·
    edit-2
    9 months 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.

      • AggressivelyPassive@feddit.de
        link
        fedilink
        arrow-up
        7
        ·
        9 months ago

        But programming is definitely more open to the idea of people just showing up and claiming to know stuff. You wouldn’t trust Steve to build a bridge just because he watched a bunch of engineering videos on YouTube.

    • pearsaltchocolatebar@discuss.online
      link
      fedilink
      arrow-up
      6
      arrow-down
      4
      ·
      9 months ago

      Eh, I’m naturally good at it. I got shoved into the programming UIL group in school with absolutely no background in programming and tied for 3rd place.

      But, I really don’t enjoy doing it.

  • Addv4@kbin.social
    link
    fedilink
    arrow-up
    39
    ·
    9 months 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
      12
      ·
      9 months 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
        9
        ·
        9 months 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?

    • jadero@programming.dev
      link
      fedilink
      arrow-up
      4
      ·
      9 months 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.

  • halloween_spookster@lemmy.world
    link
    fedilink
    English
    arrow-up
    34
    ·
    9 months 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

  • Ephera@lemmy.ml
    link
    fedilink
    arrow-up
    31
    arrow-down
    2
    ·
    9 months 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.

    • AggressivelyPassive@feddit.de
      link
      fedilink
      arrow-up
      18
      arrow-down
      1
      ·
      9 months ago

      Dynamically typed languages all suffer that fate. There’s a reason Typescript literally has that feature in its name.

      What does help though is type hinting. You “just” have to enforce it and its fallout in your entire codebase.

      • Ephera@lemmy.ml
        link
        fedilink
        arrow-up
        9
        arrow-down
        1
        ·
        9 months ago

        Yeah, we invested a lot of time into type hinting and checking, but mypy would never exit without warnings and errors, because many libraries we were using had no type hints.
        It was also just exhausting/cumbersome, having to write type hints everywhere, as there’s no type inference.

        But yeah, we always joked that someone should create TypeScript for Python – Typhon.

        • abhibeckert@lemmy.world
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          9 months ago

          Part of the investment has to be only using libraries that have type hints.

          But yeah - I definitely prefer strongly typed languages. Or at least languages like Swift where you have to jump through a few hoops to have a dynamic type (in Swift there is an “Any” type but you have to write a bunch of code checking what the variable contains before you can actually worth with it). Basically you have to convert it to a static typed variable before it can be touched. Thankfully there’s pretty good syntax for that. Including an arbitrary way to convert almost anything to a string (essential for debugging).

    • ursakhiin@beehaw.org
      link
      fedilink
      arrow-up
      11
      ·
      9 months 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.

    • Rimu@piefed.social
      link
      fedilink
      arrow-up
      7
      ·
      edit-2
      9 months ago

      Try the PyCharm IDE. It’s really smart and helpful. The free ‘community edition’ is fine.

      • Ephera@lemmy.ml
        link
        fedilink
        arrow-up
        12
        ·
        edit-2
        9 months ago

        I’m sorry to say this, but PyCharm is precisely what we were using. I do consider it the best Python editor, but it’s several classes below IntelliJ for Java/Scala/Kotlin or even the extremely new RustRover for, well, Rust. And I’d say roughly at the level of KATE (a non-smart text editor) with just the rust-analyzer language server hooked up.

        It is extremely impressive what PyCharm manages to analyze in Python, but other languages offer similarly good tooling out of the box, or make such analysis much easier by having static types.

    • aluminium@lemmy.world
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      9 months 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.

    • driving_crooner@lemmy.eco.br
      link
      fedilink
      arrow-up
      5
      ·
      9 months ago

      I don’t know if i qualify as a full programmer, I’m an actuarie but 90% of my work is in python, 5% SQL and 5% excel. I love python because is flexible as fuck, I can connect to the SQL server, send the queries to a pd.DataFrame, process the information, scrap some webpage for adicional information needed, and finally export to an excel file that the accounting team can use. I don’t write fully functional programs, but small specific scripts for different tasks. R is another popular programming language between actuaries and statisticians, but I haven’t find anything that R can do, that I can’t in python.

      • Feathercrown@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        9 months ago

        I’d say if you program then you’re a programmer. What you’re thinking of is more of a software engineer, ie. someone who architects and creates software.

      • TehPers@beehaw.org
        link
        fedilink
        English
        arrow-up
        1
        ·
        9 months ago

        Might just be my inexperience with the library, but every time I end up with a pandas dataframe, I spend the next 4 hours trying to figure out the right sequence of index statements and function calls to get the data in the order I want. It always ends up feeling like I’m doing something wrong, and the only way to really tell is to run the code as far as I can tell. I don’t use dataframes very often though, and I’m sure it gets easier with experience.

        • ResoluteCatnap@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months ago

          My general dev experience is limited mostly to python but with pandas one thing you can do is set up a jupyter notebook so you can run just the parts you want until it’s working as expected, then you can move it over to your python script when you’re ready.

          But working with pandas does get easier with practice. If you’re wanting to dive in a bit more, the “getting started” page has a tutorials section which features a 10 minute high level overview, a cheatsheet, and link to some community tutorials.

      • SorteKanin@feddit.dk
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        9 months ago

        I don’t write fully functional programs, but small specific scripts for different tasks.

        This is exactly why your experience is different and you like Python better than many others. You are using Python as it was meant to be used and where it excels; for small scripts.

        When people say they don’t like Python they mean that Python does a really, really bad job when it comes to larger systems. Static analysis becomes exponentially more important in larger systems and Python has basically 0 of that.

        But as long as you stick to relatively small stuff (less than a few thousand lines), Python is pretty nice and fast to develop in.

    • alsimoneau@lemmy.ca
      link
      fedilink
      arrow-up
      2
      ·
      9 months 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
        2
        ·
        edit-2
        9 months 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.

  • jplee@lemmy.world
    link
    fedilink
    arrow-up
    28
    ·
    9 months 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.

      • abhibeckert@lemmy.world
        link
        fedilink
        arrow-up
        8
        arrow-down
        2
        ·
        9 months ago

        A better analogy is writing vs writing.

        Do you know how to hold a pen and draw letters? You can write. Do you want to write a best selling novel? Yeah that’s a different skill.

  • tatterdemalion@programming.dev
    link
    fedilink
    arrow-up
    28
    ·
    9 months 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
      8
      ·
      9 months 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
        5
        ·
        edit-2
        9 months 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.

    • waz@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      9 months 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.

  • stevecrox@kbin.run
    link
    fedilink
    arrow-up
    29
    arrow-down
    2
    ·
    edit-2
    9 months ago

    Technical Leads are not rational beings and lots of software is developed from an emotional stand point.

    Engineering is trade offs, every technical decision you make has a pro/con.

    What you should do is write out the core requirements/constraints.Then you weigh the choices to select the option that best meets it.

    What actually happens is someone really likes X framework, Y programming language or Z methodology and so decides the solution and then looks for reasons to justify it.

    Currently the obvious tell is if they pitch Rust. I am not saying Rust is bad, but you’ll notice they will extoll the memory safety or performance and forget about the actual requirements of the project.

    • abhibeckert@lemmy.world
      link
      fedilink
      arrow-up
      23
      ·
      edit-2
      9 months ago

      Currently the obvious tell is if they pitch Rust

      I would amend that to “if they pitch any language”.

      The best language is almost universally “whatever we already use” or for new projects “whatever the team is most familiar with”. It should occasionally be reconsidered, and definitely try out new languages, but actually switching to the new language after trying it out? That should be very very rare.

      • stevecrox@kbin.run
        link
        fedilink
        arrow-up
        10
        arrow-down
        2
        ·
        edit-2
        9 months ago

        The team/organisations knowledge is a huge factor but its easy to fall into a trap where no matter what the problem is the solution is X language.

        If I have an organisation that knows C# and we need to build a Web Application. I would suggest we need to learn Node.js and Typescript and not invest in a solution that turns C# into web pages.

    • LoamImprovement@beehaw.org
      link
      fedilink
      arrow-up
      2
      ·
      9 months ago

      I know they make a joke about Tom in office space being the one who brings the specs from the customers to the engineers - as much as it looks like he’s dead weight, there really is a skill in being able to explore the customer’s needs (and frequently manage their expectations of what the proposed software should be and do) and parse them into something more technical for the engineers, because you might not know how to program, but you’ve got a good idea of what the capabilities are because you communicate with the engineering team on a daily basis.

  • BrianTheeBiscuiteer@lemmy.world
    link
    fedilink
    arrow-up
    26
    arrow-down
    1
    ·
    9 months 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.

    • AggressivelyPassive@feddit.de
      link
      fedilink
      arrow-up
      8
      ·
      9 months ago

      Especially regarding the first one: this seems like a very US-centric thing - or maybe a non-german thing. I’ve been in a bunch of interviews on both sides of the table here in Germany and I’ve literally never encountered a single leetcode question. At all.

    • BatmanAoD@programming.dev
      link
      fedilink
      arrow-up
      7
      arrow-down
      1
      ·
      9 months 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
      2
      ·
      edit-2
      9 months 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.

      • Sickday@kbin.run
        link
        fedilink
        arrow-up
        4
        ·
        9 months ago

        You don’t need to be a hacker to find those problems. You need to be a good detective. All good programmers are detectives.

        • fkn@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          9 months ago

          I don’t think either is actually true. I know many programmers who can fix a problem once the bug is identified but wouldn’t be able to find it themselves nor would they be able to determine if a bug is exploitable without significant coaching.

          Exploit finding is a specific skill set that requires thinking about multiple levels of abstraction simultaneously (or intentionally methodically). I have found that most programmers simply don’t do this.

          I think the definition of “good” comes into play here, because the vast majority of programmers need to dependably discover solutions to problems that other people find. Ingenuity and multilevel abstract thinking are not critically important and many of these engineers who reliably fix problems without hand holding are good engineers in my book.

          I suppose that it could be argued that finding the source of a bug from a bug report requires detective skills, but even this is mostly guided inspection with modern tooling.

      • BrianTheeBiscuiteer@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        9 months 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.

  • I Cast Fist@programming.dev
    link
    fedilink
    arrow-up
    22
    arrow-down
    1
    ·
    9 months 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.

  • aluminium@lemmy.world
    link
    fedilink
    arrow-up
    21
    arrow-down
    3
    ·
    edit-2
    9 months 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
      34
      arrow-down
      2
      ·
      9 months 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.

      • MaoZedongers@lemmy.today
        link
        fedilink
        arrow-up
        10
        ·
        9 months ago

        I’m bad at math and struggled heavily through calc 2 and barely passed with a D+ but had little issue with data structures and algorithms (except when the algorithms were written in math notation, but still got through it after being explained in a logical set of steps instead).

      • Landless2029@lemmy.world
        link
        fedilink
        arrow-up
        8
        arrow-down
        1
        ·
        9 months 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
        3
        ·
        9 months ago

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

        • lolcatnip@reddthat.com
          link
          fedilink
          English
          arrow-up
          1
          ·
          9 months 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
      10
      arrow-down
      2
      ·
      9 months 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
      7
      arrow-down
      1
      ·
      9 months 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.

  • CodeBlooded@programming.dev
    link
    fedilink
    arrow-up
    14
    ·
    9 months 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…