自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

頂尖程序員的五種思維模式,你具備嗎?

新聞
除了代碼之外,很多人對于陌生的工作內(nèi)容也會感到恐懼。每次換工作的時候,你可能都會遇到新公司的工作內(nèi)容和以前工作的內(nèi)容不一樣的情況,以至于剛開始的時候工作效率沒有以前那么高。很多人甚至覺得,他們是不是騙了面試官。

《THe Effective Engineer》的作者Edmond Lau采訪了很多硅谷***科技公司的***軟件工程師。他發(fā)現(xiàn)這些給世界帶來巨大影響的的工程師們至少有以下5個共同的思維模式??纯茨闶欠窬邆洌?/p>

[[219137]]

勇于去研究你不懂的代碼

一般人都不愿意去研究自己不曾接觸過的代碼,很多人都沒有嘗試就放棄了。如果你經(jīng)常去研究你沒有接觸過的代碼,你就會越來越熟悉不同的代碼結(jié)構(gòu)和設(shè)計模式?,F(xiàn)在人們很容易就接觸到優(yōu)秀的開源代碼資源,你可以很方便的就下載下來做一些改動或者調(diào)試,去研究為什么代碼可以這么寫。

除了代碼之外,很多人對于陌生的工作內(nèi)容也會感到恐懼。每次換工作的時候,你可能都會遇到新公司的工作內(nèi)容和以前工作的內(nèi)容不一樣的情況,以至于剛開始的時候工作效率沒有以前那么高。很多人甚至覺得,他們是不是騙了面試官。

其實,大家都是在學習的過程中。在一個陌生的領(lǐng)域,沒有人從一開始就是大神。如果你想變得越來越好,無論是寫代碼,與人溝通或者其它的技能,都是需要投入時間去學習的。

精通代碼調(diào)試(debug)

很多人在寫代碼的過程中,經(jīng)常會有的一個問題就是:為什么我寫出來的代碼不能運行?為什么運行的結(jié)果不是我想要的? 幾乎所有的程序員寫代碼都不是一遍就能寫好的。但是***的程序員非??斓木兔靼鬃约捍a的問題可能是什么。

這是一個很重要的能力,但是偏偏學校里不教,面試的時候考官也不經(jīng)常提及。

那么怎么去調(diào)試代碼呢?其實核心就是以下幾個方法:

不妨先猜測一下到底發(fā)生了什么。 假設(shè)你的猜測是對的,想想你的猜測會導致程序有什么結(jié)果。 試著觀察這些結(jié)果有沒有異常的地方。

如果你沒有發(fā)現(xiàn)異樣,那么說明你的猜測就是對的。

如果你發(fā)現(xiàn)了異樣,那么說明你的猜測是錯的,接下來換一個猜測試試。

對于***程序員來說,這個過程在腦海中就是電光火石的一瞬間。只要你解決的問題足夠多,你做出來的猜測就會越準確。

至于如何發(fā)現(xiàn)異樣?你就需要有一套自己的工具或者方法論了。最簡單的就是在代碼里輸出日志來判斷。但是這是比較笨的辦法,你需要去接觸一些高級的工具或者直接帶有Debug功能的編輯器。

重視能夠節(jié)約時間的工具

打敗人類的AlphaGo每天可以進行上百萬局的下棋訓練,我們?nèi)祟愐蝗f個小時的訓練卻需要10年之久。也就是說,電腦運行幾分鐘,可能就等于人類工作好幾年。

曾經(jīng)在Facebook擔任技術(shù)總監(jiān)的Bobby Johnson描述過,高效率的程序員都把時間花在制作工具上。

很多人也認為工具是很重要的,但是他們并沒有花時間去制作、整合自己的工具。但是,Jonson團隊最出色的員工耗費了他們1/3的時間在工具制作上,這些工具可以用來發(fā)布代碼,監(jiān)控系統(tǒng),以及能讓他們花更少的時間去做更多事情。

總之,不要花時間去做機器可以代替你去做的事情。

優(yōu)化你的迭代速度

假設(shè)你要花12秒鐘去搜索某個函數(shù)是在哪里定義的。再假設(shè)你每天做這個動作60次,那么你每天就要花12分鐘去搜索函數(shù)定義。

如果你用一個好一點的編輯器,每次找到函數(shù)定義只要2秒鐘,那么你每天就會節(jié)約10分鐘。每年你就可以節(jié)約40個小時。如果你能找到3個這樣的場景去優(yōu)化一下,那么你每年可以節(jié)約一個月的時間。

想想這一個月你可以做多少有意義的事情。再假如你在調(diào)試一個App的bug的時候,改完一次代碼都需要重啟一下App,然后點擊4、5次才能看到bug有沒有改好。那么你是不是可以先花幾分鐘設(shè)置以下,讓App一啟動就轉(zhuǎn)到顯示Bug的頁面呢?

千萬不要小看這些瑣碎的細節(jié),改善它們的回報是巨大。

系統(tǒng)性的思考方式

當你在寫代碼的時候,你很容易就認為只要你按照需求實現(xiàn)了指定的功能,你的代碼就寫完了。但是這其實只是冰山一角。

任何沒有發(fā)布到生產(chǎn)環(huán)境的代碼都不會產(chǎn)生任何價值。

  • 如果想寫出真正有影響力的代碼,你需要從整個系統(tǒng)去理解你的工作:
  • 你的代碼和其他人寫的代碼在功能上是什么關(guān)系?
  • 你有沒有好好測試你的代碼?或者其他人是否很容易測試你的代碼?
  • 為了部署你的代碼,線上生產(chǎn)環(huán)境的代碼是不是需要改動?
  • 新的代碼會不會影響到已經(jīng)運行的代碼?
  • 在新的功能下,你的目標用戶的行為是不是你期望的?
  • 你的代碼有沒有產(chǎn)生商業(yè)上的影響?

這些問題都不是很容易就能回答的,但是在寫代碼的時候,你需要明白你的代碼***會不會得到***的結(jié)果。

責任編輯:武曉燕 來源: 程序員編程
相關(guān)推薦

2023-04-26 08:00:00

程序員軟件開發(fā)

2009-05-21 15:58:12

程序員工作經(jīng)驗職場

2022-08-30 08:13:30

流程模板定期復盤數(shù)據(jù)

2013-07-09 13:52:31

程序員Android

2021-07-05 15:10:11

編程語言技巧

2024-08-20 11:40:24

2014-11-07 16:57:21

程序員

2021-09-26 09:09:20

開源APP程序員

2015-06-30 09:20:09

2009-04-14 11:13:22

主流開發(fā)開發(fā)技能程序員

2021-04-20 16:51:07

程序員技術(shù)開發(fā)

2009-01-08 09:04:18

2009-11-19 10:21:02

2013-02-22 10:21:06

2009-01-20 23:27:55

程序員創(chuàng)業(yè)思維障礙

2013-03-28 15:24:29

程序員

2012-11-30 11:29:05

高級程序員程序員

2015-05-26 10:09:51

程序員反面模式

2019-01-21 14:13:51

程序員技能開發(fā)者

2014-08-21 10:31:04

程序員薪資勞動價值
點贊
收藏

51CTO技術(shù)棧公眾號