Programming is a field that relies wholly on thought processes. It exists within the mind and is the culmination of thoughts built upon thoughts. Teams of extremely experienced and well-trained programmers create structures of data so that other programmers perhaps don’t need to. Tools are designed to solve a problem non-programmers and programmers alike might have so that the problem no longer servers as a roadblock to progress.
And all these events take place over the vast expanse of history, continually being refactored, continually evolving.
No one is expected to know all this history, and each individual’s mind will contain different biomes of logic and experience.
Yet, all this history still exists, no one starts with experience, and time will always be finite.
This last part is where I struggle, and I am continually trying to develop the capability to traverse this vast expanse of time to find a specific moment, but without consuming too much of the moment I currently exist in.
Here, I hope to demonstrate the built-in tools Google search offers, techniques to use those tools and methods to parse the things you search for, in your mind, before you even get to the search bar.
With enough time, you can find almost any record of human history through Google, but we aren’t professional Google search researchers, we’re programmers, and we strive to achieve efficiency in all manners.
 “Skill in using search engines (especially Google) to quickly find useful information on the internet” is known as Google-fu.
Before we move to built-in tools and specific techniques, I think it is essential to consider how one formulates the words to search for, what is the actual thought, and what are you actually trying to ask?
When you’re deciding what words to put in the search box, try to choose words that are likely to appear on the site you’re looking for.  “For example, instead of saying my head hurts, say headache, because that’s the word a medical site would use.”
In addition to the specificity of words (as described above), I will also keep my search to within 6 words for the best results. If my search is longer than six words, I’ll consider my wording.
Google also provides tools built into the Google search bar that parse results, hopefully providing hits that are more relevant to your search. 
Prefixing ‘Dictionary:’ in front of any word and google results will show you the Oxford American College Dictionary definition for that word. If you misspell the word, it won’t show you a definition, so this can also be used to quickly check to see if you have the proper spelling of an existing word or if a word exists in the Oxford American College Dictionary.
Prefixing ‘Calculations:’ in front of a mathematical equation will tell google to put that equation into its calculator and display the results. If you have a single problem, this is quicker than opening up a calculator app and inputting the problem manually.
You can also tell google search to display results containing an exact word by putting the word or words within quotations. This is helpful for pronouns as google search might think you are trying to spell another word and automatically correct it. Often, when you click on a search result, Google search will highlight the part of the page it found with those words, but if it doesn’t, you can ‘ctrl/cmd + f’ to search the page manually. That will often save you the time of reading or skimming through forums or blog posts for relevant information.
Alternatively, you can exclude search results containing a specific word or words by prefixing those words with ‘-’(Ruby -jewelry). This both allows you to receive more relevant search results but also search a line of code taking out instances specific to your project.
Prefixing ‘related:’ in front of a web address you already know will search for a website related to that address in case you were tired of Stack Overflow and wanted a different view.
Speaking of Stack Overflow, the search bar on the google results page has a dropdown to filter your result by time. If you are looking for results pertaining to something that is version or convention dependant, this is a must.
And lastly, don’t forget about google images. Often, you can search for a snippet of code and find a picture of what you’re looking for without having to wade through ‘how-to’ guides to find it. Less relevant is the google reverse image search. If you’re a programmer who makes use of reverse image searching to answer your problems, please let me know down below!
 Google Fu defined.
 Google search support page.
 Google Search Tools