姓名:李興宇? 學號:16030110084
轉(zhuǎn)載自:http://blog.jobbole.com/112280/薄坏,有刪節(jié)。
【嵌牛導讀】:每個IT企業(yè)寨闹,尤其是初創(chuàng)企業(yè)胶坠,非常苦惱:找不到好的程序員》北ぃ現(xiàn)在大學沈善、軟件學院及各種培訓機構(gòu),每年培養(yǎng)幾十萬的程序員椭蹄,畢業(yè)的每個人都有同樣困惱:找不到好的工作闻牡。那么,問題出在哪里呢绳矩?
【嵌牛鼻子】:程序員罩润,編程,創(chuàng)業(yè)翼馆,提高編程能力
【嵌牛提問】:作為一名程序員或者將要成為一名從事編程方面的工作者割以,我們該如何提高自己的編程能力,成為一個編程高手呢应媚?
【嵌牛正文】:
轉(zhuǎn)注:據(jù)傳此文出自雷軍之手严沥,是他以前給軟件開發(fā)2.0技術(shù)大會準備的演講稿,但由于某些原因沒有派上用場中姜。這里跟大家分享下祝峻,對我們程序員來說還是大有裨益的。
企業(yè)到底需要什么樣的程序員扎筒,一個剛?cè)腴T的程序員如何成為企業(yè)需要的高手呢莱找?還有很多程序員問我,“我需要具備什么樣的能力就可以去創(chuàng)業(yè)嗜桌?”我一直在琢磨類似的問題奥溺。我自己寫過十年程序,也在金山管理過一千多人的研發(fā)隊伍骨宠,最近也在做天使投資浮定,仔細總結(jié)了如下五點建議與所有程序員分享相满。
建議一:只有真正喜歡才能寫好程序
喜歡寫程序,做程序員就是上天堂桦卒;
不喜歡寫程序立美,做程序員就是下地獄;
程序員需要整天趴在電腦前方灾,經(jīng)常沒日沒夜的建蹄,非常辛苦,而且工作來不得半點虛假裕偿,少寫一個標點符號都不行洞慎。喜歡的人,日子過得非常開心嘿棘,每寫一行代碼劲腿,都會有新的成就,尤其當自己的作品被廣泛應(yīng)用的時候鸟妙,那種自豪感油然而起焦人。不喜歡的人,坐在電腦前極端無聊重父,被進度壓得喘不過氣來花椭,天天為找bug改bug生氣。
只有喜歡坪郭,只有熱愛个从,才能把程序?qū)懞茫?/p>
我建議不喜歡寫程序的人早點轉(zhuǎn)行,不要勉強自己歪沃,免得誤人誤己嗦锐。
建議二:把程序當藝術(shù)品,像寫詩一樣來寫代碼
現(xiàn)在很少有公司做code review(對寫好的程序做代碼級檢查)沪曙,于是很多人在進度的壓力下潦草應(yīng)付奕污,只要測試通過就算搞定。表面上看液走,開發(fā)速度很快碳默,進度有保障;但實際上缘眶,這樣的程序連開發(fā)者自己都很難讀懂嘱根,一旦有bug,很難調(diào)試巷懈,將來維護升級都非常困難该抒。這樣的代碼多半只能重寫,浪費自然嚴重顶燕。
如果每個人寫程序的時候當藝術(shù)品來寫凑保,寫每行都認認真真冈爹、干干凈凈的,雖然速度略微慢了一點欧引,但綜合的開發(fā)成本會低很多频伤。
如何寫像詩一樣美的代碼呢?方法也很簡單芝此。
一憋肖、買幾本經(jīng)典的編程書,把書上所有例程全部重新寫一遍癌蓖,逐個比較和書上范例的差距瞬哼,一步一步改善自己編程的風格和技巧婚肆。時間長了租副,自然就能寫出象書上例程一樣的代碼,甚至可以比書上寫得好较性。
二用僧、基礎(chǔ)扎實后,多看看Linux等系統(tǒng)級的源代碼赞咙,看看高手是如何寫的责循,就有感覺了。
三攀操、通讀一下MSDN中所有的資料院仿,這樣,“讀書破萬卷速和,下筆如有神”歹垫。
還有,一定要牢記軟件工程的鐵律:可能出錯的地方一定會出錯颠放。每個變量都做初始化排惨,引用每個參數(shù)都會做有效性檢查,在可能出錯的每個地方都會做邊界條件檢查碰凶,這樣開發(fā)出來的程序一定會穩(wěn)固很多暮芭,就是出錯也會很容易修改。野路子出來的高手欲低,一般開發(fā)速度很快辕宏,但做完后bug很多,經(jīng)常需要很長時間修改砾莱。而真正的高手瑞筐,追求的境界是bugfreecode(零缺陷代碼)。
建議三:必須寫夠十萬行代碼恤磷,不要心存僥幸
程序員象木工一樣面哼,熟能生巧野宜。程序員必須寫足夠代碼量的程序,才會有感覺魔策,這是一個苦力活匈子,沒有任何捷徑可走。
計算機是一門實踐性的科學闯袒,沒有動手能力做支撐虎敦,很難做出好的科研成果。我的一個學長是美國卡內(nèi)基梅隆大學的博士政敢,卡內(nèi)基梅隆大學計算機系在全世界非常出名其徙,他說每個博士生必須寫十萬行代碼才能畢業(yè),卡內(nèi)基梅隆大學博士進任何一個大企業(yè)基本不用面試喷户。而國內(nèi)培養(yǎng)的大部分研究生唾那、博士生,動手能力都偏弱褪尝。
沒有寫過足夠代碼量的闹获,想成為高手是不可能的,只能紙上談兵河哑!
建議四:時刻保持好奇心
計算機技術(shù)更新?lián)Q代非潮芊蹋快,每年都有各種各樣的新技術(shù)出現(xiàn)璃谨。在我過去的職業(yè)生涯中沙庐,僅編程語言,我就用過basic佳吞、masm拱雏、pascal、c++容达、vba古涧、Delphi、java等花盐。需要時刻保持好奇心羡滑,不斷學習各種新的東西,才能在未來的幾十年職業(yè)生涯中不落伍算芯。你要理解為什么iPhone出來很多高手用iPhone柒昏,現(xiàn)在一天到晚惦記著換部IPhone玩玩。
人的精力有限熙揍,高手往往工作壓力也比較大职祷,如何在有限的時間內(nèi)掌握整個行業(yè)動態(tài),的確是一個不簡單的事情。我的經(jīng)驗是經(jīng)秤邪穑看業(yè)內(nèi)的各種技術(shù)雜志是尖,參加各種聚會,可以節(jié)約很多時間泥耀。最重要的是饺汹,交幾個博學的技術(shù)高手,多和他們交流痰催,一定獲益匪淺兜辞!
建議五:不要局限在技術(shù)本身,多花點精力關(guān)注用戶
做到前面幾條夸溶,就已經(jīng)是千金難求的高手了逸吵。但一個真正的高手需要知道用戶需要什么,如何做出讓用戶滿意的產(chǎn)品缝裁。
現(xiàn)在的軟件研發(fā)越來越強烈團隊協(xié)作扫皱,不少團隊都配置了專門的需求分析的工程師、用戶界面及用戶體驗的設(shè)計師压语,軟件研發(fā)的分工越來越細啸罢。很多程序員以為只要把技術(shù)搞好编检,不用管用戶需求和用戶體驗胎食。實際上,需求方案及界面方案不可能寫得非常細允懂,具體的實施還是程序員自己來實現(xiàn)的厕怜。這個時候,好壞的差距很快就體現(xiàn)出來了蕾总。
我們寫程序的最終目的是滿足用戶需求粥航,不是簡單完成需求規(guī)劃方案中的功能。所以生百,程序員一定要認真揣摩用戶心理递雀,能明白用戶的真實需求。
其次蚀浆,怎么設(shè)計交互界面缀程,讓用戶覺得好用,用起來舒服市俊,這里面學問很大杨凑。我舉一個小例子,每個程序窗口右上角都有三個按鈕摆昧,如最小化撩满、關(guān)閉等。喬布斯覺得不好看,不易用伺帘,他提出改用紅綠藍的交通燈昭躺。這樣修改后,果然MacOS漂亮和易用了很多伪嫁。
目前互聯(lián)網(wǎng)和手機上的應(yīng)用開發(fā)窍仰,都非常強調(diào)小團隊研發(fā)。這樣研發(fā)模式速度會快很多礼殊,但對程序員的綜合素質(zhì)的要求也就更高了驹吮。
我強烈建議程序員不要僅僅局限在技術(shù)本事,還需要多點精力考慮和用戶相關(guān)的問題晶伦,學會洞察用戶的需求碟狞,并努力設(shè)計好用易用的產(chǎn)品。做著這點的程序高手婚陪,創(chuàng)業(yè)成算就很大了族沃。
這樣的技術(shù)高手,如果捕捉到合適的產(chǎn)品方向泌参,并且具備一定帶團隊的能力脆淹,創(chuàng)業(yè)成功機會很大!事實上沽一,絕大部分創(chuàng)業(yè)的技術(shù)公司盖溺,創(chuàng)始人都是這樣的人!