1. 程式人生 > >程式設計師等於吃青春飯嗎?

程式設計師等於吃青春飯嗎?

在中國,人們對軟體行業從業者有這麼一個說法,即:程式設計師=吃青春飯的,這使得程式設計師的年齡問題顯得相當敏感。 很多計算機相關專業的畢業生在擇業時,不知道是受到什麼因素的影響,對於程式設計師這個職業,普遍存在一個認識上的錯誤,他們認為程式設計師的“職業生涯”很短暫,吃的是青春飯,等年齡大了,如果不轉行,就沒用了,沒有企業要了,生存都存在問題了。還有很多人認為程式設計師這個職業眼前雖然高薪,但是卻是以犧牲身體、時間換來的,經常還要加班,“享受”非人的待遇,最後還落下一身職業病,例如:頸椎病、腰椎間盤突出、高度近視等,所以他們認為這個職業儘管眼前光明,但是沒有什麼前途,可事實絕非如此,這是對程式設計師這個職業的一種誤解。

Part1 誤區:軟體開發職業是青春飯 之所以出現“程式設計師是吃青春飯的”這一觀點,可能是因為很多人認為國內程式設計師的工作雖然高薪,但確實很累,需要耗費大量的時間和精力,只有年輕人才頂得住。無法否認,就國內的軟體行業現狀來說,程式設計師工作比較累的現象確實存在,但是程式設計序只有年輕人才能做得了的說法,卻是錯誤的認識。 首先,國內的軟體開發管理存在不規範的現象,作坊式的個人行為很嚴重,互相配合、協同開發的效率很低,分工不明確,一個人要做好幾個人的事; 其次,客戶需求不明確,很多客戶自己企業的管理都很不規範,自己都搞不清楚自己的生產流程,要用計算機進行管理是行不通的; 第三,軟體開發市場競爭激烈,有些公司為了獲得訂單,使用者要求什麼就答應什麼,結果就苦了程式設計師。隨著國內軟體開發市場和使用者市場的逐漸成熟,以及軟體規模的擴大,程式設計師的辛苦會逐漸降低。 而隨著技術能力和工作經驗的增加,程式設計師可以向軟體設計師、系統分析員、專案主管、專案經理、CIO過渡。中國的軟體產業剛剛開始,不但需要大量的程式設計師,而且逐漸會需要更多的設計分析、管理人員。當然,準程式設計師們目前首先要做好的是學好功課,然後去做程式設計師,做上幾年程式設計師以後,再逐步向上發展。 還有一個問題:工作很辛苦。我鄭重地告訴你:沒有不辛苦的工作!關鍵是怎樣把工作轉化為一種享受,讓自己的心情快樂起來。 針對軟體開發職業是青春飯這個觀點,我們來做一個誤區分析: 誤區01
年長程式設計師要求的薪酬一般要比年輕程式設計師高很多,相比之下年輕的程式設計師更能受到企業的青睞。 其實,相比年輕程式設計師,年長程式設計師更有競爭力,因為年長程式設計師具備豐富的專案經驗,之所以薪酬比年輕程式設計師高很多,有它的合理性與必然性。雖然年輕的程式設計師薪水相對比較少,但是他們一般沒有經受過失敗的教訓,對於專案的認知與把握普遍不如年長的程式設計師。很多專案需要有激情的年輕人,同時也需要經驗豐富的年長者進行架構、技術指導,因此給予年長者高薪也是必須的,因為他們的價值完全能夠匹配他們拿到的薪水。 誤區02年長程式設計師缺少靈活性,缺乏學習新知識的能力與動力,做事比較古板。 年長程式設計師的閱歷較年輕的程式設計師更深、更廣,越是有經驗的程式設計師越能夠更迅速、更深度地遷移到新的技術、框架和系統裡,其中很多深刻的見解並不是新人可以擁有的。況且,由這些思想儲備來提升的生產效率,並不是能用什麼方法直接測量到。 誤區03
年長程式設計師不願意去幹那些很辛苦的實際開發工作,程式設計水平一般,只會指手劃腳。 沒有誰能夠保證年長的程式設計師就不用加班,年輕的程式設計師就一定經常加班。隨著人生閱歷的增加,年長的程式設計師相比較年輕的程式設計師,更不願意加班加點辛苦地工作,畢竟他們有了家庭,需要考慮的事情更多了,他們知道只有工作效率有問題才會將自己推到每週工作80小時的處境。很多有家室的程式設計師都能有效地管理自己的個人時間,否則他立刻會淹沒在各種工作之中無法抽身。而當企業需要他們加班的時候,年長的程式設計師也會義無反顧地加班,絲毫不遜色於年輕的程式設計師。 誤區04年長程式設計師沒有年輕程式設計師腦瓜靈活、思維敏捷。 最後,由於生理特性,年長者在智力方面確實不如年輕人了,年長的程式設計師比年輕的程式設計師的反應速度也相對慢一些,但正確的判斷來自於經驗,經驗來自於常年累月的積澱,年長的程式設計師見識過、經歷過的成功、失敗的案例都比年輕人多得多,經驗豐富的程式設計師有大量的案例可以拿來作為借鑑和參考,而年輕的程式設計師初出茅廬,很難做到這一點,即使可能會有一些很好的新觀點,但通常是沒有經過測試和驗證的,很難付諸實踐。 每個人都年輕過,也有年老的時候,而年輕不是壞事,年老也不是所有都好,重要的是,肚子裡沒有真材實料的程式設計師在哪裡都很難有發展前景,有實力的程式設計師,無論是年輕還是年老,在哪裡都是香餑餑。所以程式設計師這個職業不僅不是吃“青春飯”的,而且這個職業還會讓人永葆青春,充滿活力。

