低級程序員和高級程序員的區別,難道這就是強者的世界嗎?
低級程序員認為自己與高級程序員的區別, 主要是高級程序員任何功能都能編碼實現, 編碼速度快, 代碼無 bug. 正如一慣的那樣, 低級程序員之所以低級, 正是因為他們勉強能看到(或者根本看不到)事物的表象而看不到本質. 所以, 低級程序員總結出的一切東西, 你都可以大膽的忽略.
低級程序員和高級程序員的區別,難道這就是強者的世界嗎?
所以, 我們來聽聽高級程序認為自己與低級程序員的區別是什麼. 高級程序員之所以高級, 在於他們認識到代碼 bug 是不可避免的, 有千萬種理由可以導致 bug, 但他們可以在設計和邏輯上保證(追求)滴水不漏, 並用邏輯的百分之百準確性還減少代碼 bug. 沒錯, 嚴謹的邏輯能力是高級程序員區別於低級程序員的最主要原因。
低級程序員和高級程序員的區別,難道這就是強者的世界嗎?
類似於武俠小說中的武術一樣,程序員也分內功和招式。招式就是各種編程技巧和編程概念(框架,架構等),通過經驗可以不斷習得。而內功就是數據結構 + 演算法了,招式可以決定你幹活的速度,而且絕大多數情況下,不需要深厚的內力(知道加減乘除就行)。而內功可以決定你能解決問題的高度,就是一件事情,難到一定程度,內力不夠的話是解決不了的。
低級程序員和高級程序員的區別,難道這就是強者的世界嗎?
優秀程序員的行為:
拿到任務,就開始仰望星空或天花板上那盞高懸的電燈棒,狀如老僧入定
忽而皺眉,忽而展顏一笑,忽而手舞足蹈,忽而在紙上指指戳戳,忽而口中念念有詞,忽而長吁……感覺有點神經病啊
桌子上擺的是代碼大全、設計模式、敏捷實踐之類的書籍,並且沒有灰塵
chrome或firefox的書籤欄里分門別類,類別多於10個,8個以上是技術相關的
容不得破窗戶,看見別人的爛代碼就想改過來
隨手就能在白板上畫出軟體的流程圖或者時序圖……
普通程序員的行為:
拿到任務就開始噼里啪啦敲鍵盤,一天寫了好幾千行代碼
沒事兒就被測試MM叫過去溝通……
都早上10點多了還想著昨晚的球賽,10點半就琢磨中午要吃拉麵、扯麵、刀削麵、牛肉麵、旗花面、臊子面、窩窩面還是炒細面……
過了一陣子,看到自己的代碼,感到很驚奇,認為是別人寫的……
低級程序員和高級程序員的區別,難道這就是強者的世界嗎?
作為一個優秀的程序員,應該做到以下兩點:
1.勇於去研究你不懂的代碼
一般人都不願意去研究自己不曾接觸過的代碼,很多人都沒有嘗試就放棄了。如果你經常去研究你沒有接觸過的代碼,你就會越來越熟悉不同的代碼結構和設計模式。現在人們很容易就接觸到優秀的開源代碼資源,你可以很方便的就下載下來做一些改動或者調試,去研究為什麼代碼可以這麼寫。
除了代碼之外,很多人對於陌生的工作內容也會感到恐懼。每次換工作的時候,你可能都會遇到新公司的工作內容和以前工作的內容不一樣的情況,以至於剛開始的時候工作效率沒有以前那麼高。很多人甚至覺得,他們是不是騙了面試官。
2.精通代碼調試(debug)
很多人在寫代碼的過程中,經常會有的一個問題就是:為什麼我寫出來的代碼不能運行?為什麼運行的結果不是我想要的?
幾乎所有的程序員寫代碼都不是一遍就能寫好的。但是頂尖的程序員非常快的就明白自己代碼的問題可能是什麼。這是一個很重要的能力,但是偏偏學校里不教,面試的時候考官也不經常提及。
※文件伺服器搭建
※程序員私活收入:隨隨便便月入1萬多,有的走向人生巔峰
TAG:極客教程 |