阿里P7架構(gòu)師帶你走向java架構(gòu)師——你離架構(gòu)師還多遠(yuǎn)?

軟件架構(gòu)師在整個(gè)軟件開(kāi)發(fā)過(guò)程中都起著重要的作用,并隨著開(kāi)發(fā)進(jìn)程的推進(jìn)而其職責(zé)或關(guān)注點(diǎn)不斷地變化,總結(jié)下面幾點(diǎn)。

在需求階段,軟件架構(gòu)師主要負(fù)責(zé)理解和管理非功能性系統(tǒng)需求,比如軟件的可維護(hù)性、性能、復(fù)用性、可靠性、有效性和可測(cè)試性等等,此外,架構(gòu)師還要經(jīng)常審查客戶及市場(chǎng)人員所提出的需求,確認(rèn)開(kāi)發(fā)團(tuán)隊(duì)所提出的設(shè)計(jì);

在需求越來(lái)越明確后,架構(gòu)師的關(guān)注點(diǎn)開(kāi)始轉(zhuǎn)移到組織開(kāi)發(fā)團(tuán)隊(duì)成員和開(kāi)發(fā)過(guò)程定義上;

在軟件設(shè)計(jì)階段,架構(gòu)師負(fù)責(zé)對(duì)整個(gè)軟件體系結(jié)構(gòu)、關(guān)鍵構(gòu)件、接口和開(kāi)發(fā)政策的設(shè)計(jì);

在編碼階段,架構(gòu)師則成為詳細(xì)設(shè)計(jì)者和代碼編寫(xiě)者的顧問(wèn),并且經(jīng)常性地要舉行一些技術(shù)研討會(huì)、技術(shù)培訓(xùn)班等;

隨著軟件開(kāi)始測(cè)試、集成和交付,集成和測(cè)試支持將成為軟件架構(gòu)師的工作重點(diǎn);

在軟件維護(hù)開(kāi)始時(shí),軟件架構(gòu)師就開(kāi)始為下一版本的產(chǎn)品是否應(yīng)該增加新的功能模塊進(jìn)行決策。

在中國(guó)不缺程序員,缺的是高級(jí)架構(gòu)師,先來(lái)看看兩者的薪酬對(duì)比,就知道兩者間的差距:

但為什么在如此龐大的基數(shù)下,架構(gòu)師的數(shù)量這么少,中間差了什么?對(duì)于普通程序員來(lái)說(shuō),成為高級(jí)架構(gòu)師的門(mén)檻主要有以下幾點(diǎn):

1、錯(cuò)誤的學(xué)習(xí)方法。在技術(shù)日新月異的今天,誰(shuí)在單位時(shí)間學(xué)到的知識(shí)更多,誰(shuí)的學(xué)習(xí)方法更高效,誰(shuí)就獲得更強(qiáng)的競(jìng)爭(zhēng)優(yōu)勢(shì)。而很多程序員在工作中,還用著學(xué)校時(shí)的學(xué)習(xí)方法,非常低效,公司不是學(xué)校,啃書(shū)本的學(xué)習(xí)方法已不再有效。

2、完整的知識(shí)體系。沒(méi)有形成系統(tǒng)化的知識(shí)架構(gòu),最重要的是不知道哪些技術(shù)需要重點(diǎn)掌握,學(xué)習(xí)時(shí)頻繁踩坑,最終浪費(fèi)大量時(shí)間。

3、對(duì)編程的認(rèn)知。頂級(jí)程序員和平庸程序員,本質(zhì)區(qū)別是遇到問(wèn)題時(shí)的思考方式,這就是所謂的頂級(jí)程序員思維,一種高效解決問(wèn)題的思維方式。這種思維方式,不是讀幾本Java書(shū)能學(xué)到的,而需要經(jīng)過(guò)大量項(xiàng)目實(shí)戰(zhàn),才能總結(jié)提煉出來(lái)。

4、差的學(xué)習(xí)環(huán)境。很多程序員的學(xué)習(xí)環(huán)境很差,在公司經(jīng)常加班,工作幾年后,發(fā)現(xiàn)自己除了更熟悉公司業(yè)務(wù)外,能力沒(méi)有得到半點(diǎn)提升,或周末基本不學(xué)習(xí),而是出去玩。這么差的自制力和學(xué)習(xí)環(huán)境,很難讓能力提到大的提升。

