小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何使用google解決問題

 barbarossia 2006-08-16

如何使用google解決問題

redguardtoo

2004/07/07

 

本文介紹了使用google解決難題的一些高級技術(shù),重點講述了如何選擇關(guān)鍵字,如何分析過濾信息等等。

 


1. 聲明

請讀者不要使用本文所介紹的技巧從事違法、不道德的事情。我對于本文所導(dǎo)致的任何后果概不負責(zé)。


2. 本文所面向的讀者

本文介紹了使用google解決難題的一些高級技術(shù),重點講述了如何選擇關(guān)鍵字,如何分析過濾信息等等。通過閱讀本文,你會明白在極大的時間壓力下快速解決高難度問題的技巧。你也能了解如何對一些復(fù)雜的問題進行調(diào)查并給方案。任何對解決問題有興趣的人都適合閱讀本文,只要:

你不相信“軟件藍領(lǐng)”的說法。你相信解決問題的能力是人的本能。你相信任何問題的本質(zhì)都是一樣的。你相信解決問題需要的能力是想象力和舉一反三的能力。

說的明白一點,我希望讀者是有職業(yè)榮譽感的工程師,或者是能夠理解這種榮譽感的人。有些人害怕自己即將被技術(shù)的進步所淘汰,于是試圖通過貶低技術(shù)人員的地位來獲得安全感。由于他們不能否認技術(shù)所取得的偉大成就,于是使用一些政治手腕來間接地達到目的。最常用的手段就是雖然技術(shù)是偉大,但是工程師是分等級的(是不是封建殘余思想作怪?),低級的工程師就是藍領(lǐng),而中國需要的是大量的藍領(lǐng),等等。這種有封建殘余思想的人是不可能學(xué)習(xí)新東西的,當(dāng)然也不可能理解本文,因為要成為google高手,就必須具備開放的頭腦和豐富的想象力。


3. 如何使用google解決各種問題

3.1. 不可能完成的任務(wù)

一個中國公司的項目組的主要工作是測試一個日本的項目組用C語言開發(fā)的系統(tǒng)(調(diào)試器為gdb)。一次日本程序員遇到了一個奇怪的問題,當(dāng)他們用gdb調(diào)試時,程序會突然退出。這些程序員研究了兩天兩夜,不能找出原因。于是他們把退出前調(diào)試器上顯示的一段錯誤信息email給中國小組。要求這個小組找出原因。

這個組的組長要我?guī)兔?。我看了錯誤信息,用到了我不熟悉的進程間通信技術(shù)。我首先要求重現(xiàn)錯誤?!盁o法重現(xiàn),因為不知道程序是在哪崩潰的,而我們這也沒有運行環(huán)境”,回答的斬釘截鐵。我要求看源代碼。組長告訴我,可以給我看的都是舊代碼,出問題的代碼早更新過幾個版本了,中方暫時還拿不到新代碼。說白了,就是沒代碼。我告訴組長,在這種條件下要解決問題是不可能的。但是領(lǐng)導(dǎo)的意思是利用手頭的信息,爭取當(dāng)天解決。

讓我小結(jié)一下。無法重現(xiàn)錯誤,沒有源代碼,不了解相關(guān)技術(shù),無法定位bug的大概位置,開發(fā)者自己花了兩天兩夜也無法找出bug原因。而我只有一小段錯誤信息,除此之外連系統(tǒng)干什么的都不清楚,并被告知不要指望進一步的幫助了。我該如何解決這個問題?

在讀者解答這個問題前,我給點提示,日本程序員都是有經(jīng)驗的,他們肯定已將錯誤信息用google翻了個遍。

給出這個問題的答案花了我15分鐘時間。這15分鐘時間內(nèi)我沒有讀任何文檔或者代碼。在說明答案前,讓我先試著給出思路。我猜日本人已經(jīng)查過相關(guān)的技術(shù)手冊了,所以我沒有必要讀手冊。給我的信息有限,是因為日方只能提供這些線索?,F(xiàn)在看看給我們的一段錯誤信息是什么?無非是程序退出時,調(diào)試器gdb打印的一些信息。例如退出的進程收到了什么信號,該信號是哪個進程發(fā)送的等等。我的下一個假設(shè)就是日方已經(jīng)google過這些信息,所以我也不能從這些信息中挖出什么東西了。

