
Ask HN: What is the most surprising technical skill you possess? - endswapper
I&#x27;m hoping to get responses from a programmer&#x27;s perspective.<p>The emphasis here is on practical usage&#x2F;benefit (productivity, efficiency, simplicity, etc.).<p>By surprising, I mean what has shown you the greatest returns, though it was not an emphasis in a curriculum or hiring.<p>For example, something you learned when you were 12 you found not many people understand or use, but has served great productivity. Or it could be something that everyone knows, but doesn&#x27;t use because of a trend, or some other reason.<p>It could be a language or a tool, just something technical that you never realized would be so useful.
======
jasonkester
Computer Programming.

I grew up in the C64/Apple II age when computers were cool and all, but still
kinda toys. "Computer Programmer" was a job title, but not a very good one.
Certainly not a well paid profession or one with any hope of advancement or
prestige. The best you could hope for was a job in the basement at some
Fortune 500 company or maybe scraping by at one of the little companies making
video games or that "MicroSoft" place in Bellevue where they made "Mouse" and
a few other things for PC clones.

So despite spending most of my youth getting _really good_ at programming, it
never occurred to me, even for a second, to study it at University or try to
turn it into a career. The smart move for a smart guy was Engineering, so I'm
officially a Mechanical Engineer by trade.

But then 1995 happened and suddenly Hello World + Angle Brackets was all the
skill set you needed to name your price in the DotCom world. Suddenly all
those years of building games where you pilot a little asterisk around the
screen with a joystick shooting lower-case o's at things changed from being
"waste of time" to "most valuable skill in the world", so I pivoted quick.

I never would have believed it had you told me. But I'm certainly glad it
happened.

~~~
ahazred8ta
Bravo. For folks who are listing soft skills, iirc the OP wants under-
appreciated TECHNICAL skills.

------
brudgers
Empathy.

It seems to be the basis for the small degree of mechanical sympathy I have
because it makes me stop and think, 'why does someone else think this is the
right way of doing things?'.

Good luck.

~~~
endswapper
I had something else in mind, but this certainly qualifies, and there is
tremendous value for you, and "the greater good," in actively asking yourself
that question. It adds perspective to the discussion as well. Thank you for
the input.