上面四點(diǎn),每一點(diǎn)都非常難做到,也正因?yàn)檫@樣,才會(huì)出現(xiàn)平庸的程序員很多,架構(gòu)師卻鳳毛麟角的現(xiàn)象。

那如何才能克服上面四點(diǎn),成為一名合格的Java架構(gòu)師呢?

俗話說(shuō)“沒(méi)有見(jiàn)過(guò)好程序,怎么可能寫(xiě)出好程序”,同樣,也可以說(shuō)“不了解架構(gòu)師的能力、工作,怎么可能成為架構(gòu)師”,如果沒(méi)有接觸過(guò)頂級(jí)架構(gòu)師,那你怎么知道自己要往哪個(gè)方向努力?所以,最好的方法是找個(gè)頂級(jí)架構(gòu)師,去教你“高效的學(xué)習(xí)方法”、“完整的知識(shí)體系”和“對(duì)編程正確的認(rèn)知”,讓他去督促你學(xué)習(xí),為你營(yíng)造出“良好的學(xué)習(xí)環(huán)境”。

但是大牛很忙,不太可能單獨(dú)給你開(kāi)小灶,更不可能每天都給你開(kāi)1個(gè)小時(shí)的小灶;而且一個(gè)團(tuán)隊(duì)里面,如果大牛平時(shí)經(jīng)常給你開(kāi)小灶,難免會(huì)引起其他團(tuán)隊(duì)成員的疑惑,我個(gè)人認(rèn)為如果團(tuán)隊(duì)里的大牛如果真正有心的話,多給團(tuán)隊(duì)培訓(xùn)是最好的。然而做過(guò)培訓(xùn)的都知道,準(zhǔn)備一場(chǎng)培訓(xùn)是很耗費(fèi)時(shí)間的,課件和材料至少2個(gè)小時(shí)(還不能是碎片時(shí)間),講解1個(gè)小時(shí),大牛們一個(gè)月做一次培訓(xùn)已經(jīng)是很高頻了。

因?yàn)榈谝粋€(gè)原因,所以一般要找大牛,都是帶著問(wèn)題去請(qǐng)教或者探討。因?yàn)榛卮鸹蛘咛接憜?wèn)題無(wú)需太多的時(shí)間,更多的是靠經(jīng)驗(yàn)和積累,這種情況下大牛們都是很樂(lè)意的,畢竟影響力是大牛的一個(gè)重要指標(biāo)嘛。然而也要特別注意:如果經(jīng)常問(wèn)那些書(shū)本或者google能夠很容易查到的知識(shí),大牛們也會(huì)很不耐煩的,畢竟時(shí)間寶貴。經(jīng)常有網(wǎng)友問(wèn)我諸如“jvm的-Xmn參數(shù)如何配置”這類問(wèn)題,我都是直接回答“請(qǐng)直接去google”,因?yàn)檫@樣的問(wèn)題實(shí)在是太多了,如果自己不去系統(tǒng)學(xué)習(xí),每個(gè)都要問(wèn)是非常浪費(fèi)自己和別人的時(shí)間的。

大牛不多,不太可能每個(gè)團(tuán)隊(duì)都有技術(shù)大牛,只能說(shuō)團(tuán)隊(duì)里面會(huì)有比你水平高的人,即使他每天給你開(kāi)小灶,最終你也只能提升到他的水平;而如果是跨團(tuán)隊(duì)的技術(shù)大牛,由于工作安排和分配的原因,直接請(qǐng)教和輔導(dǎo)的機(jī)會(huì)是比較少的,單憑參加幾次大牛的培訓(xùn),是不太可能就成為技術(shù)大牛的。

所以要想成為技術(shù)大牛,首先還是要明白“主要靠自己”這個(gè)道理,適當(dāng)?shù)臅r(shí)候可以通過(guò)請(qǐng)教大牛或者和大牛探討來(lái)提升自己,但大部分時(shí)間還是自己系統(tǒng)性、有針對(duì)性的提升。

既然java架構(gòu)師,首先你要是一個(gè)高級(jí)java工程師,熟練使用各種框架,并知道它們實(shí)現(xiàn)的原理。

