首頁>Club>
19
回覆列表
  • 1 # 一隻會飛的冰淇淋

    “T字型人才 一項精通 廣泛瞭解 兩個方向還能有互相加成 觸類旁通 融會貫通”

    提高我是這麼搞的,第一,所有的core java也就是java基礎的語法,無條件全部掌握,不管是java8還是java9,只要java出了最新版的語言,裡面的所有features,全部背下來,反覆練習,練成肌肉記憶,也就是隻要跟你說java的語法,管他什麼版本的,你都要不看書就把答案說出來,因為這是基礎,沒有比java更基礎的東西,我不管外面的公司還在用4,還是5,還是6,我認為,java就是最最最最最最基礎的東西,裡面的語法我都要會,而且是不查文件的會,我說的是語法,不是api

    第二步,觸類旁通,你用eclipse是不是?那就試試idea,netbeans,以前還有jbuilder,我讀書時候還用jcreator這些,你隨便換一個會不會用?不會?去試,裡面英語很多,對,這是程式設計師的日常,你要適應。同樣的,用svn是不是?你換成git試試,你用windows是不是?換成mac,伺服器用win server是不是?換成linux,你用maven是不是?換成gradle,你用mysql是不是?換成pg,這些都是大同小異的軟體產品,你應該能夠觸類旁通,如果你做不到這一點,你要想想 為什麼做不到?說明你原理沒有掌握,你還停留在死背api的階段,請去了解原理,理解了原理之後,你才能說你真的會了,以後換一個產品,你一樣搞得定,其實java的東西都大同小異,maven上700多萬個jar包,其實用法都差不多,無非看看文件(javadoc),大概明白原理之後就可以開始寫了,撐死了看看原始碼

    第三步,脫離java,java很大,很成功,屬實,我承認,但是java畢竟只是程式語言的一種,這世界上必然有比java更大的外延存在,那那些外延一無是處?really?我不信,所以你應該看一看其他語言,都在幹什麼,你可以不像java一樣精通,沒有關係,但是不妨礙你去了解一下這些語言,你應該從這些語言上找到共性,不要被細節所迷惑,比如同樣是lambda,你知道lambda是怎麼回事就好了,不要去死背語法,只有java的語法你要死背,因為java太普遍了,其他語言的語法不用強行記憶,知道是怎麼回事,用的時候再查也不遲,王垠的這篇文章寫得不錯,可以看看如何掌握所有的程式語言,然後你找一個比如vert.x這種polyglot的工具,來對比看看這些語言之間有沒有能夠互補的地方,比如我們用了kotlin的coroutine,因為java目前還沒有語言層面的coroutine支援,那麼我們用kotlin就能補上java的短板,這樣我們的系統就能更加合理,依賴和利用java,但不受限於java

    第四步,貢獻,當你對這些東西都比較熟悉了之後,你應該能夠發現很多原始碼中的bugs,這個時候你應該要去github上提交issue提交pr,來修復這些bugs,讓更多的人少踩坑,多受益,因為這個時候你的階段已經到了可以貢獻的階段,提交issue次數多了,自然會有人問你,願意不願意貢獻,到了這個階段,你的能力已經提升了,我們可以一起攜手共建一個美好的世界

    但是強調一點,在你貢獻之前,你在其他階段也可以貢獻,只是我覺得你的深度和廣度都還不夠的時候,談貢獻,為時太早,不是不可能,只是你看問題的角度可能是有不夠的地方,有可能瞎子摸象,後續還有其他的,比如演算法和資料結構的提升,不一一而論了,等你脫離了語言這個層次之後,你自然會有力氣去搞更加複雜的演算法,駕馭更加複雜的資料結構,那這個能否走到這一步,看你自己了

  • 2 # 職場實驗室

    首先我們來看下一家準上市公司招聘月薪8萬多(年薪百萬)的Java架構師的崗位任職要求:

    可以看出要拿高薪的Java人才必須符合幾方面的要求:

    1、管理能力:能夠獨立帶團隊,及跨部門溝通。

    2、專業能力:不僅需要有深厚的Java程式設計功底,還需要豐富的系統架構經驗,精通前後端,已經屬於Full stack engineer的型別。

    我們再看下美國加州灣區(矽谷)JAVA工程師的薪水

    年薪的中位數超過10萬美元,最低水平也達到8.9萬美元,可以看出JAVA工程師在美國的薪資還是蠻高的。

    關於JAVA相關技能,美國的公司希望開發者能夠熟悉或者精通JAX-RS、Jasmine等JAVA相關技術。

    如果以後希望走JAVA路線,及未來想獲得高薪,可以思考以下幾點:

    1、 不斷增值自己

    如果將技術比做一個階梯,每學會一門語言或相關技能,就如同多了一個階梯,你會得越多,技術的階梯就越多,價值就越大。當階梯積累到一定程度,成為Full stack engineer,你就能縱向往高階技術方向晉級,職業發展之路更上一層樓。

    2、多做專案,獲得經驗

    越是大型的開發專案越要參與,一開始可能只是底層的碼農,但透過專案,既鍛鍊了團隊協作能力、溝通能力,也能夠從專案中瞭解產品開發的整套流程,不管未來轉型產品經理,還是繼續往技術專家路線走都是很好的歷練。

    3、突出自身的優勢

    當你既有技術能力又有經驗的時候就要思考哪個路線是適合自己的,自身最大的優勢及比別人強的地方是哪些,並不斷把自己的優勢強化,這樣才能脫穎而出,而不是永遠只會低頭敲程式碼。

    希望以上內容對你有幫助,最後祝你早日成為技術大拿,實現年薪百萬。

  • 3 # 華子寶兒

    那就看你對高薪的定位在多少了?

    如果你覺得10k-25k就是高薪,那麼也就意味著你要學到中級java工程師的程度;那麼你起碼要學到以下兩點:

    第一個就是基礎;比如對集合類,併發包,IO/NIO,JVM,記憶體模型,泛型,異常,反射,等有深入瞭解,最好是看過原始碼瞭解底層的設計。比如一般面試都會問 ConcurrentHashMap,CopyOnWrite,執行緒池,CAS,AQS,虛擬機器最佳化等知識點,因為這些對網際網路的企業是絕對重要的。

    第二就是你學要有全面的網際網路相關知識;從底層說起,你起碼得深入瞭解 mysql,redis,nginx,tomcat,rpc,jms 等方面的知識。你要問需要了解到什麼程度,我可以給你說個大慨。首先對於 MySQL,你要知道常見的引數設定,儲存引擎怎麼去選擇,還需要了解常見的索引引擎,知道怎麼去選擇。知道怎麼去設計表,怎麼最佳化 sql,怎麼根據執行計劃去調優。

    如果你覺得25k以上是高薪的話,也就意味著是高階java工程師或者是架構師;那麼你就要在剛才以上兩點的基礎上再加上以下兩點:

    第一:高階的你需要去做分庫分表的設計和最佳化,一般網際網路企業的資料庫都是讀寫分離,還會垂直與水平拆分,所以這個也有經驗的成分在裡面。然後 redis 幾乎是必須的技能,而 nginx 和 tomcat 幾乎都是 JAVA 網際網路方面必配。至於 rpc 相關的就多的去,必須各種網路協議,序列化技術,SOA 等等,你要有一個深入的理解。現在應用比較廣的 rpc 框架,在國內就是 dubbo 了,開源的還有 spring cloud 相關技術棧,可以自行搜尋。至於 jms 相關的起碼得了解原理吧,一般情況下不是專門開發中間件系統和支撐系統的不需要了解太多細節,國內企業常用的主要是 activeMQ 和 kafka。你能對我說的都有研究,阿里 p7 都不是太大問題的。

    第二:就是程式設計能力,程式設計思想,演算法能力,架構能力。首先 2W 程式設計師對演算法的要求我覺得還是比較低,再高階也最多紅黑樹吧,但是排序和查詢的基本演算法得會。程式設計思想是必須的,問你個 AOP 和 IOC 你起碼的清清楚楚,設計模式不說每種都用過,但也能瞭解個幾種。程式設計能力這個我覺得不好去評價,但是拿一個 2000W 使用者根據姓名年齡排序這種題目也能信手拈來。最後就是架構能力,這種不是說要你設計個多牛逼多高併發的系統,起碼讓你做一個秒殺系統,得有一個明確的思路和方向。

  • 中秋節和大豐收的關聯?
  • 三國殺國戰中有哪些不成文的規定?