在軟體公司,程式設計師是企業中最基礎的崗位,只要保質保量的完成分派的任務就可以了,但在我看來好多程式設計師就連這一點都做不到。程式碼寫得是一塌糊途,只要能正常執行就算是萬事大吉,而且總是會告訴你沒有重構的時間。可在我看來程式設計師更應該是個作家而不僅是個司機,寫出來的程式碼是用來執行的,想像一下別人都看不懂你寫的程式碼,那你寫的程式會執行多久呢?作家只有寫出好的文章別人才會去閱讀去欣賞,試想如果一作者寫出一篇連自己看了都覺得討厭東西又怎麼會啟齒讓別人去看。
對於程式設計師來說也應抱有作家的心態,始終想著我寫出的程式碼是否別人看了會笑話?是否會讚歎?應該想到決大部分的程式碼重構工作是在開發階段完成的,而非後期逐漸完善的。一般來說,一套系統上線這後很少會再做程式碼的重構工作。
程式設計師的發展方向
我想沒有幾個人會想做一輩子程式設計師(即然有這樣的人年齡大了精力上也不允許),但很少有程式設計師會想到以後應該做些什麼,下面是我總結的幾個發展方向:
走向管理:有兩種原因會使部分程式設計師走上管理的道路,一是與生俱來的對權力的慾望;一是在程式設計師的崗位上對自我價值重新認知。對於前者如果慾望過去強烈就會急功進利,很容易走捷徑,會出現不能服眾的情況。對於後者自我價值的重新認知是一個緩慢的過程,一個程式設計師在長期的開發過程中會慢慢發現一個人的力量是有限的,做一件事情必須要藉助其他人的幫助,如果需要別人的幫助就必須能影響他人。從而認識到一個人的價值對公司來說幾乎是不值一文,如果想讓自己的價值得到提升必須要影響到他人,藉助他人的力量使自己的價值得到最大提升。
走向行業:即成為某個行業的行業專家。一般來說走這個方面需要機遇,需要長時間的從事某一個領域的開發與管理工作,對某個行業無論是大局還是細節都瞭如指掌。
走向專業:即成為架構師。一般來說這些人對開發有狂熱的興趣,逐漸的從程式碼的編寫中認識到設計與軟體架構的重要性,並對軟體設計樂此不疲。
自已幹:這些人是野心家,也是風險最大的一條路。好多程式設計師都認為軟體開發不需要什麼成本,只要能接到單子完全可以自己幹,自己當老闆。然而很少了解只有長期持續的訂單才是一個企業不斷穩定發展的最重要因素。
程式設計師的價值
程式設計師很少能認清自己的價值,總是用我會多少東西,我做了多少工作來衡量。然而對於企業來說,他看的是你為公司創造多少價值,這種雙方認知的偏差往往帶來不可調和的矛盾。舉個例子,一個公司只做SQLServer做資料庫端開發,而你即使對ORACLE再精通,你一樣對這個公司來說是沒有價值的。再比如你在某個公司做了很多工作,但你做的專案都沒有使公司賺到錢,同樣老闆是不會多給你多少獎金的。人生的機遇就象在等車,只要你有足夠的準備,站在一個站牌很多的地方,一定會搭上你希望去的方向的公車。
一個程式設計師的價值在於他的機會,而很多機會一定會留給有實力的人,不要認為自己懷才不遇,不要怨天尤人!
如何成為優秀的程式設計師?
撥三心:恆心、耐心、細心
興趣決定一切:當一個人把自己的職業僅當成謀生的手段時,那他的人生將會失去很多樂趣。如果你不喜歡軟體開發,那最好離開這個職業,沒有興趣只會讓你一事無成。
自我學習:做程式設計師就是這樣,走上了一條永無止境的學習之路,不學習新知就會被淘汰。然而學習也是有方法的:1)拿來主義;2)知其然也要知其所以然,細細分析與研究別人的優秀框架會對你大有好處。
自我修復:不斷的重構與完善你的程式碼,是對所學知識的達到溶匯貫通的最簡捷的途徑。
找到一個圈子或老師:有時別人的一句話會對你的點撥很大。對於知識點有時只是一層窗戶紙,看似玄妙,也許你差的只是那靈光一現或是換一個角度思考,這並不難。難的是將你所瞭解的知識點串接起來,使其能上下貫通運用自如,而在這點上通過一己之力會變得非常的漫長與痛苦。
(推薦閱讀:《成為一名優秀程式設計師所需要知道的那些事》、《完美程式設計師的10種品質》)
作者:張昊