閑來無事麦箍,刷刷今日頭條漓藕,看見了一篇java程序員分享他成長路線的文章,讀完后瞬間醍醐灌頂挟裂,茅塞頓開享钞。
正文如下:
我搞JAVA也有些日子了, 因為我比較貪玩,上進(jìn)心不那么強(qiáng), 總是逼不得已為了高薪跳槽才去學(xué)習(xí), 所以也沒混成什么大牛, 但好在現(xiàn)在也已經(jīng)成家立業(yè), 小日子過的還算滋潤, 起碼頂?shù)米∫辉陆f元的吃喝拉撒玩各種貸款信用卡 不為金錢過于發(fā)愁了。 我特別感謝當(dāng)初貼吧遇見的那位大神, 雖然每個月也就聊那么幾句, 但是他總能在我不知道該學(xué)啥, 該怎么走的時候, 給我方向, 毫不夸張的說,我現(xiàn)在的衣食無憂, 技術(shù)馬馬虎虎, 都是拜他所賜诀蓉。 所以 我也想分享一些自己的成長過程 以及技術(shù)路線 希望一些迷茫的新人,或者想轉(zhuǎn)行但是躊躇不前的老哥老弟們 能夠得到一些建議吧
其實這行的工資待遇和前景,比起一些風(fēng)吹日曬的苦逼行業(yè) 還是要好不少的, 很多人說程序員累, 加班 , 掉頭發(fā) 但其實在生存壓力面前 這都不算什么, 有哪一行是輕松的呢栗竖?起碼程序員技術(shù)到位了,工資還是比較可觀的渠啤。
那么 入門的新手 要達(dá)到一個什么水平才能找到工作養(yǎng)活自己呢践剂?
首先 JAVA基礎(chǔ)語法 集合類 線程 IO操作
這些掌握了 基礎(chǔ)算是過關(guān)了, IO操作有點(diǎn)麻煩 被搞暈沒關(guān)系 知道什么時候用 用到了 再去搜索就行
其次 web部分 servlet jsp session cookie mysql數(shù)據(jù)庫 都要知道怎么操作怎么用 前端頁面的話 html不必太深 能看懂就行 js或者jquery會操作dom能夠把后臺數(shù)據(jù)放到合適的位置就可以 現(xiàn)在前段js技術(shù)五花八門 基本很少有項目讓后臺弄前端了 如果有并且很長時間了 你可以考慮跳槽了……
學(xué)到這個階段,你需要知道一個請求從頁面或者移動端發(fā)起之后 經(jīng)歷什么樣的過程再返回去的 知道ajax是什么 會發(fā)起異步請求到后臺 凄杯。
框架方面 別學(xué)struts hibernate了 很少有項目用了 學(xué)springmvc spring mybatis就可以 ,不必清楚實現(xiàn)原理 會搭框架 搞一個增刪改查出來就行了
到這里,大約就是初級階段了 你可以去找工作了,期望別太高避乏,如果有人要你 工資大約是5到6k 如果是成都西安這些二線 還要低點(diǎn)芥驳。之所以說如果有人要郑藏,那是因為這兩年行情不太好……這些基本技術(shù)需求已經(jīng)沒法找到一個比較靠譜的工作了旬痹。
這個初級階段,其實是最苦逼學(xué)的東西最多的階段部脚,你沒有太多的時間想邦,頂著沒有收入還要吃喝拉撒的壓力,也許還有你父母家人 朋友的不理解和嘲笑委刘,在他們眼里丧没,你念書那么多年出來,卻連個靠譜的工作也沒有锡移,還在窮折騰呕童,如果你不幸已經(jīng)進(jìn)了培訓(xùn)機(jī)構(gòu),兩萬多的學(xué)費(fèi)加生活費(fèi)淆珊,等你上班后你會知道攢錢兩萬是多么多么的困難……種種壓力面前夺饲,你需要在四到五個月殺出一條血路證明自己的價值,怒懟所有嘲笑施符,將來工資傲世親朋好友往声,讓你的父母欣慰,讓你能夠挺起胸膛做人戳吝,鋪墊好你后面二三十年的路浩销,讓你的父母老了能夠老有所依。 如果你正好在培訓(xùn)機(jī)構(gòu)學(xué)JAVA 看到我這些文字 希望你能堅持一下听哭,拿出你的熱血來 咬牙學(xué)它四個月慢洋,所有苦難的日子塘雳,在拿到高薪offer的那一刻都是值得的。
如果你看到以上 還是無動于衷普筹,我只能說败明,別學(xué)了 該干嘛干嘛去吧……去享受青春吧 然后腐爛吧……啃老吧 … 不用我罵你廢物了 自然走人罵……隨著年齡的增長 你會知道你當(dāng)初多么的愚蠢不堪,你甚至有可能會喪失做人最基本的繁殖權(quán)利太防,因為沒有女人會愿意和你在一起…即便是現(xiàn)在有圖你帥氣外表的 也會離你而去……因為你連穩(wěn)定的生活也沒法提供妻顶。
這些話說的極端了點(diǎn)…天下行業(yè)多得是,但我就事論事杏头,你已經(jīng)進(jìn)了培訓(xùn)機(jī)構(gòu)盈包,八成說明你真的是找不到什么出路了……真的……希望能夠罵醒一些迷途少年吧沸呐。
扯遠(yuǎn)了醇王,接下來繼續(xù)說技術(shù)干貨。
上面說 如果有人要你……這個可能要嚇到很多新人了崭添,我特么那么拼命的學(xué)出來寓娩,結(jié)果還是沒人愿意要,怎么辦呼渣?棘伴?別擔(dān)心 你只需要把下一階段的技術(shù),學(xué)一部分 偽裝一下經(jīng)驗屁置,就可以了焊夸。
初級階段之后,你能夠用tomcat和ssm框架弄一個簡單的項目出來了蓝角, 這時候 你可以注意一下編碼規(guī)范阱穗,變量命名用英文,狀態(tài)變量用枚舉 常量等 你這樣做是最低成本的偽裝經(jīng)驗使鹅,因為新人寫的代碼往往和狗啃的一樣……不要在controller寫邏輯 只接收檢驗數(shù)據(jù) 調(diào)用service和返回信息 不要把request傳進(jìn)service里 那樣會破壞依賴分離的初衷揪阶,dao基本沒啥說的 就是查數(shù)據(jù) 我見過無數(shù)新人寫代碼都是 service和dao就一個干巴巴的方法 邏輯全寫在controller里……這種的不用看 都是菜鳥。
你會框架的CRUD之后 你可以看一下nginx 可以嘗試做一個負(fù)載均衡玩一下患朱,這個不需要你寫代碼 只需要配置下 但是能有效的提高簡歷質(zhì)量鲁僚,你還可以學(xué)習(xí)下MQ 就從activeMQ開始 嘗試怎么用對接把任務(wù)異步出去, 你還可以試試redis 做個簡單的數(shù)據(jù)緩存或者會話緩存裁厅,這時候你再去找工作就立馬不一樣了冰沙,學(xué)這三個可能也就用兩三周不到,但是你的簡歷會體現(xiàn)出一個中級程序員的水平执虹。
那說到中級技術(shù)水平 個人覺得應(yīng)該掌握的技術(shù)有 負(fù)載均衡 apache http 或者nginx均可拓挥, 隊列 ActiveMQ 就行(這個是java語言寫的比較貼近java ),緩存 redis就行 memcache用的越來越少了感覺声畏,還有精力的話撞叽,可以看一下mogoDB 做個簡單的demo存?zhèn)€json進(jìn)去玩一玩姻成。 然后你的簡歷又豐富起來了………你工作里肯定用不到那么多,但是你就往你簡歷里寫愿棋,糅合進(jìn)你的項目里去科展,反正你知道什么場景用這些就行,問不出來的糠雨。 初級和中級界限很模糊的才睹,只是一些中間件的使用而已。
如果你已經(jīng)學(xué)到這個地步甘邀,那你要是再說找不到工作琅攘, 我是不信的 這時候你找工作 如果在北上廣深 應(yīng)該有機(jī)會破萬了,至于具體拿多少松邪,看你的表達(dá)忽悠能力了坞琴。
接下來就是比較高級的部分了,這個階段 你大概又陷入苦學(xué)的階段了………因為你不能只會用逗抑,你要知道原理剧辐,不至于讓你自己實現(xiàn)一個出來,但是基本原理要知道邮府。
到了這個階段荧关,你要懂得jvm基本結(jié)構(gòu),要知道垃圾回收機(jī)制褂傀,常用垃圾回收算法忍啤,jvm簡單調(diào)優(yōu)參數(shù), 數(shù)據(jù)庫也是個重頭戲仙辟,你要知道m(xù)ysql事務(wù)隔離機(jī)制的實現(xiàn)同波,怎么優(yōu)化sql , 要知道springmvc流程 spring的原理 事務(wù)傳播機(jī)制欺嗤,mybatis流程原理参萄, 樂觀鎖悲觀鎖什么情況用,你要學(xué)會考慮系統(tǒng)瓶頸煎饼,系統(tǒng)容災(zāi)讹挎,單點(diǎn)故障, 你要懂得一致性是怎么回事吆玖,cap理論 paxos算法 以及zookeeper干嘛用的筒溃,能解決什么問題? 你要懂得soa架構(gòu)沾乘,dubbo , 微服務(wù) spring boot spring cloud 這些高級框架 嘗試用一用怜奖,谷歌,開源社區(qū) 將要取代百度成為你解決問題的主要動力和前進(jìn)的方向翅阵, 你會有種一覽眾山小的感覺歪玲,你會覺得弄個百萬并發(fā)的系統(tǒng)其實并不難迁央,難的是后續(xù)問題,日志處理 運(yùn)維問題滥崩, 關(guān)于運(yùn)維我給不了太多建議岖圈,可以了解下 zabbix 之類的 可以去學(xué)習(xí)下 docker 微服務(wù)加docker將是未來的趨勢。
學(xué)到這個地步钙皮,你大概已經(jīng)不用擔(dān)心工作問題蜂科,這種三五年經(jīng)驗的高級程序員需求永遠(yuǎn)很旺盛,注意 我說的是三五年學(xué)習(xí)實踐經(jīng)驗短条,不是三五年一直crud經(jīng)驗导匣。這個時候你如果在北上廣,你的工資大概會接近20或者更多茸时,成都西安這邊大約15到20 你已經(jīng)不用為錢太過于發(fā)愁了贡定。但是請不要太安逸,因為上面說的那些也只是初窺門徑而已屹蚊。
到了這個地步厕氨,工資已經(jīng)比較難以提高了进每,但是大部分程序員是走不到這一步的……因為他們眼里只有薪資汹粤,對程序沒有一定的熱愛,是很難堅持到這一步的田晚。之所以說三十歲是程序員的分水嶺嘱兼,就是因為很多人在艱難的學(xué)習(xí)實踐路上或是倒下了或是滿足了…或是踏足管理 產(chǎn)品 等等崗位 這也是一種出路 只不過我這里討論的是技術(shù),我個人危機(jī)感比較強(qiáng)贤徒,技術(shù)抓在手里芹壕,永遠(yuǎn)后顧無憂…脫離了技術(shù),你八成會被綁定在某個崗位或者公司上……跳槽接奈?別人未必要你踢涌,憑啥你過去就是管理崗位?
又扯遠(yuǎn)了序宦,到了這個階段睁壁,你以為到頭了?太年輕了……上面所說的高級階段互捌,只是構(gòu)建一個比較大型比較穩(wěn)定系統(tǒng)的必須而已潘明,問題還是很多的,比如上面說的日志處理秕噪,如何利用龐大的日志產(chǎn)生商業(yè)價值钳降?如今的淘寶 京東這種系統(tǒng),你去買個鼠標(biāo) 它就能給你推薦個鍵盤等周邊外設(shè)腌巾, 那么它為啥不給你推薦個內(nèi)衣內(nèi)褲呢遂填? 想明白這些铲觉,你需要進(jìn)一步學(xué)習(xí), 大數(shù)據(jù)要來了吓坚。
flume 日志處理 hadoop hive presto hdfs storm spark 大數(shù)據(jù) 流式計算 备燃,這些夠你喝一壺的了,學(xué)到這個份上凌唬,也不需要別人指點(diǎn)你什么了并齐,你能到達(dá)這個階段本身已經(jīng)證明了自己的學(xué)習(xí)和技術(shù)能力。到達(dá)這個階段客税,你八成已經(jīng)成為一個跨語言程序員了况褪,因為處理數(shù)據(jù),并不是java擅長的更耻,你要非用java………那我只能說 人生苦短测垛,何必折磨自己。 你應(yīng)該已經(jīng)學(xué)會了python scala 也可能有些R語言秧均, 這時候你會發(fā)現(xiàn)食侮,語言真的只是工具而已,學(xué)個語言很快的目胡,來來回回就是那么些東西而已锯七,思想最重要。
到了這個階段 你會覺得技術(shù)不過如此誉己,媽的學(xué)也學(xué)不到頭眉尸,學(xué)來學(xué)去也都是跟著老外屁股后面用框架而已………恭喜你 你的無聊和孤獨(dú)求敗心態(tài) 將會成就你的下一個階段……
下一個階段 也是目前的終極演進(jìn)狀態(tài)了 那就是 機(jī)器學(xué)習(xí) 深度學(xué)習(xí) 神經(jīng)網(wǎng)絡(luò) 人工智能 樓主目前正在往這個階段進(jìn)軍……因為真的有點(diǎn)無聊,又想提高水平 只好繼續(xù)學(xué)了巨双。
到了這個階段噪猾,你會有很多挑戰(zhàn)…
首先的挑戰(zhàn) 來自于 數(shù)學(xué)…是的 你沒聽錯 數(shù)學(xué)… 線性代數(shù) 概率統(tǒng)計 高等數(shù)學(xué) …都是你面前的攔路虎,曾經(jīng)覺得編程只要一加一等于二的美好時代一去不復(fù)返了……你想繼續(xù)前進(jìn)筑累,請先去學(xué)線代 概率……不然寸步難行什么也看不懂…… 先從機(jī)器學(xué)習(xí)開始吧 這個是最簡單的…但是光就基本的機(jī)器學(xué)習(xí)幾個算法 看懂的人沒幾個……基本的k-means算法 decision tree 樸素貝葉斯 這三個 就需要線性代數(shù) 概率統(tǒng)計 以及信息熵相關(guān)知識袱蜡。真的相當(dāng)抽象……后面的深度學(xué)習(xí) 神經(jīng)網(wǎng)絡(luò) 樓主粗略看了下 沒點(diǎn)數(shù)學(xué)功底 還是放棄吧,天書一樣的……
到了這個階段……全中國能幫你的人 也不好找了……開源社區(qū)能幫到你的也越來越少了…一切靠自己慢宗。到了這時候坪蚁,你會發(fā)現(xiàn),當(dāng)初甚囂塵上的 大學(xué)無用論婆廊,編程數(shù)學(xué)無用論 是多么的可笑迅细, 代碼是最沒價值的,核心是數(shù)學(xué)理論……公司不敢開源不是因為代碼值錢…是因為開源就沒人敢用你們公司產(chǎn)品了 因為全是爛代碼……
等你一窺終極階段的門徑的時候淘邻,你會發(fā)現(xiàn) 你危機(jī)感越發(fā)的強(qiáng)烈了…媽的機(jī)器這么吊炸天茵典,圍棋都暴虐人類, 以后編程距離取代的日子也不遠(yuǎn)了………說實話 恐怕真的不遠(yuǎn)了……人類社會自從有了計算機(jī)宾舅,越來越發(fā)展的快统阿, 人工智能將會在你我的有生之年發(fā)展壯大彩倚,近處說,你怎么保住飯碗扶平,怎么提高待遇改善生活呢帆离?……啥也不說了 學(xué)吧……
感謝大家能看完我這么長的分享,希望能夠?qū)Υ蠹矣兴鶐椭?/p>