Part2 程式設計師如何規避吃青春飯? 現今,科技領域技術更新迅速,作為該領域幕後勤懇勞作的程式設計師,要想在其中永遠保持領先,跟得上時代,規避吃青春飯的尷尬,就需要時刻面向未來做好準備。但面對各種技術,各種開發語言,程式設計師該如何做?我們先來看看程式設計師的出路在哪裡? 程式設計師的出路在哪裡? 一位有著10年軟體行業從業經驗,專注於微軟.Net技術領域及專案管理的人員根據自己的現狀總結出了三條出路,希望對你們有用。 出路一:向IT培訓師轉型 分析:IT企業在招聘新人後,一般都須經過培訓才能上崗,這個培訓有時是在崗位上進行的,由富有實踐經驗的“老人”負責。年輕人想要進入IT行業,必須接受這樣的專業培訓。如今IT培訓市場蛋糕相當大,利潤空間可觀,行業發展前景看好。無論是在IT公司內部轉型擔任培訓工作,還是到IT培訓機構擔任教師,都有很大的發展空間。這樣的工作不會有太大壓力,且比較穩定,對年齡也沒什麼要求,而且也沒有脫離本行。  優勢:在這個行業工作多年,擁有豐富程式設計、專案經驗,曾參與過許多成功案例。而多年積攢的行業人脈關係,還可以幫助我們發展企業客戶,順便擔任市場拓展工作。  挑戰:缺少培訓工作經驗。如果要向培訓師轉型,可能需要接受一些專業訓練,提高擔任培訓師的能力。 出路二:向IT營銷轉型 IT與其它行業不同,由於技術性較強,營銷人員一般須有較強的技術背景,且最好有著豐富經驗。網際網路公司、電子商務公司、軟體公司目前都需要有技術背景的營銷人員;另外,電子商務的再度火爆,使得傳統企業開始重視電子商務營銷,也需要有技術背景的營銷人員。這類工作薪水不低,加上提成應該可以拿到高於程式設計師的薪水,同時也比較穩定。  深厚的技術背景,廣泛涉獵了各種程式設計軟體和工具,對IT行業也有相對深入的瞭解,這些都是比較大的優勢。 挑戰:程式設計師一般都很少與人打交道,口才也不太好,而營銷工作恰恰需要跟人打交道,這可能是最大的挑戰,要求徹底改變工作方式,加強溝通能力與人際交往能力;此外,營銷工作會面臨銷售指標的壓力,這些問題都是轉型前必須深入考慮的。  出路三:向專案管理努力 分析:如果說前面兩條出路轉型的成分多,那麼專案管理可以說是更為便捷的發展之路。目前,軟體專案經理是人才市場上受熱捧的人才,有豐富經驗、外語好的軟體專案經理是搶手的香餑餑,供不應求,薪水自然也是水漲船高。最重要的是,一個優秀的專案經理可以在這個崗位上長久工作下去,並且有向高層進一步提升的可能。  優勢:對有經驗、有技術、有人脈、有能力、參與過多個軟體開發、有一定經驗的人,專案管理無疑是發展的一個很好的方向。  挑戰:可能有些程式設計師在專案團隊裡一直是參與工作,很少擔任過專案帶頭人。而很多公司在招聘專案經理時,都需要有帶領團隊進行專案開發的經驗,這是一個劣勢。最好參加一些專案管理方面的培訓課程,自學相關的知識,增長自己在流程管理、溝通協調等方面的能力,以便積累資本,逐步向專案管理崗位邁進。