要解決問題,就必須發(fā)揮想象力,做日本人“沒有做過的事情”。日本人沒有做過什么?我猜沒有做過一件事情,那就是google一下冗余信息。gdb顯示錯誤信息的時候,會以一定的格式顯示,比如若干個空格加個冒號什么的?,F(xiàn)在我將這些錯誤信息隨機取出一行,這一行既包括了有用的信息,也包括了冗余的信息。我在這一行的內(nèi)容前后加上雙引號,以告訴google盡可能嚴(yán)格匹配該行。然后以此作為關(guān)鍵字google到了答案。答案來自于gdb的一個mailing list,gdb的開發(fā)者解釋說這是gdb的一個bug,該bug在特定條件下使用特定版本的gdb調(diào)試才會發(fā)生。

事實上當(dāng)時我根本沒有做如上的分析,接到任務(wù)后我做的第一件事就是google冗余信息。這是我的習(xí)慣。冗余信息和有意義的信息一起檢索的好處是可以快速定位到有同樣問題的人。缺點排除了一些有用信息。例如我現(xiàn)在檢索gdb的冗余信息,就排除了使用別的調(diào)試器的人。好在internet上信息實在是太豐富,過濾掉有用信息不是問題。真正的的問題是從無用信息中快速定位有用信息!


3.2. 如何快速解決具體技術(shù)問題

一些“聰明人”相信,只要有某種“偉大、正確”的思想(比如某種R20;大法”)的指導(dǎo),任何難題都可以擺平(擺平的方法就是背誦一下偉大思想中的某些特別棒的詞)。沒有這種信仰的人,只是愚昧無知的小爬蟲?!奥斆魅恕苯鉀Q問題很簡單,對問題大面上講一講,再念一下咒語。本文是由我,小爬蟲中的一條寫的,小爬蟲不能理解偉大的思想。我解決問題采用和“聰明人”相反的方法。就是從不起眼的細節(jié)入手,發(fā)揮想象力,舉一反三。這個過程中“偉大、正確”的思想連影子也沒有出現(xiàn)。

最近我接到了一個任務(wù),要求實現(xiàn)一個掃描給定目錄下的文件的模塊。問題的難點是這個模塊作為一個共享模塊(shared ojbect),必須知道自己的物理路徑。由于運行平臺是Linux,并沒有直接支持這種功能的API函數(shù)(和Linux應(yīng)用程序的部署規(guī)范有關(guān)系)?,F(xiàn)在如果我必須實現(xiàn)該功能,該使用什么關(guān)鍵字搜索?

最直接的想法就是google“get shared object path linux”。得到的都是如何在Linux下開發(fā)共享模塊的文章。增加其他關(guān)鍵字,例如“shared library”,“physical path”,結(jié)果也差不多。這個問題的難點不在于選擇足夠多的關(guān)鍵字以過濾出需要的信息,而是根本就沒有信息可以過濾。之所以沒有信息可以過濾,是因為Linux有自己的應(yīng)用程序部署規(guī)范(例如配置文件應(yīng)該放在/etc目錄下,可執(zhí)行文件放在/usr/local/bin目錄下等)。如果遵循了這種規(guī)范,就沒有必要知道共享模塊的物理路徑了。通常獲得共享模塊的物理路徑是為了由該路徑推算配置文件的路徑。

最終問題還是被我解決了。我使用了什么關(guān)鍵字?答案很簡單,既然正面攻擊無效,就旁敲側(cè)擊。想一想,如果運行平臺是Windows,如何實現(xiàn)該功能?Windows下通常用“GetModuleFileName”API實現(xiàn)。如果有些程序員要把Window的程序移植到Linux下,他(她)該拿GetModuleFileName怎么辦呢?答案出來了,google“GetModuleFileName linux”。搜索結(jié)果第一條標(biāo)題是“Qt-interest Archive - location of the program i am running”,就是關(guān)于如何獲得一個可執(zhí)行文件的路徑的。分析一下google第一頁的搜索結(jié)果,發(fā)覺有一些干擾信息(如何判斷干擾信息我將在后文說明)。這說明我們需要稍微修正一下關(guān)鍵字。google“GetModuleFileName +linux”(這里的加號表示linux作為關(guān)鍵字必須出現(xiàn)在搜索結(jié)果中)。搜索結(jié)果第17條標(biāo)題為“Guide to Making Relocatable Applications :: autopackage”,這就是標(biāo)準(zhǔn)答案了。

