
Experienced Programmers Use Google Frequently - perseus323
http://codeahoy.com/2016/04/30/do-experienced-programmers-use-google-frequently/
======
koolba
I not only use Google frequently, I use it to search for things I myself have
written in the past.

I can't count the number of times I've Googled for a programming question
where the answer is found on a Stack Overflow page I've written. If it's a
particularly old answer that I've completely forgotten, I've even thought to
myself, " _Wow this genius sounds just like me!_ "[1].

[1]: ... as well as " _This idiot has no clue what he 's talking about!_"

~~~
Keyframe
That and finding a question you've search for, only to find out that question
was also posted by you years ago. Bonus for ones with no answers still.

~~~
DanielBMarkham
Or a question you had years ago. Couldn't find an answer. So you did a
workaround and/or forgot about it.

Now you hit the same problem search -- and find you original question. But
wait! Now there are half-a-dozen other people with the same problem! So you
click on all of those links.

But none of them could find an answer either. Bonus points if there's a guy
who comes in condescendingly and quotes a manual or some other standard piece
of information -- which is also wrong. This is usually because they didn't pay
enough attention to understand the question in the first place.

~~~
Keyframe
I had a guy, on stackoverflow, commenting condescendingly on my question (or
was it an answer, can't remember) that I was wrong and I should edit my post
with his answer instead. All would be well if it wasn't on a 6 year old post
at the time, and he was wrong. Ah, stackoverflow - what happened to you? It
was fine and dandy when it was all loose. Now you ask a question and it's
immediately flagged for various reasons. I've noticed that a lot in
programming (I'm not actively programming anymore). It's always fun until the
entropy of the rigidness comes in.

~~~
arsenide
The one time I posted a question on SO, it got flagged as duplicate and there
were links to multiple other questions that were not even remotely the same to
mine. Even more so, the tagged questions were not even mutually the same!

It took two hours to carefully craft my question just to have it immediately
shot down. It is needless to say I have not posted again since.

~~~
thenomad
Yup. If I post anything on SO or related sites it's because I hope to get an
answer before the question is inevitably closed.

I just assume that my question won't fit their guidelines, regardless of what
it is, these days.

------
curtis
I often joke that my ability to formulate good Google queries is the single
most important part of my software engineering skillset. Except, you know, I'm
not really joking.

~~~
Touche
Related is being good at debugging. There's something about having a certain
intuition (in reality probably experience) on what it is that you are looking
for that is critical.

~~~
calgoo
Like when you are looking at live debugging information that is scrolling fast
but you are still able to pick out problems?

~~~
sleepychu
I think they mean looking for the value/path that doesn't make sense.

~~~
kpil
Yes. I see people getting hung up on irrelevant issues. It happens to me on
occasions, but some people seems to get stuck on side effects and irrelevant
errors and messages.

I find it to be very irritating if it happens for people that should know
better...

~~~
sleepychu
The important thing to remember is that as sure you are that they're wrong,
they're sure that they're right.

In general I find that asking them to explain _why_ they think this is causing
the behaviour you're seeing they can usually work out they're wrong/convince
you they're right. Of course this only works if they don't scream "I've found
the bug" every time you step forward.

------
nostrademons
Ironically, the one time that I did not use Google frequently (as a
programmer) was when I was working on Google Search. It's hard to Google the
answers for how the search engine works, particularly when they're locked up
in the heads of only one or two people.

Use it all the time otherwise, for personal projects and startups (really, all
of my startup ideas would be complete non-starters if Google didn't exist).
Just beware that if you can Google the answers, the skill is a commodity, and
that the real economic gains come from knowing things that nobody else knows.

~~~
ljw1001
When I'm trying to do something 'big', i start with the technical papers on
the subject. Often, I get those by finding the syllabus of a graduate class
(or classes) in the field.

Now that I understand the big picture/state of the art, I spend more time
looking for specific techniques using Google and/or Stack Overflow.

------
buserror
Another essential point here is when you get 'fancy' error messages. Google is
amazing at finding why (and usually, The Patch) when you fail to compile
random packages.

I have my own little cross-distro builder[0] and I /rarely/ bother trying to
dive into autoconf/make hell before cut+pasting the exact error message into
google! That very likely saved my sanity many times over :-)

Otherwise I agree with the article -- Given the number of environments and
languages around, actually 'knowing' trivialities like exact library names and
such is a waste of good neuron..

[0]: [http://github.com/buserror/minifs/](http://github.com/buserror/minifs/)

~~~
zachrose
Much like the sort algorithm that downloads and evals Stack Overflow answers
until the list is sorted, someone should make a build tool that Googles any
error output, installs possible patches, and restarts the build. It could even
see if adding the patch caused a new error and decide whether to roll back or
keep patching.

~~~
NobleSir
That seems like a pretty safe idea.

~~~
kuschku
Do it in a VM, and it is.

~~~
SCHiM
A VM is also just software, plenty of quest-to-host escapes in the last few
years...

I bet that many people that should know better here have never updated their
VM, except those who are warned by the auto updater that is.

~~~
ball_of_lint
I always put my vm to host escapes in the sort section of stackoverflow.

Not to say that this is not actually a security threat, but I would say a VM
is safe enough

------
sndean
> “Never memorize something that you can look up.” - Albert Einstein

Here's the actual [1], and perhaps more meaningful, quote:

"[I do not] carry such information in my mind since it is readily available in
books. ...The value of a college education is not the learning of many facts
but the training of the mind to think."

[1]
[https://en.wikiquote.org/wiki/Albert_Einstein](https://en.wikiquote.org/wiki/Albert_Einstein)

~~~
coldcode
Yet we force people in interviews to remember things standing in front of a
whiteboard.

~~~
kajecounterhack
How much you remember is also correlated to how much you actually use certain
things; it can be a good signal for whether you have practical experience with
X.

For some companies, it's what they need in a hire. For others it's OK to just
ensure people have a sound problem solving strategy and above-average general
cognition.

I think you'll find varying levels of what you might consider nitpicking
depending on the sort of company you're interviewing at.

~~~
at-fates-hands
>> it can be a good signal for whether you have practical experience with X.

This should be vetted out well in advance of an interview, especially for a
developer. If you don't have at least a half dozen repos somewhere with code
examples of sites or apps you've built, then there's a very high chance you're
not going to get an interview. I've only been coding for 7-8 years and I have
an extensive GitHub page, can point to close to 200 public sites I've built
(both dynamic and static) and have a portfolio full of images from other
projects I've worked on.

If you can't ascertain whether a person has practical experience with a tool,
software, or language then you're not doing your due diligence.

~~~
fredophile
Not everyone has or needs an extensive GitHub page. I'll use myself as an
example. I've got over a decade of experience working in large teams to ship
commercial products. As a general rule, you won't ever see my code unless you
also work for the same company. The kind of companies I work for want me for
the experience from my day job. I can easily prove I worked on the projects I
worked on but any company interviewing me would have nothing beyond my word
for what exactly I contributed to each project. It's totally reasonable for
them to ask questions that can confirm I know how to do things I claim to have
done.

------
d23
After doing a lot of interviewing, particularly when asking the same question
over and over again, I've noticed the quality of what an interviewee decides
to Google varies greatly and can give a lot of insight that just solving the
problem alone can't. I've been amazed by some of the incomprehensible things
people Google, even among those with the supposed same credentials, skillsets,
and backgrounds.

Aside from whether or not they can do the actual problem, it seems to be a
good proxy for skill. You can quickly distinguish between those that copy-
paste their way to a solution and those that thoughtfully attempt to solve the
underlying problem. Seeing what they choose to research, and sometimes having
to step in and after a while and say "it seems like this is talking about X,
which doesn't have much to do with this problem," speaks volumes about the
candidate.

~~~
ahmedbaracat
Would love to know more about what you noticed from seeing the choice of what
to search for. Care to share some examples?

~~~
d23
I saw a candidate, when working on a problem involving writing a simple TCP
server, Google the phrase "osx port 11211". He was wondering why his tcp
server was getting a connection refused message when he tried to start it.
Turns out, he had copied and pasted client code from an example rather than
server code.

I saw another candidate Google "socket get command line arguments" and then
stare at a stack overflow answer for a few minutes that had absolutely nothing
to do with the problem. What they were _attempting_ to do was just read data
from a socket. Some people just seem to throw things at the wall to see what
sticks.

------
makecheck
Yes, Google is actually crucial.

I didn’t realize how uniquely good Google’s programming results were until I
tried Bing or DuckDuckGo and was left confused because their top results
didn’t even mention some pretty significant page on a target subject.

I am however noticing a _trend_ that I don’t like in Google results: they are
trying to interpret pages more and more instead of just being a proxy. (No
thanks, Google, I don’t want your attempt at a pretty _summary_ of a Wikipedia
page or StackOverflow post; the link will do nicely. Besides, it is just a
_little_ obnoxious to lift content from other sites that may prevent people
from visiting those sites entirely.)

Google is not my sole search tool though. I still find it faster to search
offline for a lot of things; for instance, if you have a Mac and haven’t tried
something like Dash for quick access to API documentation, you are _really_
missing a potential productivity boost. And, offline search helps a lot on
airplanes.

~~~
developer2
The "interpreting", as you put it, can be really odd at times. I tend to think
that in the majority of cases, it works perfectly and you do in fact get your
answer without even having to click through to the site. Whether this is a
Good Thing™ or a Bad Thing™ is left to each individual's discretion.

It's a little funny when the interpretation doesn't show anything useful. I've
noticed this is often the case when they rip an html table out of the document
and show partial rows/columns in the result set. They'll frequently display
the column that contains your search term (the "key" so to speak), but exclude
the column that contains the matching information you're looking for (the
"value"). Other times, though less frequently, there are "answers" to your
search query that just make absolutely no sense.

------
DanielDent
I've been finding Google less useful in the last little while.

It taunts me and tells me that I'm sorry Daniel, I've decided to exclude the
most important keyword from your query.

Domain-specific search tools - e.g. for programming, Dash.app - have become an
increased part of my workflow partially because Google simply isn't giving me
the results I am looking for.

~~~
psyklic
Put keywords in quotes and Google will not exclude them.

~~~
gadflea
Essential, but inexplicably strips non alphanumerics.

~~~
developer2
Not so much _inexplicably_. This is common to nearly every indexing system
intended to support text search. You won't see punctuation characters being
indexed by most systems. Tokenization, lexeme normalization, and all that. It
does make certain searches nearly impossible to perform, but the case is rare
enough that the average person - even amongst developers - doesn't get stuck
all that often.

------
markbnj
Google is certainly a 100% essential tool for programming. I use it
constantly, every day, and I am sure basically every single developer does the
same. The most essential point in the post, imo, is that on any given project
you have to wade through the details of dozens of components and tools.
There's only so much room in the average brain.

~~~
stephenr
Google? No. A search engine? I'd say the vast majority of developers use one
for some part of their job, yes

~~~
ahmedbaracat
May I ask you what other search engines are you referring to?

~~~
stephenr
Personally, I use DDG. Others may use bing, my point was to buck the Kleenex-
ation of Google.

I don't Google things, or DDG things. I search for things

~~~
bobbytherobot
I use DDG on my non-work machines. Google is better at finding stuff for
programming, particularly the random error messages.

~~~
passivepinetree
I've tried to use DDG for programming but I've found that Google's efficiency
is just too good to make DDG worthwhile. I guess I've decided to take the
privacy hit in regards to developing activities.

~~~
stephenr
What are up searching for that ddg doesn't work? I find myself usually knowing
sort of where to look, and often using !bangs or the site: limiter

------
jupiter90000
For programmers that were coding before good search engines: what did you do
when you wanted to look up an error, etc back then? Crack open a tome for the
language? Just curious as I can't imagine it was easy.

~~~
Someone
There are at least two periods 'before good search engines'.

I guess there was a time in the 1950s/1960s when you asked the guy sitting in
the next room, who wrote the software, what the error meant, or where you
simply read the source code or disassembled the code to figure it out.

When computers became more common, but weren't powerful enough yet for storing
electronic documentation, you didn't crack open the tome; you already had it
open (and it was more often a tome on the OS than one on the language) You
also typically had a printed list of error codes on your desk.

When memory became less scarce, you would see header files with extensive (for
the time) documentation, and there were tools to look up API calls, error
codes, etc. (I think Windows or Visual Studio still ship with one)

When CD-ROMs became common, you had documentation on CD. Later, when hard
disks outgrew CD-ROMs, that data moved to hard disk, because that was faster,
and multi-CD setups became common-place.

Those CDs later moved to the web. That often made searches even faster (for
example, I remember searching Apple's or Microsoft's site being faster than
searching a locally installed MSDN (yes, MSDN was an application before it
became a web site) or Apple's documentation for a while)

Also, I read release notes front to back, and used to read almost all API
documentation. I think that was fairly common. Without the likes of HN to
distract you, there was plenty of time to do that :-)

Since search engines weren't that good, it also was useful. If you didn't know
the name of an API call or at least that of a technology, it was almost
impossible to find it.

~~~
passivepinetree
_shudders_

------
haberman
Google lets you prune already-solved parts of the search space. I have a deep
understanding of the technologies I work with, but that doesn't mean I
remember the three lines of code that you use to slurp a file into an STL
string, for example. Stuff like that isn't worth the brain space.

I guess I'm just restating the Einstein quote more verbosely, but it's
absolutely true.

------
sarnowski
This small post is spot on. The search queries could have been typed by me.
One of the important things a developer has to learn is how to actually use
Google for software investigation. Especially with the acronyms and very short
names that we use all the time, its important to know how to structure your
Google queries. Writing Google queries to quickly find the correct solutions
is a skill on its own.

~~~
dasboth
>> Writing Google queries to quickly find the correct solutions is a skill on
its own.

This is so true, and yet I haven't ever heard of anyone asking about this in
an interview. It would be an interesting skill to try and assess, not sure how
it would be done though.

~~~
ptrincr
I've been involved in interview processes where candidates were presented with
a problem, given a computer and asked to solve it. Usually just by searching
for an error message.

~~~
dasboth
Cool. In many cases that sounds like a much more realistic test than a
whiteboard exercise.

------
BinaryIdiot
It's amazing how much productivity is killed when you have to work in an
environment, such as a SCIF, where you have zero internet access nor can you
use any devices that could connect to the internet. It's certainly made me
more resourceful but I don't think it's something a developer should put
themselves through if they don't have to.

I must use Google dozens of times a day :)

------
ptrincr
Knowing how to search is an extremely useful skill.

I think we have gotten to the stage where an intelligent and determined
individual can teach themselves pretty much anything by researching a subject
on Google.

Hold key concepts in your head, Google for everything else :-)

------
ilaksh
I wonder if maybe some geniuses could parse out all of the code on Stack
Overflow and connect it to some knowledge graph, connect that with Google's
knowledge graph, and integrate everything into a giant programming problem
solving deep learning system with Deep Mind/Tensor Flow. Or something.

It just seems like people are googling, landing on Stack Overflow, and solving
the same problems so many times.. especially if you could somehow follow
through from the code on the screen, the google searches, pages landed on, and
then the code or commands that got entered in.. I think that a lot of these
recurring questions or problems could almost be solved/programmed by an AI.

Maybe if you could get a web extension running on thousands of developers
computers.. maybe for Chromebooks if it could read the code out of crosh..
then monitor all of the searches and coding/terminal commands and create a
giant deep learning/reinforcement learning network thing out of that.

Or maybe for monitoring the terminal code and commands some kind of background
terminal program would be needed. Maybe ttylog or screen or tailing a tty
device or something.

------
agumonkey
I route 90% of my searches through duckduckgo: "%term !g"

------
noobermin
Let's say tomorrow there was some major catastrophy in which every disk drive
or tape drive was wiped, and every computer had reset. How would we fare in
rebuilding society?

I guess it would be similar if in 1950, all of books lost their ink or all of
scientists/engineers had amnesia. I'm not trying to make a point other than it
is interesting to think about it.

~~~
tdumitrescu
Humanity would have to come together to reconstruct Angular and Bootstrap from
the ground up.

~~~
coldcode
Thus the end of humanity.

------
verytrivial
Experienced programmers probably also have a good feel for whether the problem
they're having is _truly_ unique (and not worth searching for), whether others
will be able to articulate the problem, and how long it might take to solve
the issue from first principles, hence how much effort is worth investing in
the Google excavation.

~~~
Ensorceled
Most experienced programmers also have a good feel for how much harder it is
to write a solid, tested, scalable module yourself than integrate a open
source solution, even if it's not perfect.

~~~
ArkyBeagle
Yet all I remember is the times that third party code has failed me. It is a
strange quirk of human memory.

It's not just me, either - one example was a failure in STL map that was as
old as the product. It was a known defect but nobody had the heart to face it.
When I showed them the defect, people got rather angry with me.

~~~
Ensorceled
I find having a requirements.txt file really helps with this. When you
struggle with a plugin and new to replace or rewrite it, removing the entry in
the requirements reminds you of all the plugins you are happily using right
now.

------
k__
1\. Google if someone had the same problem and fixed it.

2\. Hope you're using OSS software and simply browse the source to find
answers.

The second approach is a bit slower at first, but after you dismantled a bunch
of repos it becomes natural, you get faster and the answers you find are more
reliable.

~~~
toast0
Having done enough of the second approach, I find it hard to understand why
people do the first -- why see what people wrote about what something does
when you can just see what it does. Even man pages are some amount of here
say, versus inspecting the code.

That said, I do web search some specific terms frequently to get to certain
documentation that I trust, SMS search is the easiest way to get there
consistently.

~~~
k__
Well, people think if they're using libs they couldn't write themselves, they
don't think they could understand the code.

For example, when I used Leaflet, I had no idea how this whole geo stuff
worked, so I assumed that the code would be like higher math to me.

~~~
toast0
There's plenty of things that I can't write that I can understand. Even if I
can't understand it, I can look and see what it's expecting for arguments and
figure out why it doesn't like what ever thing I sent that was probably dumb.

------
Ensorceled
One of the more frustrating parts of my job is dealing with junior and
intermediate programmers who spin their wheels try to figure it out themselves
rather than google it.

Things like spending several hours on a problem where copy/pasting the error
into google yields a github issue complete with a work around or writing a
boat load of code when there already exists a package or plugin that does
exactly that.

The worst is when a google search would have revealed that our chosen
framework already built in the desired feature they just spent the afternoon
writing.

~~~
ArkyBeagle
FWIW, even in the 1980s, people on the team had CompuServe accounts and we
raided those mercilessly.

Where do you find junior programmers who don't Google with impunity?

~~~
Ensorceled
They were hired by my client(s) :-P

------
SatvikBeri
1 query for every 10 lines of code? 12 years in, and I'm closer to 10 query
for every 1 line I write.

------
HillaryBriss
Like others here, I depend heavily on Google searches while programming.

Sometimes it's useful just to see how Google tries to autocomplete a search
phrase I've started to type.

~~~
nathanasmith
More often than not I will very deliberately type my search phrase one
character at a time paying careful attention to all the autocompleted results.
Very useful habit to get into as I have solved quite a few problems much
faster than had I gone down the rabbit hole of my original query.

~~~
HillaryBriss
Really cool. I'll try that.

------
dasboth
>> carefully evaluating the results and consciously separating the wheat from
the chaff; they don’t blindly follow or copy-paste any solution they come
across

As well as writing the correct search query, this is the other important
aspect of the skill of using Google. A good programmer can look at an answer
on StackOverflow and quickly determine whether or not it looks "about right"
and how it can be integrated into their code.

------
rmtew
Back before decent search engines, there was gopher or ftp search. I used to
search for function names or some part of some API in gopher (or ftp search),
and find source code in projects where the code was already in use. Then use
that to get hints about where I was going wrong.

Google and StackOverflow fill a much wider niche however.

------
CM30
I'm not exactly an experienced programmer by any means, but I definitely use
Google frequently. Sometimes with that 'site:stackexchange.com' or
'site:stackoverflow.com' operator added in because I know Stack Overflow
usually tends to have a lot of the answers to these queries.

And then there's the CMS/framework search that might actually be more common
than looking for Stack Overflow/forum/social media answers to questions. You
know, where you're working with WordPress/Drupal/Joomla and can't remember
what that one function or class is called that you need to use for some use
case or another. Cue more Google searching, usually in conjunction with the
wiki/documentation/codex/whatever it's called.

------
josephcooney
My take on the same topic: [http://jcooney.net/post/2013/08/29/Good-Developer-
Good-Googl...](http://jcooney.net/post/2013/08/29/Good-Developer-Good-
Googler.aspx)

I'm in 100% agreement.

------
ebbv
I would go so far as to say anyone who brags about not using Google to look
for answers (or looks down on someone who does so readily) is worse off for
it. Nobody can know all the answers to every problem they will run into (this
goes for any profession, not just programming) -- the first step if you don't
have a quick answer yourself should be to search the internet for answers
others have come up with, or at least more information.

That doesn't mean you just copy and paste whatever you find. But it means you
are now more informed than you were before and can come to a better, faster
solution.

------
takno
I probably Google more for questions about Netty than I do for anything else
in Java. I've never seen such a useful library with such terrible
documentation

~~~
nayshins
The Netty documentation really is terrible. Have you read Netty In Action?
That book made the framework much clearer.

------
jerryhuang100
new series from 'O RLY':

[https://m.imgur.com/gallery/vqUQ5](https://m.imgur.com/gallery/vqUQ5)

------
nokeya
GDD - Google Driven Development

~~~
gotchange
You mean Google Aided Development (GAD) with AutoGAD as the promised
culmination/nirvana of our field.

------
nemock
I really hope people don't think this is a surprise. Before the web, Mac
programmers relied on a set of HyperCard stacks from Apple to look up function
calls and all kinds of obscure info. It was awesome. Every programmer I've
ever known since the 1980s has always had reference materials within easy
reach. That's just smart.

------
wslh
The only issue is the need to solve captchas because Google thinks you are
scraping them.

I don't know if I am experienced or not (beyond the numbers of years
programming) but I am sure "search engine oriented programming" give you a lot
of advantages and connect dots that take years if you follow other routes.

------
indlebe
I use DuckDuckGo frequently (´꒳`)

------
bad_user
Oh, I predict dozens of programmers coming here in the comments section to
confess.

------
ataias
I use Google all the time when programming. It is just so true... good to know
it is similar with others.

------
pjc50
When trying to find things in MSDN, it's often faster to Google it than it is
to use the internal search. I can load and read a StackOverflow page before an
MSDN page has even loaded.

------
HillaryBriss
How many IDEs _lack_ a context menu containing a "Search" or "Search with
Google" item nowadays?

------
ape4
Sort of related... is google case sensitive for things like this? Of course,
CASE MATTERS often in programming.

------
blue_dinner
It's especially good for hangups on some new library that needs to be used.

------
BuckRogers
No. We use DuckDuckGo. !sp if we want to see Google results.

------
hoodie
I use Bing. Mostly for Bing Rewards, which essentially gives me a free
Starbucks ~every month. But now I'm finding their search engine isn't that
terrible.

------
dsv
if you search "1\. netty tutorial" i think you arent a experienced programmer,
you are a experienced googler

~~~
eburg
I wouldn't be so sure ...In fact, Google recruits people who search for
certain programming languages/terms. Pretty cool actually - a "secret
invitation" suddenly appears within the search results and the candidate has
to accept (and pass) a programming "challenge" to further qualify.
[http://thehustle.co/the-secret-google-interview-that-
landed-...](http://thehustle.co/the-secret-google-interview-that-landed-me-a-
job)

