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