每個(gè)IT企業(yè)孝偎,尤其是初創(chuàng)企業(yè)访敌,非常苦惱:優(yōu)秀的程序員很難找衣盾。大學(xué)寺旺、各式各樣的IT培訓(xùn)機(jī)構(gòu),每年春暖花開(kāi)之后势决,又多了幾十萬(wàn)編程小白阻塑,每個(gè)人畢業(yè)時(shí)都有相似的煩惱:找不到好的工作。問(wèn)題出在哪里呢果复?其實(shí)陈莽,企業(yè)需要的是一個(gè)會(huì)編程的程序員而不是招一個(gè)人來(lái)教他如何編程,來(lái)了就能干活,最好能把活干好走搁。而剛畢業(yè)的大學(xué)生多半剛學(xué)會(huì)如何寫(xiě)程序独柑,的確很難企業(yè)需求。
企業(yè)到底需要什么樣的程序員私植,一個(gè)剛?cè)腴T的程序員如何成為企業(yè)需要的高手呢群嗤?還有很多程序員問(wèn)我,“我需要具備什么樣的能力就可以去創(chuàng)業(yè)兵琳?”我一直在琢磨類似的問(wèn)題。我自己寫(xiě)過(guò)十年程序骇径,也在金山管理過(guò)一千多人的研發(fā)隊(duì)伍躯肌,最近也在做天使投資,仔細(xì)總結(jié)了如下五點(diǎn)建議與所有程序員分享破衔。
建議一:只有真正喜歡才能寫(xiě)好程序
喜歡寫(xiě)程序清女,做程序員就是上天堂;
不喜歡寫(xiě)程序晰筛,做程序員就是下地獄嫡丙;
程序員需要整天趴在電腦前,經(jīng)常沒(méi)日沒(méi)夜的读第,非常辛苦曙博,而且工作來(lái)不得半點(diǎn)虛假,少寫(xiě)一個(gè)標(biāo)點(diǎn)符號(hào)都不行怜瞒。喜歡的人父泳,日子過(guò)得非常開(kāi)心,每寫(xiě)一行代碼吴汪,都會(huì)有新的成就惠窄,尤其當(dāng)自己的作品被廣泛應(yīng)用的時(shí)候,那種自豪感油然而起漾橙。不喜歡的人杆融,坐在電腦前極端無(wú)聊,被進(jìn)度壓得喘不過(guò)氣來(lái)霜运,天天為找bug改bug生氣脾歇。
只有喜歡,只有熱愛(ài)淘捡,才能把程序?qū)懞茫?/p>
我建議不喜歡寫(xiě)程序的人早點(diǎn)轉(zhuǎn)行介劫,不要勉強(qiáng)自己,免得誤人誤己案淋。
建議二:把程序當(dāng)藝術(shù)品座韵,象寫(xiě)詩(shī)一樣來(lái)寫(xiě)代碼
現(xiàn)在很少有公司做codeview(對(duì)寫(xiě)好的程序做代碼級(jí)檢查),于是很多人在進(jìn)度的壓力下潦草應(yīng)付,只要測(cè)試通過(guò)就算搞定誉碴。表面上看宦棺,開(kāi)發(fā)速度很快,進(jìn)度有保障黔帕;但實(shí)際上代咸,這樣的程序連開(kāi)發(fā)者自己都很難讀懂,一旦有bug成黄,很難調(diào)試呐芥,將來(lái)維護(hù)升級(jí)都非常困難。這樣的代碼多半只能重寫(xiě)奋岁,浪費(fèi)自然嚴(yán)重思瘟。
如果每個(gè)人寫(xiě)程序的時(shí)候當(dāng)藝術(shù)品來(lái)寫(xiě),寫(xiě)每行都認(rèn)認(rèn)真真闻伶、干干凈凈的滨攻,雖然速度略微慢了一點(diǎn),但綜合的開(kāi)發(fā)成本會(huì)低很多蓝翰。
如何寫(xiě)像詩(shī)一樣美的代碼呢光绕?方法也很簡(jiǎn)單。
一畜份、買幾本經(jīng)典的編程書(shū)诞帐,把書(shū)上所有例程全部重新寫(xiě)一遍,逐個(gè)比較和書(shū)上范例的差距爆雹,一步一步改善自己編程的風(fēng)格和技巧景埃。時(shí)間長(zhǎng)了,自然就能寫(xiě)出象書(shū)上例程一樣的代碼顶别,甚至可以比書(shū)上寫(xiě)得好谷徙。
二、基礎(chǔ)扎實(shí)后驯绎,多看看Linux等系統(tǒng)級(jí)的源代碼完慧,看看高手是如何寫(xiě)的,就有感覺(jué)了剩失。
三屈尼、通讀一下MSDN中所有的資料,這樣拴孤,“讀書(shū)破萬(wàn)卷脾歧,下筆如有神”。
還有演熟,一定要牢記軟件工程的鐵律:可能出錯(cuò)的地方一定會(huì)出錯(cuò)鞭执。每個(gè)變量都做初始化司顿,引用每個(gè)參數(shù)都會(huì)做有效性檢查,在可能出錯(cuò)的每個(gè)地方都會(huì)做邊界條件檢查兄纺,這樣開(kāi)發(fā)出來(lái)的程序一定會(huì)穩(wěn)固很多大溜,就是出錯(cuò)也會(huì)很容易修改。野路子出來(lái)的高手估脆,一般開(kāi)發(fā)速度很快钦奋,但做完后bug很多,經(jīng)常需要很長(zhǎng)時(shí)間修改疙赠。而真正的高手付材,追求的境界是bugfree code(零缺陷代碼)。
建議三:必須寫(xiě)夠十萬(wàn)行代碼圃阳,不要心存僥幸
程序員象木工一樣厌衔,熟能生巧。程序員必須寫(xiě)足夠代碼量的程序限佩,才會(huì)有感覺(jué),這是一個(gè)苦力活裸弦,沒(méi)有任何捷徑可走祟同。
計(jì)算機(jī)是一門實(shí)踐性的科學(xué),沒(méi)有動(dòng)手能力做支撐理疙,很難做出好的科研成果晕城。我的一個(gè)學(xué)長(zhǎng)是美國(guó)卡內(nèi)基梅隆大學(xué)的博士,卡內(nèi)基梅隆大學(xué)計(jì)算機(jī)系在全世界非常出名窖贤,他說(shuō)每個(gè)博士生必須寫(xiě)十萬(wàn)行代碼才能畢業(yè)砖顷,卡內(nèi)基梅隆大學(xué)博士進(jìn)任何一個(gè)大企業(yè)基本不用面試。而國(guó)內(nèi)培養(yǎng)的大部分研究生赃梧、博士生滤蝠,動(dòng)手能力都偏弱。
沒(méi)有寫(xiě)過(guò)足夠代碼量的授嘀,想成為高手是不可能的物咳,只能紙上談兵!
建議四:時(shí)刻保持好奇心
計(jì)算機(jī)技術(shù)更新?lián)Q代非程阒澹快览闰,每年都有各種各樣的新技術(shù)出現(xiàn)。在我過(guò)去的職業(yè)生涯中巷折,僅編程語(yǔ)言压鉴,我就用過(guò)basic、masm锻拘、pascal油吭、c++、vba、Delphi上鞠、java等际邻。需要時(shí)刻保持好奇心,不斷學(xué)習(xí)各種新的東西芍阎,才能在未來(lái)的幾十年職業(yè)生涯中不落伍世曾。你要理解為什么iPhone出來(lái)很多高手用iPhone,現(xiàn)在一天到晚惦記著換部IPhone玩玩谴咸。
人的精力有限轮听,高手往往工作壓力也比較大,如何在有限的時(shí)間內(nèi)掌握整個(gè)行業(yè)動(dòng)態(tài)岭佳,的確是一個(gè)不簡(jiǎn)單的事情血巍。我的經(jīng)驗(yàn)是經(jīng)常看業(yè)內(nèi)的各種技術(shù)雜志珊随,參加各種聚會(huì)述寡,可以節(jié)約很多時(shí)間。最重要的是叶洞,交幾個(gè)博學(xué)的技術(shù)高手鲫凶,多和他們交流,一定獲益匪淺衩辟!
建議五:不要局限在技術(shù)本身螟炫,多花點(diǎn)精力關(guān)注用戶
做到前面幾條,就已經(jīng)是千金難求的高手了艺晴。但一個(gè)真正的高手需要知道用戶需要什么昼钻,如何做出讓用戶滿意的產(chǎn)品。
現(xiàn)在的軟件研發(fā)越來(lái)越強(qiáng)烈團(tuán)隊(duì)協(xié)作封寞,不少團(tuán)隊(duì)都配置了專門的需求分析的工程師然评、用戶界面及用戶體驗(yàn)的設(shè)計(jì)師,軟件研發(fā)的分工越來(lái)越細(xì)狈究。很多程序員以為只要把技術(shù)搞好沾瓦,不用管用戶需求和用戶體驗(yàn)。實(shí)際上谦炒,需求方案及界面方案不可能寫(xiě)得非常細(xì)贯莺,具體的實(shí)施還是程序員自己來(lái)實(shí)現(xiàn)的。這個(gè)時(shí)候宁改,好壞的差距很快就體 現(xiàn)出來(lái)了缕探。
我們寫(xiě)程序的最終目的是滿足用戶需求,不是簡(jiǎn)單完成需求規(guī)劃方案中的功能还蹲。所以爹耗,程序員一定要認(rèn)真揣摩用戶心理耙考,能明白用戶的真實(shí)需求。
其次潭兽,怎么設(shè)計(jì)交互界面倦始,讓用戶覺(jué)得好用,用起來(lái)舒服山卦,這里面學(xué)問(wèn)很大鞋邑。我舉一個(gè)小例子,每個(gè)程序窗口右上角都有三個(gè)按鈕账蓉,如最小化枚碗、關(guān)閉等。喬布斯覺(jué)得不好看铸本,不易用肮雨,他提出改用紅綠藍(lán)的交通燈。這樣修改后箱玷,果然Mac OS漂亮和易用了很多怨规。
目前互聯(lián)網(wǎng)和手機(jī)上的應(yīng)用開(kāi)發(fā),都非常強(qiáng)調(diào)小團(tuán)隊(duì)研發(fā)锡足。這樣研發(fā)模式速度會(huì)快很多波丰,但對(duì)程序員的綜合素質(zhì)的要求也就更高了。
我強(qiáng)烈建議程序員不要僅僅局限在技術(shù)本事舱污,還需要多點(diǎn)精力考慮和用戶相關(guān)的問(wèn)題呀舔,學(xué)會(huì)洞察用戶的需求弥虐,并努力設(shè)計(jì)好用易用的產(chǎn)品扩灯。做著這點(diǎn)的程序高手,創(chuàng)業(yè)成算就很大了霜瘪。
這樣的技術(shù)高手珠插,如果捕捉到合適的產(chǎn)品方向,并且具備一定帶團(tuán)隊(duì)的能力颖对,創(chuàng)業(yè)成功機(jī)會(huì)很大捻撑!事實(shí)上,絕大部分創(chuàng)業(yè)的技術(shù)公司缤底,創(chuàng)始人都是這樣的人顾患!
: