漫談程序員系列:看看你離優秀有多遠

jopen 9年前發布 | 15K 次閱讀 程序員

前段時間(大概是8月份吧)我終于拿到了駕照,科目一、科目二、科目三、科目四都是一次性過的,沒有給教練塞錢也沒有給教練遞煙。考科目三(路考) 時,有個女生沒能通過還被陪考員諷刺,傷心地哭了,梨花帶雨讓人心疼。同行的還有兩個學員考了三次都沒過。媳婦的同事聽說我什么致禮的事兒都沒干居然一次 性過了,對我表示了一些些敬仰之情。好吧,我承認這讓我有點兒沾沾自喜。可是我們在談程序員啊,和駕校有兩毛錢關系沒有?別急,兄弟姐妹們,有的,這個真 的有。

軟件開發的未來世界

有一次我在上海Qt開發群(企鵝號279906625)和人討論軟件開發與炒菜大媽的可比性,當時我說將來的軟件開發會很簡單,成為像英語、駕駛一 樣的基本社會能力,你能學會炒菜就能學會編程,可以根據自己的需要從半成品軟件商店里購買組件,按自己的需求加工成成品軟件。我相信不久之后這個就會實 現,用戶可以用自己的需求和智慧,借助一個平臺,像搭積木一樣生產軟件。雖然實際上他們不懂我們現在談論的所謂編程、開發,但確確實實,他們可以按需開發 出自己的軟件來,而且很可能他們都不需要懂計算機,只要在手機之類的移動設備上搞兩下就好啦。

其實現在硬件已經在往這個方向發展了,什么面包板,什么模塊化,什么什么什么呀,看看這個文章:Make!Sense 動手好伴侶,帶你輕松做實驗。摘要:

簡單來說,Make!Sense 可以看作是一套傳感器連接系統,它自帶通用接口,可以快速便捷地將不同類型的傳感器連接到電腦或智能手機。作為一個有趣的學習互動平 臺,Make!Sense 最大的亮點就是操作簡單,小盆友們可以用它感受身邊物體細微的運動、空氣中的水分、光線、溫度甚至心跳,好奇什么,就感受什么。

配圖:

漫談程序員系列:看看你離優秀有多遠

一下子又跑偏了,下筆千言,離題萬里……

駕校教給我們什么

要說司機就得說駕校,我還想說出租車、快的、滴滴、易到用車……因為我是個真誠的噴子,想到哪里噴哪里,不會掩飾,我打星際爭霸時最喜歡的是口水 蟲,編上個七八隊,哇喔,噴的那個叫壯觀,瞬間平地變湖泊……現在社會上有些資源被某些謀取私利的官、商占據了,所以產生了很多問題。就比方說駕校,為什 么那些無牌駕駛十幾年的老黑司機也要到駕校來花個錢呢?這不扯淡嗎……應該有自考的途徑啊。

我們還是回歸正題,看看駕校能教會我們什么。

駕校會教我們控制汽車,比如怎么把握方向盤,怎么使用離合、油門、剎車,怎么半聯動,怎么起步,怎么半坡起步,怎么過S彎,當然還有調整后視鏡、側 方、倒庫等等,對于新手來講,這些其實也是比較傷腦筋的。但是所有這些都是相對簡單的事情,大部分學員通過練習都能掌握,不會有太大的問題。多練習一下, 科二、科三不成問題,至于科一、科四,到駕校一點通做兩遍題,對于上過初中的朋友們也沒太大問題,我的堂兄弟小學文化水平也過了,去年春節回家他開車接的 我。

當你花上五塊錢買了個實習的黃牌子貼到車屁股上準備上路時,真正難受的經歷才正式開始。這時才是真正學習開車的時刻!雖然控制汽車是成為好司機的非 常非常重要的前提條件,但遠遠不夠,很遠很遠,比你愛一個人那個人卻在搞基還要遠。只有你看淡了風云,能夠預料和避免大多數意外的情況時才能成為一個好司 機。不幸的是,駕校不可能教給你這些技巧,你會漂移的朋友也不可能教會你,神仙姐姐來了也教不會你反倒會讓你分心YY。

