小米創始人雷軍:寫程序有寫詩一樣的感覺
近日,小米提交招股書,正式申請在香港上市。創始人雷軍又一次上了熱搜,許多人不知道的是,雷軍做過十年的程序員,他甚至認為自己會幹一輩子的編程。
他對編程有著狂熱的愛好,早在武漢大學計算機系,雷軍用兩年的時間,修完了四年所有的學分,甚至完成了大學畢業設計。
這個學霸還在《彙編語言程序設計》中拿了滿分,是武大計算機系僅有的兩個拿了滿分的學生之一。
以下是他24年前寫的彙編語言代碼片段
作為程序員,雷軍的水平絕對是頂尖的,還獲得了十大功勛程序員的獎章。
如果有對web前端感興趣web前端程序員,可來我們的web前端技術學習群的哦:58422,
6069裡面免費送web前端的視頻教程噢!
我自己是一名從事了6年web前端開發的全棧工程師,辭職目前在做線上教育講師,創了一個交流裙,每晚都會在裙內直播,今年年初我花了一個月整理了一份最適合2018年學習的web前端乾貨,從最基礎的HTML+CSS+JS+html5到Vue,node等各種框架都有整理,送給每一位學習web前端的小夥伴,這裡是web前端學習者聚集地,歡迎初學和進階中的小夥伴。
關於編程,他有一個故事,流傳甚廣。
饅頭商學院的創始人王欣當年去金山面試程序員,被雷軍問道:你寫程序有寫詩一樣的感覺嗎?
她回答說:沒有。
雷軍說:這不就完了嗎。
從此世上少了一個女程序媛,多了一個優秀的產品經理,當然沒有編程的基礎,成為一個頂尖的產品經理也困難。
作為資深程序員,雷軍對寫代碼的要求極高。他對所有想寫程序的人,給出了五條建議:
01 只有真正喜歡才能寫好程序
喜歡寫程序,做程序員就是上天堂;
不喜歡寫程序,做程序員就是下地獄。
——雷軍
程序員需要整天趴在電腦前,經常沒日沒夜的,非常辛苦,而且工作來不得半點虛假,少寫一個標點符號都不行。喜歡的人,日子過得非常開心,每寫一行代碼,都會有新的成就,尤其當自己的作品被廣泛應用的時候,那種自豪感油然而起。不喜歡的人,坐在電腦前極端無聊,被進度壓得喘不過氣來,天天為找bug改bug生氣。
02 把程序當藝術品,象寫詩一樣來寫代碼
如果每個人寫程序的時候當藝術品來寫,寫每行都認認真真、乾乾淨淨的,雖然速度略微慢了一點,但綜合的開發成本會低很多。
——雷軍
現在很少有公司做 codeview (對寫好的程序做代碼級檢查),於是很多人在進度的壓力下潦草應付,只要測試通過就算搞定。表面上看,開發速度很快,進度有保障;但實際上,這樣的程序連開發者自己都很難讀懂,一旦有bug,很難調試,將來維護升級都非常困難。這樣的代碼多半只能重寫,浪費自然嚴重。
如何寫像詩一樣美的代碼呢?雷軍給出了幾個方法。
2-1
多做代碼練習
買幾本經典的編程書,把書上所有例子全部重新寫一遍,逐個比較和書上範例的差距,一步一步改善自己編程的風格和技巧。時間長了,自然就能寫出像書上例子一樣的代碼,甚至可以比書上寫得好。
2-2
多看系統級源碼
基礎紮實後,多看看Linux 等系統級的源代碼,看看高手是如何寫的,就有感覺了。
2-3
牢記鐵律
牢記軟體工程的鐵律:可能出錯的地方一定會出錯。每個變數都做初始化,引用每個參數都會做有效性檢查,在可能出錯的每個地方都會做邊界條件檢查,這樣開發出來的程序一定會穩固很多,就是出錯也會很容易修改。野路子出來的高手,一般開發速度很快,但做完後bug很多,經常需要很長時間修改。而真正的高手,追求的境界是 bugfree code(零缺陷代碼)。
03 必須寫夠十萬行代碼,不要心存僥倖
程序員象木工一樣,熟能生巧。程序員必須寫足夠代碼量的程序,才會有感覺,這是一個苦力活,沒有任何捷徑可走。
——雷軍
計算機是一門實踐性的科學,沒有動手能力做支撐,很難做出好的科研成果。雷軍的一個學長是美國卡內基梅隆大學的博士,卡內基梅隆大學計算機系在全世界非常出名,他說每個博士生必須寫十萬行代碼才能畢業,卡內基梅隆大學博士進任何一個大企業基本不用面試。而國內培養的大部分研究生、博士生,動手能力都偏弱。
沒有寫過足夠代碼量的,想成為高手是不可能的,只能紙上談兵!
04 時刻保持好奇心
計算機技術更新換代非常快,每年都有各種各樣的新技術出現。在他過去的職業生涯中,僅編程語言,雷軍就用過 basic、masm、pascal、c++、vba、Delphi、java 等。需要時刻保持好奇心,不斷學習各種新的東西,才能在未來的幾十年職業生涯中不落伍。
誰也沒想到,僅僅幾年,Python就成為最火的語言,並且還進了高考,連小學生都開始學Python了。前幾天還看一個老父親在評論區留言說,想我老大三十多的編輯為了降低以後被淘汰的幾率,現在咬著牙和一堆十幾歲的娃娃一起學Python……另一個媽媽則忍不住偷笑,因為自己的孩子進了以編程為特色的小學。
05 不要局限在技術本身,多關注用戶
一個真正的高手需要知道用戶需要什麼,如何做出讓用戶滿意的產品。
——雷軍
現在的軟體研發越來越強烈團隊協作,不少團隊都配置了專門的需求分析的工程師、用戶界面及用戶體驗的設計師,軟體研發的分工越來越細。很多程序員以為只要把技術搞好,不用管用戶需求和用戶體驗。實際上,需求方案及界面方案不可能寫得非常細,具體的實施還是程序員自己來實現的。這個時候,好壞的差距很快就體現出來了。
寫程序的最終目的是滿足用戶需求,不是簡單完成需求規劃方案中的功能。所以,程序員一定要認真揣摩用戶心理,能明白用戶的真實需求。
其次,怎麼設計交互界面,讓用戶覺得好用,用起來舒服,這裡面學問很大。
雷軍舉過一個小例子,每個程序窗口右上角都有三個按鈕,如最小化、關閉等。喬布斯覺得不好看,不易用,他提出改用紅綠藍的交通燈。這樣修改後,果然 Mac OS 漂亮和易用了很多。
目前互聯網和手機上的應用開發,都非常強調小團隊研發。這樣研發模式速度會快很多,但對程序員的綜合素質的要求也就更高了。
雷軍強烈建議程序員不要僅僅局限在技術本事,還需要多點精力考慮和用戶相關的問題,學會洞察用戶的需求,並努力設計好用易用的產品。做到這點的程序高手,創業勝算就很大了。
回過頭看,雷軍的程序員經歷只是他人生的背景色,是一個基調,但卻非常重要。能寫一手像詩一樣代碼的人,做什麼都不會差!
你覺得呢?
TAG:落花偏偏 |