~~~
friddz
Saw Myles Borins give a talk about Empathy on JSConf Iceland last week, one of
the best talks of the conference and some really good points there. The talk
is not available online (yet!) but I know it will be soon at
[https://2016.jsconf.is/](https://2016.jsconf.is/) but I found this talk by
him which seems to be based around the same concept:
[https://www.youtube.com/watch?v=GKTSvI8qw_M](https://www.youtube.com/watch?v=GKTSvI8qw_M)

Can't recommend it highly enough.

------
SmellTheGlove
Understanding data. I've always had a fairly easy time learning core business
processes and tying the data I'm looking at back to the activity that
generated it. It's been really useful in managing analytics and data services
because nothing I work with is a bunch of rows and columns without meaning to
me, and as a result, I can deliver information based on what a given group is
trying to accomplish (versus what they asked for, which is almost always
different than what they actually need). It's also why I enjoy managing
people. I usually bring on technically gifted people and help them learn the
business, as that combination of skills has been the rarest thing of all for
me to try and find when hiring. I work in a corner of the insurance industry
that most consumers probably never see, but I like to think I make my own
little impact when some of the people I develop move on to bigger and better
things at companies we've all heard of. I know I'm off on a tangent, but if
you're working in an analytic space, make time to learn the business and it
will pay off in the long run.

I've been writing code since I was a kid, got an economics degree, then went
to law school and practiced law for a while. Identifying objectives and
finding the data that suits it has always been fun for me. Not surprising (to
me, anyway), my career moved back from law to managing data and analytics as
products.

~~~
endswapper
+1 for tangent...I mean context, explanation and relevance. I appreciate the
complete response.

~~~
SmellTheGlove
I like my tangents. Occasionally I think I should try and keep it under
control, but some of my best ideas have started off as tangents and eventually
realized as root causes and such.

------
Tcepsa
The ability to use Emacs with a decent degree of proficiency. I find its text
navigation abilities beyond compare. This is huge for me since I write
software and and the creation of software generally involves a lot of text
manipulation. This is perhaps less of an edge now that other IDEs are better
at autocomplete and jumping around the code than they were when I started
learning Emacs.

On the other hand, the fact that I can write Windows applications, compile
them using Microsoft's compiler, launch them, and follow their log files _all
within Emacs_ is wonderful.

So between the keybindings, 3rd party packages, and flexibility it not only
makes me more productive but also helps me have more fun and stave off
burnout.

(EDIT: Readability)

~~~
endswapper
This is a great example of what I had in mind when I asked the question. I
used Emacs while exploring Lisp, and while I wouldn't claim proficiency, I
have an appreciation for it's power.

------
joshvm
Laziness - though of course when hiring you would bill it as efficiency or
"expertise in software automation". A PhD taught me that often the best way to
do things is the way that lets you press one button and have everything else
happen automatically.

Mostly it's to make life easier, particularly when 2 months down the line you
need to make a subtle code change and reprocess huge volumes of data. Being
able to start a script and go to bed, rather than continually change the
inputs, is a godsend.

I think this is likely a side effect of the "smart but lazy" geek trope,
except actually taking advantage of it rather than procrastinating.

~~~
marmot777
LOL

------
lj3
Pattern recognition.

When I started, all web development was server side preprocessing. This means
debugging involved looking at thousands of lines of apache logs. After a
while, you got good at picking out the lines you needed to see from the
hundreds of lines of stuff you didn't care about.

This specific example isn't that relevant to today's web development
processes, but being able to notice larger patterns in user behavior, in code
use, etc is invaluable.

------
rajacombinator
Knowing how to use Google really well so I can find answers to bugs,
tutorials, code snippets, etc. Learned the importance of this from a wise
older Chinese programmer at my first job ever, an internship: "I don't really
know how to code anything, I just copy it from Google."

~~~
greenyoda
I agree that being able to search effectively for information is an important
skill - I do it quite a bit. But if someone doesn't really know how to code
anything, doesn't that imply that they don't really understand how anything
really works? And if you don't understand how something works, how can you fix
it when something inevitably goes wrong?

~~~
kafkaesq
Of course you have to understand how things work.

But in terms of getting things _done_ , search engines can be amazingly
helpful.

 _But if someone doesn 't really know how to code anything, doesn't that imply
that they don't really understand how anything really works?_

Just because you know how to code doesn't mean you have to grind your gears
doing root cause analysis on every obscure error message that bubbles up --
when about 80% of the time you can just paste the message into a search
engine, and get a pretty good understanding within about 30 seconds. And save
your precious grey matter-accessible calories for the other 20%.

In fact, in many roles you'd be crippling yourself (and wasting your employers
money) if you _didn 't_ know how to use search engines effectively.

------
kwhitefoot
I don't think my skill is surprising but it is valuable nonetheless.

It is a willingness to see similarities instead of differences. This helps me
write compact, clean code that is reliable.

------
corford
Love this question!

Most surprising in terms of unexpected returns: learning to build my own PC
(Pentium 120MHz) at age 14 or 15 with parts from a local computer fair.

Searching and selecting the components and assembling everything by hand gave
me a very personal connection to the machine and turned a complex thing in to
something I felt I understood from first principles and could master and not
be afraid of. I've always hand assembled my main PC ever since and I credit
this ritual with all sorts of stuff:

\- Getting me confident early on to experiment and play around with the
machine knowing I could fix almost anything

\- Keeping semi current with hardware over the years and getting an early view
at the future (shift to almost limitless RAM, shift to multi-core, shift to
SSD) - and the implications for the software I write.

\- Understanding subtle hardware trade offs and constraints. This has helped
countless times when I'm speccing out servers or infrastructure for the code I
write (helps too when picking laptops !)

\- Making it obvious, fun and easy to indulge in things like Raspis, OpenWRT
etc.

\- Providing endless jumping off points to burnish my understanding of the
universe that makes up computing (different architectures, graphics
subsystems, disk controllers, network fabrics etc)

\- Getting me interested in the hardware and software history of computing and
what it looked like 20,30,40,50 years ago. This has helped me hugely in
understanding why things today are the way they are (programming languages,
operating systems, software abstractions etc)

That's just off the top of my head :)

------
mbrock
Debugging and the intuition for finding the cause of a problem. Well, part
intuition and part efficiency and pragmatism in following clues but not
getting stuck on bad leads. Willingness to go down in the muck with gdb and to
go back up again and consider workarounds and rewrites or whatever it takes to
fix the problem as cleanly and quickly as possible.

Another skill is learning my way around a code base even in an unfamiliar
language in a very short time, through a process of intense grepping,
skimming, guessing, taking notes, and so on.

Also a polyglot attitude that frees me from worrying too much about which
language is good and which is evil, and lets me work happily with all of them.
That's related to how I use Emacs without language modes (except paredit in
Lisp) so I never have to configure modes or colors or whatever.

------
tmaly
Self learning, being able to pick up a book and learn something new. My
university had a trimester system, and everything was fast paced. My
university really pushed this skill being on a trimester system.

------
flinty
Empathizing, giving people the benefit of doubt and assuming good intentions.

------
allendoerfer
The believe that you can accomplish anything, just divide and conquer.

~~~
marmot777
So your super power is self confidence? :-)

I'm serious. That IS useful.

------
eb0la
I am able to crash any piece of software or hardware. I still don't know if
this is a superpower but it helps a lot when designing stuff.

~~~
soulchild37
Same here, this power in invaluable to me while I was working as a software
tester previously.

------
marmot777
Synthesizing information or ideas into something useful, such as a complete
solution to a problem.

------
ak39
Proper relational data modeling.

~~~
marmot777
You had no idea that could possibly help you make some cash at some point? :-)

