java需要掌握的技術(shù) JAVA程序員,4年了,迷茫了,希望由前輩可以給指出一個(gè)技術(shù)路線5年左右程序員必須要掌握的知識(shí)技能樹(shù)?
JAVA程序員,4年了,迷茫了,希望由前輩可以給指出一個(gè)技術(shù)路線5年左右程序員必須要掌握的知識(shí)技能樹(shù)?首先,我們推薦幾本極具啟發(fā)性的書:編程諸暨-學(xué)會(huì)思考和分析問(wèn)題的正確姿態(tài)計(jì)算機(jī)程序的構(gòu)造和解釋-重
JAVA程序員,4年了,迷茫了,希望由前輩可以給指出一個(gè)技術(shù)路線5年左右程序員必須要掌握的知識(shí)技能樹(shù)?
首先,我們推薦幾本極具啟發(fā)性的書:
編程諸暨-學(xué)會(huì)思考和分析問(wèn)題的正確姿態(tài)
計(jì)算機(jī)程序的構(gòu)造和解釋-重新思考編程語(yǔ)言的本質(zhì)
UNIX編程藝術(shù)-體驗(yàn)系統(tǒng)設(shè)計(jì)的正確思維
介紹算法-需要重新實(shí)踐的基本技能
設(shè)計(jì)數(shù)據(jù)密集型應(yīng)用程序-打開(kāi)分布式系統(tǒng)和大數(shù)據(jù)系統(tǒng)設(shè)計(jì)的大門
在閱讀書籍的同時(shí),學(xué)習(xí)各種優(yōu)秀的開(kāi)源系統(tǒng)的工作原理,如Kafka、Flink、spark、Hadoop、etcd、zookeeper、,redis
你學(xué)到的不僅僅是知識(shí),還有設(shè)計(jì)思想和思維能力的提高
我分享了很多與分布式系統(tǒng)相關(guān)的動(dòng)畫視頻。歡迎觀看。我希望他們能幫助你
如果你是一個(gè)完全的新手,程序如下:
1。首先,明確短期目標(biāo)和長(zhǎng)期目標(biāo):短期目標(biāo)主要是“小步快跑”,長(zhǎng)期目標(biāo)主要是“好內(nèi)功”。
所謂“小步快跑”是指:盡快啟動(dòng),就可以編寫程序并正確運(yùn)行結(jié)果。這個(gè)階段是用來(lái)積累信心,使他們能夠堅(jiān)持學(xué)習(xí)。
所謂“好內(nèi)功”是指:了解程序背后的原理、數(shù)據(jù)結(jié)構(gòu)、算法性能、軟件工程、架構(gòu)設(shè)計(jì)等。制定學(xué)習(xí)和實(shí)踐計(jì)劃并毫不猶豫地付諸實(shí)施:你可以用Excel寫下每天要實(shí)現(xiàn)的具體小目標(biāo),然后每天睡覺(jué)前檢查是否完成。養(yǎng)成這樣的習(xí)慣對(duì)你是個(gè)很好的激勵(lì)。這一行最重要的是多年的積累,從量變到質(zhì)變。
3. 思想開(kāi)放,不要閉門造車:Java相對(duì)于其他語(yǔ)言的最大優(yōu)勢(shì)是其龐大而成熟的生態(tài)環(huán)境。有無(wú)數(shù)的好框架、工具和最佳實(shí)踐供您選擇。有很多“輪子”可以“使用”。
加入更多的技術(shù)圈和資源社區(qū),與前人交流,了解技能樹(shù),并逐一進(jìn)行有意識(shí)的培訓(xùn)。
閱讀更多經(jīng)典書籍,加深對(duì)基本概念的理解。學(xué)習(xí)語(yǔ)言,初學(xué)者可以看到《Java核心編程》、《Java編程思想》的學(xué)習(xí)框架,初學(xué)者可以在網(wǎng)上找到相應(yīng)的流行實(shí)踐視頻,動(dòng)手實(shí)踐,熟悉后,可以開(kāi)始嘗試閱讀相應(yīng)的源代碼。
另一個(gè)好習(xí)慣是多總結(jié)和寫博客。它一方面有助于整理自己的知識(shí),另一方面也有利于后人。在某種程度上,您可以在源代碼社區(qū)中啟動(dòng)自己的項(xiàng)目。
對(duì)于初學(xué)者,應(yīng)該特別注意:多問(wèn)為什么,而不僅僅局限于程序運(yùn)行是否正確。想寫得足夠有力嗎?有漏洞嗎?性足夠好嗎?只有長(zhǎng)期堅(jiān)持這種精心訓(xùn)練,我們才能迅速提高。
對(duì)java剛?cè)腴T的新手有什么要提醒的嗎?
這個(gè)要求很容易實(shí)現(xiàn),基本上有一點(diǎn)上進(jìn)心的人,不斷學(xué)習(xí),工作3-5年
技術(shù)水平如下:
精通JavaEE基本框架spring、spring MVC、mybatis,最好了解基本原理
精通微服務(wù)框架springboot,spring cloud,Dubbo,最好知道基本原理
精通關(guān)系數(shù)據(jù)庫(kù)Mysql,鍵索引,事務(wù),鎖
精通redis數(shù)據(jù)結(jié)構(gòu),作為分布式緩存,使用分布式鎖
熟悉dcoker容器技術(shù),最好了解k8s
對(duì)前端,包括但不限于Vue、RN等
對(duì)客戶端、Android和IOS有一定的了解
我認(rèn)為Java高級(jí)工程師無(wú)非是以下兩個(gè)方面,一是硬件,二是軟技能。
當(dāng)然,硬技能是技術(shù)的發(fā)展方向:
1。技術(shù)廣度
現(xiàn)在流行的分布式和微服務(wù)是什么,所以你一定要了解Dubbo和spring云,還有緩存、消息隊(duì)列、數(shù)據(jù)庫(kù)優(yōu)化、JVM調(diào)優(yōu)、大數(shù)據(jù),甚至運(yùn)維知識(shí),比如docker和automatic deployment。
2. 技術(shù)深度
一方面是編程思想。這取決于自己的看法。只有多寫多想,才能擁有它。
另一方面,我們需要閱讀源代碼,更不用說(shuō)我們讀了多少源代碼,至少我們有能力理解源代碼。
3. 架構(gòu)經(jīng)驗(yàn)
分布式系統(tǒng)架構(gòu)和開(kāi)發(fā)經(jīng)驗(yàn)。在跨系統(tǒng)結(jié)構(gòu)優(yōu)化和數(shù)據(jù)存儲(chǔ)性能指標(biāo)方面有豐富的經(jīng)驗(yàn)。您應(yīng)該熟悉緩存、數(shù)據(jù)庫(kù)垂直分段、業(yè)務(wù)抽象和水平拆分。
以下是軟技能
1。項(xiàng)目經(jīng)驗(yàn)
從頭到尾跟蹤幾個(gè)大項(xiàng)目,第一個(gè)是需求階段,包括需求調(diào)研。
尾部指在線交付后的時(shí)間,包括維護(hù)階段。
2. 在工業(yè)領(lǐng)域
至少有一兩個(gè)企業(yè)應(yīng)該精通。所謂精通,比如說(shuō)要做金融證券業(yè)務(wù),至少要做金融分析師。做電力生意,至少當(dāng)半個(gè)電力工程師。
當(dāng)然,還有一些交際技巧,人際交往技巧等等。
總之,我認(rèn)為硬技能決定你的起點(diǎn),軟技能決定你的身高。