本人從2008年畢業,作為一名軟件開發程序員,開始正式踏入軟件開發行業,轉眼間已是9個年頭了。做過初級軟件工程師、高級軟件工程師、項目主管、技術經理、項目經理。近些年帶過開發團隊、參與招聘面試。今天把個人這些年一些體會或者觀點分享下,僅代表個人觀點。
一、程序員的特性
技術出身的職場人特性很明顯,與做市場、業務出身的職場人區別尤其明顯。IT行業中常見的一些職場角色:老板、項目經理、產品經理、需求分析師、設計師、開發工程師、運維工程師等。開發工程師具有如下特征:
1、邏輯思維清晰、嚴謹和細膩;但是有時不容易轉彎,有些程序員容易較勁、轉牛角尖。
2、性格偏內向、不善于溝通、表達和交際;但是在網絡聊天工具上,有些顯為幽默、能聊。
3、為人實在、真誠待人、直來直往;但是有時比較呆板。
4、書面表達能力較差,甚至排斥編寫文檔的工作。
二、國內軟件開發環境
國內軟件開發環境,主要是討論應用系統方面開發(不包括游戲開發,本人對游戲開發不了解),一般軟件公司性質&特點:
1、互聯網平臺類型 -- 企業搭建產品平臺進行運營,這類企業,大到BAT,小到初創互聯網平臺的企業。
(1)技術方面:技術人員開發內容和所用技術單一;因平臺數據量、訪問量大,解決問題過程中,更有利于深入的掌握技能;使用新技術偏多。
(2)福利方面:薪酬和福利較好,特別是大型的成熟的互聯網平臺,但是對于初創型的公司,需要引入人才,一般都會高薪吸引人才。
(3)崗位方面:崗位升遷比較難,管理崗比較有限,其次競爭也較為激烈。
(4)歸屬方面:比較有成就感、自豪感,所在企業有歸屬感。
2、軟件項目外包類型 -- 企業以承接項目研發或者實施,項目完成驗收進行交付。有些項目需要項目成員進行駐點實施。
(1)技術方面:技術人員更多時間充當多面手,以完成項目交付為導向;所用技術大部分沿用舊技術,主要考慮新技術遇到技術問題導致開發效率不可控;一般技術能力得不到深入應用。
(2)福利方面:薪酬和福利較為一般,完全比不上互聯網平臺類型,有部分企業會項目獎金制進行補充薪酬。如果企業核心骨干,公司則會給予相對合理的薪酬福利,用于留住人才。
(3)崗位方面:崗位升遷機會比較大,初級開發、高級開發、技術經理、項目經理等。鍛煉綜合能力的機會多。
(4)歸屬方面:可能是項目交付驗收后的放松,或者是發放項目獎金的時候,不過絕對比人力資源外包好。
3、人力資源外包類型 -- 人員資源企業招聘后,將人員外包到客戶現場做事,客戶公司的活動及福利都跟外派駐點人員無關,毫無歸屬感;甚至有些工作一年多,都不知道與其簽訂合同的公司的具體情況。
(1)技術方面:聽從服務單位要求。
(2)福利方面:這也是唯一的優點了,就是薪酬偏高,福利偏低。
(3)崗位方面:不需要多想。
(4)歸屬方面:幾乎為零。
以上根據本人理解將常見的軟件企業分為三類,現在也有一些企業同時兼存在多種類型。對于軟件開發同學而言,首先要客觀認識自身的情況,想好自己現在要什么,接著要什么,未來要什么,做好職業規劃。選擇不同的類型的企業。例如,當前身無幾分,急需就業,技術能力較為一般,可以選擇人力資源外包臨時過渡;喜歡技術專研,對技術有濃厚的興趣,希望以后成為某個領域的技術牛人,可以選擇互聯網平臺類型;有一定的技術基礎,以后想往技術經理、項目經理方向發展,可以選擇項目外包類型。程序員需要規劃好自己的職業線路。
三、職業線路選擇
程序員一般職業線路比較簡單,沒太多選擇,除非換行業者另說。下面是我個人的一些觀點。
1、程序員,如果你覺得你喜歡代碼,喜歡開發工作,那么一直做開發也是一件的不錯的事,不過要考慮當你做開發10年后,你所做的工作,一個大學畢業2、3年的開發人員一樣能做時,你的價值在走下坡路,越來越不值錢。所以要時刻保持學習,并且深入研究技術。
2、架構師,是往真正技術大牛的方向發展的職業線路。若未來你想成為架構師就需要現在你的不斷專研技術和積累研發經驗。不是隨便開發人員憑借10年開發經驗就可以成為架構師。成為架構師需要完善和扎實的技術體系,具備較好系統分析和設計能力,豐富的項目研發經驗。建議前期可以先去項目外包類型,然后再去互聯網平臺類型。
3、技術經理,是往技術加團隊管理的方向發展的職業線路。往此線路發展的同學,需要一定的技術能力和團隊管理能力。做管理與性格有關,首先得分析自己性格是否適合做管理的工作,這點也是很多做技術出身的人員,轉型時最大的挑戰。有技術經理崗位的存在,一般都是搭配偏需求、產品的項目經理進行項目實施。技術經理的技術可以不用深入研究,但是需要具備一定的廣度和項目開發經驗。
4、項目經理,是往管理的方向發展的職業線路,一般項目經理主要側重項目管理工作,項目經理很關鍵的能力就是計劃、溝通及組織協調的能力。溝通和表達是開發人員短柄,所以想往此線路發展的同學,從日常的工作、生活中就得逐步加強鍛煉這方面能力,其次學習一些項目管理的知識,例如:PMP、CMMI、敏捷開發管理等。
選擇什么樣的職業線路,需要客觀認識自己,根據自己的特點進行規劃,選中后制定有序的學習計劃。職業機會也是留給已做好準備的人。
四、結語
本文的內容僅是個人的觀點,可能有些觀點概述不全。最后說下:個人努力和學習很重要,平臺更為重要。在平臺上,你將時時刻刻面對不同的問題,解決不同的實際問題,問題解決能力便提升了,同事積累到經驗。時間一晃就過,很快你就會發現,自己已是一位職業老手了,可能在迷茫自己的方向,可能在抱怨公司不好、工資不高等。所以選擇自己的的職業線路,做好規劃,選好你真真正正要的東西。
學習Java的同學注意了!!!
學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入Java學習交流群495273252,我們一起學Java!