JAVA程序員的成長路線分享,但願你幫助學習路上的你


我搞JAVA也有些日子了, 由於我比較貪玩,上進心不那麼強, 老是逼不得已爲了高薪跳槽纔去學習, 因此也沒混成什麼大牛, 但好在如今也已經成家立業, 小日子過的還算滋潤, 起碼頂得住一月近萬元的吃喝拉撒玩各類貸款信用卡 不爲金錢過於發愁了。 我特別感謝當初貼吧碰見的那位大神, 雖然每月也就聊那麼幾句, 可是他總能在我不知道該學啥, 該怎麼走的時候, 給我方向, 絕不誇張的說,我如今的衣食無憂, 技術馬馬虎虎, 都是拜他所賜。 因此 我也想分享一些本身的成長過程 以及技術路線 但願一些迷茫的新人,或者想轉行可是躊躇不前的老哥老弟們 可以獲得一些建議吧
其實這行的工資待遇和前景,比起一些風吹日曬的苦逼行業 仍是要好很多的, 不少人說程序員累, 加班 , 掉頭髮 但其實在生存壓力面前 這都不算什麼, 有哪一行是輕鬆的呢?起碼程序員技術到位了,工資仍是比較可觀的。
那麼入門的新手 要達到一個什麼水平才能找到工做養活本身呢?
首先 JAVA基礎語法 集合類 線程 IO操做
這些掌握了 基礎算是過關了, IO操做有點麻煩 被搞暈不要緊 知道何時用 用到了 再去搜索就行
其次 web部分 servlet jsp session cookie mysql數據庫 都要知道怎麼操做怎麼用 前端頁面的話 html沒必要太深 能看懂就行 js或者jquery會操做dom可以把後臺數據放到合適的位置就能夠 如今前段js技術五花八門 基本不多有項目讓後臺弄前端了 若是有而且很長時間了 你能夠考慮跳槽了……
學到這個階段,你須要知道一個請求從頁面或者移動端發起以後 經歷什麼樣的過程再返回去的 知道ajax是什麼 會發起異步請求到後臺 。
想要朝這方面發展或者真心有興趣的。能夠找我要一些基礎的學習視頻,Q號碼:3300863615,這個是免費的,但願同窗找我要的時候不要有理所應當的態度,畢竟都是個人心血,但願你是真的有一顆想要學好java的心,我也會盡所能的去幫助你成爲一名優秀的程序員。
框架方面 別學struts hibernate了 不多有項目用了 學springmvc spring mybatis就能夠 ,沒必要清楚實現原理 會搭框架 搞一個增刪改查出來就好了
到這裏,大約就是初級階段了 你能夠去找工做了,指望別過高,若是有人要你 工資大約是5到6k 若是是成都西安這些二線 還要低點。之因此說若是有人要,那是由於這兩年行情不太好……這些基本技術需求已經無法找到一個比較靠譜的工做了。
這個初級階段,實際上是最苦逼學的東西最多的階段,你沒有太多的時間,頂着沒有收入還要吃喝拉撒的壓力,也許還有你父母家人 朋友的不理解和嘲笑,在他們眼裏,你念書那麼多年出來,卻連個靠譜的工做也沒有,還在窮折騰,若是你不幸已經進了培訓機構,兩萬多的學費加生活費,等你上班後你會知道攢錢兩萬是多麼多麼的困難……種種壓力面前,你須要在四到五個月殺出一條血路證實本身的價值,怒懟全部嘲笑,未來工資傲世親朋好友,讓你的父母欣慰,讓你可以挺起胸膛作人,鋪墊好你後面二三十年的路,讓你的父母老了可以老有所依。 若是你正好在培訓機構學JAVA 看到我這些文字 但願你能堅持一下,拿出你的熱血來 咬牙學它四個月,全部苦難的日子,在拿到高薪offer的那一刻都是值得的。
若是你看到以上 仍是無動於衷,我只能說,別學了 該幹嗎幹嗎去吧……去享受青春吧 而後腐爛吧……啃老吧 … 不用我罵你廢物了 天然走人罵……隨着年齡的增加 你會知道你當初多麼的愚蠢不堪,你甚至有可能會喪失作人最基本的繁殖權利,由於沒有女人會願意和你在一塊兒…即使是如今有圖你帥氣外表的 也會離你而去……由於你連穩定的生活也無法提供。
這些話說的極端了點…天下行業多得是,但我就事論事,你已經進了培訓機構,八成說明你真的是找不到什麼出路了……真的……但願可以罵醒一些迷途少年吧。
扯遠了,接下來繼續說技術乾貨。
上面說 若是有人要你……這個可能要嚇到不少新人了,我特麼那麼拼命的學出來,結果仍是沒人願意要,怎麼辦??別 擔憂 你只須要把下一階段的技術,學一部分 假裝一下經驗,就能夠了。
初級階段以後,你可以用tomcat和ssm框架弄一個簡單的項目出來了, 這時候 你能夠注意一下編碼規範,變量命名用英文,狀態變量用枚舉 常量等 你這樣作是最低成本的假裝經驗,由於新人寫的代碼每每和狗啃的同樣……不要在controller寫邏輯 只接收檢驗數據 調用service和返回信息 不要把request傳進service裏 那樣會破壞依賴分離的初衷,dao基本沒啥說的 就是查數據 我見過無數新人寫代碼都是 service和dao就一個乾巴巴的方法 邏輯全寫在controller裏……這種的不用看 都是菜鳥。
你會框架的CRUD以後 你能夠看一下nginx 能夠嘗試作一個負載均衡玩一下,這個不須要你寫代碼 只須要配置下 可是能有效的提升簡歷質量,你還能夠學習下MQ 就從activeMQ開始 嘗試怎麼用對接把任務異步出去, 你還能夠試試redis 作個簡單的數據緩存或者會話緩存,這時候你再去找工做就立馬不同了,學這三個可能也就用兩三週不到,可是你的簡歷會體現出一箇中級程序員的水平。
那說到中級技術水平 我的以爲應該掌握的技術有 負載均衡 apache http 或者nginx都可, 隊列 ActiveMQ 就行(這個是java語言寫的比較貼近java ),緩存 redis就行 memcache用的愈來愈少了感受,還有精力的話,能夠看一下mogoDB 作個簡單的demo存個json進去玩一玩。 而後你的簡歷又豐富起來了………你工做裏確定用不到那麼多,可是你就往你簡歷裏寫,糅合進你的項目裏去,反正你知道什麼場景用這些就行,問不出來的。 初級和中級界限很模糊的,只是一些中間件的使用而已。
若是你已經學到這個地步,那你要是再說找不到工做, 我是不信的 這時候你找工做 若是在北上廣深 應該有機會破萬了,至於具體拿多少,看你的表達忽悠能力了。
接下來就是比較高級的部分了,這個階段 你大概又陷入苦學的階段了………由於你不能只會用,你要知道原理,不至於讓你本身實現一個出來,可是基本原理要知道。
到了這個階段,你要懂得jvm基本結構,要知道垃圾回收機制,經常使用垃圾回收算法,jvm簡單調優參數, 數據庫也是個重頭戲,你要知道mysql事務隔離機制的實現,怎麼優化sql , 要知道springmvc流程 spring的原理 事務傳播機制,mybatis流程原理, 樂觀鎖悲觀鎖什麼狀況用,你要學會考慮系統瓶頸,系統容災,單點故障, 你要懂得一致性是怎麼回事,cap理論 paxos算法 以及zookeeper幹嗎用的,能解決什麼問題? 你要懂得soa架構,dubbo , 微服務 spring boot spring cloud 這些高級框架 嘗試用一用,谷歌,開源社區 將要取代百度成爲你解決問題的主要動力和前進的方向, 你會有種一覽衆山小的感受,你會以爲弄個百萬併發的系統其實並不難,難的是後續問題,日誌處理 運維問題, 關於運維我給不了太多建議,能夠了解下 zabbix 之類的 能夠去學習下 docker 微服務加docker將是將來的趨勢。
學到這個地步,你大概已經不用擔憂工做問題,這種三五年經驗的高級程序員需求永遠很旺盛,注意 我說的是三五年學習實踐經驗,不是三五年一直crud經驗。這個時候你若是在北上廣,你的工資大概會接近20或者更多,成都西安這邊大約15到20 你已經不用爲錢太過於發愁了。可是請不要太安逸,由於上面說的那些也只是初窺門徑而已。
到了這個地步,工資已經比較難以提升了,可是大部分程序員是走不到這一步的……由於他們眼裏只有薪資,對程序沒有必定的熱愛,是很難堅持到這一步的。之因此說三十歲是程序員的分水嶺,就是由於不少人在艱難的學習實踐路上或是倒下了或是知足了…或是踏足管理 產品 等等崗位 這也是一種出路 只不過我這裏討論的是技術,我我的危機感比較強,技術抓在手裏,永遠後顧無憂…脫離了技術,你八成會被綁定在某個崗位或者公司上……跳槽?別人未必要你,憑啥你過去就是管理崗位?
又扯遠了,到了這個階段,你覺得到頭了?太年輕了……上面所說的高級階段,只是構建一個比較大型比較穩定系統的必須而已,問題仍是不少的,好比上面說的日誌處理,如何利用龐大的日誌產生商業價值?現在的淘寶 京東這種系統,你去買個鼠標 它就能給你推薦個鍵盤等周邊外設, 那麼它爲啥不給你推薦個內衣內褲呢? 想明白這些,你須要進一步學習, 大數據要來了。
flume 日誌處理 hadoop hive presto hdfs storm spark 大數據 流式計算 ,這些夠你喝一壺的了,學到這個份上,也不須要別人指點你什麼了,你能到達這個階段自己已經證實了本身的學習和技術能力。到達這個階段,你八成已經成爲一個跨語言程序員了,由於處理數據,並非java擅長的,你要非用java………那我只能說 人生苦短,何須折磨本身。 你應該已經學會了python scala 也可能有些R語言, 這時候你會發現,語言真的只是工具而已,學個語言很快的,來來回回就是那麼些東西而已,思想最重要。
到了這個階段 你會以爲技術不過如此,媽的學也學不到頭,學來學去也都是跟着老外屁股後面用框架而已………恭喜你 你的無聊和孤獨求敗心態 將會成就你的下一個階段……
下一個階段 也是目前的終極演進狀態了 那就是 機器學習 深度學習 神經網絡 人工智能 樓主目前正在往這個階段進軍……由於真的有點無聊,又想提升水平 只好繼續學了。
到了這個階段,你會有不少挑戰…
首先的挑戰 來自於 數學…是的 你沒聽錯 數學… 線性代數 機率統計 高等數學 …都是你面前的攔路虎,曾經以爲編程只要一加一等於二的美好時代一去不復返了……你想繼續前進,請先去學線代 機率……否則步履維艱什麼也看不懂…… 先從機器學習開始吧 這個是最簡單的…可是光就基本的機器學習幾個算法 看懂的人沒幾個……基本的k-means算法 decision tree 樸素貝葉斯 這三個 就須要線性代數 機率統計 以及信息熵相關知識。真的至關抽象……後面的深度學習 神經網絡 樓主粗略看了下 沒點數學功底 仍是放棄吧,天書同樣的……
到了這個階段……全中國能幫你的人 也很差找了……開源社區能幫到你的也愈來愈少了…一切靠本身。到了這時候,你會發現,當初甚囂塵上的 大學無用論,編程數學無用論 是多麼的好笑, 代碼是最沒價值的,核心是數學理論……公司不敢開源不是由於代碼值錢…是由於開源就沒人敢用大家公司產品了 由於全是爛代碼……
等你一窺終極階段的門徑的時候,你會發現 你危機感愈加的強烈了…媽的機器這麼吊炸天,圍棋都暴虐人類, 之後編程距離取代的日子也不遠了………說實話 恐怕真的不遠了……人類社會自從有了計算機,愈來愈發展的快, 人工智能將會在你個人有生之年發展壯大,近處說,你怎麼保住飯碗,怎麼提升待遇改善生活呢?……啥也不說了 學吧……
感謝你們能看完我這麼長的分享,但願可以對你們有所幫助。若是你正在找工做或者剛剛學校出來,又或者已經工做可是常常以爲難點不少,以爲本身java方面學的不夠精想要繼續學習的,想轉行怕學不會的,能夠加Q3300863615 瞭解諮詢java繼續學習。更有免費視頻等你來領取。
其實,企業須要的是否是剛會寫程序的人,須要來了就能幹活的人,尤爲能把活幹好的人。而剛畢業的大學生多半剛學會如何寫程序,的確很難企業需求。最後送幾點給在學習的你:只有真正喜歡才能寫好程序、把程序當藝術品,象寫詩同樣來寫代碼、必須寫夠十萬行代碼,不要心存僥倖、時刻保持好奇心、不要侷限在技術自己,多花點精力關注用戶。
謝謝你們的閱讀,祝大家都成爲優秀的工程師。最後送上一張思惟導圖,但願對你有幫助。
加我Q有如下幾個要求,不達標的勿擾:

一、大學學習的是Java相關專業,畢業後面試受挫,找不到對口工做能夠html

二、在公司待久了,如今過得很安逸,但跳槽時面試碰壁。須要在短期內進修、跳槽拿高薪的前端

三、參加過線下培訓後,知識點掌握不夠深入,就業困難,想繼續深造java

四、已經在Java相關部門上班的在職人員,對自身職業規劃不清晰,混日子的python

五、有必定的C語言基礎,接觸過java開發,想轉行的mysql

小號勿擾jquery

相關文章
相關標籤/搜索