可以看出,解決問題的關(guān)鍵有兩個要素。第一個要素是相關(guān)的背景知識。作為業(yè)內(nèi)人士,我知道很多公司和個人正在將Windows平臺下的軟件移植到Linux上。我也知道Windows下如何獲得全路徑。第二個要素,結(jié)合背景知識發(fā)揮想象力,通過一些有特點的細節(jié)搜索到正確的答案?!癎etModuleFileName”就是細節(jié),我想到了可以把這個詞和“l(fā)inux”結(jié)合在一起搜索。

讓我再舉幾個例子,說明如何從細節(jié)入手,找到問題的答案。

如果我要找VB(Visual Basic)語言寫的源代碼的話,我會加上“"end sub"”關(guān)鍵字,因為這個關(guān)鍵字是VB的語法特有的。如果我要找C/C++代碼參考,我會加上“CVS”作為關(guān)鍵字,這是因為很多開放源代碼的項目都是用C或者C++寫的,而這些項目都是用CVS作為版本服務(wù)器,并用CVS服務(wù)器的插件公布到網(wǎng)上的。VB語法和開源軟件,這是我的背景知識。但具有相同背景知識的人不一定能找出關(guān)鍵字來。重要的是觀察。觀察VB的代碼,觀察開源軟件的主頁,發(fā)揮想象力,從細節(jié)中提煉出關(guān)鍵字。

讀到這里,讀者是不是有點開竅了?解決問題分兩步走。首先要有背景知識。然后是發(fā)揮想象力,將看似無關(guān)的細節(jié)結(jié)合起來,提煉出關(guān)鍵字。


3.3. 如何解決復(fù)雜抽象的問題

一些復(fù)雜抽象問題不可能快速找到答案。但是只要方法正確,這些問題最終還是可以使用google一步步解決。步驟是這樣的。首先你對問題進行一般描述,從描述中取出關(guān)鍵字google。接下來閱讀google的搜索結(jié)果,選出有價值的文章。然后從這些文章中分析出有代表性的關(guān)鍵字,繼續(xù)搜索,閱讀結(jié)果。重復(fù)以上步驟。要注意的是,關(guān)鍵字不應(yīng)冷門,因為相對于問題的復(fù)雜性和抽象性,你的背景知識是不夠的。搜索、閱讀、搜索的步驟重復(fù)多次后,應(yīng)該對問題有所了解了。在盡可能多地收集資料后,現(xiàn)在可以得出一個初步結(jié)論(不要忘記收集不支持該結(jié)論的資料)。下一步可以從大問題中提煉出小問題,使用前述的技巧解決小問題。這樣做的目的是獲得對大問題的切身感受,不是試圖解決大問題本身。關(guān)鍵是多角度收集資料。資料不應(yīng)是相互證明的,最好是互相沖突的。我再強調(diào)一下,由于問題的復(fù)雜性和抽象性,不要期望在短期內(nèi)使用特殊技巧解決問題。有了結(jié)論,有了支持和反對的資料,又做過一些小的試驗,你下一步要做的就是將結(jié)論,資料,試驗結(jié)果提交討論(超人可以光速飛行,你不可以)。就個人能做的工作而言,你做到這里就不錯了。從問題本身來說,復(fù)雜抽象的問題的真正的解決,需要許多人長時間地討論和試驗。

下面我講給出演示,說明這類問題如何著手。

我們以“軟件開發(fā)行業(yè)的新手應(yīng)該學(xué)習(xí)什么編程語言,如何學(xué)習(xí)”為例。如前文所說,應(yīng)該選擇一般描述的關(guān)鍵字。所以我建議你不要把和編程語言有關(guān)的關(guān)鍵字加入,而是應(yīng)該選擇如何學(xué)習(xí)編程的關(guān)鍵字?!癶ow to”就是中文的“如何”,是老外技術(shù)文章最愛用的標(biāo)題。(題外話,“how to”是我個人的王牌關(guān)鍵字)?!發(fā)earn programming”的中文意思就是“學(xué)習(xí)編程”。加上前面所說的“how to”,完整的關(guān)鍵字為“"how to" learn programming”(注意:how to 前后的英文雙引號表示將how to這個詞組作為一個詞來搜索)。