jvm虛擬機(jī)原理、調(diào)優(yōu),懂得jvm能讓你寫(xiě)出性能更好的代碼;

池技術(shù),什么對(duì)象池,連接池,線程池,java反射技術(shù),寫(xiě)框架必備的技術(shù),但是有嚴(yán)重的性能問(wèn)題,替代方案java字節(jié)碼技術(shù);

nio,值得注意的是“直接內(nèi)存”的特點(diǎn),使用場(chǎng)景;

java多線程同步異步;

java各種集合對(duì)象的實(shí)現(xiàn)原理,了解這些可以讓你在解決問(wèn)題時(shí)選擇合適的數(shù)據(jù)結(jié)構(gòu),高效的解決問(wèn)題,比如hashmap的實(shí)現(xiàn)原理,好多五年以上經(jīng)驗(yàn)的人都弄不清楚,還有為什擴(kuò)容時(shí)有性能問(wèn)題?不弄清楚這些原理,就寫(xiě)不出高效的代碼,還會(huì)認(rèn)為自己做的很對(duì);總之一句話越基礎(chǔ)的東西越重要,很多人認(rèn)為自己會(huì)用它們寫(xiě)代碼了,其實(shí)僅僅是知道如何調(diào)用api而已,離會(huì)用還差的遠(yuǎn)。

熟練使用各種數(shù)據(jù)結(jié)構(gòu)和算法,數(shù)組、哈希、鏈表、排序樹(shù)...,就是一句話要么是時(shí)間換空間要么是空間換時(shí)間,這里展開(kāi)可以說(shuō)一大堆,需要有一定的應(yīng)用經(jīng)驗(yàn),用于解決各種性能或業(yè)務(wù)上的問(wèn)題。

熟練使用linux操作系統(tǒng),必備。

熟悉tcp協(xié)議,創(chuàng)建連接三次握手和斷開(kāi)連接四次握手的整個(gè)過(guò)程,不了解的話,無(wú)法對(duì)高并發(fā)網(wǎng)絡(luò)應(yīng)用做優(yōu)化;

熟悉http協(xié)議,尤其是http頭,我發(fā)現(xiàn)好多工作五年以上的都弄不清session和cookie的生命周期以及它們之間的關(guān)聯(lián)。

系統(tǒng)集群、負(fù)載均衡、反向代理、動(dòng)靜分離,網(wǎng)站靜態(tài)化。

分布式存儲(chǔ)系統(tǒng)nfs,fastdfs,tfs,Hadoop了解他們的優(yōu)缺點(diǎn),適用場(chǎng)景。

分布式緩存技術(shù)memcached,redis,提高系統(tǒng)性能必備,一句話,把硬盤(pán)上的內(nèi)容放到內(nèi)存里來(lái)提速,順便提個(gè)算法一致性hash。

工具nginx必備技能超級(jí)好用,高性能,基本不會(huì)掛掉的服務(wù)器,功能多多,解決各種問(wèn)題。

數(shù)據(jù)庫(kù)的設(shè)計(jì)能力,mysql必備,最基礎(chǔ)的數(shù)據(jù)庫(kù)工具,免費(fèi)好用,對(duì)它基本的參數(shù)優(yōu)化,慢查詢?nèi)罩痉治?,主從?fù)制的配置,至少要成為半個(gè)mysqldba。其他nosql數(shù)據(jù)庫(kù)如mongodb。

還有隊(duì)列中間件。如消息推送,可以先把消息寫(xiě)入數(shù)據(jù)庫(kù),推送放隊(duì)列服務(wù)器上,由推送服務(wù)器去隊(duì)列獲取處理,這樣就可以將消息放數(shù)據(jù)庫(kù)和隊(duì)列里后直接給用戶反饋,推送過(guò)程則由推送服務(wù)器和隊(duì)列服務(wù)器完成,好處異步處理、緩解服務(wù)器壓力,解藕系統(tǒng)。

那成為架構(gòu)師所需要具備哪些技能?

架構(gòu)師思考的是全局的東西,是如何組織你的系統(tǒng),以達(dá)到業(yè)務(wù)要求,性能要求,具備可擴(kuò)展性(scalability),可拓展性(extendability),前后兼容性等??赡苌婕暗降臇|西包括了從硬件到軟件的方方面面。

