作爲一(yī)名優質的程序員(yuán)如何高效的解決各種bug?

時間:2020-11-12 作者:管理員(yuán) 點擊:613

第一(yī)件事情是學會二分(fēn)查找
第一(yī)件事情是學會二分(fēn)查找。我(wǒ)(wǒ)看過很多剛入門的程序員(yuán),要麽是自學編程的,沒有系統地學過算法,連二分(fēn)查找都不知(zhī)道;要麽是本科念完,算法都還給老師了,總之就沒有這樣一(yī)種基礎意識。看他們定位問題,從第一(yī)行代碼開(kāi)始加斷點或者是打印上下(xià)文信息,我(wǒ)(wǒ)會有一(yī)種強烈的沖動:還是讓我(wǒ)(wǒ)來吧。

eg:
如果你有一(yī)段代碼,例如說一(yī)個函數,或者多個互相調用的函數,最終結果不是你想要的,你不要從頭開(kāi)始找哪裏出錯了。你應該找一(yī)個中(zhōng)間點,從那裏開(kāi)始二分(fēn)查找。你在中(zhōng)間點查一(yī)個斷點,或者是把上下(xià)文信息打印出來,以此确定程序執行到中(zhōng)間點時的狀态是不是還是符合你預期的。如果符合你預期,問題處在中(zhōng)間點之後;如果已經不符合你預期了,問題出在中(zhōng)間點之前。如此重複,直到你能定位問題出在哪裏。

如果你能定位到問題出在哪裏了,要麽是顯而易見的邏輯錯誤,你自己把寫錯的邏輯糾正過來就好了;要麽是更底層的問題,你覺得你的邏輯是沒錯的,但底層的運行時、框架、浏覽器、操作系統之類的就是不按照你預期的方式進行處理。這時候你隻能通過搜索去(qù)學習,爲什麽你依賴的底層沒按照你的預期進行處理。你的預期有可能是對的,底層出錯了,你要想辦法繞過去(qù);你的預期也有可能是錯的,因爲你沒有真正理解你依賴的底層,這時候你要繼續學習新知(zhī)識,調整你對底層的理解,然後修正你的代碼邏輯。

關鍵字搜索
遇到這種問題時,你應該用什麽關鍵字搜索呢?這是個很難教的東西,因爲是否能抓準關鍵字來搜索是非常依賴于眼界和經驗的。這種狀況我(wǒ)(wǒ)在教新手編程時遇到過,在教非常有經驗的程序員(yuán)上手新公司技術時也遇到過。

教一(yī)個新手編程
教一(yī)個新手編程:我(wǒ)(wǒ)跟他說,你遇到這個問題,你自己搜索一(yī)下(xià)。他嘗試用他能想象得到的關鍵字搜索了一(yī)番,就是找不到答案。我(wǒ)(wǒ)來一(yī)搜,答案就在 StackOverflow 上,或者這個開(kāi)源項目已經有人提了個 Issue。爲什麽他搜不到呢?原來某些更複雜(zá)的技術概念他還沒學到,我(wǒ)(wǒ)直覺能想到用什麽關鍵字,但他根本意識不到那些關鍵字的存在。

教一(yī)個有經驗的程序員(yuán):
教一(yī)個非常有經驗的程序員(yuán)上手新公司的技術:我(wǒ)(wǒ)跟他說,遇到這個問題你搜一(yī)下(xià)公司内網吧,我(wǒ)(wǒ)們的内部搜索系統非常強大(dà)的,Wiki、文檔、讨論……什麽都能覆蓋到。他怎麽都搜索不出來,但換我(wǒ)(wǒ)來一(yī)下(xià)子就搜到了。爲什麽他搜索不到呢?因爲公司内某些系統、術語、代号他還從來都沒聽(tīng)說過,而我(wǒ)(wǒ)一(yī)下(xià)子就能想到,于是我(wǒ)(wǒ)能搜索到。