總之一句話:拿到了駕照,實際你會不會開車,只能聽天由命了。哦不,我要傳遞正能量,靠人不如靠己,此時此刻,只有你能對自己的生命負責,所以你必 須Fighting,學會應對所有的緊急狀況,你必須親自經歷過很多駕駛危險并且要幸存下來才能擁有教練們企圖通過說教、演示來教給你的那些應急反應能 力。這是少林寺的十八銅人巷,要下山必須得通過。什么,你想啟用飛行模式?抱歉,待你長發及腰,肋生雙翅再說吧。

舒馬赫,阿隆索,漢密爾頓,阿蘭瓊斯,普羅斯特……這些名字你可能知道。好吧,也許,韓寒這個全民岳父你更熟悉……這些知名的賽車手,還有在《頭文 字D》中送豆腐卻能在山道神漂移的周董,與剛走出駕校拿到駕照的學員們,到底有多大差別?到底哪些新手司機可以成為未來的神司機?

這是一個問題,很大的問題。

優秀是有門檻的

在《漫談程序員系列:程序員零門檻?》中我說軟件開發門檻為零,在本文開始也45度角仰望星空暢想了404也能開發軟件的悲慘未來。親們,不要怕,這里我要做一點點修正,所謂失之毫厘謬以千里,我這點微不足道的修正,會大大改變本系列文章關于軟件開發門檻這一話題的未來走向。

所謂的沒有門檻,是指:成為新手程序員沒有門檻。也許之前你已經笑話過我圖樣圖森破,我這么一改,哈哈,Bug沒了吧。

現在要goto到駕校了。

如果你想成為程序員,或者被逼迫必須成為程序員,那可以去達內、北大青鳥、黑馬、野馬等等培訓機構學幾個月,也可以自己到軟件開發4S店當幾天學 徒,基本上就可以掌握一門編程語言,能夠控制某個IDE,讓它Run出一個Hello World或者別的什么。此時此刻,你滿懷激情地成了4B青年,可是“金樽清酒斗十千,玉盤珍羞直萬錢”,買個房子貸難還,娶個媳婦岳母嫌,壓力不是一般 的大啊,于是你停杯投箸不能食,拔劍四顧心茫然,最后只能輾轉反側寤寐思服……那么,你想什么呢?

終于可以連連看了,此時你就相當于剛從駕校出來的新手司機,站在鋼筋水泥的叢林里,面對著人潮擁擠又車來車往的十字路口,眺望堵到霾云深處的車流,開始了事關將來的深度思考:什么時候我才能成為一個神乎其技的好司機,穿越這神鬼難破的堵局?

其實作為程序員,你也要想這個問題:我來了,面對那么多的大拿、怪咖、呆萌,我的路在何方?怎樣找到那條通往優秀程序員的羊腸小道?

入門不難,優秀很難!上有六龍回日之高標,下有沖波逆折之回川。黃鶴之飛尚不得過,猿猱欲度愁攀援。腫么辦?腫么辦?

不是每個人都能成為舒馬赫,也不是每個程序員都要成為王江民。

擺在你面前的有很多選擇:蹩腳的程序員、合格的程序員、優秀的程序員、卓越的程序員,還有在職退休的好漢……

你要做哪一個?你能做哪一個?怎樣成為你想做的那個?

Big Problem ! 你需要看《自我發現,找到適合自己的職位》,step into ,或者F11,進去看看吧。不過這篇文章目標太大,說的都是一般之理,沒有針對“程序員”這個與“農民工”、“保潔員”一樣響當當的稱謂所代表的社會群體 投去特別的溫暖與關注。因此,我會在漫談程序員系列文章中來講這個問題,稍微詳細一些的來嘮一嘮它,不過不是現在……

優秀與普通的差別

現在我們要看看優秀程序員與普通程序員之間的差別。

有個哥們兒(叫他GG吧)考科三,起步、百米加減檔、超車都O了,快結束時,陪考員說,減速停車,這哥們一聽暗暗吐了一口長氣,心想終于通過了,然后右腳猛踩油門,陪考員反應挺快猛踩副駕的剎車,結果呢這哥們掛了……

你說GG能否成為舒馬赫?

其實我的神經好錯亂的是吧……

還是看看優秀程序員的表現:

漫談程序員系列:看看你離優秀有多遠

普通程序員的循環:

漫談程序員系列:看看你離優秀有多遠

當然普通程序員和優秀程序員可能不像兩幅圖里的區別那么明顯,但他們之間確實有一條鴻溝……

有哥們兒已經紅眼了,憤怒了:博主,丫到底敢不敢說明白!到底差別在哪里?

