Ask HN: Why is there so much intellectual posturing among engineers? - The_Workplace
======
ScottFree
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
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
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.

~~~
theamk
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
> 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
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.

------
karmakaze
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
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...](https://ronjeffries.com/articles/019-01ff/estimation-
again/Index.html)). 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.