一個(gè)合格的架構(gòu)師要耐得住寂寞,在同事不停的在打榮耀而你只能不停的學(xué)習(xí),是踩著坑上位的,是無(wú)數(shù)次推翻之前自己設(shè)計(jì) 的 “狗屎”架構(gòu),無(wú)數(shù)次日日夜夜加班而煉成的。

架構(gòu)師不僅要上知技術(shù)實(shí)現(xiàn)細(xì)節(jié),而且還要會(huì)項(xiàng)目管理、設(shè)計(jì)理論、性能優(yōu)化、熟練使用各種工具,為公司各種業(yè)務(wù)提供技術(shù)支持,從前端到后臺(tái)再到數(shù)據(jù)庫(kù)、運(yùn)維,哪里需要去哪里,還要一副好口才能睡服領(lǐng)導(dǎo)同事。

歡迎工作一到五年的Java工程師朋友們加入Java架構(gòu)開(kāi)發(fā):760940986

群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來(lái)學(xué)習(xí)提升自己,不要再用"沒(méi)有時(shí)間“來(lái)掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來(lái)的自己一個(gè)交代!

領(lǐng)取下面架構(gòu)視頻資料!

性能調(diào)優(yōu)專題:

常用框架源碼分析:

B2C商城顯目實(shí)戰(zhàn):

團(tuán)隊(duì)協(xié)作開(kāi)發(fā)專題:

微服務(wù)專題:

互聯(lián)網(wǎng)分布式架構(gòu)專題:

學(xué)到這里,你離架構(gòu)師就不遠(yuǎn)了!

當(dāng)然,想成為架構(gòu)師不是懂了一大堆技術(shù)就可以了,這些是解決問(wèn)題的基礎(chǔ)、是工具,如果這些技術(shù)問(wèn)題不懂怎樣做到,如何能夠找到解決方案呢?這是成為架構(gòu)師的必要條件。

架構(gòu)師還要針對(duì)業(yè)務(wù)特點(diǎn)、系統(tǒng)的性能要求提出能解決問(wèn)題成本最低的設(shè)計(jì)方案才合格,人家一個(gè)幾百人用戶的系統(tǒng),訪問(wèn)量不大,數(shù)據(jù)量小,你給人家上集群、上分布式存儲(chǔ)、上高端服務(wù)器,為了架構(gòu)而架構(gòu),這是不可取的,所以總結(jié)兩點(diǎn):架構(gòu)師的作用就是第一滿足業(yè)務(wù)需求,第二最低的硬件網(wǎng)絡(luò)成本和技術(shù)維護(hù)成本。

如果想要成為一名優(yōu)秀的架構(gòu)師還需要根據(jù)業(yè)務(wù)發(fā)展情況,提前預(yù)見(jiàn)發(fā)展到下一個(gè)階段系統(tǒng)架構(gòu)的解決方案,并且設(shè)計(jì)當(dāng)前架構(gòu)時(shí)將架構(gòu)的升級(jí)擴(kuò)展考慮進(jìn)去,做到易于升級(jí);否則等系統(tǒng)瓶頸來(lái)了,出問(wèn)題了再去出方案,或現(xiàn)有架構(gòu)無(wú)法擴(kuò)展直接扔掉重做,或擴(kuò)展麻煩問(wèn)題一大堆,這會(huì)對(duì)企業(yè)造成損失。

大廠的大神還有如下的幾個(gè)建議:

首先是要多讀一些書(shū),其中最基礎(chǔ)的是類似于重構(gòu)和設(shè)計(jì)模式這種書(shū),你需要知道很多小尺度級(jí)別上的問(wèn)題解決技巧(如果你要做導(dǎo)演,你首先要做得是能熟練地把一個(gè)句子翻譯為一組鏡頭),以及這些作者梳理問(wèn)題的方式,反過(guò)來(lái)問(wèn)一下自己,如果讓你來(lái)寫(xiě)設(shè)計(jì)模式這本書(shū),你有哪些知識(shí)點(diǎn)可以寫(xiě)?你如何組織這些知識(shí)點(diǎn)?如何讓大家接受你的觀點(diǎn)。

