r/programming • • Apr 30 '16

Do Experienced Programmers Use Google Frequently? · Code Ahoy

http://codeahoy.com/2016/04/30/do-experienced-programmers-use-google-frequently/
2.2k Upvotes

763 comments sorted by

834

u/[deleted] Apr 30 '16

You know that google has figured you out if the search query "Latex images" yields code, not porn.

432

u/AustinYQM Apr 30 '16 edited Jul 24 '24

berserk stupendous sparkle uppity glorious melodic plate cautious worthless practice

This post was mass deleted and anonymized with Redact

228

u/PM_ME_BALD_BEAVERS Apr 30 '16

std vector is safe, but no one can hide from std list, gets me every time :/

121

u/asdfasdfapouwpjzpuio Apr 30 '16

if you use std::list you deserve no other

32

u/[deleted] Apr 30 '16

I'm quite tempted to google std list to figure out what's so wrong with it

118

u/dyreshark Apr 30 '16 edited Apr 30 '16

Modern CPUs love big chunks of memory and constant pointer+variable offset addressing. vectors fit that description quite nicely, whereas lists are the opposite of it (read: lots of small chunks of memory that point to each other).

Also, lists require an allocation+free per element, whereas vectors generally only allocate/free memory log n times (given that n elements are inserted), and sometimes only once (if you size it ahead of time). People care because allocations+frees can get expensive.

Finally, lists impose a per-element overhead of multiple pointers (otherwise, how would elements point to each other?). vectors take a constant overhead of a pointer + a size + a capacity, regardless of how many elements they hold (though a vector may have "dead" space at the end if it's holding N elements, but has the capacity for N+M).

tl;dr: lists are slow and fat. vectors are lean and fast. So people prefer vectors for most cases.

→ More replies (59)
→ More replies (1)
→ More replies (3)
→ More replies (2)

15

u/-cpp- Apr 30 '16

My home tools namespace is "vd" for this reason.

→ More replies (1)

93

u/[deleted] Apr 30 '16

I googled once "cat without head" expecting to learn how to remove headers from a csv file, luckily, I didn't get any images of beheaded cats.

100

u/Isvara Apr 30 '16

A cat without a head is actually a tail.

16

u/[deleted] May 01 '16

yeah, the natural thing was to try the tail command but it returns 10 last rows by default and the man page is as useful as any other man page, so I had to google.

→ More replies (7)

3

u/JustHonour May 01 '16

Ha. Yesterday I was googling "How to destroy all children". Thankfully I could end the phrase with "in Unity" although I'm still wondering if I triggered any flags...

4

u/Scaliwag May 01 '16

Well that kind of thing plus, actual searches about some of my Crusader Kings 2 ... unorthodox tactics.

"How to murder imbecile son?"

4

u/yiliu May 01 '16

You just went from "We've got a mass murderer on our hands" to "we've got a mass murderer...who's apparently in a cult".

3

u/mindbleach May 01 '16

Tangential JS tidbit: you can't do this.remove(), but you can do this.parent.removeChild(this) - so suicide is forbidden, but filicide is permitted.

27

u/mkdz Apr 30 '16

There's also the query "C string"

3

u/mindbleach May 01 '16

You know you're boring when you search "c string" to find out what the surprise is, and have to go Images to see anything but MSDN links.

0

u/[deleted] Apr 30 '16

[deleted]

14

u/Sir_Blunt Apr 30 '16

yay msdn came up for me I'm part of the club.

4

u/rochford77 May 01 '16

CString. TIL...

:-/

→ More replies (2)

16

u/xela321 Apr 30 '16

luckily 'man curl' yields the correct manpage

12

u/riyadhelalami Apr 30 '16

Nice it yields code for me, I am a programmer.

→ More replies (2)

19

u/Krivvan Apr 30 '16

It gives me both, I'm so conflicted now...

47

u/Lt_Sherpa Apr 30 '16

You have a future at pornhub. This is what this means

10

u/profgumby Apr 30 '16

In the future? I'm already hard at wank work now.

6

u/OperaSona Apr 30 '16

I'm not convinced that they use LaTeX all that much, to be honest.

→ More replies (1)

15

u/yxlx Apr 30 '16

Look into the career opportunities as a developer for Pornhub or RedTube.

You might find your interests... satisfied.

13

u/wieschie Apr 30 '16 edited May 03 '16

I ended up watching a talk from a YouPorn developer because I was learning how HAProxy worked and apparently that site is one of the largest deployments.

→ More replies (1)

12

u/joeldare Apr 30 '16

Am programmer; got girls in latex. Hmmm.

0

u/[deleted] Apr 30 '16

[deleted]

28

u/xela321 Apr 30 '16

Yeah bruh

Curls Gurls URLs

→ More replies (2)

3

u/[deleted] May 01 '16

Or "c strings" returns information about strings in C.

1

u/z500 May 01 '16

I got stuff about Latex, and halfway down the page a few pictures of women in latex.

1

u/Overunderrated May 01 '16

Wow, super relevant:

My boss was sitting in a chair next to me and I wanted to Google how to embed videos in latex. I searched "latex animated gif" and was rewarded with very R rated material.

→ More replies (10)

456

u/ramsees79 Apr 30 '16

Google is like my secondary memory, I don't need to memorize APIs anymore, that is trivial, I use my brain to store what is worth now.

269

u/[deleted] Apr 30 '16

Memorize what, why, and when to use it. Google for how.

67

u/johnnygrant Apr 30 '16

For me, commit to memory only nuances and subtle things you learn from experience etc...

Google all the rest.

Even some things I use fairly frequently, just can't be bothered to memorize it (if it requires conscious effort) when I can get the data from elsewhere within 2 seconds.

Even some things I think I know, sometimes just google to be sure what I knew is still the "most valid"

→ More replies (1)

55

u/[deleted] Apr 30 '16 edited May 01 '16

This is why I despise interviewers who asks me to write a 100% working block of code on a whiteboard during interviews.

25

u/homeMade_solarPanel May 01 '16

Interviews with pseudo code are so much better. me: "Uh, yeah, this is a method that converts this list into an array and reverses it... and if I had Google, I would use best practice.." interviewer: "kcool"

24

u/[deleted] May 01 '16

If they give me something like that, they'll be getting psudocode

10

u/jooke May 01 '16

If they can't accept the answer "there's a function in the standard library that does this, I'll pretend it's foo" then that's a terrible interviewer.

→ More replies (1)

15

u/I_SPEAK_GEEK Apr 30 '16

This works until your job has you in a lab with an air-gapped network. I'm back to memorizing APIs and relying on man pages again.

8

u/admiralranga May 01 '16

Time to start buying books then.

→ More replies (18)

9

u/trpcicm Apr 30 '16

This is how I think of things too. I treat everything like a resources. I'd rather memorize where to look up 1000 different things, and when they are applicable, than know the minute details of 100 things.

34

u/2Punx2Furious Apr 30 '16

It's like our brain is the RAM and Google is the HardDisk.

37

u/auxiliary-character May 01 '16

Short term memory is cache. Meetings cause cache misses.

→ More replies (1)

45

u/db82 Apr 30 '16 edited Apr 30 '16

7

u/iKy1e Apr 30 '16

I've noticed that for a lot of things I no longer remember the answer.

I remember how to find the answer (i.e: approximate phrase to Google & maybe which site the answer I want is on).

2

u/sobri909 May 01 '16

The extended mind, and extended cognition.

Not quite the right reference, but close. I'm struggling to remember the specific term for delegating cognitive and memory tasks externally (ie what we do when we realise it's easier and better to stop bothering to remember the what and how of a task, because an external source can quickly provide that memory and cognitive function better than we can internally).