這種眼界和經驗是沒辦法系統化、一(yī)次性地教給一(yī)個新人的。就算你嘗試一(yī)次性地把很多知(zhī)識傳授給一(yī)個新人,他也無法全部都記下(xià)來。所以最好的學習方法是不斷地通過覆盤來學習——我(wǒ)(wǒ)遇到了這樣一(yī)個問題,我(wǒ)(wǒ)嘗試了如下(xià)的操作,沒有解決好問題,或者解決了但效率很差,那比我(wǒ)(wǒ)厲害的人遇到同樣的問題是如何解決的?他們如何使用不同的操作更高效地解決同樣的問題?我(wǒ)(wǒ)能從中(zhōng)學到什麽?讓我(wǒ)(wǒ)重來一(yī)次的話(huà)我(wǒ)(wǒ)會怎麽做?

這時候自然引申出來的一(yī)個問題是:去(qù)哪裏認識這些比自己厲害的人?如何能獲得他們的幫助和指導?這有付費(fèi)和免費(fèi)兩個途徑。

付費(fèi)的話(huà),例如說知(zhī)乎的付費(fèi)咨詢啦。(知(zhī)乎的産品和運維,如果我(wǒ)(wǒ)這個答案幫助你們提高業務指标了,記得多收錄我(wǒ)(wǒ)其它答案啊!)有不少人都在嘗試付費(fèi)咨詢這樣一(yī)件事情,這個行業在中(zhōng)國還很不成熟,但如果你付得起的話(huà)可以試一(yī)下(xià)。我(wǒ)(wǒ)做一(yī)對一(yī)的 career coaching,收費(fèi)是 300 美元一(yī)小(xiǎo)時(5 美元一(yī)分(fēn)鍾的費(fèi)率),有需要的可以私信聯系我(wǒ)(wǒ)。

說完付費(fèi)的再說一(yī)下(xià)免費(fèi)的,這裏面最重要的一(yī)點是跟比你厲害的人建立關系,讓對方意識到你也在爲他在乎的領域創造價值。以下(xià)是我(wǒ)(wǒ)提供的一(yī)個簡單的步驟:

去(qù)關注比你厲害的人,看看他平時發布的内容都在說什麽,了解他最在乎的領域是什麽。

在他發布的内容下(xià)面參與互動,發表你對于他的領域的見解,最重要的是你的見解要能在他已有的内容之外(wài)創造新的價值。

在跟他有持續互動之後,他可能會主動想要認識你,否則的話(huà)你也可以主動私信他,提出說你想認識一(yī)下(xià)他。如果是你主動的話(huà),你最好帶上一(yī)個有價值的話(huà)題,以此展開(kāi)私信對話(huà)。

我(wǒ)(wǒ)可以給你一(yī)個非常具體(tǐ)的例子,當年跟我(wǒ)(wǒ)聊上一(yī)位大(dà)佬,他私信我(wǒ)(wǒ)的第一(yī)句話(huà)是「鼓起勇氣不要臉一(yī)波,可以給我(wǒ)(wǒ)這個回答送個專業嗎(ma)?」我(wǒ)(wǒ)覺得他寫的答案質量都不錯啊,确實在爲刷題的留學生(shēng)提供了價值,于是我(wǒ)(wǒ)毫不猶豫地幫他的答案點了個專業。

在你跟一(yī)個比你厲害的人建立關系後,給點耐心多聊聊,在你有需要是别人往往是願意幫助你的。
返回列表
在線溝通

Are you interested in ?

感興趣嗎(ma)?

有關我(wǒ)(wǒ)們服務的更多信息,請聯系

136 7365 2363(同微信) 13140187702

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--聯系索騰

與我(wǒ)(wǒ)們合作

鄭州網站建設鄭州網站設計鄭州網站制作鄭州建站公司鄭州網站優化--與索騰合作,您将會得到更成熟、專業的網絡建設服務。我(wǒ)(wǒ)們以客戶至上,同時也相互挑戰,力求呈現最好的品牌建設成果。

業務咨詢熱線:

136 7365 2363

TOP

QQ客服

在線留言