程式設計師如何為未來做準備? 面對日新月異的軟體開發技術,程式設計師們如何將這碗飯吃好,吃長久,為未來做好準備呢? 01.挑選一個廣闊而穩固的基礎方向 確保軟體開發者前途光明的最可靠辦法是避免徹底偏向,應該打下一個廣闊而穩固的職業基礎。許多技術是時尚的,但總有一些技術更能經受時間磨礪,像C或者C++語言已經出現很久,仍在大量使用。JavaScript是另一個具備穩固基礎的偉大技術,它可以用於任何平臺的程式設計,包括移動端、網頁端,甚至嵌入式系統。你尤其需要提升通用技術而不是特殊技術。擁有通用技巧是軟體開發過程中編寫良好程式碼的核心靈魂。 02.留意最新趨勢 做不到準確預測未來,但可以通過一些指標看出潮流趨勢,關注趨勢和熱議內容一直是個好主意。在Hacker News和Pro Git等網站經常可以發現新技術的苗頭。開發者大會和技術沙龍也是發現新趨勢不錯的渠道。 03.持續學習 保證不落伍最穩固的方法是學習新技術並不斷擴充套件知識面、提升已有技術。作為軟體開發者應該習慣於終身學習,制定一個計劃讓每天或每週有一個固定的學習時間。學會如何學習,以提高學習效率並使學習變成更有趣的經歷。自學是在永遠變化的技術世界中存活的重要武器。 記住,世界上沒有東西是憑空誕生的。新技術和新程式語言會出現,但它們都是現有某種技術或程式語言的改作或組合。你知道得越多,就越能關聯新事物並使新學習部分大量減少。 04.願意改變和調整 固守已知而忽略發展確實容易,但誰都不能阻止未來,我們最好放棄抗拒趨勢發展,學會改變和調整。 如果始終迷信一種技術,最後傷害將多於幫助,我逐漸認識到在大風中應彎下腰。

如何做一名優秀的程式設計師 作為程式設計師,價值的實現不是通過你知道些什麼來衡量,而是通過你做出的設計來衡量。雖然兩者之間存在聯絡,但並不相同。那麼,如何才能成為優秀的程式設計師? 01.發現問題要及時解決 程式設計師在編寫程式碼時,遇到真正的難題很少,也很少有專門做技術的公司。要想成為優秀的程式設計師,第一步就是要及時解決遇到的難題。遇到有問題的程式碼而不去解決的程式設計師不是好程式設計師。無論你是Ruby、Node.js、Angular還是其他開發人員,遇到問題一定要解決。 02.從程式碼中學習 我發現很多程式設計師的編碼水平都達到了一個穩定值,因為他們還沒有找到可以提高他們編碼水平的方法,這是一件很糟糕的事。怎樣才能提高自己的編碼水平?最簡單的方法就是從好的、不好的程式碼中學習。通過長期積累,你應該可以分辨出哪些程式碼值得你學習。 03.態度端正 一個好的程式要確保自己寫出的程式碼能夠正常執行,在寫程式碼過程中,態度一定要端正。如果不端正的話,會影響到你寫程式碼的速度和質量,同時也會造成Bug,說不定還會惹怒你的領導。 04.適量測試 測試是一種有力的工具,就像戰士穿鎧甲一樣,穿得越多,越不容易失敗;越不害怕失敗,你做得就會越多,進步的空間也比較大。但到底什麼才是適量的測試?對此沒有明確的回答,依情況來定。測試是你需要學習的另一個新的專業知識,要多花時間思考哪些東西需要做測試,怎樣才能做好測試。 05.每天至少花四個小時來認真做本分工作 大多數程式設計師喜歡討論優化自己、關注黑客等, 其實你根本不需要做這些來提高工作效率,最根本的是要每天堅持做自己的本分工作。每天至少花4個小時的時間認真做好自己的本職工作,這並不是一件容易的事情,如果長期堅持下去的話,勢必會成為團隊最優秀的成員之一。 記錄有價值的程式碼並與團隊分享:培養記錄有價值程式碼的習慣,記錄下來之後,還應該花時間與你的團隊成員分享,互相學習。在程式設計過程中,遇到的最糟糕的事就是修復Bug。分享可以有效降低出現這種事情的概率。

06.使團隊更優秀 你的出現使團隊變得更優秀還是更糟糕?你編寫程式碼、編制文件和你的技術能力幫助到隊友了嗎?你是否經常鼓勵隊友,使他們為成為優秀的程式設計師努力?你應該想盡辦法使團隊變得更優秀,比如在工作上幫助他們。要記住,只有你一個人“聰明”並不聰明。 其實,作為一個優秀的程式設計師,不在於你有多聰明或者有多少理論知識,也和你從哪所大學畢業無關。你是一個怎樣的程式設計師最終只由你所做出來的工作以及身邊人對你的評價決定。所以,要想成為一名優秀的程式設計師,繼續加油吧!