How to use Google to solve the problem
Redguardtoo
2004/07/07
This article describes some advanced techniques that use Google to resolve puzzles, focus on how to select keywords, how to analyze filter information, and more.
Declaration
Please do not use the skills introduced in this article to engage in illegal and unmthical things. I am not responsible for any consequences caused by this article.
2. Readers facing this article
This article describes some advanced techniques that use Google to resolve puzzles, focus on how to select keywords, how to analyze filter information, and more. By reading this article, you will understand how to quickly solve difficult problems at a very large time pressure. You can also understand how to investigate and give programs for some complicated issues. Anyone who is interested in solving problems is suitable for reading this article, as long as:
You don't believe the "software blue collar" statement. You believe that the ability to solve the problem is that people's instinct. You believe in the essence of any problems. You believe that the ability to solve the problem is imagination and a non-three capability.
I understand that I hope the reader is an engineer with professional honor, or can understand this sense of honor. Some people are afraid that they will be eliminated by the advancement of technology, so they try to get a sense of security by devaluating the status of technicians. Since they cannot deny the great achievements achieved by technology, they use some political wrists to indirectly achieve their goals. The most common means is that although the technology is great, the engineer is a score (is it to feudal residual thinking?), The low-level engineers are blue-collar, and China needs a lot of blue collar, and so on. This person who has a feudal residual thought is impossible to learn new things. Of course, it is impossible to understand this article, because it is necessary to become a Google master, you must have an open mind and rich imagination.
3. How to use Google to solve various problems
3.1. Improved tasks
The main job of a Chinese company's project group is to test a system-developed system (debugger GDB) with a Japanese project group (debugger GDB). A Japanese programmer encountered a strange problem, when they debugged with GDB, the program suddenly exited. These programmers have studied two nights and cannot find out the reason. So they gave the Chinese team to the Chinese team on a paragraph of the error message displayed on the front debugger. This team is required to find out the cause.
The team leader in this group will help me. I saw the error message and used the inter-process communication technology I was unfamiliar. I first asked to reproduce the error. "I can't reproduce it, because I don't know where the program collapses, and we have no environment," answer the crucifid. I asked to see the source code. The team leader tells me that I can show me the old code, and the code of the problem has updated several versions, and the Chinese will not get a new code. To put it bluntly, it is no code. I told the team leader that it is impossible to solve the problem under this condition. But the leadership means to use the information of the hand to strive to solve the day.
Let me tap. Unable to reproduce the wrong, no source code, do not understand the relevant technologies, can not locate the BUG's approximate location, the developer I spent two days and two nights and I can't find the reason. And I only have a small error message, in addition to this, even the system is unclear, and is told that not to expect further help. How do I solve this problem?
Before the reader answers this question, I give some prompts, and the Japanese programmers have experience, they must have flipped the error information with Google.
The answer to this question spent 15 minutes. I didn't read any documents or code in this 15 minutes. Before the answer, let me try to give a thinking. I guess the Japanese have been checked the relevant technical manual, so I don't have to read the manual. Give me a limited message because the Japanese can only provide these clues. What is the error message given now? Some of the information printed by the debugger GDB is nothing more than the program exit. For example, the process has received any signal, which process is sent, and the like. My next hypothesis is that the Japanese must have Google's information, so I can't dig anything from this information. To solve the problem, you must play the imagination and do the Japanese "no thing." What did the Japanese have not done? I guess that I have not done a thing, that is, Google redundancy information. When the GDB displays the error message, it will be displayed in a certain format, such as a number of spaces plus a colon. Now I randomly take these error messages, including useful information, including redundant information. I add double quotes before and after this line to tell Google to match the line as much as possible. Then use this as a key to Google to the answer. The answer comes from a Mailing List of GDB, the GDB developer explained that this is a BUG of GDB, which uses a specific version of GDB debugging under specific conditions.
In fact, I didn't have the above analysis at all, and the first thing I did after receiving the task is Google Redundancy. This is my habit. The advantage of redundant information and meaningful information together is to quickly locate people with the same problem. Disadvantages Exclusen some useful information. For example, I now retrieve the redundant information of GDB, I exclude people who use other debuggers. It is not a problem with the information on the Internet, which is not a problem. The real problem is to quickly locate useful information from useless information!
3.2. How to quickly solve specific technical problems
Some "smart people" believe that as long as there is some kind of "great, correct" idea (such as some kind of "Dafa") guidance, any problem can be flattened (the method of flatting the way is to recite some special bats in great ideas. " word). People who don't have this kind of belief, just a ignorant ignorant small reptile. "Smart people" solve the problem is very simple, telling questions on the problem, and then read the spell. This article is written by me, writings in small reptiles, and small crawl can't understand great ideas. I solve the problem with the "smart people". Just start from incompatible details, play imagination, and raise it three. "Great, correct" ideas have no appearance in this process.
Recently I received a task that requested a module that scanned a file in a given directory. The difficult problem is that this module is a shared ojbect, you must know your own physical path. Since the running platform is Linux, there is no directly supporting the API function of this function (which is related to the LINUX application deployment specification). Now if I have to implement this feature, what is the keyword search?
The most direct idea is Google "Get Shared Object Path Linux". How to develop a shared module under Linux. Add other keywords, such as "Shared Library", "Physical Path", and the result is similar. The difficulty of this problem is not to select enough keywords to filter out the required information, but there is no information at all, and it can be filtered. The reason why no information can be filtered, because Linux has its own application deployment specification (such as the configuration file should be placed in the / etc directory, the executable is placed in / usr / local / bin directory, etc.). If this specification is followed, it is not necessary to know the physical path of the shared module. The physical path typically obtains the shared module is to estimate the path of the configuration file by the path.
The final problem is still solved by me. What keywords do I use? The answer is very simple, since the front attack is invalid, I will knock on the side. Think about it, if the run platform is Windows, how to implement this feature? Under Windows is usually implemented with the "GetModuleFileName" API. If some of the programmers want to transplant the Window program to Linux, what should he (she) should get getModuleFileName? The answer came out, Google "getModuleFileName Linux". Search results 1 title is "Qt-Interest Archive - Location of the Program I am Running" is about how to get a path to execute files. Analyze the search results of Google's first page, find some interference information (how to determine the interference information I will explain later). This shows that we need to fix keywords slightly. Google "getModuleFileName Linux" (here the plus signage indicates that Linux must appear in the search results as the keyword). Search Results Article 17 The title is "Guide to Making Relocatable Applications :: AutoPackage", this is the standard answer. It can be seen that there are two elements for solving the problem. The first element is related background knowledge. As an industry, I know that many companies and individuals are porting software under the Windows platform to Linux. I also know how to get a full path under Windows. The second element, combined with background knowledge, search the right answer through some features details. "GetModuleFileName" is a detail, I think it can be searched together with this word and "Linux".
Let me raise a few examples, explaining how to start from the details, find answers to the problem.
If I want to find the source code written by the VB (Visual Basic) language, I will add "" End Sub "keyword because this keyword is the grammar of VB. If I want to find C / C code reference, I will add "cvs" as the keyword because many open source projects are written with C or C , and these projects use CVS as version servers, And published on the plugin of the CVS server to the web. VB grammar and open source software, this is my background knowledge. But people with the same background knowledge will not necessarily find keywords. It is important to observe. Observe the VB code, observe the homepage of open source software, play the imagination, and extract keywords from the details.
Read here, is the reader is a bit open? Solve the problem to walk two steps. First there must be background knowledge. Then it is imagined, combining the seemingly irrelevant details, refines the keyword.
3.3. How to solve complex abstract problems
Some complex abstract problems cannot quickly find the answer. But as long as the method is correct, these issues can eventually be resolved in step by step. The step is like this. First of all, you will generally describe the problem, remove the keyword Google from the description. Next, read Google's search results, select valuable articles. Then analyze representative keywords from these articles, continue to search, read results. Repeat the above steps. It should be noted that the keyword should not be free, because the complexity and abstraction of the problem are not enough. After searching, reading, searching steps, you should have a matter of understanding questions. After collecting information as much as possible, you can now draw a preliminary conclusion (don't forget to collect information that does not support this conclusion). The next step can be refined from a big problem, and the aforementioned skills can be used to solve small problems. The purpose of doing this is to get the feelings of the big problem, not trying to solve the big problem itself. The key is a multi-angle collection information. Information should not be mutually proven, preferably conflict with each other. I will emphasize that due to the complexity and abstraction of the problem, don't expect to use special techniques to solve problems in the short term. With the conclusions, there is a support and objection, and some small trials have been done. You will make a discussion of the conclusion, information, and test results (Superman can fly, you can't). As you can do, you will do it here. From the problem itself, the true resolution of complex abstract issues requires many people to discuss and experiments for a long time. Below I will tell the show, explaining how such problems start.
We use the "Software Development Industry to learn what programming language, how to learn" as an example. As mentioned earlier, the keywords generally described should be selected. So I suggest you add keywords related to the programming language, but should choose how to learn the keywords programming. "How to" is "how" Chinese, is the title of the foreigner technical article. (Questional outside, "how to" is my personal ace keyword). "Learn Programming" meaning in Chinese is "learning programming". Plus "How to", complete keyword "" How to "learn programming" (Note: English double quotes before and after HOW TO indicate how to search this phrase as a word).
Now let's take a look at the search results. Search Results Article 5 "TEACH YOURSELF Programming in Ten Years (Ten Years to learn to Program)" is a good article, introducing the correct attitudes and methods of learning programming. Other, such as "How to Pick A Programming Language", you should be more interested. There is also a "How to Become A Hacker", this is a classic literature (hackers here refer to excellent programmers). Other "How to get Started with C (how to learn C )", "Instant Hacking: Learn How To Program with Python", "How Java Works (How Java works)", "How C Programming Works (How to work)", "How to Program Perl", "How to: Learn Visual Basic Programming", etc. About "TEACH YOURSELF Programming in Ten Years (10 years to learn to program)" This article is necessary to talk about it again. I hope you don't scare by this title. Let me tell you a small secret, about how to determine the secret of the keyword. As an initiator, you don't know how to develop, just like I don't know how to direct movies. So, maybe you think that there is no ability to analyze search results. There is a way to help you make a correct judgment when you first search. For beginners, you will think that "common sense" and popular trends on software development are also aware of, for example, you think that there are many comments, for example, you think that programming can be used 21 days. This may be a biased, Google is no biased. If you think that the correct keyword is used, Google's results are some articles with your "common sense", what did you explain? Explain that you choose keywords.
Suppose you have selected several programming languages, and now you should understand the shortcomings of those languages. Foreigners are "Is Dead", such as "C Is Dead", "IS DEAD" is "Is Dead", such as "C Is Dead". Let us go Google "C " Is Dead "(Note: English Double Quotes before and after IS DEAD). Search results are very unexpected? Search results are mostly "java is dead", which does not indicate that Java is a very poor language, and further conclusions require reading search results. Now our programming language is C ! Let us implement more stringent keyword matching, Google "C is dead" (Note: English double quotes before and after C is dead). Finally got the relevant article. These articles not only discuss C , which is helpful for you to choose other programming languages. For example, the article titled "Khakipants: Things to Learn" discusses the necessity of learning OCAML and Ruby. Let's try again to try other programming languages (such a few times you fell in love with search), Google "Visual Basic Is Dead", Google "Perl is dead", google "" html is dead ". Finally, you finally decided to learn a language, such as C , now you know what tools and resources are available on C , directly Google "C ".
4. How to improve your search capabilities
4.1. Attitude determines everything
The previous introduced how to select the skills for solving the problem. Next, we must discuss how to get these techniques and how to further improve search levels. Since these discussions are based on my experience and experience, there must be a lot of biased places. If the reader has more effective ways, be sure to let me learn (my email begins part of this article).
To become a Google master, the primary is attitude. "attitude decides everything". If you believe google is a powerful tool to solve the problem, you love, worship Google, you may become a Google master. A comparative day is really idea, "because Google is too powerful, so you should not use Google." Its motivation is that the tool is too strong, and people will lose certain skills depending on the tool. I think people (of course, including programmers) are in human intelligence, emotion, morality. The so-called skill is just the flexible use of the above abstract quality. The benefits of learning new workers are far from improving efficiency. The real benefit is to get the inspiration of "It can do this." People who die to hug the old tool cannot be safe, their ending is eliminated by the trend. For example, when the tank is coming out, the General Barton of the cavalry did not hesitate to embrace this new war tool, and finally became a master of armor tactics, name is a history. Polish cavalry worried about his loss of skills was slaughtered on the battlefield by the armored division of Nazi Germany. The truly important skill of technicians is the insight of the identification of the value of new technologies and the action of using new technologies. .
4.2. Crazy Search
With enthusiasm, it is easy to be a Google master. It's just practice. Next, I will introduce the way to practice. And the idea of the average person is different, I don't think "guess the keyword for a specific question" itself can be used as an exercise means. I recommend a practice method called "Crazy Search Act". The method is very simple, find an interesting article, searches it in various ways, words, words, and sentences. Try to analyze the results of the search, (Analytical methods have a detailed description thereof), there is a good or bad conclusion. A good definition is to provide useful information. Let me give an example. I "Crazy Search" article title "Software Business Plays". First, Google's title "Software Business Play" is played by the user. " Search results include two pages, it can be seen that the original origin of this article is Chinabyte. Next, Google Author's "Old Single", from the search results, the title of "Old Single: Three Software Practitioners" seems to be written by the same person. But people who call old singles seem more. For example, the old list in the article "Old Singles and His 6 1 Lottery Prediction" is not what we are looking for. Google "Old Software" is filtered with spam, you can see "Analysis of Workshop Development", "The official in software enterprises" is also written. As long as you put these four articles together. Everything is obvious. Old talks are all personal experience, and the text is smooth. It's now a conclusion. My conclusion is that the old man is all real information, the conclusion is good.
Next, our words in our google. Taking the first sentence "Software Enterprises for the purpose of production and operation and product sales, naturally known as software vendors" as an example. Google "Production and Operation" has been articles such as "China Agricultural Bank - Loan Business Personal Production Learning", and analyzes the word more written, more for government officials, news, etc. "Production and Management" is like a big word. Google "Product Sales", resulting in the product page of each enterprise website. If the word and other words are combined, it seems to be positioned to the specific page of the corporate website. The space is limited, I analyze this. Finally, I will let me give two words that appear in the text, "audience needs" and "blow up". "Audience needs" is obviously the terms used in news advertising industries. There are only two search results of "Blowing", one is the article we are analyzing, and the other is "Holy Sword Legend III".
4.3. How to improve "search literacy"
"Crazy Search Act" is just entry practice. It is necessary to be an expert, the key is to improve "search cultivation." Search cultivation reflects the ability to quickly filter out useless information and the ability to locate useful information. The problem encountered in the actual work is to solve the "deep search" multiple times. "Depth Search" means that the first search result must be read and analyzed by people, then the next search is conducted in the analysis, and so on. My experience is that a difficult problem often needs to be doing dozens of search to find the correct answer. If you slowly read each message, very tired.
The fundamental approach to search cultivation is to read a large number of non-technical books (technical books are a bit more tired) and appropriate writing training. This problem itself can be written into an article, this article cannot be expanded due to the space limit. I only provide my little experience.
The key to the filtering search results is two points, "Credit" and "style".
The so-called "credit" is how to provide information about the credibility of the person's own person. To put it bluntly, he (she) did a relatively excellent job before. For example, because I have read John Robbins Written "Debug Application", I trust John Robbins in terms of debugging technology. Because credit is available (so-called love house and embrace), the author of the information referred to in John Robbins is also a master in my mind. Conversely, the credit of the article mentioned by John Robbins is higher than that of credit that is not mentioned. There is a trap here, it is not necessary to mention the name of too famous masters. Some masters are too famous, and some people who don't learn unpredictable will quit their names or articles to cover their own poor. For example, it is not necessarily valuable to mention the "Linus" name for Linux. The backbone programmer of some world-class open source projects is also credit. The above criteria is enough for me. Because I have limited level, I haven't learned not many experts in the industry, so I need to stick to high standards. This standard is that there is an impact on the world, and the book is credible. Sometimes search results can not be linked to the master. For example, those who provide information is a "technical worker". At this time, I don't think it will be discriminated from the perspective of "credit". Some people will judge the author's credit and reproduce the value of the article from the name of the nationality, race, gender, age, working company and even the middle school. This method has a taste of discrimination and is not reliable. I tend to start from "style". The inner style is unable to cover up. For example, although my sister is just a simple document, she will not forget to add a few "Eleg" words in the text to show that the Chinese is not white.
For those skilled, the result of the style is very simple, "good" or "bad". In order to get this result, some indicators are needed. Next, I will talk about these indicators very briefly. Due to my ignorance and prejudice, plus the limited space, these indicators must have a lot of vulnerabilities. Please readers have a tolerance to me.
The title is an object.
Is the body of the border from the border, praise?
Does the body have examples, have data, have a complete causal relationship? I stressed here, it is very important to "intact" in the relationship. The author of the technical articles write down the default premise of derivation, the cause is complete. What is the default? In the movie "Elizabeth", the Minister Robert, the minister of Elizabeth, said to her: "As the Queen, you must ...". Robert said the default premise is that he believes that the young que has no ability to independently rule the British, Queen and his own relationship is the relationship between students and teachers. In the final part of the movie, Elizabeth directly refute this premise from the export, "'Must' words are not able to say to a queen .... I am my father's daughter .... From now, I will Make your own decision ... ".
Consider (considerate). For example, to give a detailed source of the referenced data, it is easy to verify.
Do you use an authority or ordered tone. Use this kind of tone or talented or bluff. Need to check with other indicators.
Have you talked about weird? The grateful talker on the general abstraction is often reasonable. Specific issues are risky.