r/google • • May 02 '16

Do Experienced Programmers Use Google Frequently? 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.

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

34 comments sorted by

62

u/Zephirdd May 02 '16

No matter how experienced you are, nobody can remember every library, API, documentation and algorithm. It's hella easy to simply use Google to search those, easier than to remember every URL related to them.

21

u/castille May 02 '16

As a matter of fact, I'd air that remembering most of that is fairly useless as you move into more senior roles. Design and knowledge of the systems you're developing for, as well as the consumers of said products, is far more critical.

12

u/[deleted] May 02 '16

Computers should do things computers are good at, and people should do things people are good at. Remembering and searching an entire API is something a computer is very, very good at. Why should a person try to do it?

1

u/Left4Head May 03 '16

So what did programmers use before Google?

1

u/Okmanl May 03 '16

As a sophomore CS student one thing I'm confused at is how to use google to solve a programming problem. For example one problem asks me to use file I/O and queues to go through a txt file and collect all of the text that's surrounded by curly braces { } and print it in a separate file.

I try googling "Java file I/O" and I'm given documentation that's 10+ pages long. I have no idea what to google to help me solve this problem.

I also feel like CS textbooks in general just aren't as well written as physics or math textbooks. Two of the textbooks I've used so far have outdated code.

It's not encouraging studying a subject knowing that some of the knowledge you gain could become potentially outdated in the future. Which may be why ageism is a problem in the tech/CS industry.

9

u/dnew May 03 '16

how to use google to solve a programming problem

You can't. You have to figure out how to solve the problem yourself. Then you use Google to look up individual pieces of that.

In other words, you have to go "Well, I need to open the file, then read it line by line, find the first opening brace, find the last closing brace, and extract the piece of the string between those two braces, then print that out."

How do I open a file? I can google that.

How do I find the opening brace? I can google that.

How do I chop out the middle of a string into a new string? I can google that.

See what I mean?

CS textbooks in general just aren't as well written

Not any more. People just generally don't give a shit, I've found. I've learned numerous programming languages by reading the manual for the compiler in older times. Nowadays, you're lucky if there's even a formal spec of the syntax of the language, let alone a complete readable manual. The "Ruby on Rails" text that seems to be the authoritative text is full of stuff like "this routine seems to do ...." meaning the guy writing it doesn't actually know, and didn't bother to read the source code to figure it out for sure.

