摘 要 本文從兩方面闡述了軟件行業(yè)的出路,內(nèi)外兼修??朔€(gè)人的幾大缺點(diǎn),基礎(chǔ)的量變,加上突破的方向,引發(fā)質(zhì)的變化。有了這些,假以時(shí)日,定能從軟件行業(yè)中脫穎而出。
關(guān)鍵詞 方向 優(yōu)秀程序員 脫穎而出
中圖分類(lèi)號(hào):F426.672 文獻(xiàn)標(biāo)識(shí)碼:A
信息行業(yè)的快速發(fā)展,迅速推動(dòng)了軟件行業(yè)的大爆炸,如何從各式各樣的軟件中脫穎而出成為眾多人心中的疑問(wèn)。想從軟件行業(yè)中突出,需要從以下兩方面發(fā)展。
1 個(gè)人方面
要成為一個(gè)優(yōu)秀的程序員,個(gè)人首先做到以下幾個(gè)不要:
1.1 不要情緒化的思維
如果開(kāi)始就使用不同顏色的眼光來(lái)看待這個(gè)世界的話,那么作為一個(gè)程序員會(huì)是很糟糕的。情緒化的思維或態(tài)度很有可能會(huì)把自己變成一個(gè)怪物。因?yàn)?,情緒化通常都是魔鬼,會(huì)使人做出錯(cuò)誤的判斷和決定,錯(cuò)誤的判斷和決定直接決定了一個(gè)人的人生。
1.2 不要懷疑別人
有的程序員曾經(jīng)這樣使用 STL類(lèi):map,當(dāng)發(fā)現(xiàn)這樣放入字符串后卻取不出來(lái),覺(jué)得那是STL庫(kù)的BUG,然后自己寫(xiě)了一個(gè)map!某些時(shí)候,過(guò)早下結(jié)論是一個(gè)很不好的習(xí)慣,任何事情都有其原因,只有知道了原因,才能知道是誰(shuí)的問(wèn)題。一般來(lái)說(shuō),總是自己出的問(wèn)題。
1.3 不要過(guò)多關(guān)注實(shí)現(xiàn),陷入問(wèn)題細(xì)節(jié)
“喜歡接口,而不是實(shí)現(xiàn)”就是說(shuō)認(rèn)清問(wèn)題的本質(zhì)和特性要比如何實(shí)現(xiàn)更重要。對(duì)于一個(gè)客戶的問(wèn)題來(lái)說(shuō),首先應(yīng)該想到的是如何先讓用戶正常工作,如何恢復(fù)正在“流血”的系統(tǒng),而不是把用戶放在一邊而去分析問(wèn)題的原因和解決方案。對(duì)于解決一個(gè)bug來(lái)說(shuō),重現(xiàn)bug,了解原來(lái)程序的意圖是首要的事,而不是馬上去修改代碼,否則必然會(huì)引入更多的BUG。對(duì)于一個(gè)需求來(lái)說(shuō),則要了解需求后面的商業(yè)背景,use case和真實(shí)意圖,只有了解了用戶的真實(shí)意圖,實(shí)際使用的方式和案例,才能真正去做設(shè)計(jì)。
1.4 不要使用并不熟悉的代碼
糟糕的程序員最好的朋友是 Ctrl-C 和 Ctrl-V ,有些時(shí)候,還不知道代碼的確切含義,就開(kāi)始使用它,有證據(jù)表明,由拷貝粘貼引發(fā)的bug占了絕大多數(shù)。因?yàn)椋a總是只能在特定的環(huán)境下才能正常地工作,如果代碼的上下文改變了,很有可能使得代碼產(chǎn)生很多不為人知的行為,當(dāng)連代碼都控制不住了,就編不出什么好的程序。
1.5 不要拼命工作而要聰明的工作
好的程序員可能會(huì)花雙倍的時(shí)間來(lái)準(zhǔn)備一個(gè)有效的開(kāi)發(fā)環(huán)境、工具,以及在開(kāi)發(fā)的時(shí)候花雙倍甚至10倍的時(shí)間來(lái)避免一些錯(cuò)誤,用一切工具或手段來(lái)讓自己的工作變得更有效率,總是為在開(kāi)發(fā)的時(shí)候盡可能的不出錯(cuò)。因?yàn)楹笃诔鲥e(cuò)的成本將會(huì)是巨大的,而且那時(shí)改正錯(cuò)誤的壓力也是巨大的。糟糕的程序通常會(huì)讓自己進(jìn)入一種惡性循環(huán),總是疲憊的,總是很辛苦的,所以更沒(méi)有時(shí)間來(lái)改善,越?jīng)]有時(shí)間來(lái)改善,就有越多的問(wèn)題。所以,拼命工作有些時(shí)候可能表明你不是一個(gè)好的程序員。
1.6 不要說(shuō)得多做得少
糟糕的程序員總是覺(jué)得自己什么都懂,沒(méi)感到自己的認(rèn)識(shí)和知識(shí)是有限的。這就是所謂的夸夸其談。另一個(gè)表現(xiàn)方式是他們?cè)谠u(píng)論起別人的程序或是設(shè)計(jì)時(shí),總是能挑出一堆毛病,但自己的程序?qū)懙靡埠軤€??偸桥u(píng)抱怨,而沒(méi)有任何有建設(shè)性的意見(jiàn),或是提出可行的解決方案。總是喜歡以批評(píng)別人的程序而顯示自己的優(yōu)秀。
1.7 不要寫(xiě)“聰明”的代碼
寫(xiě)出來(lái)的代碼需要?jiǎng)e的同事查看程序語(yǔ)言參考手冊(cè),或是其程序的邏輯或是風(fēng)格看上去相當(dāng)時(shí)髦,但卻非常難讀。代碼本應(yīng)該簡(jiǎn)潔和易讀,而他們喜歡在代碼中表現(xiàn)自己,并嘗試另類(lèi)的東西,以顯示自己的才氣。是的,只有能力有問(wèn)題的程序員才需要借助這樣的顯示。
2 方向方面
2.1 做別人做不到的
大學(xué)課程的普及,越來(lái)越多人都可以隨便編寫(xiě)幾個(gè)軟件,想要脫穎而出就要做別人做不到的。程序的基礎(chǔ)是算法,例如CRC算法、冗余算法、CRC8算法、DES算法、DES加密算法等等多要做到精通。這里介紹兩本算法方面的書(shū):《算法導(dǎo)論》、《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》,還有經(jīng)典的十進(jìn)制轉(zhuǎn)bcd三種算法。
2.2 做別人想不到的
做別人想不到的,可以在市場(chǎng)中占有有利的地位,只知道模仿別人的軟件想法,那就永遠(yuǎn)在別人的后面,難以有所突破。這一條是質(zhì)的升華,是成敗的關(guān)鍵。
通過(guò)以上內(nèi)外兼修的方法,假以時(shí)日一定可以從軟件行業(yè)中脫穎而出,成為下一個(gè)周鴻祎或者馬云,在軟件行業(yè)實(shí)現(xiàn)自己的價(jià)值,完成自己的夢(mèng)想,成就自己的理念!
參考文獻(xiàn)
[1] 李開(kāi)復(fù).軟件行業(yè)的發(fā)展趨勢(shì). 電子工業(yè)出版社,2003.11.21.