現(xiàn)在我們看一看搜索結(jié)果。搜索結(jié)果第五條“Teach Yourself Programming in Ten Years(十年才能學(xué)會編程)”就是一篇很好的文章,介紹了學(xué)習(xí)編程正確的態(tài)度和方法。其他的還有諸如“How To Pick A Programming Language(如何選擇編程語言)”,你應(yīng)該比較感興趣吧。還有諸如“How To Become A Hacker(如何成為黑客)”,這可是一篇經(jīng)典文獻?。ㄟ@里的黑客是指優(yōu)秀的程序員)。其他的還有“How to Get Started with C++(如何開始學(xué)習(xí)C++)”,“Instant Hacking : Learn how to program with Python(如何使用python編程)”,“How Java Works(java是如何工作的)”,“How C Programming Works(C是如何工作的)”,“How to Program Perl(如何學(xué)習(xí)Perl編程)”,“How to: Learn Visual Basic Programming(如何學(xué)習(xí)Visual Basic編程)”等等。

關(guān)于《Teach Yourself Programming in Ten Years(十年才能學(xué)會編程)》這篇文章,有必要再談一談。希望你不要被這個標(biāo)題嚇住了。讓我告訴你一個小秘訣,關(guān)于如何判斷選對了關(guān)鍵字的秘訣。作為初學(xué)者,你不了解軟件開發(fā),就象我不了解如何導(dǎo)演電影。所以,也許你自認為沒有能力分析搜索結(jié)果。有一個辦法可以幫你在初次搜索的時候作出正確的判斷。作個初學(xué)者,你會自認為對軟件開發(fā)的“常識”和流行趨勢還有點了解,例如你認為好程序注釋多,例如你認為編程可以在21天你速成。這可能是一種偏見,google是沒有偏見的。如果你自認為使用了正確的關(guān)鍵字,google的結(jié)果卻都是一些和你的“常識”唱反調(diào)的文章,說明了什么?說明你選對了關(guān)鍵字。

假設(shè)你選好了幾種編程語言,現(xiàn)在該是了解那些語言的缺點的時候了。老外對于某種語言和某種文化最愛用的批評語就是“is dead(要玩完了)”,例如“C++ is dead”。現(xiàn)在就讓我們google“C++ "is dead"”(注意:is dead 前后的英文雙引號)。搜索結(jié)果有點出乎意料?搜索結(jié)果竟然大都是“Java is dead”,這不表明Java就是一種很差的語言,進一步的結(jié)論需要閱讀搜索結(jié)果?,F(xiàn)在我們調(diào)查的編程語言是C++!讓我們實行更嚴(yán)格的關(guān)鍵字匹配,google“"C++ is dead"”(注意:C++ is dead 前后的英文雙引號)。終于得到相關(guān)的文章了。這些文章不僅討論了C++,對于你選擇其他編程語言是很有幫助的。例如標(biāo)題為“khakipants: things to learn”的文章就討論了學(xué)習(xí)OCaml和Ruby的必要性。讓我們再試一試其他編程語言(這樣多來幾次你愛上了搜索),google“"Visual Basic is dead"”,google“"Perl is dead"”,google“"Html is dead"”。

最后,你終于決定要學(xué)習(xí)一種語言,比如C++,現(xiàn)在就是了解一下關(guān)于C++有哪些工具和資源的時候了,直接google“C++”。


4. 如何提高自己的搜索能力

4.1. 態(tài)度決定一切

前面介紹了如何選擇關(guān)鍵字解決問題的技巧。接下來要詳細論述一下如何獲得這些技巧和如何進一步提高搜索水平。由于這些論述都是基于我的經(jīng)驗和體會,肯定有很多偏頗的地方。如果讀者有什么更有效的方法,請務(wù)必讓我學(xué)習(xí)(我的email見本文開始部分)。