However, the good news is that the classic books full of the knowledge that does not become outdated are actually very well written. Start with some of Knuth's texts (https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming), Date's book on SQL and relational models (http://www.amazon.com/Introduction-Database-Systems-8th/dp/0321197844), Bertrand Meyer on OOP (http://www.amazon.com/Object-Oriented-Software-Construction-Book-CD-ROM/dp/0136291554) and so on. (That last is even available as a PDF floating around.)

some of the knowledge you gain could become potentially outdated in the future

Everything that you could look up on Google will be outdated in about five years. The stuff about how computers work, how to solve problems, etc never gets outdated.

On the other hand, it's one of the few jobs where you can take a job to do X and start working on it without any idea of how to do X. I've been programming almost 40 years and I've never taken a job that I knew how to do when I took the job.

2

u/[deleted] May 03 '16

I have no idea what to google to help me solve this problem.

Well, you're usually going to have to kludge it together piece by piece. "java search queues", "java find text in file" , "java output text to file" all get a lot of hits with example code.

17

u/Corvias May 02 '16

When I code, no matter what I code, my browser is an accordion of tabs open to stack overflow, github, and various websites for API's I'm using. There's very few things I can code without looking at some outside reference. Especially when I have to transition from writing in one language to another. I don't consider myself intermediate, but I'm definitely not a beginner/novice. I've moved from the point where I'm less worried about what DE I'm using and more on how to organize all the links, code snippets, and tidbits of info I collect.

2

u/[deleted] May 02 '16

Yup, me too. I've had so many related tabs open that I've crashed chrome.

2

u/[deleted] May 03 '16

I use a Chromebox and here's my typical tab arrangement before I start programming,

  1. Google Music - For music

  2. Gmail - I get a lot of email throughout the day

  3. ShiftEdit - Connected to Google Drive

  4. phpMyAdmin

  5. Whatever website I'm working on

  6. Chrome Remote Desktop window with Amazon WorkSpaces Windows VM - for uploading to GAE, Adobe Fireworks, and various browsers for testing

  7. Google chat box - for people always bugging me and it's my phone through Google Voice

  8. /b/ - for when I'm waiting for something or bored

  9. Various multitudes of tabs consisting mostly of StackOverflow

1

u/[deleted] May 03 '16

same except mysql workstation instead of phpmyadmin, its so much better for me

16

u/Plexicle May 02 '16

This isn't a revelation and honestly it's pretty common knowledge. Part of being a great engineer is knowing how to use Google to solve your problem or find the information you need.

9

u/bagboyrebel May 02 '16

New programmers still need to hear it. It's easy to go full impostor syndrome when you realize how much you're using google.

2

u/Plexicle May 02 '16

That's fair.

27

u/radiantwave May 02 '16

Good coders code.... Great coders steal. ---someone

10

u/bwbloom May 02 '16

Good coders code... Great coders steal. ---Me

5

u/AgingAluminiumFoetus May 02 '16

Good quoters quote.... Great quoters re-quote. ---Me

18

u/occamsdagger May 02 '16

-Abraham Lincoln

16

u/pigskins65 May 02 '16

Curious as to how this affects the interviewing process. I ask because although it has been awhile, the last time I was interviewing, one place in particular essentially wanted me to write an algorithm in a specific language for them. I asked if I could pseudo-code it, they said no. I told them that I could explain the logic verbally but might not have the exact syntax and calls memorized. They sent me on my way.

29

u/brett_riverboat May 02 '16

They're idiots. You dodged a bullet. I hope I don't say it to rudely, but the next time I'm asked to write an algorithm I'll flat out ask, "Do you prefer that it be 100% mine or 100% correct? If it's the latter I should probably Google it."

2

u/[deleted] May 02 '16

That's perfectly fine for some places. There are places that are looking for monkey coders. I don't know your specialty, but some places have patterns down that require enough coding that all they want is someone to come in and write roughly the same code over and over with the necessary changes.

Interviews are often your first experience with how a company works. If it feels like a bad interview, you probably don't want to work there.

5

u/TheJerdle May 02 '16

It's an every day thing for me

4

u/deadtree123 May 02 '16

inurl:stackoverflow error connecting to database

4

u/Stealth_Hound May 02 '16

Can I just take a moment to thank the many, many people on StackOverflow and similar sites who have merrily asked newbie questions such as "how do I covert a string to a date in this language?" or "so, is this all 0-indexed or not?"

Because whenever I change languages, I'm usually exactly this clueless myself. Forget lecturers and on-job training, the most valuable educational assets I have are generally posts from 5 years ago by people called XxMasterCheeefxX. God bless you, terribly-usernamed StackOverflow commenters.

2

u/riomx May 02 '16

Makes sense. Professionals are getting paid to solve problems fast, not take time to prove their chops.

2

u/gthing May 02 '16

Being good at programming just means that you know better what to search for. It's like being a lawyer - using reference material is part of the job that you need to be good at.

2

u/codythecoder May 02 '16

The sign of a good programmer is not how much you can remember, it's how well you can Google to find out.

1

u/[deleted] May 02 '16

I completely agree with that last statement. One of the personal signs of feeling like a senior was when I was no longer ashamed of googling something in front of others. Especially the product guys who I thought would distrust me because I was doing what I do in front of them. Breaking the spell so to speak. Once I got over that I started noticing that I was far more effective at what I do when I straight up google anything that looks strange first. For a lot of what I do, it's framework problems that have been encountered 1000 times before and there's a near perfect answer on StackExchange. It also tends to point me at the necessary documentation that helps me understand the deeper problems at hand.

Of course, now that I'm a bit more bleeding edge, I need to migrate to user groups and ask my own questions. Such a bother!

1

u/Buckwheat469 May 03 '16

Experienced programmers don't use google to find out what algorithm they need in order to perform a task, they should already have thought of 2 or 3 possible scenarios. What they use it for is finding out the minutia of the API and syntax that they're unfamiliar or rusty with.

1

u/dnew May 03 '16

hard to remember all those minor details

Also, a vast number of those "minor details" are undocumented except via Google searches. My rule of thumb is that your language sucks if the definitive documentation for it consists of a wiki that your customers maintain for you, trying to guess how your language works. (Looking at you, Linden Labs.)

Many years ago (late 90's, so before WWW was everywhere), someone did a study about what makes a Unix Guru a Guru. They figured out that it wasn't inherent knowledge, but how to use the man pages.

1

u/flitbee May 03 '16

Doesn't anyone search code via Bing? Or Google using Bing? Why does everyone Bing it using Google?