Ask HN: Why is there so much intellectual posturing among engineers?

7 points | by The_Workplace 1679 days ago

4 comments

  • ScottFree 1679 days ago
    A lot of developers focus so much on work that it's all they have in life. They define their very identity by it. A lot of them think "If I'm not good at programming, what am I?"

    But, what exactly is a good programmer? There are no objective metrics to measure programming aptitude. Interviews would be a hell of a lot simpler if there was. If there is no objective measure, then how do I know I'm a good programmer? The only observable metric available is if other programmers think I'm a good programmer.

    The combination of the above facts are a recipe for lifelong insecurity, anxiety and posturing. Personally, I think most developers would benefit from achieving mastery in something unrelated to programming in the physical world. Team sports, weight lifting, Leather working, Woodworking, etc. It boosts confidence.

  • codingslave 1679 days ago
    Because top companies hire people by what are essentially IQ tests. High levels of intellectual ability allow you to write software with better abstractions and cleaner interfaces. Complex software engineering is inherently tied to innate ability, as painful as it is to admit. There are limits to this craft, and without speaking of them, people implicitly understand what it means when someone is a very good programmer.
    • nxsynonym 1679 days ago
      These interviews are faux IQ tests though. More often than not these interviews tests a candidate's ability to research interviews and their ability to practice brain teasers and memorize common algorithmic solutions.

      > Complex software engineering is inherently tied to innate ability, as painful as it is to admit.

      Highly disagree. There is nothing in the field of programming that cannot be taught or learned. Being a good programmer doesn't make you smarter or better than an average programmer, or a non programmer, as painful as it is to admit.

      My take is that the intellectual posturing comes from a social context, and has nothing to do with ability. People love to feel special, and pretending that you have to be a genius to be a top level programmer is easier (and nicer to the ego) than accepting that perfectly average people can excel in this field.

      • codingslave 1678 days ago
        >Highly disagree. There is nothing in the field of programming that cannot be taught or learned. Being a good programmer doesn't make you smarter or better than an average programmer, or a non programmer, as painful as it is to admit.

        This is like arguing that there is nothing in mathematics that cannot be learned. Some people are simply not able to understand calculus, let alone measure theory and topology. Even fewer can take those abstractions and apply them to new domains.

      • theamk 1678 days ago
        That sounds awfully arrogant. Do you really think that no one around you is smarter than you are?

        I know there are some people in my workspace who are write software faster than I do, and their results are more maintainable than mine. This cannot be something that is "taught or learned", as I had years of experience in the field, while they had to learn it. The only explanation I have is the innate talent.

        (disclaimer: this was not web, so no "technology of the day" problems)

        • obstacle1 1678 days ago
          > This cannot be something that is "taught or learned", as I had years of experience in the field, while they had to learn it.

          What? This can't be learned, but they learned it? Why isn't it possible that they learned to write more maintainable software faster than you?

          • theamk 1678 days ago
            The ability to enter unknown area and start writing good code fast is (mostly) innate. While there are some tricks and common knowledge which can make it faster, I think it is mostly the inherent talent.
    • astrodev 1678 days ago
      > High levels of intellectual ability allow you to write software with better abstractions and cleaner interfaces.

      If anything, the opposite is true in my experience. People trained in writing clean interfaces write clean interfaces. The very purpose of abstractions (etc.) is to reduce the cognitive load on the programmer. The dumber the programmer, the more he needs those things.

  • karmakaze 1677 days ago
    I haven't found this to be the case in most places I've worked. Notable exceptions were a startup where everyone was just trying to figure each other out or had mental energy they had to find a way to use up. Rarely there will be that person that's annoyingly trying to 1-up everything but that's not too common.
  • s188 1679 days ago
    The hardware engineering world (oil and gas, aerospace, civil) is less about ego and more about well established processes, practices and rules. These are much more mature industries than the software industry. In my experience intellectual posturing is much more a software industry thing than a hardware industry thing. Software developers are still struggling to figure out what's the best way to do things. SOLID, YAGNI, Agile, RUP, RAD, Clean Code, OOP/FP - they're all just the start of a maturing process. They will no doubt be superseded in time by other, better practices, just as they have superseded others. In mature engineering industries, the engineering rules and practices are well establishes. Much of this has come about because of accidents (and death - planes crashing, bridges collapsing, oil rigs exploding) and the court cases that follow. In the early oil industry health and safety mattered little. Same goes for the aerospace industry. These are hard lessons to learn and practices had to change. The cost of not changing was uneconomical.

    The software industry is still growing up and best practices still have to be formally established. All the articles and books written about best practices in software - they're just the beginning - and most are probably wrong to some extent. Where does the intellectual posturing come from in the software industry? It's largely because of a lack of provably reliable practices and processes. The ones we have, are sold to us as 'the best thing' but they will eventually be found wanting. Ron Jefferies recent article about software estimating is a classic example (https://ronjeffries.com/articles/019-01ff/estimation-again/I...). Some people are so fed up with how unworkable estimating is that they're willing to ditch it entirely.

    And so, in the absence of mature, provably reliable practices and processes the way is open to 'who's ego is the biggest' because those with big egos (but not necessarily a lot of experience) often think they know best (Dunning-Kruger). Their proposals (which are just as likely to be wrong as anyone else's) tend to be adopted simply by force of ego. For instance, you wont hear terms like 'code smells' in the hardware world (I worked as a software developer in oil and gas and rail transport for 30 years and never once heard it mentioned). To say "that's a code smell" is a kind of intellectual put down. It's intended to insult a developer into doing something differently and thereby elevate the speaker as someone who 'knows the right way'. Eventually, these things will disappear and the software world will have reliable, accurate processes, practices and rules and the 'code gurus' will be consigned to history.

    And that's when the intellectual posturing will end.