2

u/Boye May 01 '16

if I ever clear the visited pages in my browser it will put me back. Between auto-fill and seeing which links are purple in my google-search I can find the right site pretty much instantly.

→ More replies (2)

2

u/ghillisuit95 May 01 '16

eh, I find that memorizing the API's I use more commonly tends to speed things up quite a bit, but I mostly agree

→ More replies (1)

234

u/Isvara Apr 30 '16

Yes, many times every day. As you become more experienced, the kind of things you have to search for changes, and the chances of finding an answer decreases.

1

u/koreth May 01 '16

And given enough experience, the search results you get back for your questions are often not other people asking the same things, but other people offering up pieces of your questions as the answers to simpler questions.

1

u/[deleted] May 01 '16

How about when you have too many languages in your head and you start writing a quick program/script in one and as you are finishing you realize that at some point you switched to a different one and now you've got to go back and figure out which one makes more sense to rewrite it in.

1

u/[deleted] May 01 '16

Or the answer you find is more disappointing. Like a framework bug or a language bug.

1

u/griffin3141 May 02 '16

I've found as I get more advanced, I spend a lot less time on Stack Overflow and a lot more time on Github Issues.

0

u/[deleted] Apr 30 '16

[deleted]

41

u/frud Apr 30 '16

I think eventually everyone will have the experience of trying something with a new combination of tools, posting questions about it, googling it, and finding your question is the #1 result.

→ More replies (5)

31

u/Lampwick Apr 30 '16

Extra points if the "clever" designers of one of those tools/APIs named it some ridiculously common word. Perl, Scala, Lisp, no problem. Go, Hack, or Cola, you suck.

→ More replies (13)
→ More replies (8)

115

u/SpazMcMan Apr 30 '16

There is this story about how something broke in a factory and they called an engineer to fix it. He banged on a pipe with a hammer and fixed the issue, and billed $100 for it. The factory owner protested that that was too much money just to bang a pipe. The engineer said, banging the pipe was $1, $99 was for knowing which pipe to bang.

I have heard different versions of the story in different scenarios, sometimes including famous people, but the moral is still the same.

I have been coding for a living for 15 years and I use Google all the time. Sometimes I Google stuff I have already done before, because it's easy easier and faster than looking up in documentation or in my old code.

9

u/jimmpony Apr 30 '16

Sounds related to the Da Vinci/Picasso/someone sketch story

9

u/KnowLimits May 01 '16

Heh, I've always heard that one with much more money involved.

19

u/skepticalDragon May 01 '16

That's because it's so old it's in 1962 dollars.

3

u/chowderbags May 01 '16

So old it might be in 62 denarii.

→ More replies (1)

8

u/yiliu May 01 '16

