14 ms·
How Much Does an Experienced Programmer Use Google?
- leesalminen 11y agoSometimes I force myself to think for ~5 seconds to recall a functions name. I usually end up feeling that it would've been quicker to just google it.
- rqebmm 11y agoWhen I was first learning, I googled everything. When I grew comfortable, I took pride in my ability to look up the reference docs myself and figure out the correct solution. When I grew comfortable with that, I googled everything because it was a lot faster.
- aurelianito 11y agoMe too, but I have decided to never cease to learn, so I am stuck in step (1) :D.
- ilaksh 11y agoI wonder if you had enough electrodes or some BCI monitoring your thoughts before during and after a Google search and then that was used to train a deep learning system (probably specific to you) then you could get the answer before you start typing into Google, basically automatically.
- athoik 11y agoUsing Google is ok, but mastering Google is art! Although sometimes you are the first that hit an issue. Solving the issue and sharing the results is the next greatest thing one could do. Reporting the issue is great too.
- akyu 11y agohttps://xkcd.com/979/ https://xkcd.com/979/
- trcollinson 11y agoI'm probably about to date myself, but here goes. When I started programming, there was no Google. There wasn't a search engine yet. There were BBS's (which were slow), books (which were expensive), and magazines (which were infrequent). More junior programmers often ask, "Did you look things up? How did you search for things without Google? It must have been so hard!" Well, from my perspective, it was! It was a horrible pain! Sometimes you'd spend way too much time debugging a simple error or looking up in some magazine that you are sure you read somewhere a statement that you are pretty sure would help you out in this particular scenario. Oh, it was tedious. On the up side, at the time I didn't use nearly as many complex technologies as I use today. Quite literally today I have written in Java, a bit of Ruby, a bit of Perl, and some bash. If we expand out to this week we can add in HTML, CSS, Javascript, and SQL. Back when I started I used Basic for long stints, or C for long stints, and that was it! Google (or in my case DuckDuckGo), StackOverflow, and the like are AMAZING. I am grateful every time I get to use one of them to help me quickly solve a problem and move on to the exciting part, which for me is making working software.
- Swizec 11y agoI'm only 27 and I too started coding before there was Google. Dial-up was barely becoming a thing in my country. This was around 1995/1996. I got my first internet connection at home in 2001 (ADSL). Before that I would go to the library to use their internet. But it was a huge novelty and I had no idea how to use it to help myself or how to find a BBS or anything. I knew how to IRC, but I didn't know there were other programmers there. Those 5 years were a strange strange time. I would spend my days between the text editor and its built-in help files. This was Turbo Pascal. It was great, I could look up the function signature of anything in the language and some description of what it does. Once a week I would ask my mentor about things. The rest was tinkering. And, honestly, it was amazing. I was having shitloads of fun just playing around with different functions, coming up with my own ideas on how to use them, figuring things out just by trying them and seeing what works better instead of immediately resorting to the internet and doing research like I do now. Sure, I'm more productive now, but I'm having a lot less fun.
- whatever_dude 11y agoYeah. I didn't use Google (or any other search engine) when I started. For some I had an electronic reference with some syntax. But you know what I really used? The printed reference, either a manual for a language or a printed copy of it if the original was in electronic form. I'd have this stack of 200 pages of printed paper.. Nowadays I'm kind of scared of how much I rely on Google and StackOverflow, and fear I'm being too reliant on other people's knowledge, but you know what - there was an alternative, and it sucked.
- aidos 11y agoAlmost 20 years in and I still use stackoverflow (via google) most days. There are just so many weird things that take too much digging through other people's src to figure out while you're busy trying to solve another issue. Something as simple as (last week) - why is my unicode printing ok in the terminal but not when running from upstart? You debug to that level and then you want to know the right way of configuring things. I normally read a bit more than I need to so I'm better armed for other scenarios.
- Aldo_MX 11y agoI usually force myself to use the documentation of a Language/Framework/Library/etc. with a tool like Dash[1], because I don't always have Internet Access. I try to restrict myself to use google only for troubleshooting. [1] https://kapeli.com/dash https://kapeli.com/dash
- kyberias 11y agoGoogle usually finds StackOverflow answers which is great. I once found an answer to my question from SO, tried to upvote it but SO didn't let me because it was my own answer to the problem written over a year ago. It seems StackOverflow works well for seniles as well.
- vangale 11y agoI'm embarrassed to say, but this has happened to me too. More than once!
- nadams 11y ago> Google usually finds StackOverflow answers which is great. Depends - I've seen stackexchange questions that are exactly what I'm looking for and I would argue are on topic - only to see that it has over N thousand views with a note saying "closed due to offtopic" by a moderator. Don't even get me started with those people who go through the site editing posts to change the link that someone posted because they don't agree with that site. Don't get me wrong - there are some great answers on stackexchange sites. But too many times I've seen someone ask a question, a response with "no that's not possible" then another with "actually that is possible".
- Merad 11y agoThe worst part is when you search for a question and find one obscure topic several years old asking the same question. Then you realize you were the one who asked that question years ago, and you never found an answer.
- on_and_off 11y agoI am considered a senior engineer in my specialization and I still Google a lot of things. There are still many things that I don't know, some things on the tip of my tongue that I almost remember and some things I use once or twice a year and forget in the meantime. However, the more I mature as a developer, the faster I can detect horrible StackOverflow answers which technically answer the question but cause a couple of more or less sneaky issues.
- sanderjd 11y agoYep, the good/bad pattern-matching is the important and hard (impossible?) to teach part.
- austinjp 11y agoIf it's pattern matching then the most effective teaching method is probably exposure to patterns plus feedback on attempts at detecting/emulating those patterns.
- sanderjd 11y agoAgreed. Interestingly, this is how gaining experience works – you become exposed to patterns by needing to search for them, and get feedback from interpreters, compilers, and code reviews from teammates on how well you have picked out the right approach. Presumably that process could be sped up with a more formal approach.
- hpeinar 11y agoFor the sake of other programmers, I really hope you comment these answers and provide tips ;)
- cartoonfoxes 11y agoOne common characteristic I've noticed among the experienced engineers I've known - none of them have the time or inclination to post to StackOverflow, or forums, etc.
- joezydeco 11y agoI've joked that if I only had a small program that would take my compiler errors, grab the important part (especially when C++ pukes a mountain of text) and automatically feed it into Google, my productivity would take a huge jump. Now I'm wondering if there's a business model for it.
- danieltillett 11y agoI have often wanted something similar for comments. Before I write a new function I write the comment of what it is supposed to do and what it returns. For fun I sometimes copy and paste the comment into Google to see what other people have written. It would be great to have a side window showing all the Google matches to your comment as you are writing it.
- TheOtherHobbes 11y agoGoogle is obviously missing a trick. Instead of working as a search engine, it should work as an online compiler and code repository. Then it could apply machine learning and AI to predict code before it's typed. Maybe Google Code was an early prototype? I regularly wonder how much code is repeated effort. I get the impression that some very non-trivial percentage of global business effort is thousands of different developers writing their own versions of code that does the same few things - especially in web land. For some reason frameworks seem to make this problem worse instead of fixing it.
- joezydeco 11y agoI think it's all repeated code now. The moment I get an error the first thing that crosses my mind is "someone has had this problem before, I just need to find the forum where they discussed it."
- jonathaneunice 11y agoGoogle is my hive-mind. Stack Overflow* is where I find the most real answers. * and sister sites like programmers.stackexchange.com
- planetjones 11y agoThis post is a good example of why fact based interview questions are not useful. It's how information is gathered and applied which separates the wheat from the chaff. Einstein puts it best: One of Einstein's colleagues asked him for his telephone number one day. Einstein reached for a telephone directory and looked it up. "You don't remember your own number?" the man asked, startled. "No," Einstein answered. "Why should I memorize something I can so easily get from a book?"
- thesimpsons1022 11y agoanytime I hear an Einstein story I assume it's made up.
- minthd 11y agoWell, he also said that imagination is more important than knowledge...
- danieltillett 11y agoThis is my rule too. I actually use the stronger rule which is anything attributed to anyone famous was not ever said by them.
- AnimalMuppet 11y agoThere's a similar story in "You Must Be Joking, Mr. Feynman". Feynman looked up something on an anatomy chart of a cat. A biologist was ribbing him that he had to look it up. Feynman said, "You mean you spent four years memorizing something I could look up in 15 minutes?"
- narrator 11y agoIf I'm using a language and platform that I'm very used to, then not very often. In that case, I'd only use Google if I hit a weird bug in the platform that I haven't seen before or wanted to use a new capability. When I'm just starting out on a new platform I'll Google a lot though. I find it's good to keep a blog of everything with a new platform that took more than an hour to figure out. These days, there's a definite lack of appreciation for rote learning of frequently used information.
- tetraodonpuffer 11y agoI miss the days when I was developing in mostly only one language (C) and mostly only one environment (X11/Motif), all the searching I needed to do could be done on my bookshelf that was filled by the awesome O'Reilly 'Definitive guides to the X11 system' series and other related books (like the great 'Software portability with Imake', for example) It was so nice to have all the knowledge I needed at my fingertips and I was always sure to visit any technical bookstore if I was abroad to see if there were other O'Reilly books I didn't own; I remember when I went on vacation in England feeling so bad about not being able to buy all the books I wanted in London because I didn't have enough space in my luggage... Nowadays having to switch at a moment's notice between perl, python, C and java, as well as many, many, many related environments/libraries I don't think I could function without google, there is just too much information available and it changes way too fast. It's not like it's any more complicated than it used to be (I think at one point I ended up subclassing the XmText widget to support rectangular selections, which took a while to get working) it's just the volume that makes it difficult to keep more than a couple of environments fresh in your brain without having to be online to refresh your memory.
- m0dc 11y agoMemorizing documentation and obscure bash tricks is the last thing a developer should be expected to do. Even reading the documentation (in its 'raw' form) can sometimes be harmful, because you miss out on the contextual information that a search engine provides. Especially if you're new to a language or domain, it's easy to fall victim to the XY problem [0] - you comb the docs trying to implement your perceived solution, when a simple Google search or Stack Overflow answer would give you the solution you're really looking for in seconds. If something is important to you, you'll absorb it over time anyways. [0] http://www.perlmonks.org/?node=XY+Problem http://www.perlmonks.org/?node=XY+Problem
- redwards510 11y agoI miss the days where you could become an expert in one language and work completely offline. Things have changed so much though, with everyone expected to be "full stack" and have a working knowledge of a wide variety of constantly changing APIs. Now, having n years experience in one language no longer seems relevant. Your value comes from your ability to understand requirements and marry different pieces of technology together. I don't feel as smart having to constantly look things up.
- icebraining 11y agoThere are still jobs like that; right now, Indeed.com has 2000 COBOL jobs offers. I wouldn't trade it, though.
- Arnor 11y agoOn any given day I use any combination of the following languages: Ruby, Python, JavaScript, CoffeeScript, Haskell, Bash. If I could remember how each language handled list operations and JSON/Base64 encoding I could probably code much faster, but the real efficiency gain wouldn't come until I stop reading HN :P
- LukeB_UK 11y agoIf you mainly look up documentation, DevDocs[0] is a great app to use. It's browser based, but you can make it offline. [0]: http://devdocs.io/ http://devdocs.io/
- jdright 11y agoVery nice, thanks!
- fredgrott 11y agoI develop android apps and use Google to catch device specific bugs ie the mention of bugs and workarounds that way I only have to pay for one android device rather than have about 25 devices
- thetruthseeker1 11y agoI can't agree with this article more. It's like the author read my mind. I have programmed in perl, C, C++ in linux, VC++ & COM, python, JAVA, JS, VB, assembly language, Prolog, Lex, Yacc. I am sure I missed a few in this list. I think of problems in abstractions and when I think of syntax/semantics its almost a vague haze a mix of libraries of various languages. Dont get me wrong, once I start programming in a particular language, I am in the "zone" so to speak. But I think I need Google too often.
- jimmaswell 11y agoOne thing I appreciate about good autocomplete like Intellisense is that for problems like the length example, I can guess and confirm with the autocomplete even faster than going to another window and googling it. Even lets you know if it's a function or member.
- minthd 11y agoAll this raises an interesting question: what tools does Google offer it's developers ,to search for help and code ? is it better than what we've got ? Also ,the same goes for tools for patents and engineering knowledge search.
- chubot 11y agoYou can see a public version running on the Chromium source here [1], which is pretty nice. Notice that it understands symbols and so forth, which essentially involves building/compiling all the code. I think it is ahead of what you'll get elsewhere, at least for C++. https://code.google.com/p/chromium/codesearch#/ https://code.google.com/p/chromium/codesearch#/
- _nato_ 11y agoTo quote a great hacker, Joe Armstrong, ``The reason we write code is because we can't find it on Google.''
- blakecaldwell 11y agoI don't even bother committing some easy stuff to memory. Living in a polyglot environment, there's just too much going on to worry about the little details that Google and StackExchange can give me in a moment.
- thoman23 11y agoI feel the same way. It worries me that it may come back to haunt me in an interview environment where the fact that you don't have something in RAM could make you look incompetent, when in fact it's just a conscious choice on where you are going to store your knowledge.
- eldavido 11y agoHave to disagree with this. If you live and work in a language for a timescale measured in years, you're just going to know that certain things "look weird" compared to others. Example: almost everything in Ruby is a member function of an object. You don't do len(x) in Ruby (that's a Pythonism) because Ruby (and its intellectual parent, Smalltalk) are on the whole more hardcore about OO than the Python/C/ALGOL family. On the other hand, I agree that a lot of "programming" today doesn't require deep competence, and that languages can be learned. But there can be value in knowing something really well vs. having a mere passing understanding.
- Osmium 11y agoAll I can say is that I've never regretted spending too much time looking for more information, on the web or otherwise, but I've frequently regretted not spending enough time after re-implementing someone else's mistakes for the past several hours/weeks/whatever. It's the lesson that keeps on giving. [Not that I'd call myself an experienced programmer, but I'd say the same is true of scientific research and many other things.]
- ThatGeoGuy 11y agoPerhaps I am in a minority because I am currently involved in research / academia, but I find I am using Google less and less as time goes on. This is not meant specifically to be a dig at Google, nor am I saying I go without; however, it really isn't as useful to me now as it was when I first started programming. The reason for this, I believe, is that I am less and less interested in the broad range of answers Google often returns. Sure, you can easily find an answer on StackOverflow as to why Visual Studio is giving you a LNKxxxx error at compile time, but this has limited utility (in my experience). As time has gone on, I find myself searching Github, API documentation / wiki's, and most importantly, my University library. I vastly prefer reading real code alongside documentation than to just get an answer. Sure, I memorize the easy things, like how to get the length of an array in Javascript or which library to import to access vector-fold in Scheme, and that's fine if you're able to do it (if you Google this information, you likely work with more than 3 languages per day or per week). Instead, I find myself searching for answers in 1) other implementations 2) documentation of that implementation, and 3) in the original work documenting the theory or concept (papers, journal articles, textbooks). Certainly, I think it's okay to Google something, or just search in general. But as time has gone on, the value of my University's library, as well as specific documentation and the availability of open-source implementations of most general purpose materials / paradigms has made my life infinitely easier (and hell, possible). While I value what's possible to find on today's search engines, often times dedicated resources really are the best way to go over the much more broad search engine Google provides. Note though, that despite this, I do realise that much of these "specialized resources" were discovered through Google, so perhaps I am in circles on this one.
- liebknecht 11y agoVery rarely. In general, we use DuckDuckGo.
- fezz 11y agoGrep was my google in the old days. I kept a library of code I liked or found useful. For example, a bunch of nicely written code on SGI's that came free by guys like Paul Haeberli was quite useful say if looking for opengl examples.
- spiralpolitik 11y agoA lot. Simply because it's impossible to remember everything unless you use it on a day to day basis. Every useful link I find is tagged and stored in a repository for future use.
- pluma 11y agoIf you never have to look anything up, you're likely not actually getting better. The last thing a developer can afford is to stagnate for extended periods of time (i.e. years rather than weeks). The likelihood that you already know everything there is to know about your niche and that you will be able to stay in only that niche for your entire career is extremely low.
- Theodores 11y agoMore often than Bing? In the olden days you had to write a lot more stuff from scratch. This would be in a language that could be explained in a relatively concise manual. So everything you would need would be in that manual. You could learn from things others did with the same manual/hardware by seeing the end result, but the art required for that result wasn't open source, you would have to work it out yourself and RTFM as often as needed. Magazines were as good as it got. The knowledge to program wasn't easily obtained, for starters computer kit could cost many thousands. Computers weren't really networked back then either. Floppy disks were the distribution medium. Also computer screens actually flickered in glorious 1024 x 768. Plus they were noisy. You read your code in printouts side by side with the manual, probably hand-writing code before typing it in. Back then it must have been possible for someone to actually know a language such as 'C' (or BASIC, or an 8 bit assembly language) completely as in know all the commands and understand all the concepts. This would be learning by rote to a certain extent as the 1-2 manuals would be memorised to all intents and purposes. I don't know if that sort of mastery of a subject is easier to obtain today.
- jheriko 11y agowasting time remembering the unimportant fine details is a sign of a bad programmer imo. good programmers use software to make themselves better and google is a very reliable alternative to excessive memory (but not understanding, or problem solving skills)
- thoman23 11y agoWell, I'm a Scala developer these days so I certainly don't use the official documentation. :p That leaves Google/StackOverflow.
- jghn 11y agoNot sure what you mean here, I use the official scaladoc constantly
- krapp 11y agoI write PHP and javascript for a living and C# and C++ for fun and school, so in my experience, a lot.
- mianos 11y agoOver 30 years in. My second monitor is for google search when it's not moved due to multiple putty sessions overflowing the first :) I still have my original Kernighan and Ritchie. When I went to the bookshop there where two books, K&R and a Byte book on C. I used to remember many of the pages numbers of things I looked up a bit. Next I moved on to help files. I made my own CHM files or scabbed them. Now we have google, why not. I agree with the point. I use python all day now but still do a bit of JS and use google for the same things, size, len, .len(), .size, len(x). This is how we rolled: https://goo.gl/photos/VRyNYQMyVLxJjYVq7 https://goo.gl/photos/VRyNYQMyVLxJjYVq7