看板 Soft_Job 關於我們 聯絡資訊
老樣子一樣放在 gist,這篇是我一直很想寫但寫不好的。 原文網址: https://goo.gl/mizaKs 以下正文 # 分析問題 ## 前言 如果你有在網路找過如何問問題的話,你應該會找到泛用的回答。 而這邊要討論的是如何對 Google 問問題。 會寫這篇是因為我發現很奇妙的有些工程師比我還老, 但卻不太用 google,常常問一些 google 就有答案的問題。 ## 問問題的技巧 有幾個原則 : 1. 用英文 雖然是老生常談,不過你都用英文寫 code 了,資源當然是國外比較多 2. 專有名詞 基本上問題會隨著你的語言、框架而有微妙的差異。 比如 php & java 就不太一樣,雖然都是 programming language 3. 不要用句子 用句子會導致你失去一些答案,因為每個人問問題的語句都不一樣。 (Can I take out? Can I take away?) 除非你想要找的就是那種topic的標題。 4. 分解到不能再分解為止 一般而言問題常常是有點籠統的,這時你必須把問題拆成幾個單字內 (一般來說我傾向五個單字內)是最好的。 這樣可以把問題簡化,也可以直搗問題核心。 ## 簡單例子 : == 跟 === 的 異同之處 首先先轉換成英文 1. 等於 為 equal 2. 運算子 為 operator 專有名詞這邊是 php 然後不能在分解下去了 所以大概要餵 : ``` equal operator php ``` ## 複雜例子 : 網站產品頁讀取緩慢 首先先拆分,一般來說這問題可以先拆成四部分。 1. 前端 2. 系統 3. 後端 4. 資料庫 從前端開始看起 1. 使用者使用的是桌面還是行動版 2. 使用者網路穩不穩定 3. 使用者的瀏覽器版本 4. js 過於肥大 5. 圖片是否為第一次讀取 6. etc... 好的讓我們稍微等等,你應該意識到這個問題過於複雜,問題有很多個,應該要每個都問嗎? ## 問問題的成本 我很喜歡鋼之鍊金術師的一個真理:等價交換原則。 任何事情皆有代價,問題只是在於這個代價由誰支付而已。 那要如何評估問問題的成本?這裡我們可以從幾方面來看 1. 時間方面 有沒有聽過一句話:什麼都急,就付你錢的時候不急 如果你有時間上的限制的話,你應該選擇那些時間成本很低的問題。 一般而言你越熟悉的領域,你問的問題會越精準,矯正時間成本會越低。 2. 金錢方面 有錢不是萬能,沒錢卻萬萬不能。 所以你公司沒錢的話,還是不用問 load balancer 這種東西了 3. 困難程度 即使是你熟悉的領域也有分困難程度的,比如把 mysql 轉換成 mssql 遠比優化 sql 來得難多了 你應該優先選擇那些困難程度低問題。 困難程度有時不是只考慮技術方面,人的部分也要考慮。 ## 最後的抉擇 - 經驗法則 往往在估算完這些以後,還會剩下幾個選項,從哪個開始問才是最好的? 答案是有規則的猜他,而這個就依賴你以前的經驗了。 如果你有空可以多看看 reddit 、 hack news 之類的,看國外是怎麼問問題的。 看書也有助你有規則的猜測,對於問題發生的環境瞭不瞭解也很重要。 ## 回到複雜例子 首先假設這個問題是你家的 PM 丟給你的話,則環境在台灣,由於台灣盛行吃到飽跟一年換一次手機,可以先排除純行動端問題。 如果是網路不穩的話則無解,所以這個問題也可以排除。 系統硬體部分公司有錢的話可以考慮,排在順位低的列表。 系統軟體的話考慮困難程度,排在順位低的列表。 後端部分,因為更換後端語言各方面成本太高,所以列在順位低。 優化語法成本比較低,排在順位高。 資料庫部分,筆數高低直接影響效能,且語法查詢也影響效能,排在順位高。 圖片往往也直接影響速度快慢,排在順位高。 所以我們可以直接得到一個順位: 1. 圖片快取 2. 後端語法優化 3. sql 語法優化 然後就依照你對架構的暸解開始猜測哪個問題是正確的。 ## 總結 依台灣的情形而言,大概有90%的問題可以在網路上找到一樣的, 所以問題在於你要怎樣去找到這些已經問過的問題, 以及在於你要花多少時間成本下去找。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.54.124 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1504001333.A.124.html
Boston: ok google 08/29 18:33
cryinglove: 讚~google 08/29 18:59
del680202: hey google 08/29 19:01
kaitokid1214: 感謝分享心得~一直無法像前輩們快速的google到想要 08/29 21:08
kaitokid1214: 的解答而很煩惱 08/29 21:08
Csongs: how google 08/29 21:51
mdkn35: 推推 08/29 22:23
IhateOGC: how to key world in google search bar 08/29 22:32
dick8101070: 老實說這能力應該大學就要培養好了(不論文理組) 08/30 00:04
dick8101070: 因為下關鍵字查資料弄報告應該是基本吧.. 08/30 00:04
SimonAllen: 推 但也同意樓上 大學還不會google英文重點關鍵字 08/30 00:19
SimonAllen: 大概就是分組報告不負責做 只負責上台講 08/30 00:19
SimonAllen: 結果出社會工作後..哇賽不會google的人還超多 08/30 00:19
buper: 用英文找真的比較多 08/30 07:38
hsnuonly: 有的時候用句子會有意想不到的結果 08/30 08:50
rx1304: 謝謝分享 08/30 10:21
gnihtontsuj: 推 XD 08/30 12:11
fishlinghu: 大學就用的滾瓜爛熟了XD 08/30 12:22
pttworld: 谷歌的訓練是透過組合關鍵字,讓答案網站出現在第一位。 08/30 12:55
johnny94: 其實現在用一些短句子也可以找到很好的結果 08/30 13:06
LikeCherry: 如果要找中國那邊的技術資料 幾乎都被內容農場淹沒 08/30 13:29
LikeCherry: 是不是用百度比較好? 還是有什麼過濾方式? 08/30 13:29
google 知乎 用中文,大概就這三個。 如果是自行開發 open source 的 github 上面也會有,沒 open source 的 就要自行想辦法,我見過問這個問題的人多半都是 android 工程師,因為 中國 android 獨步全球(? ※ 編輯: y2468101216 (118.160.49.253), 08/30/2017 13:48:49
tennyleaz: stackoverflow發了不少問題,但是也有被Downvote的,超 08/30 15:06
tennyleaz: 丟臉XD 08/30 15:06
qrtt1: 根本在於該看的書沒看過,以致於不知道用什麼 term 吧。 08/30 15:38
s860134: 以前引擎空格會視為 and ,用句子根本沒意義 08/30 19:46
jj0321: 結論: 英文要會 原文書要看得多 08/30 19:54
LikeCherry: 感謝回答 您內行! 後來在知乎上看到相關的問題 知道 08/30 22:55
LikeCherry: 要用哪些關鍵字 08/30 22:55
Sunal: 教學文件或是書至少也要看過 才知道關鍵字是什麼 08/31 23:57
CP64: 推 很重要 雖然我關鍵字都翻文件的時候沾一點沾一點積起來的 09/01 11:50
jason710068: 有時候關鍵字都不知道該怎麼下的時候再試試打句子也 09/02 19:29
jason710068: 可以 09/02 19:29