亚洲热无码AV一区_中文字幕亚洲一区一区_欧美亚洲永久在线_在线观看亚洲精品自拍

藍鷗旗下品牌:鷗課學院
全國咨詢電話:13152008057
您的位置: 首頁 > 最新資訊 > 那些老編程者給新手小白的 22 個經(jīng)驗

那些老編程者給新手小白的 22 個經(jīng)驗

2017-07-20 藍鷗
3620人 瀏覽:

  孔子曰,三人行必有我?guī)熝?。在一些技術行業(yè)類里這句話體現(xiàn)的尤為明顯。像互聯(lián)網(wǎng)行業(yè)中的編程者或者說程序員,通常新人在入行時,由于實戰(zhàn)經(jīng)驗的缺乏不可避免的會遇到一些個人無法解決的問題,這時候有經(jīng)驗的老人通常能給他們些有用的建議,那么,剛入行的新手小白如何提升自己,讓自己的技術升級呢?以下所列是藍鷗資深講師團隊整理和總結的在這些年來軟件開發(fā)工作過程中和教學過程中受到的啟發(fā),還有總結而來的好經(jīng)驗。共有四個大分類,包括22個小概括點。

9c16fdfaaf51f3dee5f5ba429eeef01f3a297954_副本_副本.jpg

  開發(fā)

  1. 從小事做起,然后再擴展

  無論是創(chuàng)建一個新的系統(tǒng),還是在現(xiàn)有的系統(tǒng)中添加新的功能,要從一個簡單到幾乎沒有任何所需功能的版本開始,然后再一步一步地解決問題,直到滿意為止。從來不要妄想能夠一步登天。需要一邊開發(fā)一邊學習,同時新掌握的信息還可以用于解決方案中。

  2. 一次只做一件事

  當我們在開發(fā)時,碰到測試失敗和功能無效的情況,如果你一次只研究一個問題,那將會更容易找到問題的關鍵。換言之,就是使用短迭代。必須確保這個問題解決之后,再轉移到另一個問題上。這適用于向下提交。如果在你添加新功能之前需要先重構代碼,那么先提交重構,然后再添加新的功能。

  3. 盡早地添加日志和錯誤處理

  在開發(fā)新系統(tǒng)時,做的第一件事就是添加日志和錯誤處理,因為這兩者從一開始就非常有用。對系統(tǒng)來說它比一大把代碼更有用,你需要一些了解程序狀態(tài)的方法。如果系統(tǒng)不能照常工作,那么你就需要知道程序中發(fā)生了什么——這是日志的作用。錯誤處理也是如此——錯誤和異常越早處理越好。

  4. 每一行新代碼必須至少執(zhí)行一次

  在你真正完成一個功能之前,你必須對它進行測試。不然,你怎么知道它是不是按照你的想法在執(zhí)行呢?通常情況下,最好的方法是通過自動測試,但并非總是如此。不過,不管怎么說,每一行新代碼必須至少執(zhí)行一次。

  一般,我們想觸發(fā)某種條件很難。但幸運的是,我們可以作弊。例如,數(shù)據(jù)的錯誤處理可以通過臨時拼寫錯一個列名來觸發(fā)。或者,一個if語句可以暫時顛倒過來(從 if error 變成 if not error),這樣來觸發(fā)那些平時很難觸發(fā)的條件,這樣只是為了確定代碼是否正常運行和它會出現(xiàn)什么結果。

  有時,有一些行代碼永遠都不會被運行。當我們做代碼檢查是它看起來沒有什么問題,但就是不工作。你要避免這樣的尷尬狀況,如果你想你的每一行新代碼都會被執(zhí)行。

  5. 在整體測試之前先進行模塊測試

  先進行部分模塊測試可以節(jié)省時間。通常說來,我們在整合不同的模塊時也會出現(xiàn)問題,例如模塊之間的接口不匹配。但是如果我們能夠信任各個組件的話,那么跟蹤集成問題就會變得簡單得多。

  6. 所有事情所花費的時間總是比你預期的要長

  特別是在編程中,即使一切進展順利,我們也很難對功能所需的時間做出正確的預算。并且,開發(fā)軟件時碰到各種意想不到的問題是非常常見的。一個簡單的合并操作會導致一系列小Bug,一次框架升級意味著一些函數(shù)必須改變或者一些API不按照你想象的那樣工作。

  7. 先了解現(xiàn)有的代碼

  大多數(shù)的編碼都需要以某種方式改變現(xiàn)有的代碼。即使是新功能,也需要適應現(xiàn)有的程序。所以,在你加進去新的內(nèi)容前,首先需要了解當前的解決方案。否則,你一不小心就很有可能會打破現(xiàn)有的功能。這意味著,閱讀代碼和編寫代碼都是必要的技能。這也是為什么看似微小的變化仍可能需要很長時間才能解決的原因之一,因為你首先必須了解上下文。

  8. 閱讀和運行代碼

  幸運的是,對于理解代碼,我們有兩種互補的方法。你可以閱讀代碼,也可以運行代碼。運行代碼的確是個非常棒的好方法。所以,請確保充分利用這兩種方法。