要成為google高手,首要的是態(tài)度?!皯B(tài)度決定一切”。如果你相信google是解決問題的強大工具,你喜愛,崇拜google,你就有可能成為google高手。一種比較天真的想法是,“因為google太強大了,所以不應(yīng)該用google”。其動機是,工具太強大,人就會依賴工具而喪失了某些技能。我認為,人(當(dāng)然也包括程序員)的價值,在于人的智力,感情,道德。所謂技能,只是上述抽象品質(zhì)的靈活運用而已。學(xué)習(xí)新工的好處遠不是提高了效率這么簡單。真正的好處是獲得“原來可以這樣做”的啟發(fā)。死抱住舊工具的人不能獲得安全,他們的結(jié)局是被潮流淘汰。例如當(dāng)坦克剛出來的時候,出身于騎兵的巴頓將軍毫不猶豫地擁抱坦克這種新的戰(zhàn)爭工具,最后成為裝甲戰(zhàn)術(shù)大師,名垂青史。擔(dān)心自己喪失技能的波蘭騎兵被納粹德國的裝甲師屠殺于戰(zhàn)場之上。技術(shù)人員真正重要的技能,是識別新技術(shù)的價值的洞察力和使用新技術(shù)的行動力。。


4.2. 瘋狂搜索法

有了熱情,要成為google高手輕而易舉。你需要的只是練習(xí)。接下來我要介紹練習(xí)的辦法。和一般人的想法不一樣,我不認為“為了特定問題猜關(guān)鍵字”這件事情本身可以作為一種練習(xí)手段。我推薦名為“瘋狂搜索法”的練習(xí)方法。方法很簡單,找一篇有趣的文章,將它的字、詞、句以各種方法搜索一遍。試著分析搜索結(jié)果,(分析方法在后文有詳細描述),要有一個好或者不好的結(jié)論。好的定義是提供了有用的信息。

讓我舉個例子。我“瘋狂搜索”一下標(biāo)題為“軟件商對用戶的角色扮演”的文章。首先google其標(biāo)題“軟件商對用戶的角色扮演”。搜索結(jié)果有兩頁,可以看出該文原始出處為ChinaByte。接下來再google作者“老單”,從搜索結(jié)果看,標(biāo)題為“老單:三說軟件從業(yè)者”的文章似乎也是同一人所寫。但是叫老單的人好像多了點。例如標(biāo)題為“老單和他的6+1彩票預(yù)測術(shù)”一文中的老單不是我們要找的人。google“老單 軟件”以過濾垃圾信息,可以看到“淺析作坊式開發(fā)”,“軟件企業(yè)里的官兒”等文也是其寫的。只要將這四篇文章放在一起分析。一切都很明顯了。老單談的都是個人體會,文筆流暢?,F(xiàn)在該做結(jié)論了了。我的結(jié)論是老單提供的都是真實的信息,結(jié)論是好。

接下來我們google文中的單詞。以第一句“軟件企業(yè)以盈利為目的進行生產(chǎn)經(jīng)營和產(chǎn)品銷售,自然地被稱為軟件商”為例。google“生產(chǎn)經(jīng)營”得到諸如“中國農(nóng)業(yè)銀行---貸款業(yè)務(wù)個人生產(chǎn)經(jīng)營貸款”之類的文章,分析下來該詞較書面化,多出于政府公文,新聞等等。“生產(chǎn)經(jīng)營”象一個大詞。google“產(chǎn)品銷售”,得到結(jié)果多是各企業(yè)網(wǎng)站的產(chǎn)品頁面。如果將該詞和別的詞組合,似乎可定位到企業(yè)網(wǎng)站的特定頁面。篇幅有限,我就分析到這了。最后讓我舉出文中出現(xiàn)的兩個詞,“受眾需求”和“漫天吹起”?!笆鼙娦枨蟆憋@然是用于新聞廣告行業(yè)的術(shù)語?!奥齑灯稹钡乃阉鹘Y(jié)果只有兩條,一條就是我們正在分析的文章,另一條是“圣劍傳說Ⅲ”。


4.3. 如何提高“搜索素養(yǎng)”

“瘋狂搜索法”只是入門練習(xí)。要成為專家,關(guān)鍵是提高“搜索修養(yǎng)”。搜索修養(yǎng)體現(xiàn)為快速過濾掉無用信息的能力和定位有用信息的能力。實際工作中碰到的問題是通過多次“深度搜索”才得以解決的。“深度搜索”的意思是,第一次搜索得到的結(jié)果必須由人來閱讀和分析,然后以分析的結(jié)果進行下一次搜索,依此類推。我的經(jīng)驗是,較難的問題往往需要進行幾十此搜索才能找到正確答案。如果慢慢讀每一條信息,非常累人。