咦,你真關心這個呀……其實我不是馬路邊的賈半仙,很難一言半語說明白,但是,姑且從以下三方面噴噴吧。

  • 才干
  • 行為
  • 結果

才干上的差別

請先閱讀《漫談選人與培訓》了解知識、技能、才干的差別。這里咱搞個摘要:

才干就是你那些貫穿始終的思維、感覺和行為方式,它基本上是與生俱來的。任何可以產生效益的貫穿始終的行為模式都是才干。多數時候我們并沒有意識到它們的存在,只要你有意識的識別出它們并發揚光大,就可以有所成就。因為,取得出色成績的關鍵在于使你的才干與工作相匹配。

舉例來講,精確、好學、好強、嚴謹、秩序、樂觀、開朗、專心等等都是才干。

理解了才干這個說法,我是再也不迷信“勤能補拙”、“揚長補短”這些個看似勵志的說法啦。假如你要干好一件事情,必須要改變你的才干和個性,只有當你非你時才可以干好它,那這件事情壓根兒就不適合你。換句話說,它不是你的菜。

上小學時老師總是批評有的小朋友馬虎,是馬虎蟲……馬虎可以改變嗎?對于有些人可以,對于有些人不可以,因為馬虎是他的天性。有的人小學馬虎,中學照樣,成家立業了還是粗心大意丟三落四馬馬虎虎……你讓他改什么?馬虎就是他的天性啊。請表逆天,親。

還有些項目經理對團隊里的程序員不滿意,說P1要是多想想,用心一些,就不會寫出臭蟲亂爬的程序;說P2要是責任心強一些,就不會天天上班打游 戲……其實,哥呀,有的人就是不認真,不用心,天生就那樣;而有的人就是不負責任;這些都是教不會的,改變不了的……你寄望于改變那些無法改變的東西來提 高某人的工作效率和產出,那可真是癡人說夢話緣木求魚……

那造就優秀程序員的,是哪些才干呢?

  • 學習能力
  • 學習欲望
  • 好奇心
  • 成就欲望
  • 執著
  • 追求完美
  • 抽象思維

這些都是……必然還有別的,請腦補下。

行為上的差別

因為才干不太能直接看得出來,但它會決定你有什么樣的行為。所以,從行為上,其實也可以看出普通和優秀的差別來。

優秀程序員的一些行為:

  • 拿到任務,就開始仰望星空或天花板上那盞高懸的電燈棒,狀如老僧入定
  • 忽而皺眉,忽而展顏一笑,忽而手舞足蹈,忽而在紙上指指戳戳,忽而口中念念有詞,忽而長吁……感覺有點神經病啊
  • 桌子上擺的是代碼大全、設計模式、敏捷實踐之類的書籍,并且沒有灰塵
  • chrome或firefox的書簽欄里分門別類,類別多于10個,8個以上是技術相關的
  • 容不得破窗戶,看見別人的爛代碼就想改過來
  • 隨手就能在白板上畫出軟件的流程圖或者時序圖……
  • 項目做完了,別人在打游戲、看視頻、忙著回復QQ、向剁手族前進,他在想:這樣重構好呢,還是那樣……
  • 你發現他總能說出些你不知道的技術來……
  • 看這廝的代碼比看你自己的還好懂……
  • 老得你叫他吃飯……

普通程序員的行為:

  • 拿到任務就開始噼里啪啦敲鍵盤,一天寫了好幾千行代碼
  • 沒事兒就被測試MM叫過去溝通……
  • 都早上10點多了還想著昨晚的球賽,10點半就琢磨中午要吃拉面、扯面、刀削面、牛肉面、旗花面、臊子面、窩窩面還是炒細面……
  • 過了一陣子,看到自己的代碼,感到很驚奇,認為是別人寫的……
  • 回家就看電視、打游戲、看球賽
  • 周一上班不知道要干啥,遲遲進入不了角色
  • 哇,能Run啦,搞定啦
  • 這誰寫的代碼,這么爛……算了,管它
  • 問別人問題的時候多,別人請教你的時候少
  • 世界上最遙遠的距離不是生與死,而是你親手制造的 BUG 就在你眼前,你卻怎么都找不到她……

當然還有其它的……這個列表可以很長很長

結果上的差別

最重要的差別在這里:

因為普通程序員老是和測試MM溝通,告別單身的幾率比優秀程序員大100倍。 

來源:安曉輝的博客

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!