a8ec8a13632762d03568f199aaec08fa513dc646_副本_副本.jpg

  故障排除

  9. Bug 總是難免的

  那些宣稱軟件開發(fā)可以“一蹴而就”的高談闊論不要相信。不論你再怎么努力,Bug總是難免的(Bug的定義基本上是:“我們沒有想到”)。最好能夠做成可以快速故障排除、修復bug和部署修復的系統(tǒng)。

  10. 解決故障報告

  每個開發(fā)人員都應該花時間去處理來自客戶的故障報告,并修復Bug。這能讓你更好地理解客戶的意圖,明白如何使用系統(tǒng),知道排除故障的難易程度,了解系統(tǒng)的設計情況。這也是為自己的開發(fā)成果負責的好方法。不要錯過這些好處。

  11. 重現(xiàn)問題

  修復Bug的第一步就是重現(xiàn)問題。然后你得確保修復之后,問題能夠徹徹底底地消失。這樣一個簡單的規(guī)則,可以確保你不會誤將非問題當作是問題,并確保解決方案真的能夠奏效。

  12. 修復已知錯誤,然后再看看有沒有其他不對的地方

  有時候,可能同時存在著幾個不同的問題。它們之間的互相作用,可能會讓你毫無頭緒,束手無策。不要糾結于搞清楚發(fā)生了什么,先去解決所有已知的問題,然后再看看還有什么不對的地方。

  13. 沒有巧合

  在測試和故障排除時,不要相信會出現(xiàn)什么巧合。就像你改變了定時器的值,那么就會改變系統(tǒng)重啟的頻率。所以一切都并非是巧合。添加新功能,另一個不相干的功能變慢了?這絕對不是巧合。相反,是你應該仔細調(diào)查的內(nèi)容。

  14. 關聯(lián)時間戳

  在故障排除時,事件的時間戳可以作為你的好幫手。尋找偶數(shù)增量。例如,如果系統(tǒng)重啟了,并且剛剛發(fā)出過一個3000毫秒左右的請求,那么可能是觸發(fā)了某個定時器,才導致出現(xiàn)重啟的動作。

48540923dd54564ebe9dbc10b9de9c82d1584f1a_副本.jpg

  合作

  15. 面對面的交流最有效

  當我們需要討論如何解決問題時,那么面對面的交流比視頻、打電話和電子郵件都要好。

  16. 小黃鴨調(diào)試法

  遇到你絞盡腦汁也解決不了的問題時,不妨找一個同事,然后將問題解釋給他們聽。很多時候,當你在敘述時,即使你的同事一言不發(fā),你可能也會突然靈光乍現(xiàn)找到問題的關鍵。聽起來像魔法,但是這經(jīng)常起作用。

  17. 問問題

  閱讀和運行代碼往往非常有助于指出代碼的目的和它的工作原理。但是如果你有機會咨詢那些更為了解的人(例如原來的程序員),那么千萬不要錯過。繼續(xù)問他們具體的問題、后續(xù)的問題,這幾分鐘內(nèi)給你的信息可能是你需要花費好幾天才能獲得的。

  18. 共享榮譽

  不要貪圖榮譽,該是誰的就是誰的。例如:“Marcus 想出了這個主意……”(如果真是他想的話),而不要說“我們想出的……”。大膽的說出那些幫助過你或者貢獻過力量的人的名字。

240421-15032FQ23155_副本.jpg

  其他

  19. 動手去做

  如果你不知道某種編程語言功能的工作原理,那么不妨寫一個小程序來理解它是如何工作的。這同樣適用于測試你正在開發(fā)的系統(tǒng)。經(jīng)常做這些會幫你發(fā)現(xiàn)Bug,在此同時也會加深你的系統(tǒng)工作的了解。

  20. 帶著問題睡覺

  如果你正在解決一個很難的問題,那么不妨帶著問題睡覺。有科學研究表明,這樣做雖然你表明上并沒有在主動思考,但你的潛意思卻這么做了。其結果就是,第二天再去研究問題,解決方案已經(jīng)呼之欲出了。

  21. 改變/跳槽

  不要害怕角色變化。和不同的人共事,開發(fā)不同的產(chǎn)品,感受不同的公司文化是非常有意思的。

  22. 活到老學到老

  軟件行業(yè)的一大魅力就是我們隨時有機會可以學到新的東西。你可以嘗試不同的編程語言和工具,閱讀軟件開發(fā)的書籍,接受藍鷗的編程培訓課程。量變才能達到質(zhì)的飛躍,這些小小的學習積累,終有一天會大大地提高你的知識和能力。

  1. 廣告1
  2. 廣告2
  3. 廣告3
  4. 廣告4