看完這兩本書(shū)之后,非常推薦你看一下 Martin Fowler 寫(xiě)的《企業(yè)應(yīng)用架構(gòu)模式》和 Eric Evans 的《領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)》這類書(shū),他能擴(kuò)大你的視野,專注于更有意義的問(wèn)題,而不是設(shè)計(jì)模式究竟有多少種這種缺乏意義的問(wèn)題。有一句話叫,“如果要成功,就要遠(yuǎn)離那些廉價(jià)的娛樂(lè)”。類似的,對(duì)于軟件工程師來(lái)講,要想讓自己更強(qiáng),就要遠(yuǎn)離那些廉價(jià)的爭(zhēng)論(vim vs emacs, linux vs unix, redhat vs debian, 這些爭(zhēng)論其實(shí)并沒(méi)有太大的價(jià)值)。

其次,你要對(duì)大量開(kāi)源軟件的實(shí)際特性有深入的了解,容量究竟多大?高可用怎么做?如何擴(kuò)容?是否易維護(hù)?這些知識(shí)部分來(lái)自網(wǎng)上的各種測(cè)試和經(jīng)驗(yàn)文章,部分還要來(lái)自你的親手測(cè)試。作為架構(gòu)師,你的每一個(gè)技術(shù)選型都是在挖坑,給你的開(kāi)發(fā)、測(cè)試、運(yùn)維團(tuán)隊(duì)挖坑,而你的作用之一,就是保證你的團(tuán)隊(duì)能夠在你的幫助下從坑里走出來(lái)。

另外,要解決很多大尺度的問(wèn)題,你需要從很多同行去吸收經(jīng)驗(yàn),我個(gè)人的經(jīng)驗(yàn)就是,閱讀每年兩次 QCon 和 ArchSummit 架構(gòu)相關(guān)的幻燈片,先只看題目和問(wèn)題部分,自己想一想解決方案是啥,然后再看一下演講者給出的解答,通過(guò)這種方式來(lái)淬煉自己的思維,豐富自己的工具箱。我想提醒的一點(diǎn)是,由于軟件行業(yè)還遠(yuǎn)不成熟,所以一個(gè)架構(gòu)師會(huì)長(zhǎng)期跟進(jìn)一個(gè)項(xiàng)目,這就導(dǎo)致了一個(gè)架構(gòu)師如果不主動(dòng)去練習(xí)的話,一輩子也做不了幾個(gè)架構(gòu),至少相對(duì)于建筑專業(yè)的結(jié)構(gòu)工程師來(lái)講,我們每年的項(xiàng)目缺少少很多。你做的架構(gòu)越少,你就越容易自滿。

最后,我希望你是一個(gè)終身學(xué)習(xí)者,不管多忙,一定要規(guī)劃你的學(xué)習(xí)時(shí)間,一個(gè)星期也許不用太多,幾個(gè)小時(shí)即可,但這幾個(gè)小時(shí)一定要用在刀刃上,所以最好是哪些需要幾十個(gè)小時(shí)甚至更多時(shí)間才能弄清楚的課題,而且一直要堅(jiān)持到這個(gè)課題結(jié)束。千萬(wàn)不能是學(xué)一點(diǎn)這個(gè)概念,遇到新事物,就馬上轉(zhuǎn)移方向。如果你有這樣的習(xí)慣,我建議你先把新想法放到一個(gè)池子里,等手邊的課題學(xué)習(xí)完,再到池子里邊撈一個(gè)新課題來(lái)繼續(xù)學(xué)習(xí)。不過(guò)關(guān)于學(xué)習(xí),這個(gè)是一個(gè)很大的話題,就不在這兒闡述了。

那如何學(xué)習(xí)呢?

如何掌握有效的學(xué)習(xí)方法呢,參考網(wǎng)友給的一些不錯(cuò)的方法拿來(lái)分享,光看不用效果很差,怎么辦?

例如:

學(xué)習(xí)了jvm的垃圾回收,但是線上比較少出現(xiàn)FGC導(dǎo)致的卡頓問(wèn)題,就算出現(xiàn)了,恢復(fù)業(yè)務(wù)也是第一位的,不太可能線上出現(xiàn)問(wèn)題然后讓每個(gè)同學(xué)都去練一下手,那怎么去實(shí)踐這些jvm的知識(shí)和技能呢?

Netty我也看了,也了解了Reactor的原理,但是我不可能參與Netty開(kāi)發(fā),怎么去讓自己真正掌握Reactor異步模式呢?

