Hacker News new | past | comments | ask | show | jobs | submit login

I was a HUGE nerd at highschool and I disagree with this article completely. I think nerds are unpopular at highschool because their intelligence is incomplete.

You see, Abstract thinking is only one of intelligence's dimensions. It will make you good at things like Math or Science. But there are other aspects. The one which is relevant to the article could be called social skills, or empathy. Successfully navigating human interactions takes a non-trivial amount of mental processing.

Some kids become popular "by default" (the rich guy. The prettiest girl). Others are naturals at social skills, just like some are naturals at Math. For the rest of us, the only option is getting better at it via practice.

In my case, I actually remember using the scientific method to improve my social skills. I formulated hypotheses, and tested them on my (extremely limited) social circle. Small talk was really difficult at first, until I discovered that teenagers love talking about themselves (I felt like I had discovered the fifth platonic solid with that one.). So I just asked them things about themselves and assumed the easier role of a listener instead of a "real speaker".

Gosh, I was such a nerd.

These days, I find that social skills complements my abstract-thinking intelligence in my job. I think empathy makes me a better programmer. I can totally spot code which was written by the socially challenged.




> I can totally spot code which was written by the socially challenged.

That sounds very interesting to me. Could you elaborate?


Hum. It is difficult without delving into specifics.

When I write code I'm always asking myself questions about future code readers. "Is this understandable enough? Are the identifiers concise? Is the intent of this method clear?". If I must spend 15 minutes on a dictionary looking for the exact name for an abstraction, I do so.

Code written by someone without empathy reads to me like its author has mostly asking himself questions related with functionality: "Does this work? Is this fast enough? Am I using an up-to-date API?". You get lots of names with 'info' or 'data' or 'manager'. Several things named the same way. The same thing named different ways in different places. Long methods, with tangled dependencies. Classes hiding inside other classes' methods. "Clever" code which uses obscure language features in non-standard ways. Etc.

Mind you - I also think about functionality, speed, etc. But most of my mental processing is dedicated to thinking about future maintainers.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: