一名JAVA工程師的八年從業經驗分享

2020-12-14 電子發燒友

一名JAVA工程師的八年從業經驗分享

工程師吳畏 發表於 2018-10-19 10:28:42

在中國有很多人都認為IT行為是吃青春飯的,如果過了30歲就很難有機會再發展下去!其實現實並不是這樣子的,在下從事.NET及JAVA方面的開發的也有8年的時間了,在這裡在下想憑藉自己的親身經歷,與大家一起探討一下。

明確入行的目的

很多人幹IT這一行都衝著「收入高」這一點的,因為只要學會一點HTML、DIV+CSS,要做一個頁面開發人員並不是一件難事,而且做一個頁面開發人員更容易找到工作,收入比普通的工作還要高一些,所以成為了很多高校畢業生的選擇。如果您只是抱著這樣一個心態來入行的話,那閣下可真的要小心。因為幹IT這一行競爭本來就比較激烈,特別是頁面設計這方面,能夠開發的人很多,所以為了節省成本在大部分公司都會在需要的時候才招聘這類人員,在沒有訂單的時候一些小公司還可能找各類的藉口或者以降薪的手段去開除這類員工。而在招聘信息上常常會看到「招聘頁面設計師,條件:30歲以下……歡迎應界畢業生前來應聘」這樣一條,因為這一類工員對技術上的要求並不高,找應界生可以節約成本。所以在下覺得「IT行業是吃青春飯的」這句話只是對著以上這類人所說的,如果閣下缺乏「進取之心」,而只抱著「收入高,容易找工作」這樣的態度而入行,那「IT行業是吃青春飯」將會應驗了。

選擇合適的工具

JAVA、C#、PHP、C++、VB……10多種熱門的開發語言,哪一種最有發展潛力呢?其實開發語言只不過是一個工具,「與其分散進攻,不如全力一擊」,無論是哪一種開發語言,只要您全力地去學習,到有了一定的熟悉程度的時候,要學習另一種的語言也是輕而易舉的事情。開發語言主要分為三大類:

1. 網絡開發

現在網絡已經成為世界通訊的一座橋梁,好像Javascript、PHP、Ruby這幾類開發語言大部分是用作網絡開發方面

2. 企業軟體開發

JAVA、C#、VB這幾類開發語言都實現了面向對象開發的目標,更多時候用於企業系統的開發

3. 系統軟體

C語言、C++、Object-C、彙編語言這些軟體更多是用在系統軟體開發,嵌入式開發的方面。

當然,這分類不是絕對,像JAVA、C#、VB很多時候也用於動態網站的開發。在很開發項目都會使用集成開發的方式,同一個項目裡面使用多種開發語言,各展所長,同步開發。所以在剛入門的時候,建議您先為自己選擇一種合適的開發工具,「專注地投入學習,全力一擊」。

明確發展方向

當您對某種開發語言已經有了一定的了解,開始覺得自己如同「行屍走肉」,成為一個開發工具的時候,那您就應該要明確一下自己的發展方向了。

平常在公司,您可以看到做UI層的開發人員大多數都有20多歲,他們充滿幹勁,而且沒有家庭負擔,在兩年前ASP.NET MVC 、Silverlight等剛出現的時候,他們可以在晚上回家的時候買幾本書或者直接上網看看,研究三五個星期以後,對需要用到技術就已經有一定的了解了。而年過30的人多數是已經成了家,他們每天9:00點上班唯一的希望就是快些到6:00點,能回家吃飯。吃完飯只想陪孩子玩一下,看看孩子的功課,對新增的技術缺乏了學習的欲望。所以很多接近30歲的程式設計師都有著一種逼迫感(包括30歲時候的我自己),再過幾年應該怎麼辦?這時候,您就更應該明確一下目標,努力向自己的發展方向前進了。歸納一下,可從下面幾項裡選擇適合自己的一條道路:

1. 從技術向業務過渡

在國外,很多發達國家都很重視人才,一個高級的程式設計師與一個Project Manager收入相差一般不超過15%。但中國是世界上人口最多的國家,國內人才眾多,所以人才濫用的情況經常可以看到。一個小公司的開發部裡面經常會見到新面孔,但PM卻不會常換。因為做老闆的對技術是一竅不通,依他們看來只到拉住PM的心,那在技術方面就能搞得定,至於技術部要換人,他們根本不需要費力氣去管。所以從一個技術員過渡到一個PM是向前發展的一個選擇,但開發人員也需要知道,要成為一個PM不單單是使用技術,而更重要的是對管理方面認識。一個PM主要的工作是組織團隊,控制成本,管理業務,控制項目進度,與客戶進行溝通,協調工作,定期進行工作報告等。所以要成為一個成功的PM更要重視組織能力,PM必須能提高團隊的積極性,發揮團隊所長,在有限的開發資源前提下為公司得到最大程度上的利潤。成為一個PM後,通常不需要直接接觸技術開發,而著重管理的是業務發展,但PM對技術也需要有一定的了解(在下曾經為PM對技術了解的必要性寫過一篇文章,得到很多支持但也惹來不少的爭議)。在這裡我還是要強調自己的觀點:要成為一個成功PM最重視的是管理能力,但對技術也應該有足夠的了解,因為這是與團隊成員溝通的橋梁,只有這樣才能與整個團隊的成員有著緊密的結合,讓團隊成員感覺到他們自己存在的意義,從而調動團隊的積極性,而不是漠視技術人員的存在。技術並非成為一個成功PM的充分條件但卻是必要條件!

2. 從程式設計師向技術管理發展

其實一個Team Leader的職責與Project Manager相像,但Team Leader更著重於技術開發方面,通常一個大型項目都會有一兩個開發團隊由Team Leader帶領,負責開發核心部分,而其它部分分派給不同開發小組或者分派給外包公司。在網上常看到幾句話,貼切地形容了PM與TL的區別:「技術人員樂於被領導;但他們不喜歡被管理,不喜歡像牛一樣被驅趕或指揮。管理者強迫人們服從他們的命令,而領導者則會帶領他們一起工作。管理是客觀的,沒有個人感情因素,它假定被管理者沒有思想和感受,被告知要做什麼和該如何做。領導是引領、引導,它激勵人們達成目標。領導力是帶有強烈個人感情色彩的,它不是你能命令的,也不是你能測量評估和測試的。」

無論是PM與TL,對業務與技術都要有深入的了解,只是PM更側重於業務的管理,盈利的多少,風險的大小等等,而TL則側重於項目的成本,開發的難度,軟體的架構等技術方面的問題。在某些人眼中,技術與管理就像魚與熊掌,不可兼得,但依在下看來,兩者卻是秤不離砣,密不可分。只要及時提升自己對技術與管理的認識,不斷地向深一層發展,要從程式設計師提升到技術管理人員只是時間的問題。打個比方,一個普通的.NET程式設計師,開始可能限制於ASP.NET的頁面開發,但一旦他有了發展之心,他自然會對ASP.NET MVC、Silverlight、WinForm、WPF這些UI的開發手法感到興趣,學習不需要多少時間,他可能就會認識這些UI開發只不過是一些工具,其實在開發原理上沒什麼區別。接著他就會向深一層的通訊模式進行了解,認識TCP/IP、Web Service、WCF、Remoting這些常用到的通訊方式,這時候他可能已經感覺到自己對開發技術有了進一步的了解。進而向工作流、設計模式、面向對象設計、領域驅動設計、面向服務開發等高層次進發,最後成為技術的領導者。上面只是一個比喻,但要注意的是,在學習的時期必須注意的是與同事之間溝通,很多的開發人員喜歡獨來獨往,開發的項目總想一個人搞定,不受外界的幹擾。但要明白,就算你有天大的本事,一項大型的項目也不可能由你一個人全扛著。所以團隊的合作性與同事間的溝通是必要的,這也是成功一個TL的必要條件。

3. 單方面向技術發展

能成功技術開發的尖端人才,這是在下最嚮往的工作,卻也沒本事登上這個位置。很多從事開發的人都會認為,業務總會帶著「金錢的味道」,老闆從來不管開發是否合符開發原則,有否經過必要測試,他們只會在客戶面前無盡地吹噓,項目到期能成功交貨,只要不出什麼大問題那這個項目就算成功了。其實我們也要明白:開發項目最終目標是為了賺錢,在開發過程中對項目成本的限制和效率的控制這也是必須,所以這才需要管理人員對項目進行管理。但開發人員也很想避開這「金錢的塵囂」,全情投入到技術的世界的當中。所以對技術有著濃厚興趣的人,往往會深入地研究某一項技術,成為技術上的精英。但在這裡說一句令人心淡的話:中國已經屬於是世界上第二大經濟體同盟國,但國民生產總值主要來源於第三方加工產業方面。中國可以說是人才濟濟,但卻在高新產業上卻比發達國家落後。這幾年的確看到我們國家在高新科技上有著質的飛躍,但跟歐美發達國家還有著一段距離。所以想在中國成為尖端技術的人才,無可否定比在國外要難。依在下看來,要想成為尖端的開發者,必須對C、C++、彙編語言、嵌入式開發、Windows API、Linux API這些底層技術有著深入的了解。要知道解JAVA、.NET……等這些之所以稱為高級開發語言,並不是指它們比C、C++、彙編語言更高級,而是指它們封裝了C、C++等等的功能,更適合用於企業軟體的開發,使開發變得簡單。但如果要開發一些底層的軟體,大型的系統的時候,就必須用到C、C++、彙編等開發語言,這是成功尖端人才的一個條件。

確定未來的目標

人是從歷練中成長的,古人云:三十而立,形容的不是一個人的社會地位,經濟來源,而是形容一個人對未來的目標,對人生的意向。要成為一個成功人,就應該早日為自己定下長期的發展目標,作為一個開發者也當如此。隨著人的性格,取向各有不同,大家為自己所選擇的路也有不同:

1.自立門戶,勇敢創業

快30歲了,很多人會認為要想真正賺得了錢,就應該自立門戶,為自己創業建立一個基礎。像北京、上海、廣州這些一級城市,要買房子,一手樓基本要在2萬~4萬元/平方米左右,而在一家普通的IT公司當上一個項目經理,基本收入一般都在1.5萬~3萬之間(除非在大型的跨國企業內工作,那另當別論),要買一間100平方米左右的房子,就算不吃不喝也幾乎要10年的年薪,所以選擇自主創業,是很多IT開發人員的一個未來目標,想要達到這個目標,就應該更多地把業務作為重點。不可否認的一件事,在中國社會裡很多時候講的是「關係」,即使這30年的改革開放使中國的經濟蓬勃地發展起來,但幾千年來留下的歪風還是不能完全的磨滅。所以想要創業的人事建議你要多跟客戶打好關係,與合作夥伴保持互利互動的模式,這將有利於日後事業的發展。

2. 急流勇退,退居二線

這也是不少人的選擇。很多人在有了家庭以後,感覺到壓力太大,人的一生並非只有事業,他們想把更多時間用於對親人的照顧,對孩子的關心上。所以很多人會選擇一份像系統分析、系統維護、高校教師、專業學院講師這一類的工作。收入穩定,而且往往沒有一線開發人員那麼大的壓力。

3. 不懈努力,更進一步

無論你是一個Project Manager或者是Team Leader,如果你想繼續晉升一級,那還是會兩極分化的。從一個PM到一間公司的管理層,那所面對的事件會有很多變化。一個公司的總經理,要管理的不再是一到兩個項目的成本,而是整個部門的運作,整間公司的業務流程,所以要肩負的任務的會更重。在下曾經有一位上司彭博士,他是企業的最高領導人,年薪超過三百萬,而且在報紙雜誌上也曾經亮過相。平常只會在某些會議上輕輕地亮下相,說兩句講詞,平常的公司運作與業務管理都不需要他直接執行。這並不是說一個作為管理層很清閒,因為他們要面對的是更多的社會關係,與公司合作企業的聯繫上。這跟一個PM的工作的很大的區別,所以要從一個PM晉升到管理層,那可是要負出更多的努力與汗水。

如果要從Team Leader上升為一個技術總監,那工作的方向也有所改變。像之前所說:一個TL可能更重視的是技術層面,講求與團隊之間的互動合作性,更注重的是開發的完善。而一個技術總監就無需要直接參加某個項目的開發,而注意的是開發的效率與成果,如何合理使用有限的開發資源,控制開發的風險和可能帶來的效果。

發展感受

經歷了8年多時間,在下從一個程式設計師到一個項目經理,之間經過很多的曲折,但因為每一個人的際遇都有所不同,所走的路也有不同,正所謂條條大路通羅馬,成功的路不止一條,在下也不想令各位誤解,而只想為大家說一下我的發展方向。如果您是一位開發人員 程式設計師-》架構師-》Team Leader(Project Manager)-》技術總監 是一條不錯路,這也是在下選擇的路。在我國,想要進一步提升自己,無論你想是以技術為重點還是以業務為重點,都離不開管理二字。在一些大型的企業,一個團隊往往會配備一個PM與一個架構師,儘管兩個人負責的任務各有不同,但你會看到一個架構師的收入往往不如一個PM,PM往往是這個團隊的核心領導者,是關鍵人物。因為公司能否賺錢,PM有著重要的作用。PM與TL並沒有絕對的區別,而且在一些中小型企業,一個開發團隊只有3~5人,一個TL往往會兼備業務處理、成本控制項、架構設計、開發管理等多項任務。所以在下會把Team Leader與Project Manager定於同一層次,一個公司的老闆往往不會知道團隊的架構師、程式設計師是何人,而只會向PM詢問項目的進度,所以只有晉升到這個層次,才有機會進一步提升管理能力,讓自己有上升的空間。置於要成為一個技術總監,那要求就不再單單是對單個項目的管理,而應該更則重於新興技術的引用,開發資源的合理利用,對開發項目敏捷性的處理等等,對此在下也在試探當中,未敢多言。

打開APP閱讀更多精彩內容

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴

相關焦點

  • 猿輔導招聘伺服器端研發工程師(JAVA)
    很多科技網際網路公司的java程序猿工程師們,都希望在這個時候尋找一份滿意的新工作,科技瘋評今天分享一個來自猿輔導的工作崗位,這個崗位招聘比較著急,所以成功率還是蠻大的,大家可以試試看。首先這份工作的主要內容是負責猿輔導主app相關產品伺服器端的開發,而且作為一名有經驗的研發工程師,你還需要指導新人進行開發。對於這個崗位,也有相應的要求,首先應聘者需要是計算機相關專業本科及以上學歷,如果不是的話你必須有非常亮眼的經歷來證實你的能力,其次你也不能是新人,至少要有1年以上伺服器端開發經歷,其他端不算。
  • 怎麼樣才算是一名真正的軟體工程師?
    軟體工程師可能很多人聽說過,但是身邊要麼是java開發工程師,php開發工程師,C語言工程師等單一的工程師,軟體工程師是熟練多種開發程式語言的全能開發工程師。為什麼說軟體工程師是全能的開發工程師呢?軟體開發工程師比全棧工程師要求還要多,所謂全棧工程師是從無都有完整開發網站,只要你會前端開發加上一種後臺程式語言,就可能算是全棧工程師,但是軟體工程師是一個廣義的概念,他是軟體設計師、軟體架構師、還有熟悉的程式設計師等一系列崗位,工作內容都與軟體開發生產相關,軟體工程師技術要求比較全面,目前世面上流行程式語言都要熟練,比如java,php,C語言,C++等,當然資料庫是必須要掌握的,比如mysql,SQL
  • 各地java開發工程師平均工資 北京高級java開發工程師工資2萬多
    java開發工程師工資水平一直都是程式設計師們比較關注的話題,畢竟java是最熱門的編程的語言。每個城市的由於經濟水平的差距,各地的java開發工程師平均工資也不一樣。java開發工程師一般分為幾個等級,初級開發工程師(時間:0~1 年),中級開發工程師(時間:1~13年),高級開發工程師(時間:5年以上)。據國內某網站樣本調查顯示各地java開發工程師平均工資,數據僅供參考。北京java開發工程平均工資為17920人民幣,近1年 35417 份樣本。
  • 一個Java高級工程師的進階之路
    一個Java高級工程師的進階之路想必Java新手們都想知道如何成為一個Java高級工程師,小編整理了一下Java高級工程師必須具備的一些專業技能供大家參考,希望可以幫到大家!宏觀方面JAVA要想成為JAVA(高級)工程師肯定要學習JAVA。一般的程式設計師或許只需知道一些JAVA的語法結構就可以應付了。
  • 成為一名JAVA高級工程師你需要學什麼
    2.項目經驗方面從頭到尾跟過幾個大項目,頭是指需求階段,包括需求調研。尾是指上線交付之後,包括維護階段。3.架構經驗方面有過分布式系統的架構和開發經驗。對於跨系統的結構優化,數據存儲的性能指標等有豐富經驗。什麼緩存啊、資料庫的垂直切分什麼的,業務的抽象和水平拆分啊,這些應該都輕車熟路吧。
  • java工程師的基本職責和進階之路
    Java工程師是做什麼的?他們的工作職責是什麼?隨著電子工業的迅速發展,Java技術得到了越來越廣泛的應用,Java工程師已經成為一個流行的IT職位。那Java工程師的職責是什麼?負責客戶端產品中伺服器後端的工程設計、體系結構設計和開發;2.研究最新技術及應用,解決創新和研究開發過程中的關鍵問題和技術困難;3.根據項目任務計劃按時完成軟體編碼和單元測試;4.根據開發過的程序編寫相應的模塊設計文件;5.與產品經理、測試工程師及其他團隊進行溝通和合作
  • 快手招聘開發工程師(JAVA方向)
    快手日前發布了一個研發工程師的崗位,是java方向的,工作地點也在北京,月薪高達接近5萬,非常不錯。任職要求1、計算機或相關專業本科以上學歷,具備1年以上的大型Web應用開發和架構經驗;2、熟悉Linux開發環境,熟練使用Java和面向對象設計開發;3、熟悉主流Web應用相關的框架,對至少兩個主流框架有深入理解;
  • java工程師工資一般多少?java自學容易嗎?公司會要嗎-開課吧
    java自學容易,自學後找到工作也不算難,但是想要摸到這個行業的天花板就很難了!我的經驗,學任何東西,難並不可怕,難的是畏懼。1、 首先自己要有信心啃下來;2、 其次學習講究一個學習方法,都是有捷徑可以走得;3、再次就是要深入,成為一個領域的專家非一朝一夕,需要一直努力前行;
  • java高級工程師的薪資高嗎?都有哪些發展方向呢?
    據it獵頭考察,近來隨著科技的發展,java高級工程師作為技術型崗位也不斷地被各類行業所需要。為此,我們來了解一下java高級工程師的薪資行情怎麼樣?發展路徑又是怎樣的呢?java高級工程師的薪資高嗎1、java高級工程師的工作內容java高級工程師的薪資行情怎麼樣?
  • java開發工程師 javascript面向對象的初識
    寫在前面:java作為一門世界級程式語言金字塔頂尖的語言。需要大量的練習、練習、練習來鞏固自己所獲得的知識。
  • 玩吧急招聘高級Java工程師,要求本科以上
    現在已經6月份了,很多網際網路公司的年終獎發完了,所以很多朋友想跳槽尋求更好的發展,今天科技瘋評給大家推薦的是明星公司「玩吧」的一個高級Java工程師崗位,希望想要跳槽的java工程師們不要錯過。大家也可以關注下我的帳號,科技瘋評,方便後續了解更多科技網際網路公司有關java等技術相關的崗位招聘信息。玩吧的這個崗位職責有四點:1、負責海量用戶、高並發、分布式系統的設計和開發;2、 參與系統的需求分析,撰寫技術文檔;3、 參與基礎服務、中間件的開發;4、發現並解決系統存在的問題。
  • Javaweb開發學習路線及Java三大框架分享
    的基礎語法,類,抽象類,接口,內部類等概念3: java核心編程,如輸入輸出流,多線程,集合,XML,正則表達式等4:java圖形化編程,如awt,swing5:java網絡編程,Applet,Socket,TCP/IP,NIO等6:java
  • 想成為Java高級工程師的看過來
    想成為Java高級工程師,有哪些要求呢?1.Core Java,就是java基礎、JDK的類庫,很多童鞋都會說,JDK我懂,但是懂還不足夠,知其然還要知其所以然,JDK的原始碼寫的非常好,要經常查看,對使用頻繁的類,比如String,集合類(List,Map,Set)等數據結構要知道它們的實現,不同的集合類有什麼區別,然後才能知道在一個具體的場合下使用哪個集合類更適合、更高效,這些內容直接看原始碼就OK了2.多線程並發編程
  • 一位Java後臺工程師的面試經歷
    一位Java後臺工程師的面試經歷 工程師吳畏 發表於 2018-10-03 16:59:00 經過接近一個月的時間,完成換工作這件「小事」,前後總計面試了多家公司,最後也沒接到幾個offer,不過最終總算塵埃落定
  • JAVA軟體工程師待遇怎麼樣?
    而我國信息化人才培養還處於發展階段,導致社會實際需求人才基數遠遠大於信息化人才的培養基數,使得很多的中小企業急需全面系統掌握Java軟體開發基礎技能與知識的軟體工程師。在所有軟體開發類人才的需求中對Java工程師的需求達到全部需求量的60~70%。應該說Java軟體工程師就業前景是非常好的。
  • 勤學苦練、積極實踐,我在為Java工程師的夢想奮鬥著
    我明白我存在的問題,一個是缺乏相應的知識與經驗,對所學的專業知識不能夠很好地運用於實踐操作;另一個是在實際工作中缺乏一些技術指導,動手寫代碼的時候就會遇到很多困難。其實剛來到這裡,我的內心的是比較忐忑的,在全身心投入到學習中才能讓自己平靜下來。隨著學習的深入,我逐漸發現,正所謂「百聞不如一見」,多接觸實戰項目,讓我體會到了「走出課堂,投身實踐」的必要性。
  • 猿輔導招聘JAVA工程師 技術能人還在等什麼!
    首頁 > 傳媒 > 關鍵詞 > 猿輔導最新資訊 > 正文 猿輔導招聘JAVA工程師 技術能人還在等什麼!
  • 開課吧:學Java可以就職哪些職位?Java工程師一般月薪是多少?
    java也有不同的方向,javaEE的方向更好些,像是電信,網際網路,物流,財務,證券,銀行,生產製造等ERP管理軟體,大型網站及後臺開發。薪資都比較客觀。java主要用於開發應用,現在很多企業和公司都要依賴於應用來運轉、盈利,比如電商平臺、O2O、金融系統等等。而與之不太一樣的像C語言主要用來開發系統底層通訊,比如驅動軟體。
  • 山西Java軟體工程師怎麼選_立訊學院服務到位收費合理
    山西Java軟體工程師怎麼選,立訊學院服務到位收費合理,學院坐落於古都西安,佔地面積400餘畝,建築面積16萬平方米,環境優雅,交通便利,在校學生10000餘人。山西Java軟體工程師怎麼選, 讓我們一起走向架構師之路!本博客是自己通過代碼構建的。前端html,後端java技術。
  • Python和java工程師哪個薪資高,看完這篇文章你就知道啦!
    java工程師的待遇每年都有所提高,從月薪幾千塊到幾萬塊的比比皆是,那麼java工程師平均工資是多少呢?通過職友集網的有效數據統計java工程師的北京平均工資已經達到了18170元,這可是一個很可觀的數字,大家有沒有想過這是平均工資的水平。