看了《高性能MySQL》,但是線上的數(shù)據(jù)庫(kù)都是DBA管理的,測(cè)試環(huán)境的數(shù)據(jù)庫(kù)感覺(jué)又是隨便配置的,我怎么去驗(yàn)證這些技術(shù)呢?

框架封裝了DAL層,數(shù)據(jù)庫(kù)的訪問(wèn)我們都不需要操心,我們?cè)趺慈チ私夥謳?kù)分表實(shí)現(xiàn)?

諸如此類問(wèn)題還有很多,我這里分享一下個(gè)人的經(jīng)驗(yàn),其實(shí)就是3個(gè)詞:learning、trying、teaching!

1)Learning

這個(gè)是第一階段,看書(shū)、google、看視頻、看別人的博客都可以,但要注意一點(diǎn)是“系統(tǒng)化”,特別是一些基礎(chǔ)性的東西,例如JVM原理、Java編程、網(wǎng)絡(luò)編程,HTTP協(xié)議等等,這些基礎(chǔ)技術(shù)不能只通過(guò)google或者博客學(xué)習(xí),我的做法一般是先完整的看完一本書(shū)全面的了解,然后再通過(guò)google、視頻、博客去有針對(duì)性的查找一些有疑問(wèn)的地方,或者一些技巧。

2)Trying

這個(gè)步驟就是解答前面提到的很多同學(xué)的疑惑的關(guān)鍵點(diǎn),形象來(lái)說(shuō)就是“自己動(dòng)手豐衣足食”,也就是自己去嘗試搭建一些模擬環(huán)境,自己寫(xiě)一些測(cè)試程序。例如:

Jvm垃圾回收:可以自己寫(xiě)一個(gè)簡(jiǎn)單的測(cè)試程序,分配內(nèi)存不釋放,然后調(diào)整各種jvm啟動(dòng)參數(shù),再運(yùn)行的過(guò)程中使用jstack、jstat等命令查看jvm的堆內(nèi)存分布和垃圾回收情況。這樣的程序?qū)懫饋?lái)很簡(jiǎn)單,簡(jiǎn)單一點(diǎn)的就幾行,復(fù)雜一點(diǎn)的也就幾十行。

Reactor原理:自己真正去嘗試寫(xiě)一個(gè)Reactor模式的Demo,不要以為這個(gè)很難,最簡(jiǎn)單的Reactor模式代碼量(包括注釋)不超過(guò)200行(可以參考Doug Lee的PPT)。自己寫(xiě)完后,再去看看netty怎么做,一對(duì)比理解就更加深刻了。

MySQL:既然有線上的配置可以參考,那可以直接讓DBA將線上配置發(fā)給我們(注意去掉敏感信息),直接學(xué)習(xí);然后自己搭建一個(gè)MySQL環(huán)境,用線上的配置啟動(dòng);要知道很多同學(xué)用了很多年MySQL,但是連個(gè)簡(jiǎn)單的MySQL環(huán)境都搭不起來(lái)。

框架封裝了DAL層:可以自己用JDBC嘗試去寫(xiě)一個(gè)分庫(kù)分表的簡(jiǎn)單實(shí)現(xiàn),然后與框架的實(shí)現(xiàn)進(jìn)行對(duì)比,看看差異在哪里。

用瀏覽器的工具查看HTTP緩存實(shí)現(xiàn),看看不同種類的網(wǎng)站,不同類型的資源,具體是如何控制緩存的;也可以自己用Python寫(xiě)一個(gè)簡(jiǎn)單的HTTP服務(wù)器,模擬返回各種HTTP Headers來(lái)觀察瀏覽器的反應(yīng)。

還有很多方法,這里就不一一列舉,簡(jiǎn)單來(lái)說(shuō),就是要將學(xué)到的東西真正試試,才能理解更加深刻,印第安人有一句諺語(yǔ):I hear and I forget. I see and I remember. I do and I understand ,而且“試試”其實(shí)可以比較簡(jiǎn)單,很多時(shí)候我們都可以自己動(dòng)手做。

