我搞JAVA也有些日子了, 因為我比較貪玩,上進心不那麼強, 總是逼不得已為了高薪跳槽才去學習, 是以也沒混成什麼大牛, 但好在現在也已經成家立業, 小日子過的還算滋潤, 起碼頂得住一月近萬元的吃喝拉撒玩各種貸款信用卡 不為金錢過于發愁了。 我特别感謝當初貼吧遇見的那位大神, 雖然每個月也就聊那麼幾句, 但是他總能在我不知道該學啥, 該怎麼走的時候, 給我方向, 毫不誇張的說,我現在的衣食無憂, 技術馬馬虎虎, 都是拜他所賜。 是以 我也想分享一些自己的成長過程 以及技術路線 希望一些迷茫的新人,或者想轉行但是躊躇不前的老哥老弟們 能夠得到一些建議吧。

其實這行的工資待遇和前景,比起一些風吹日曬的苦逼行業 還是要好不少的, 很多人說程式員累, 加班 , 掉頭發 但其實在生存壓力面前 這都不算什麼, 有哪一行是輕松的呢?起碼程式員技術到位了,工資還是比較可觀的。
那麼 入門的新手 要達到一個什麼水準才能找到工作養活自己呢?
首先 JAVA基礎文法:集合類 線程 IO操作, 這些掌握了 基礎算是過關了, IO操作有點麻煩 被搞暈沒關系, 知道什麼時候用 用到了 再去搜尋就行。
其次 web部分:servlet jsp session cookie mysql資料庫, 都要知道怎麼操作怎麼用; 前端頁面的話 html不必太深 能看懂就行 ,js或者jquery會操作dom能夠把背景資料放到合适的位置就可以, 現在前段js技術五花八門 基本很少有項目讓背景弄前端了, 如果有并且很長時間了 你可以考慮跳槽了……
學到這個階段,你需要知道一個請求從頁面或者移動端發起之後 經曆什麼樣的過程再傳回去的 知道ajax是什麼 會發起異步請求到背景 。
架構方面 别學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 樸素貝葉斯 這三個 就需要線性代數 機率統計 以及資訊熵相關知識。真的相當抽象……後面的深度學習 神經網絡 樓主粗略看了下 沒點數學功底 還是放棄吧,天書一樣的……
到了這個階段……全中國能幫你的人 也不好找了……開源社群能幫到你的也越來越少了…一切靠自己。到了這時候,你會發現,當初甚嚣塵上的 大學無用論,程式設計數學無用論 是多麼的可笑, 代碼是最沒價值的,核心是數學理論……公司不敢開源不是因為代碼值錢…是因為開源就沒人敢用你們公司産品了 因為全是爛代碼……
等你一窺終極階段的門徑的時候,你會發現 你危機感越發的強烈了…媽的機器這麼吊炸天,圍棋都暴虐人類, 以後程式設計距離取代的日子也不遠了………說實話 恐怕真的不遠了……人類社會自從有了計算機,越來越發展的快, 人工智能将會在你我的有生之年發展壯大,近處說,你怎麼保住飯碗,怎麼提高待遇改善生活呢?……啥也不說了 學吧……
感謝大家能看完我這麼長的分享,希望能夠對大家有所幫助。
來源:今日頭條
♥ 作者:明志健緻遠
♠ 出處:http://www.cnblogs.com/study-everyday/
♦ 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
♣ 本部落格大多為學習筆記或讀書筆記,本文如對您有幫助,還請多推薦下此文,如有錯誤歡迎指正,互相學習,共同進步。