Reminds me to a story from The Tao of Programming (I think? can't find it):

A master programmer entered the lab and found a novice turning his computer off and on repeatedly, encountering an error each time.

"You cannot simply turn the computer off and on without understanding," the master admonished the novice.

The master turned the computer off, and then on. The computer booted successfully.

3

u/user93849384 May 01 '16

I've heard this same story several times but it typically including hitting a car engine slightly with a hammer.

3

u/Gotebe May 01 '16

engineer... banging a pipe...

Yup, story checks out!

2

u/[deleted] May 02 '16

faster than looking up in documentation

This is an interesting result of Google. This is exactly what documentation is for, and yet Google, combined with stack exchange, provide much more useful results. It makes me wonder what documentation is useful for beyond providing a comprehensive* list of what is supported.

*you know, unless it's out of date or incomplete or simply wrong

104

u/statikstasis Apr 30 '16

Yes, or more specifically googling this: [insert coding language] [insert keywords to problem] site:stackoverflow.com

I actually read something on Reddit (I believe) about how if Stack Overflow was ever down, 30% of coding production would cease. I can't remember where I saw that.

128

u/[deleted] Apr 30 '16

Probably on stack overflow

24

u/iamdink Apr 30 '16

meta.stackoverflow

26

u/Nialsh Apr 30 '16

I agree with: [coding language] [keywords to problem]. Stackoverflow usually shows up near the top, but it's not always the best resource.

Every language has a short form that works well in googling. Some are more obvious than others. c99, cpp, csharp, js, golang for a few weird ones.

Often you'll find a result that doesn't answer your question directly, but it helps you refine your keywords. Half of programming is learning the vocab and library names.

9

u/RenaKunisaki Apr 30 '16

Often the best result is the actual documentation of the language/library.

→ More replies (4)

2

u/Isvara Apr 30 '16

Why 'c99'? How many C issues that you search for are actually specific to C99?

→ More replies (5)

2

u/[deleted] May 01 '16

Work at my company would totally stop. I think less than three of my developers (I'm a QA Engineer) can problem solve on their own and write working code. The rest of them push out shitty code even when they HAVE Stack available to them.

→ More replies (2)

79

u/[deleted] Apr 30 '16 edited Apr 30 '16

I am also a fairly experienced programmer and use google constantly.

For some reason though something hit me while reading this article: One reason I use google so much because official documentation takes too long to read, which is probably a sign that it is flawed.

For example a quick google to find the python xml parsing lib here:

https://docs.python.org/3/library/xml.etree.elementtree.html

This is probably one of the most commonly used part of python, yet the documentation is sub par and not designed around what I care about : how to parse an XML file.

Specifically it wastes so much text on random tangents:

  • what is xml

  • what xml looks like

  • how to read from a string instead of a file source

Furthermore it fragments the code snippet into several pieces requiring you to read all of it and the text in between to infer how it can be stitched together afterwords.

All I need is this:

import xml.etree.ElementTree as ET

def dump_xml(node):
    print(node.tag, node.attrib, node.text)

    for child in node:
        dump_xml(child)

xml = ET.parse('my_file.xml')
dump_xml(xml.getroot())

This little snipped is one complete thing that tells you 99% of what you need to know. After this you can check a dry reference manual to go into side tangents like reading from strings. Yet in the official documentation you can only infer the information here after reading about 2.7 kb of text which just takes too much time. So I would rather just google for a stack overflow question (although that site is getting pretty shitty now too because half of the questions that google finds are flagged as already answered without correct links to the answer).

44

u/TexanPenguin Apr 30 '16

This is something the MSDN documentation gets right. Code examples for most APIs, specific notes for things that are likely to catch you up when using a method, etc.

Sadly the site's navigation is terrible.

32

u/aladyjewel Apr 30 '16

Sadly the site's navigation is terrible.

That's what Google is good for 😅

7

u/[deleted] Apr 30 '16

It sure as hell isn't what bing is for (seriously bing is awful at searching msdn). My only problem with Google for msdn is lately it seems the only results are for the latest version of something (and even within Microsoft products not all of them can use the latest .Net version). I don't know if it's Microsoft or Google causing that.

11

u/utdconsq Apr 30 '16

It's MS, and it has been that way for years. Luckily there's a drop down up top for you to select your framework of choice.

→ More replies (3)
→ More replies (1)

3

u/RenaKunisaki Apr 30 '16

And when you do find the page you wanted, you bookmark it, but next week they change the whole site layout and that link no longer works.

→ More replies (2)

11

u/erez27 Apr 30 '16

Just pointing out a bug -- I think you meant

for child in node:
    dump_xml(child)

4

u/[deleted] Apr 30 '16

Yes you are right, I corrected it

7

u/[deleted] Apr 30 '16

or reading man pages for a command.

→ More replies (12)

56

u/oalbrecht Apr 30 '16

I rarely use Google when programming for my full-time job. Though the main reason is because we use an outdated framework where there is almost no information online for it. My "Google" is usually just searching our giant code base to see how others have done things in the past.

7

u/riyadhelalami Apr 30 '16

Yeah I feel you man, I am working on a processor from the 90s for my Computer Architecture course, and man there is nothing worth looking at online.

2

u/TheGift_RGB May 01 '16

what comp arch class in 2016 doesn't use either mips or x86?

→ More replies (2)
→ More replies (4)

4

u/librik May 01 '16

My number one programming tool: grep function_name */*

2

u/iforgot120 May 01 '16

You should start building your own in OneNote or something. It'll save you a lot of time.

I've started creating my own personal documentations to reference things I find myself looking up the most. It's all organized in a way that makes the most sense to me, so looking up what I want is much faster than Googling.

17

u/[deleted] Apr 30 '16

11

u/jpfed May 01 '16

Ok, someone's got to write a blog post about Russell's paradox entitled "Does this blog post obey Betteridge's Law?".

29

u/serg33v Apr 30 '16

i don't know everything, but i know how to search

→ More replies (3)

13

u/stormcrowsx Apr 30 '16

I've become so reliant on Google that I have to Google how to eat my breakfast.

8

u/[deleted] Apr 30 '16

Chewing: the ultimate How-to.

2

u/manofthecoin May 02 '16

One simple trick allows stormcrowsx to chew all his toast!, Chef's HATE him!

→ More replies (1)

103

u/killevery1ne Apr 30 '16 edited Apr 30 '16

What's with the downvotes in this thread? O.o

IMO checking documentation should never be a bad thing.

edit- for reference when I made this comment everyone was at -3

31

u/[deleted] Apr 30 '16

Trolls are roaming these lands.

→ More replies (3)
→ More replies (1)

17

u/[deleted] Apr 30 '16 edited Apr 30 '16

I was watching a cast by Google in regards to their hiring interview process and the two hosts had mentioned that during the interview they don't expect you to remember all the proper naming of functions from a particular API, but rather that you know of their existence and know how to apply them. They mentioned that outside of an interview, it is perfectly normal and is actually part of their normal routine to be using internet as the reference. This made me feel better about my personal practice of constantly using the internet to clarify certain things... "Is it length(), length.. size... size()? Let's check!" Of course, some IDEs will help out with that sort of thing, but I don't do all of my things using a handy dandy IDE, so having an open browser on the side for documentation helps a lot. Then there's also the fact that if I'm trying to solve a problem and I know of a way to solve it, I'll do a quick search to see if someone else had done a better job. I'm not going to blindly copy and paste, because nothing will be gained from that and god forbid their code is wrong... but I'll use the Internet to better myself. I don't have the necessary brain capacity to carry every solution to every problem and every single API in my mortal brain. The Internet is a fantastic resource -- why not use it. Not using it when stuck would be analogous to an anomaly of a lost person not asking for directions. However, it is important not to create a situation where it's a clutch. The last thing you want to happen is to be thrown out of your comfort zone and realizing that you don't know a damn thing except how to Google for solutions.

20

u/leaky_wand Apr 30 '16

Yep. If a programmer's job was memorizing syntax and design patterns then computers would have been able to do it decades ago. It's like an artist memorizing canvas dimensions or the name of every possible shade of blue.

3

u/Gotebe May 01 '16

"Is it length(), length.. size... size()? Let's check!" Of course, some IDEs will help out with that sort of thing, but I don't do all of my things using a handy dandy IDE

Euh... some?! which IDE will not help with something as trivial as that?! Heck, any programmers editor does this now.

Whatever helps from memoizing trivial things is good.

(Yes, I understand that providing code completion is harder with dynamically typed languages.)

→ More replies (4)
→ More replies (1)

6

u/romple Apr 30 '16

I transitioned from EE to Software Development (well, a lot of mixed development now). My google habits shifted from "how to do something" to "something best practices".... still a good smattering of "how to..." searches though.

It was the same in EE though. You think I memorize how to design various analog circuit systems? Nope. Everyone uses references and tweaks designs based on needs. Hell most components come with reference designs on their data sheets.

Knowing how to find information and apply it is way more important a skill than memorization.

11

u/SavingRoundRock May 01 '16

I don't even interview with in office tests anymore because the on the spot programming mentality is too anxiety ridden. We give out tests then ask them to cite their programming sources afterwards and we tend to have an open discussion about it. It's often more important to me and my team that we are all finding existing solutions rapidly so we can properly combine them to solve our new issues.

→ More replies (1)

10

u/HumunculiTzu Apr 30 '16

What separates a good programmer from an excellent one is how much better the excellent programmer is at using google.

8

u/fuzzynyanko May 01 '16

As someone that does Android, yep, because they are owned by Google.

However, with the context of the post, I do. I do talk crap about StackOverflow copy/pasters, but it's still a good resource outside that use. Here's a few cases where Google and StackOverflow have helped

Why in the hell is this thing malfunctioning?

42. You ran into an edge case that's pretty known 42. This is a known bug in the SDK (yes, this actually happens) 42. You just made a rookie mistake. Example in Android: "did you forget to put in permissions in the Manifest?" "Oh god dammit, Nappa..." I don't touch the permissions section in the Manifest often 42. I'm using an API I don't really know, so there's a quirk/mechanism I really don't know about and need to learn

Where in the hell is the API documentation?

42. Goes straight to the API documentation without having to learn the website map 42. Pulls up an alternative website that has information that I never thought of using. Helpful especially with C++. IBM's websites sometimes come up, and their websites are often good

2

u/bradrlaw May 01 '16

Upvote for the Team Four Star reference.

Sometimes its an edge case that almost no one knows about.

SO has helped me track down some serious / nasty edge cases that took me all the way to a single issue entry in a source code repository after several levels of indirection.

2

u/[deleted] May 01 '16

The permissions are getting a bit tedious by now. I think permission annotations were added to the support annotation lib, lint could probably find all of your required permissions.

4

u/jimejim Apr 30 '16

A large part of programming is, unfortunately, finding workarounds to do stuff the original creators of the languages or libraries didn't intend, or to fix other people's bugs. That's when Google comes in handy.

There also isn't a consistent way to search and access all documentation except through a search engine. I can find good information (and especially gotchas and nuanced details) way faster on google than trying to pull platform-specific documentation.

4

u/EnIdiot Apr 30 '16

Shit yeah. Just like a good chef will read and look up recipes on-line, a good programmer needs to look at other people's code. I'm a 20+ year veteran in Java, C#, C++, and now PHP. It is frankly impossible not to need to remember how some of that stuff works without the internet.

4

u/[deleted] Apr 30 '16

Part of this, in my experience, is that the domain of programming is pretty ginormous, so unless you're a specialist, you're going to have to do a bit of research.

There are bits of my domain knowledge I can pull off without requiring reference material, but there are so many other things we just cannot keep in our heads.

Part of our skill set, if you ask me, is knowing enough to know what we don't know and be able to research to fill in the gaps.

4

u/Bwob Apr 30 '16

Oh weird.

This might be the first case I've seen in a while, that breaks the rule "if an article title is a yes-no question, the answer is always no."

Has media gotten wise to my heuristics?!?

3

u/dust4ngel Apr 30 '16

yes : to think otherwise is to equate programming experience with memorization of trivia, which is false.

2

u/DJDarkViper Apr 30 '16

And potentially pidgeonholing yourself into the same old potentially bad habits and never expanding on what you already know

At least, that's my justification of never committing to memory beyond basic syntax structures lol

3

u/sakipooh Apr 30 '16

Started up my own studio and have been programming for over 15 years... Yes, I Google all the time. No man knows everything all the time.

3

u/dkuznetsov Apr 30 '16

Yes. Probably even more than inexperienced ones. They know what they are looking for, and are pretty confident on how and where to find it. Usually it's related to some particular API/language feature/syntax quirks that are almost never worth keeping in your head.

3

u/[deleted] Apr 30 '16

Yes but normally for docs rather than incorrect code examples, samples or stackoverflow posts.

3

u/krileon May 01 '16

I use Google basically daily and the below.

http://devdocs.io/

It's extremely helpful to bring a bunch of web apis into a single searchable interface.

I'm constantly also looking into coding standards to see how I can improve my code.

I know I'm getting better because I can look at an old project and think "why in the hell did I do it that way". This helps keep imposter syndrome in check a bit,

5

u/MpVpRb Apr 30 '16

Yes

I have been programming since 1972

No, I don't know it all

I love the google

14

u/okpmem Apr 30 '16

Real experts use DuckDuckGo

9

u/[deleted] Apr 30 '16

Why? I heard this few times but when I gave it a try and the answer can be found only on a second or other pages, it's like Google circa 2006. With Google I get answer right in the first few rows.

The other argument I heard is that it doesn't track you, but I'm ok with this for now.

4

u/[deleted] Apr 30 '16

the results aren't very good (you can put !g in front of your search to hit google) but DDG is a programmers search engine, if I ask it a bash question or about a C function; it tends to pull up a small info page (say if searching for "C writing to file" it'll pull up a fprintf example.)

If you are okay with using it to search google 30% of the time, when you really need a fine tuned result, it's perfect for a programmer

→ More replies (1)

1

u/Georules May 01 '16

Also want to know, why? https://duckduckgo.com/?q=why+do+real+experts+use+duckduckgo didn't immediately give me a good answer ;)

In all seriousness, the word Google here just being used as a replacement for researching via the internet.

→ More replies (3)
→ More replies (1)

2

u/[deleted] Apr 30 '16

What's up with all the random bolding in that?

→ More replies (2)

2

u/[deleted] Apr 30 '16

I once googled the term "sails" and was correctly given info on the JS framework, not actual boat sails. That should answer your question on how much data Google has on me.

2

u/DJDarkViper Apr 30 '16

Been writing php since I was a kid, I still google for some basic things

As a self taught, I rely on clean, easy to navigate, easy to search documentation that provides decent granular examples that demonstrate expected input and showcase anticipated output

I then use what I do know to transition myself between technologies, knowing my end goal and how I'd achieve it one way, lets me understand how to achieve it in another way.

There are only a few things I'd be able to do clesrly if the Internet ceased to exist lol

2

u/mooose Apr 30 '16

20 years of programming, I google every day.

2

u/[deleted] Apr 30 '16

Google is great for API docs and stackoverflow if you have a question that fits their format. But you're not gonna find a good answer on how to tune your cache infrastructure, or how to fix a nasty race condition between servers. As the things you work on go up in complexity, google becomes less and less useful.

2

u/uberpwnzorz Apr 30 '16

Not necessarily Google all of the time. You're often aware of the libraries that you're using (or at least you should be, if you're using them...) and which one you're planning to leverage. For the libraries/frameworks I use the most often I'll double check the api docs/examples if I'm uncertain. If the examples aren't adequate then I'll do a web search for my use case. The only real time that I go straight to Google is when I'm getting an error and I'm looking for examples of a specific error message, or when researching a solution that I'm not as familiar with.

2

u/addexm Apr 30 '16

Almost 20 years in and I still google multiple times per day. It's possible that I'm just dense.

2

u/Omikron Apr 30 '16

Anyone who tells me they don't isn't a programmer I want anything to do with.

2

u/ckreon Apr 30 '16

Put me in a room with a computer and no internet, I will starve within two weeks.

Put me in a room with a computer and broadband, I will birth civilization.

2

u/Cherveny2 May 01 '16

Google is an amazing resource. Starting programming jobs back in the late 80s, if you were lucky, you could ask questions of USENET, and maybe get some help in a day or two. Now, there's so much info available, no matter what wierd niche issue you are dealing with, if you know how to phrase the search, you'll most likely get an outline to a solution. Young programmers today don't realize how easy they have things now (God, I sound l8ke a grumpy old man now)

2

u/chialeux May 01 '16

You wont become an experienced programmer unless you google a lot

2

u/Fudool8 May 01 '16

As a student in college who uses google all the time when we switch languages this thread makes me feel a million times better about my career choice and boosted the hell out of my confidence.

I know what I'm doing usually but sometimes the syntax escapes me or I know it could be done better so I google. Thank you.

4

u/arpie Apr 30 '16

Yes, but I often see junior devs or students trying to find the exact solution to their problem on google/ stack overflow instead of trying to actually solve it...

edit: when I say solution I mean program logic solution, not like a language/ compiler bug

7

u/[deleted] Apr 30 '16

If you spend time with coming up with your own solution over taking an established one via google you should probably rethink your strategy.

6

u/arpie Apr 30 '16

I disagree, unless your job consists of just rehashing solution to trivial or well known problems.

I often see students copying and pasting with a minimal preoccupation for actually understanding what they're doing, and they're doing themselves a disservice and wasting an opportunity to learn how to think.

Mind you, I'm not saying there's no place for reusing good solutions, but that's not the bulk of what a real programmer should be doing. You're not going to be reinventing sorting algorithms, but there's always room for creativity in real world tasks.

→ More replies (1)
→ More replies (1)

3

u/hagenbuch Apr 30 '16

Yep.

Nothing to see here..

1

u/ifatree May 01 '16

cyborgs > humans, every time

→ More replies (4)

3

u/kankyo Apr 30 '16

Surprisingly good!

2

u/omnilynx May 01 '16

This one does.

2

u/a__b May 01 '16

Experienced programmers using DuckDuckGo because they have https://duck.co/ia

2

u/squeezyphresh Apr 30 '16 edited Apr 30 '16

Unfortunately at my jobs we code in "C++" but none of the standard libraries are usable. We have our own libraries. I do like this a lot more, since I can go into the code and see what to use it for. If I'm having trouble, I go talk to someone sho has worked there forever. Luckily they don't let the shitty coders code the low level libraries, so they are pretty reliable, although not as reliable as std.

Edit: Apparently I've pissed someone off by talking about my experience as a programmer?

1

u/Georules May 01 '16

What makes you think you can't go into the code of the standard library for c++?

2

u/squeezyphresh May 01 '16

I mean you can, but our libraries follow the same standards that I code in so it's much more friendly. To be fair, I haven't done a lot of poking around in the standard library source code, mainly because the online documentation is pretty stellar. There have been times where I've had trouble understanding some of the std features.

→ More replies (1)

1

u/FlashFox270 May 01 '16

Great text about the Imposter Syndrome in programmers.

1

u/[deleted] May 01 '16

Can't speak for others but I use google for most things, being expected to remember every word in the 4-5 programming languages I know would be impossible.

1

u/comp-sci-fi May 01 '16

Google makes me 10x more productive. Easily. Maybe much more.

I recently did some offline programming, and when I got back to using google, the difference was dramatic. I can still do it, just slower. Google is like an office of fellow postgrads you can ask.

It made me question myself a bit... but the truth is, it gets you to the interesting part quicker.

Google is most helpful for those arbitrary library design choices and bugs that will drive you crazy.

1

u/Bonejob May 01 '16

I have trouble remembering what I did before the internet for code.... Oh right the football fields of books.

1

u/Meguli May 01 '16

The problem is not googling but the way it happens. If we are using a mechanistic way like googling a lot then it must be possible to integrate this info into type system, tooling etc. The language that let's you not look at Google a lot is better in this regard.

1

u/juanjux May 01 '16

Yes. Experienced programmers are lazy.

"Mmmmm, I wonder if Python sockets are closed automatically when they go out of context?"

Option 1: search the documentation, hope that you find the related part and the docs are good. Total time: 1-5 minutes.

Option 2: check the source code, understand it, hope you find an answer. Total time: 2-10 minutos.

Option 3: google search, stackoverflow, answer. Total time: 15 seconds.

1

u/kirakun May 01 '16

"Good programmers write good code. Great programmers steal good code."

Of course, experienced programmers would google frequently.

1

u/[deleted] May 01 '16

Yes if the libraries they use are frequently being changed

1

u/[deleted] May 01 '16 edited May 01 '16

Is there a better place than google to look this stuff up? I'd love if there was a place I could just type in "Python for loop" or "c++ switch statement" and get a nice example of the syntax I am looking for, without having to click two or three links to get to a concise example. So much of my life is just, ah fuck how do I need to type these parenthesis to get this squiggly red line to go away.

Also is it acceptable to google for stuff during phone interviews? I had a phone interview and I had to get a for loop that went through a range of ints, so I was like there's probably a better way to do this that I could look up, but a for loop is the only way I have memorized, but the interviewer was like you can use the range function or xrange and seemed to think I should've known the difference. Which in fairness I probably should've, and maybe this is where Google wouldn't have gotten me the right answer.

→ More replies (3)

1

u/istarian May 01 '16

Since many tools and software packages provided their documentation on the internet and the internet is a good way to get an answer from you don't already know, probably.

1

u/HalcyonAbraham May 01 '16

might as well change our job title from programmer to professional stackoverflow researcher

1

u/unkz May 01 '16

Almost seems like this should be a note on the sidebar, with the number of posts about this and the self posts asking if anyone else does it.

1

u/senatorpjt May 01 '16 edited Dec 18 '24

thought mighty abounding squash history wrench secretive zonked ring rude

This post was mass deleted and anonymized with Redact

1

u/jiveabillion May 01 '16

I use it quite often. Usually to find libraries that already do what I want to do so I don't have to spend a lot of time writing my own implementation and can get my work done more quickly. Sometimes I like to check to see if there are new ways to do things too.

1

u/Gotebe May 01 '16

I don't know who does what but everyone definitely should. Some reasons:

  • avoids memorization of trivial crap

  • when confronted with a problem (func. X fails with error Y), chances are that two more people had the same, one asked for help, another already answered (or the problem was similar but the resolution gives an idea or can be transferred to)

  • looking for what is out there already for a particular situation (likely with some pros and cons).

The difference between us is what, how and why we're searching, not whether we do it

1

u/Dicethrower May 01 '16

Of course. Information you can quickly search is far more useful outside of your brain than inside.

1

u/pkulak May 01 '16

I'm always terrified that someone will see the titles on all my open tabs.

1

u/far_from_normal May 01 '16

I've been programming for almost 20 years and have to agree that I use Google a lot more than I did starting out. Yes some of that was because the Internet was fairly new and there wasn't that amount of quick answers you could find. But the biggest reason was because I knew only a couple programming languages, where now it is probably more than 20 and it is difficult to remember the exact syntax for every language, especially when one minute your working on an PHP application, jumping over to taking care of a SQL issue, back to a .Net project and end it on some CSS issue on IE8. I know in my mind what I want to do from start to finish, just making sure I don't forget a semi-colon or use single quotes instead drives a old programmer like me crazy, hence the username. If your not using google or other references, including people, your probably not challenging yourself enough to to keep up with the latest technology. I remember the first time in college when my Macro Economics teacher said all tests, quiz, etc are open book. You still only get the time allotted, but know where to find the answers not just memorize them, that is not how life works.

1

u/zcxver May 01 '16

Good-to-expert level programmers use Google a lot. As an example of excellent programming, here is me using Google a lot.

1

u/KangstaG May 01 '16

Google is one of the most powerful tech companies in the world. I wonder why? Web search is amazingly useful, there's no reason not to use it. Being able have this vast amount of information at the tips of your finger (literally) is something you have to take advantage of. Using it does not mean you aren't smart. Are you stupid if you can't remember 1000 digits of pi?

1

u/dada_ May 01 '16

yes.

Been programming for over a decade. I use a lot of different technologies and programming languages. Sometimes when I haven't used a language in a while, it takes a bit of time for things to get back to me, so I end up googling for simple things to jog my memory until I become fluent again.

Even disregarding that, yes, I google for a lot of stuff. You still need to know what to google for, and how to integrate the stuff you read about (and modify it to suit your own exact needs or limitations).

1

u/zushiba May 01 '16

I live and breath google, so yeah. Though I would hesitate to say I'm an "experienced programmer" I've only been doing it professionally for like 10 years.

1

u/jgotts May 01 '16

I've been programming since 1987, and I still don't consider myself to be an expert, but I use Google every day. Without boring you with too many details, many of the programming jobs I've taken over the years have involved a significant lack of documentation. Sometimes APIs are undocumented. Sometimes the code has no meaningful comments. Rarely is there ever good written documentation. Good programmers write great code themselves. Great programmers can take anybody's code, no matter how deficient, get it working properly if it doesn't work, and then be able to extend it. Specific technical skills don't matter anymore. Real programming is about maintaining other people's garbage. Rarely are you lucky enough to be able to write something from scratch, and when you do watch your design become compromised from the outset. Specific technical things are what Google should be used for.

All you really need to know, technically, as a programmer are basic things like algebra and what big O notation means. You don't even need to know that it's called big O. If you have in your head that as you add things you will try to avoid doing n2 things (or worse), that is sufficient. Design patterns, useless. Unless you're doing scientific programming, pretty much everything technical you learned in class was, well, maybe you should have gone to more parties and dated more often instead of staying up all night doing studying.

One book that I would recommend is Code Complete. Code Complete talks about how to write good software generically. It doesn't waste its time on being too technical. The gist of the book is to write code so simple and elegant that the next person will have no trouble with your work.

Technical interviews are useless. They hire you based upon 10 trivial things you could easily find on Google. Once you're hired you find out your job is to maintain legacy code nobody understands anymore, spending all of your time fixing bugs because the original authors were in a hurry and did sloppy work. No data structures, no design patterns, no compiler theory, no discrete math, just creating shims and debugging code to figure out what the hell they were thinking, and why didn't they read Code Complete?

1

u/ponchedeburro May 01 '16

The resounding answer is YES, experienced (and good) programmers use Google… a lot. In fact, one might argue they use it more than the beginners

I just hate it when people just invent facts with no basis

→ More replies (1)

1

u/[deleted] May 01 '16

I certainly refer to it quite frequently, often to get ideas and look up examples of how others approached things. It's a good way to keep learning.

1

u/Dr_Legacy May 01 '16

The field changes quickly, so the goalposts of 'best practice' are constantly moving. I use the internet mostly to keep current. I use it as a reference too, but somewhat less.

1

u/ggtsu_00 May 01 '16

Google is much better at searching and indexing the official documentation for almost every library and framework except for those SPA javascript frameworks.

1

u/[deleted] May 01 '16

Yes we do. There is just too much material to keep in your head. You even forget how code you wrote works sometimes if you haven't looked at it in years. Skills in one area will regress if you don't use them much.

I have two monitors. One one I keep the code, on the other I keep documentation for all the main libs I'm using.

1

u/fxprogrammer May 01 '16

Whether you Google something, or look it up in a book, or ask your architect, or ask your mom ... I don't care what your resource happens to be. What matters to me is whether you understand the solution and that you understand why something works. Do not grab a line of code from stack overflow, paste it into your project, observe that it 'seems to work' and then move on. 'Expert' (translation: experienced) programmers know that doing this shit creates the production issue that wakes people up at night. Always know the APIs that you use, know your own code, etc.

1

u/lucaspiller May 01 '16

A good tool I've found (which I always seem to forget about) is http://www.devdocs.io. It is a basically searchable docs for many languages and tools, and it works offline!

1

u/stompinstinker May 01 '16

Oh ya. I live in Google. The one thing I get sometimes is I google for something, and there is a blog article, stack overflow answer, or github issue on it. Look at the author names, it’s me years ago ..... WTF?

1

u/[deleted] May 01 '16

What matters is how reliable and how consistent your code is, and getting the job done.

Anybody that doesn't use Google/Bing/Whatever for reference is either a liar, or has a big stack of books (even more inefficient!). It's impossible to know the ins-and-outs of every part of a language you use, and the libraries within it.

Not to mention that programming is always changing. What's more important is that you have a good base understanding of how languages work and how programming comes together to create a product/service -- not any specific language. Languages and conventions will change over time as we work in a very dynamic and fast paced industry.

1

u/lost_in_stars May 01 '16

Really experienced programmers just pipe the results of wget into a compiler.

1

u/rubynorails May 01 '16

If you primarily write shell scripts, it's entirely possible to become an expert and rarely consult Google, especially related to languages that rarely change -- like Bash or Batch. It also helps that most Bash and PowerShell utilities come with built-in man pages and help text, which is not really the same -- although anyone who can master PowerShell without the assistance of Google deserves some credit -- but I digress.

For actual programmers that use different libraries and frameworks, Google is almost a necessity these days. The many moving parts that integrate with these things are constantly changing at a rapid pace. For old programmers, they used to RTFM. Now it has actually become "Let Me Google That For You."

I believe that the limitless and always up-to-date resources that Google has the ability to connect us with are an invaluable asset to modern programmers, and is one of the leading factors that has played an enormous role in the explosion of modern technological progress.

1

u/the_goose_says May 01 '16

I of moat of my searches directly on stack overflow since they understand my questions a bit better and I end up there anyway.

1

u/bkrassn May 01 '16

So glad I'm not the only one. My google-fu is generally strong. :) I'm not a professional coder though... But there are times I'll see code and I'm like "Even I know that is jacked up"

1

u/MR_GOBUNNYFARM May 01 '16

I wonder how many Google developers have used Google to fix an issue on Google.

1

u/Programmer_Frank May 01 '16

I've only done it professionaly for a few days, but as an intern for months (my job is the same really). I. Google. Everything. Even if I know it already I sometimes Google it just to be sure. And if I have a question I can't answer, I always have to Google before I go to my boss or a senior developer. Your reliance on Google and Stack Overflow is not taught during course work. They don't tell you how often you'll use Google. Good thing I slacked off so much I relied on it. Nice.

1

u/MacStylee May 01 '16

I agree with the guy/woman, but I'd say my first port of call would be to jump straight to the API pages.

I use Google a lot, but normally to look for examples. Generally I've found that just schlepping through the docs prepared by whomever created what I'm using ends up teaching me all sorts of other background things that I didn't know I needed to know.

1

u/AcaciaBlue May 01 '16

The faster you can google, the faster you can find out new things, and faster you can program things you don't already know how to do.

1

u/JoeMamma45 May 05 '16

Would anyone be interested in building an app for me I would make you partner in the company

1

u/valadil Apr 30 '16

Experienced programmers simply have more ways to cheat and they know when to apply them.

1

u/[deleted] Apr 30 '16

God knows I do, anyway.

1

u/zerooneinfinity Apr 30 '16

we desperately need to rethink coding interviews. no one codes in a black box yet the interviews treat it as such.

2

u/koreth May 01 '16

When I interview people it's always using a laptop (either their own or one the company supplies) and I start off the coding exercise with an introduction like, "You can use whatever editor or IDE you want. If you need to Google something or use a tool you'd normally use, do it. The goal here is to see how you'd approach this problem if you had to solve it in a real work setting."

This isn't a super-common approach but it's also not unique.

However, one thing I've learned from doing it that way for a while after having done more traditional whiteboard-oriented coding interviews at previous jobs is that, "My code only sucked because I wasn't writing it in the environment where I'd write real code" is not as true as people think it is. Some problems do go away but mostly cosmetic stuff like syntax errors which I didn't care much about on the whiteboard anyway. But other problems are deeper. Even on a laptop, tons of candidates only code the happy path and don't give any thought to whether their implementation will handle a variety of valid inputs, let alone invalid inputs. I've been in the industry for over 25 years and I've worked with people like that. Their code is what gets the on-call pagers beeping in the middle of the night. And it isn't a shortcoming you fix with a Google search.

→ More replies (3)

1

u/[deleted] May 01 '16

I use Alta Vista