您好,登錄后才能下訂單哦!
文/上嵌科技(簡書作者)
原文鏈接:http://www.jianshu.com/p/9fee4c5f6825
著作權歸作者所有,轉載請聯系作者獲得授權,并標注“簡書作者”。
程序員這個職業具有豐厚的薪水,高端的職位和成就感的事業,幾乎是現在計算機專業,和一些理工類專業同學的期望的職業。據中智2015年福利調研數據顯示,程序員已經成為2015年最有“錢途”的職業,這些崗位包括軟件開發工程師,移動開發工程師,產品經理(互聯網/軟件行業)、架構師(互聯網/軟件行業)、數據分析師(互聯網/軟件/醫療行業)。
程序界和軟硬件一樣都要遵守摩爾定律,當前的技術知識很快會被替代,你需要不斷學習新的東西,否則就會面臨著被淘汰的危險。然而,一個人的學習動力和欲望都是有限的,記憶力還會隨著年齡的增長而衰退,從這個道理上來說,年齡大的遲早會被年齡小的超過,成為雞肋并最終將被公司拋棄。難道程序員這個職業做不過三十五歲,永遠是一碗青春飯嗎?
決定一個人會不會淘汰的關鍵
一個人如果根基扎實,他就更容易學習新的事物新的知識,年輕和精力相對于扎實牢靠的根基是微不足道的,對于別人是一座山的障礙,對于他也許就是一張紙的隔閡,這樣的人是不會面臨著被超越被淘汰的危機的,青春飯的論調對他完全不適用。
看看5年前,我們都還沒有智能手機,今天移動互聯網和移動互聯網創業已經如火如荼。第一批從事移動互聯網開發,APP開發的工程師都是從其他開發語言轉過來的,他們看準方向和趨勢,早就受益了。
而一個人如果根基不牢,只是靠精力和年齡勉強立足,每次新事物新知識出現都在和年輕人拼體力拼精力,那么他遲早將被淘汰,優勝劣汰的社會就是這樣殘酷無情,但很公平。如果你只是一個工作經驗用5年,在哪個行業,都不會有加薪的機會,還面臨被淘汰的可能。
只不過在IT行業,程序員這個崗位上,技術趨勢變化得更明顯一些,對從業人員的學習要求更高一些。相反,如果你選擇一個緩慢發生的傳統行業,可能就是溫水煮青蛙。
如何打好程序員的根基
面向對象(OOP)的思想。MVC、分層架構,面向接口編程、依賴注入,OR Mapping,面向切面,SOA等都是OO的發展,不從根本上領會它,程序員就難以把握程序發展進化的趨勢,永遠停留在老窠臼中無法自拔,自我提高升華進化當然更是一句空話。
數據結構。程序的核心目的是收集,整理和展示數據,而數據的核心就是數據結構,它的重要性不言而喻。線性表、棧/隊列、串、多維數組、廣義表、樹、圖這些數據結構你都需要認真掌握,掌握的程度越深,日后學習的阻力就越小,相對于他人將更有優勢。
算法。如果缺乏好的算法,程序架構得再完美數據再貼切都無濟于事,猶如一臺法拉利卻用牛來拉一樣。迭代法、窮舉搜索法、遞推法、貪婪法、回溯法、分治法、動態規劃法都是你需要掌握的,不要以為這很難,讀透一本算法導論就足夠了。
基礎API。只有思想,數據結構和算法只是一條腿,要健步如飛還得兩條腿走路。程序員的另一條腿就是基礎API,你需要認真掌握TCP/IP協議詳解,Socket通信,線程,文件讀寫等每種語言和技術都需要的基礎知識,一個新事務即使再絢爛奪目也是利用這些基石搭建而成的,如果你徹底了解了它們將永處不敗的境地,甚至覺得新技術也不過如此。
你再看看,一些大牛掌握好幾種,十幾種編程語言,就不覺得奇怪了。因為他們根基扎實,迅速掌握一種語言、平臺根本沒有問題。不同的語言、平臺在他們眼里就是工具,就像一個武林高手一樣,拈起一根樹枝,也是一把劍。
如何打好根基
多學。從項目中學,從書本中學,從別人哪里學,從失敗中學習,掌握基礎API就是需要多學習,如果有已有的知識總結可以起到事半功倍的效果。
多練。構建自己代碼庫,有自己的完整的項目代表作品。不做項目,不做多個項目,不做大項目,程序員對“度”的把握總是缺乏經驗,不是過就是不及。真正親手手寫過10-20萬行代碼的是成為一個成熟程序員的必要條件。在IT行業,人才成長的速度也是非常快,2~3年工作經驗的程序非常搶手。
多見。眼光狹窄,目光短淺,固步自封只能造就一只井底之蛙,你的眼光必須超越自己所在的環境才能取得真正的進步。一是多了解參與開源社區,二是多跟高手交流接觸。
程序員的職業生涯能給我們帶來什么
只要人們還在使用計算機,程序員這個職業就永遠不會消亡,因為計算機運行永遠需要軟件。相對于其它職業,程序員對自己命運的把握程度更大。“榮辱自取,不求于人”,這是一種非常好的感覺,在別的職業中是難以找到的。
比爾·蓋茨、小扎,李彥宏、馬化騰、雷軍、周鴻祎、劉強東......他們都曾是程序員,程序這種職業不僅訓練了你對技術的快速掌握,更多培養管理溝通能力,產品思維,對技術趨勢的理解。
程序員事業發展的方向
乒乓球是中國的國球,在中國從事乒乓球運動就是一碗青春飯,人才輩出,青年人成長太快了。一個瓦爾德內爾要對陣打中國4~5代的運動員。但你看看國內的那些乒乓球退役運動員不是體育局的領導,就是開創了自己的事業。如果沒有乒乓球這個運動的繁榮、人才輩出,他們不會有這樣的發展和位置。
對于一個程序員來說,有哪些發展方向呢?
架構師CTO,CIO。對于熱衷于技術的程序員來說這是一個不錯的方向,架構師這個職位的必要條件是有優秀的技術功底和豐富的設計經驗,此外還需要有某個領域的深入知識。CIO還需要對未來五年內的技術走勢把握得比較清楚。
項目經理,部門經理。人際關系處理良好,語言能力出眾的程序員適合走這條路。這也是大連大多數程序員的理想選擇。
獨立開發者,當一個給自己發薪水的人。網站做好了收入頗豐,低端如hao123,高端如google的例子都擺在眼前。其實做網站初期投入并不巨大,但需要持之以恒的毅力尤其是敏銳的市場嗅覺,它決定了你是否能從網站中盈利。此外,擁有自己的網站對于自我宣傳,建立個人品牌有很大的好處。這條路適合于熱衷于網絡技術的程序員。
開公司創業,技術合伙人。制作軟件并不難,難得是是否能接到活,能否接到長期的活,如果能做到的話,你就可以選擇創業,一次項目的利潤就可能就等于你前期的工資總和。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。