當(dāng)然,如果能夠在實(shí)際工作中使用,效果會(huì)更好,畢竟實(shí)際的線上環(huán)境和業(yè)務(wù)復(fù)雜度不是我們寫(xiě)個(gè)模擬程序就能夠模擬的,但這樣的機(jī)會(huì)可遇不可求,大部分情況我們還真的只能靠自己模擬,然后等到真正業(yè)務(wù)要用的時(shí)候,能夠信手拈來(lái)。

3)Teaching

一般來(lái)說(shuō),經(jīng)過(guò)Learning和Trying,能掌握70%左右,但要真正掌握,我覺(jué)得一定要做到能夠跟別人講清楚。因?yàn)樵谥v的時(shí)候,我們既需要將一個(gè)知識(shí)點(diǎn)系統(tǒng)化,也需要考慮各種細(xì)節(jié),這會(huì)促使我們進(jìn)一步思考和學(xué)習(xí)。同時(shí),講出來(lái)后看或者聽(tīng)的人可以有不同的理解,或者有新的補(bǔ)充,這相當(dāng)于繼續(xù)完善了整個(gè)知識(shí)技能體系。

這樣的例子很多,包括我自己寫(xiě)博客的時(shí)候經(jīng)常遇到,本來(lái)我覺(jué)得自己已經(jīng)掌握很全面了,但一寫(xiě)就發(fā)現(xiàn)很多點(diǎn)沒(méi)考慮到;組內(nèi)培訓(xùn)的時(shí)候也經(jīng)常看到,有的同學(xué)寫(xiě)了PPT,但是講的時(shí)候,大家一問(wèn),或者一討論,就會(huì)發(fā)現(xiàn)很多點(diǎn)還沒(méi)有講清楚,或者有的點(diǎn)其實(shí)是理解錯(cuò)了。寫(xiě)PPT、講PPT、討論P(yáng)PT,這個(gè)流程全部走一遍,基本上對(duì)一個(gè)知識(shí)點(diǎn)掌握就比較全面了。

最后撒點(diǎn)雞湯,所謂學(xué)而時(shí)習(xí)之,溫故而知新,即使是架構(gòu)師也需要不停的學(xué)習(xí)、思考,新的技術(shù)層出不窮,不變的是那顆不甘安逸的心。

歡迎工作一到五年的Java工程師朋友們加入Java架構(gòu)開(kāi)發(fā):760940986

群內(nèi)提供免費(fèi)的Java架構(gòu)學(xué)習(xí)資料(里面有高可用、高并發(fā)、高性能及分布式、Jvm性能調(diào)優(yōu)、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個(gè)知識(shí)點(diǎn)的架構(gòu)資料)合理利用自己每一分每一秒的時(shí)間來(lái)學(xué)習(xí)提升自己,不要再用"沒(méi)有時(shí)間“來(lái)掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來(lái)的自己一個(gè)交代!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,983評(píng)論 6 537
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,772評(píng)論 3 422
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事?!?“怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,947評(píng)論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 63,201評(píng)論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,960評(píng)論 6 410
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,350評(píng)論 1 324
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,406評(píng)論 3 444
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,549評(píng)論 0 289
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,104評(píng)論 1 335
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,914評(píng)論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,089評(píng)論 1 371
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,647評(píng)論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,340評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,753評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 36,007評(píng)論 1 289
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,834評(píng)論 3 395
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,106評(píng)論 2 375

推薦閱讀更多精彩內(nèi)容

  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 12,799評(píng)論 2 59
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,677評(píng)論 25 708
  • 早飯煮了餛飩,聽(tīng)著廣播,新的一年就這樣開(kāi)始了。Z先生叫我去他們家吃飯,我說(shuō)奶奶生病還沒(méi)有好,以后再說(shuō)吧!這...
    木兮日記閱讀 248評(píng)論 0 0
  • 弗朗西斯科發(fā)明的番茄工作法,跟近年來(lái)在軟件行業(yè)倡導(dǎo)的Scrum\XP等敏捷開(kāi)發(fā)方法很類似,集中專注+快速迭...
    Tsingbo閱讀 144評(píng)論 0 0
  • 我知道武漢六月的雨, 淋濕了江城整個(gè)四季。 江夏大道的青龍山下, 虛度著那美麗的年華。 樹(shù)枯藤竭微風(fēng)灑悲奏, 山高...
    老大閱讀 242評(píng)論 0 3