搜索修養(yǎng)的根本辦法是大量閱讀各種非技術(shù)類書籍(技術(shù)類書籍讀起來有點累)以及進行適當(dāng)?shù)膶懽饔?xùn)練。這個問題本身可以寫成一篇文章,本文由于篇幅所限無法展開。這里只提供我的一點心得。

過濾搜索結(jié)果的關(guān)鍵是兩點,“信用(credit)”和“風(fēng)格(style)”。

所謂“信用”,就是提供信息的人的本身的可信度如何。說白一點,就是他(她)是否以前做過相關(guān)的比較優(yōu)秀的工作。例如,因為我讀過John Robbins寫的《應(yīng)用程序調(diào)試(Debug Application)》,所以在調(diào)試技術(shù)方面我非常信任John Robbins。由于信用是可以延伸的(所謂愛屋及烏),John Robbins的文章中引用到的資料的作者在我的心目中也是大師。反過來說,那些提到John Robbins名字的文章的信用也要比沒有提到的信用要高。這里有個陷阱,提到過于出名的大師的名字不一定是好事。有些大師太有名了,以至一些不學(xué)無術(shù)的人會大量引用他們的名字或者文章以掩蓋自己的貧乏。例如,提到“l(fā)inus”名字次數(shù)多的關(guān)于linux的文章并不一定有多少價值。某些世界級的開源項目的骨干程序員在也是有信用的。上述標(biāo)準(zhǔn)對我夠用了。因為我水平有限,對于行業(yè)內(nèi)的專家了解不多,所以我需要堅持高標(biāo)準(zhǔn)。這個標(biāo)準(zhǔn)就是,全世界范圍內(nèi)有影響的項目,書,人才算有信用。

有時搜索結(jié)果不都能和大師聯(lián)系起來。例如提供資料的人是某個“技術(shù)工作者”。這時我覺得不應(yīng)從“信用”的角度來判別了。有些人會從國籍,種族,性別,年齡,工作過的公司乃至上過的中學(xué)的名字來判斷作者的信用,再推論文章的價值。這種方法有歧視的味道,也不可靠。我傾向于從“風(fēng)格”出發(fā)。內(nèi)在的風(fēng)格是是無法掩飾的。例如我姐姐雖然工作只是起草簡單的公文,但她總不會忘記在文中加入幾個“文雅”的詞,以顯示中文系沒白讀。

對技術(shù)人員來說,風(fēng)格的判斷結(jié)果是很簡潔的,“好”或者“壞”。為了得到這個結(jié)果,需要一些指標(biāo)來。接下來我就非常簡略地談一談這些指標(biāo)。由于我的無知和偏見,再加上篇幅有限,這些指標(biāo)肯定有很多漏洞。請讀者對我抱有寬容之心。

標(biāo)題是否言之有物。

正文是否旁征博引,夸夸其談?

正文是否有實例,有數(shù)據(jù),有完整的因果關(guān)系?我這里強調(diào)一下,因果關(guān)系“完整”是很重要的。技術(shù)文章的作者把推導(dǎo)的默認前提寫下,因果關(guān)系就是完整的。什么是默認前提?在電影《伊麗莎白》中,輔佐伊麗莎白一世的大臣羅伯特對她說:“作為女王,您必須...”。羅伯特這樣說的默認前提是,他認為年輕的女王沒有能力獨立統(tǒng)治英國,女王和自己的關(guān)系是學(xué)生和老師的關(guān)系。在電影的最后部分,伊麗莎白直接駁斥了這個從沒有說出口的前提,“‘必須’這個詞不是能對一個女王說的。...我是我父親的女兒。...從今以后,我將自己作出決定...”。

為讀者考慮(considerate)。例如要給出被引用資料的詳細來源,便于核查。

是否使用權(quán)威或者命令式的口吻。使用這種口吻,要么才華橫溢或者虛張聲勢。需要結(jié)合其他指標(biāo)一起核查。

有否奇談怪論?在較一般抽象問題上的奇談怪論往往有道理。具體問題采用奇談怪論會有風(fēng)險。

類似的指標(biāo)很多,沒法一一列舉。說到底,只要多讀書,這種指標(biāo)你也可以歸納出來。熟悉文章風(fēng)格的入門讀物,我推薦《The Elements of Style》(有中文版,《英文寫作指南》,陳一鳴譯,上海譯文出版社)。該文的電子版也可以找到(你應(yīng)該在讀到這句前就google過“The Elements of Style”了吧)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多