古人云:「活到老,學到老。」互聯網算是最辛苦的行業之一,「加班」對工程師來講已經是「屢見不鮮」,同時互聯網技術又突飛猛進,不少工程師都疲於應付,叫苦不堪。以致於長期以來流傳一個很廣的誤解:35歲是程序員工做的終點。程序員
如何在繁忙的工做中作好技術積累,構建我的核心競爭力,相信是不少工程師同行都在思考的問題。一樣的工做、一樣的作需求,爲何有的人只能在現有崗位上緩慢前行,而有的人卻能進阿里,本文是我本身的一些總結,試圖從三個方面來解答:算法
在繁忙的工做中,鍥而不捨、不斷學習和進步是一件艱鉅的任務,須要堅強的毅力和堅決的決心。若是方法不得當,更是事倍功半。幸虧咱們的古人和如今哲人已經總結了不少優秀的學習方法論,這裏彙總了一些重要原則。遵循這些方法必會對你們的工做學習大有裨益。編程
有報道指出,過去幾十年的知識量超過以前人類幾千年的知識量總和。而計算機領域絕對是當代知識更新最快的領域之一,所以,工程師必需要接受這樣一個現實,如今所掌握的深厚知識體系很快就會被淘汰。要想在計算機領域持續作優秀架構師,就必須不停的學習,掌握最新技術。總之,學不能夠已。設計模式
所謂「冰凍三尺,非一日之寒,水滴石穿,非一日之功」,通往架構師的道路漫長而又艱鉅,輕易放棄,則全部付出瞬間付之東流。要想成爲優秀的架構師,貴在堅持!性能優化
雖然知識更新很快,可是基礎理論的變化卻很是緩慢。這就是「道」和「象」關係,縱是世間萬象,道卻萬變不離其宗。對於那些很是基礎的理論知識,咱們須要常常複習,也就是「學而時習之」。網絡
古人云:「紙上得來終覺淺,絕知此事要躬行。」 學習領域有所謂721模型:我的的成長70%來自於崗位實踐,20%來自向他人學習,10%來自於培訓。雖然這種理論存在爭議,但對於工程師們來講,按照實踐、學習和培訓的方式進行重要性排序,大體是不錯的。因此重視實踐,在實踐中成長是最重要的學習原則。數據結構
人類的認知有兩種:感性認知和理性認知。這兩種認知互相不可替代性。實踐很大程度來自於感性學習,看書更像是理性學習。以學開汽車作例子,很難想象什麼人可以僅僅經過學習書本知識就會開汽車。多線程
書本知識主要是傳道——講述抽象原型,而對其具體應用場景的講述每每含糊其辭,對抽象原型之間的關係也是淺嘗輒止。採用一樣精確的語言去描述應用場景和關聯關係將會失去重點,讓人摸不着頭腦。因此,僅僅經過看書來得到成長就像是用一條腿走路。架構
重視實踐,充分運用感性認知潛能,在項目中磨鍊本身,纔是正確的學習之道。在實踐中,在某些關鍵動做上刻意練習,也會取得事半功倍的效果。併發
牛頓說:「若是說我看得比別人遠一些,那是由於我站在巨人的肩膀上。」咱們須要從別人身上學習。從老師、領導、同事、下屬甚至對手身上學習,是快速成長的重要手段。
向老師和領導學習已是人們生活習慣的一部分了。可是從同事甚至對手那裏學習也很重要,由於這些人和咱們自身更類似。因此要多多觀察,取其所長,棄其所短。對於團隊的小兄弟和下屬,也要「不恥下問」。
此外,在項目中積極參與具體方案討論也很是重要。參與者先驗感知了相關背景,而且討論的觀點和建議也是綜合了發言者多種知識和技能。因此,討論讓參與者可以很是全面,立體地理解書本知識。同時,和高手討論,他們的觀點就會像修剪機剪樹枝同樣,快速的剪掉本身知識領域裏面的疑惑點。
工程師在實踐中會掌握大量細節,可是,即便掌握了全部細節,卻沒有深入的總結和思考,也會陷入到「學而不思則罔」的境地。成長的「量變」來自於對細節的逐漸深刻地把控,而真正的「質變」來自於對「道」的更深層次的理解。
將經驗輸出,接受別人的檢驗是高層次的總結。這種輸出不只幫助了別人,對自身更是大有裨益。總結的方式有不少,包括組織分享,撰寫技術文章等等。固然「日三省吾身」也是不錯的總結方式。總之,多多總結,多多分享,善莫大焉!
解答別人的問題也是我的成長的重要手段。有時候,某個問題本身原本不太懂,可是在給別人講解的時候卻豁然開朗。因此,「誨人不倦」利人惠己。
凡事預則立,不預則廢。對於漫長的學習生涯而言,好的計劃是成功的一半。
長期規劃的實施須要毅力和決心,可是作正確的長期規劃還須要高瞻遠矚的眼界、超級敏感的神經和中大獎的運氣。對於大部分人來講,長期規劃定主要是「定方向」。但遵循以下原則可以減小犯方向性錯誤的機率:
良好的短時間規劃應該在生活、成長、績效和晉升之間取得平衡。大部分公司都會制定一個考覈週期——少則一個月,多則一年。因此不妨以考覈週期做爲短時間學習規劃週期。本質上,規劃是一個多目標優化問題,它有一系列的理論方案,這裏不一一細說。基於相關理論,我給出一個簡單易行的方案:
對於該方案,要注意如下幾點:
此外,短時間規劃還能夠從以下幾個方面進行優化:
人生是一場馬拉松,在漫長的征途中,不免有不少困惑。困惑就像枷鎖,使咱們步履蹣跚,困惑就像死鎖,讓咱們停滯不前。
接下來我將總結本身在工做中碰到和看到的一些典型困惑。這些困惑或者長期困擾做者本人,或者困擾我身邊的同事和朋友。當這些困惑被釋然以後,你們都感受如重獲釋,爲下一階段的征程提供滿滿的正能量。人生就像一場旅途,沒必要在意目的地,在意的,應該是沿途的風景,以及看風景的心情。良好的心態是技術之旅最好的伴侶。指望經過這個解惑之旅,讓你們擁有一個愉快的心情去感覺漫長的學習旅途。
必需要認可一個殘酷的現實:人的生命是有限的,知識倒是無限的。用有限的生命去學習無限的知識是不可能完成的任務。一想到此,有些工程師難免產生一些悲觀情緒。若是方法得當而且足夠勤奮,悲傷大可沒必要。
雖然,人類的總體知識體系一直在擴張。可是就不少重要的工程細分領域,基礎理論並不高深。計算機的不少重要領域,工程師有能力在有限時間內抓住核心要害。
好比,密碼學被認爲是門很是高深的學科,可是一大類密碼技術的基礎是數論中一個很是簡單的理論——素因數分解:給出兩個素數,很容易算出它們的積,然而反過來給定兩個素數的積,分解的計算量卻很是驚人。
「一致性」算得上是計算機領域裏面最經典的難題,它是全部分佈式系統的基礎,從多核多CPU到多線程,從跨機器到跨機房,無所不在,幾乎全部的計算機從業人員都在解決這個問題,可是Paxos給出了一個很優雅的解決方案。
權限管理是不少工程師的噩夢,但若是你能搞定「Attribute Based Access Control(ABAC)」和「Role-Based Access Control(RBAC)」,也能達到至關高度。
另外,技術學習是一場對抗賽,雖然學無止境,超越大部分對手就是一種勝利。因此,以正確的學習方式,長時間投入就會造成核心競爭力。
致力於在技術上有所成就的工程師,都夢想有朝一日成爲技術高手。但技術高手的標準卻存在很大的爭議。這是一個有着悠久歷史的誤解:以某種技術的掌握做爲技術高手的評判標準。我常常碰到這樣一些情景:由於掌握了某些技術,好比Spring、Kafka、Elasticsearch等,一些工程師就自封爲高手。有些工程師很是仰慕別的團隊,緣由竟是那個團隊使用了某種技術。
這種誤解的產生有幾個緣由:首先,技多不壓身,技術天然是掌握的越多越好,掌握不少技術的人天然不是菜鳥。其次,在互聯網時代來臨以前,信息獲取是很是昂貴的事情。這就致使一項技能的掌握能夠給我的甚至整個公司帶來優點地位。互聯網時代,各類框架的出現以及開源的普及快速淘汰或者下降了不少技能的價值,同時下降了不少技術的學習門檻。因此,在當前,掌握某項技能知識只能是一個短時間目標。懷揣某些技能就沾沾自喜的人須要記住:驕傲令人退步。
所謂麻雀雖小,五臟俱全。若是讓你來作造物主,設計麻雀和設計大象的複雜度並無明顯區別。一個看起來很小的業務需求,爲了達到極致,所須要的技術和能力是很是綜合和高深的。真正的高手不是拿着所掌握的技術去卡客戶需求,而是傾聽客戶的需求,給出精益求精的方案。完成客戶的需求是一場擂臺賽,真正的高手,是會見招拆招的。
在項目中學習是最快的成長方式之一,不少工程師很是享受這個過程。可是一年到頭都作項目,你多是在一家外包公司。對於一個作產品的公司,若是年頭到年尾都在作項目,要否則就是在初步創業階段,要否則就是作了大量失敗的項目,總之不算是特別理想的狀態。正常狀況,在項目之間都會有一些非項目時間。在這段時間,有些同窗會產生迷茫,成長很慢。
項目真的是越多越好嗎?答案顯然是否認的。重複的項目不會給工程師們帶來新的成長。不停的作項目,從而缺少學習新知識的時間,會致使「作而不學則殆」。真正讓工程師出類拔萃的是項目的深度,而不是不停地作項目。因此,在項目之間的空檔期,工程師們應該珍惜可貴的喘息之機,深刻思考,把項目作深,作精。
如何提升項目的深度呢?通常而言,任何項目都有一個目標,當項目完成後,目標就算基本達成了。可是,客戶真的滿意了嗎?系統的可用性、可靠性、可擴展性、可維護性已經作到極致了嗎?這幾個問題的答案永遠是否認的。因此,任何一個有價值的項目,均可以一直深挖。深挖項目,深度思考還能夠鍛鍊工程師的創造力。指望不停地作項目的人,就像一個致力於訓練更多千里馬的人是發明不出汽車的。鍛鍊創造力也不是一蹴而就的事情,須要長時間地思考。總之,工程師們應該老是以爲時間不夠用,畢竟時間是最寶貴的資源。
不少時候,一個工程師所負責系統的數量和團隊規模與其「江湖地位」正相關。可是,江湖地位與技術成長沒有必然關聯。提高技術能力的關鍵是項目深度以及客戶的挑剔程度。項目越多,在單個項目中投入的時間就越少,容易陷入膚淺。特別須要避免的是「 在其位不謀其政」的狀況。團隊越大,在管理方面須要投入的精力就越多。在管理技巧不成熟,技術眼界不夠高的前提強行負責大團隊,可能會致使我的疲於應付,團隊毫無建樹。最終「 一將無能,累死三軍」,效果可能拔苗助長。
從技術發展的角度來講,技術管理者應該關注本身所能把控的活躍項目的數量,並致力於提升活躍項目的影響力和技術深度。團隊人數要與我的管理能力、規劃能力和需求把控能力相適應。一份工做讓多我的來幹,每一個人的成長都受限。每一個人都作簡單重複的工做,對技術成長沒有任何好處。團隊管理和項目管理須要按部就班,忌「適得其反」。
有一些工程師的人生理想是作團隊裏的技術老大,這固然是一個值得稱讚的理想。但是,若是整個團隊技術能力通常,發展潛力通常,而你是技術最強者,這與其說是幸運,不如說是悲哀。這種場景被稱之爲「武大郎開店」。 團隊裏的技術頂尖高手不是不能作,但爲了可以持續成長,須要知足以下幾個條件:
不然,加入更強的技術團隊或許是更好的選擇,最少不是什麼值得驕傲的事情。
平臺化算得上是「高大上」的代名詞了,不少工程師擠破頭就爲了和「平臺化」沾點邊。然而和其餘業務需求相比,平臺化需求並無本質上的區別。不管是平臺化需求仍是普通業務需求,它的價值都來自於客戶價值。不一樣點以下:
歸根結底,平臺化就是一種普通需求。在實施平臺化以前,必定要避免下面兩個誤區:
因此平臺化的最佳實踐是:投入最少的資源,解決最多的問題。平臺解決一切,客戶不勞而獲。
常常聽到同窗們表達對基礎技術部同窗的敬仰之情,而對搞業務技術的同窗表現出很輕視,認爲存儲、消息隊列、服務治理框架(好比美團點評內部使用的OCTO)、Hadoop等才能被稱爲真正的技術。事實並不是如此,更基礎的並不必定更高深。
好比下面這個流傳好久的段子:越高級的語言就越沒有技術含量。但真是這樣嗎,就拿Java和C來講,這是徹底不一樣的兩種語言,所須要的技能徹底不一樣。C或許跟操做系統更加接近一點,和CPU、內存打交道的機會更多一點。可是爲了用好Java,程序員在面向對象、設計模式、框架技術方面必需要很是精通。Java工程師轉到C方向確實不容易,但做者也見過不少轉到Java語言的C工程師水土不服。
基礎技術和業務應用技術必然會有不一樣的關注點,沒有高低之分。之因此產生這種誤解,有兩個緣由:
對比下來,業務技術和基礎技術各有千秋。但真正的高手關注的是解決問題,全部的技術都是技能而已。
工做中開展可行性調研時有發生。作可行性調研要避免以下狀況:
可行性調研的結論應該是收益與成本的折衷,格式通常以下:
實際工做中,溝通所致使的問題層出不窮。工程師有很多是比較內向的,老是被貼上「不善溝通」的標籤。實際上,溝通能力是工程師最重要的能力之一,良好的溝通是高效工做學習的基礎,也是經過學習能夠掌握的。下面我按工程師的語言說說溝通方面的經驗。
第一類常見的問題是溝通的可靠性。從可靠性的角度來說,溝通分爲TCP模式和UDP模式。TCP模式的形象表述是:我知道你知道。UDP模式的形象表述是:但願你知道。TCP模式固然比較可靠,不過成本比較高,UDP模式成本低,可是不可靠。在溝通可靠性方面,常見錯誤有以下兩種:
第二類溝通問題是時效性問題。從時效性講,溝通分爲:同步模式和異步模式。同步溝通形象地說就是:你如今給我聽好了。異步溝通的形象表述是:記得給我作好了。在溝通時效性方面,有以下兩種常見錯誤:
有效溝通的一個重要原則是提早溝通。溝通本質是信息交流和處理,能夠把被溝通對象形象地比喻成串行信息處理的CPU。提早溝通,意味着將處理請求儘早放入處理隊列裏面。下面的例子讓不少工程師深惡痛絕:一個需求策劃了1個月,產品設計了2周。當開發工程是第一次據說該需求的時候,發現開發的時間是2天。工程師力排衆議,加班加點1周搞定。最後的結論是工程師很是不給力,不配合。就像工程師討厭相似需求同樣。要協調一個大項目,但願得到別人的配合,也須要儘早溝通。
有效溝通的另一個重點是「不要跑題」。不少看起來很接近的問題,本質上是徹底不一樣的問題。好比:一個會議的主題是「如何實施一個方案」,有人卻可能提出「是否應該實施該方案」。 「如何實施」和「是否應該實施」是徹底不一樣的兩個問題,不少看起來相關的問題實際上跑題很遠。「跑題」是致使無效溝通的重要緣由。
良好溝通的奧祕在於能掌握TCP模式和UDP模式精髓,正確判斷問題的緊急性,儘可能提早溝通,避免跑題。
有些初爲導師的工程師因爲擔憂畢業生的能力太弱,安排任務時候諄諄教誨,最後感受仍是有所顧慮,乾脆本身寫代碼。一樣的事情發生在不少剛剛管理小團隊的工程師身上。最終的結果他們:寫完全部的代碼,讓下屬無代碼可寫。「 事必躬親」固然很是糟糕,最終的每每是團隊的總體績效不高,團隊成員的成長很慢,而本身卻很累。
古人說:「用人不疑,疑人不用。」這句話並不是「放之四海而皆準」。在古代,受限於通訊技術,反饋延遲顯著,並且信息在傳遞過程當中有大量噪音,變形嚴重。在這種狀況下,若是根據短時間內收集的少許變形的信息作快速決斷,容易陷於草率。在公司裏,這句話用於選人環節更爲恰當,應該改成:錄用不疑,疑人不錄。
考慮到招聘成本,就算是在錄用層面,有時候也沒法作到。做爲一個小團隊的管理者,可以快速準確的獲取團隊成員的各類反饋信息,徹底不須要「用人不疑,疑人不用」。用人的真正理論基礎來自於「探索和利用」(Exploration and Exploitation )。不能由於下屬能作什麼就只讓他作什麼,更不能由於下屬一次失敗就不給機會。
根據經典的「探索和利用」(Exploration and Exploitation )理論,良好的用人方式應該以下:
常常看到有些同窗給本身的績效評分是100分——滿分,緣由是在過去一段時間太辛苦了,但最終的績效卻通常般。天道酬勤不錯,可是天道更酬巧。工程師們都學過數據結構,不一樣算法的時間複雜度的差距,僅僅經過更長的工做時間是難以彌補的。爲了提高工做學習效率,咱們須要注意如下幾點:
前面咱們已經講完了原則和一些困惑,那麼工程師到底應該怎麼提高本身呢?
成爲優秀的架構師是大部分初中級工程師的階段性目標。優秀的架構師每每具有七種核心能力:編程能力、調試能力、編譯部署能力、性能優化能力、業務架構能力、在線運維能力、項目管理能力和規劃能力。
這幾種能力之間的關係大概以下圖。編程能力、調試能力和編譯部署能力屬於最基礎的能力。不能精通掌握這三種能力,很難在性能優化能力和業務架構能力方面有所成就。具有了必定的性能優化能力和業務架構能力以後,才能在線運維能力和項目管理能力方面表現優越。團隊管理能力是最高能力,它對項目管理能力的依賴度更大。
對工程師而言,編程是最基礎的能力,必備技能。其本質是一個翻譯能力,將業務需求翻譯成機器能懂的語言。
提高編程能力的書籍有不少。精通面向對象和設計模式是高效編程的基礎。初級工程師應該多寫代碼、多看代碼。找高手作Code Review,也是提高編程水平的捷徑。
程序代碼是系統的靜態形式,調試的目的是經過查看程序的運行時狀態來驗證和優化系統。本質上講,工程師們經過不斷調試能夠持續強化其經過靜態代碼去預測運行狀態的能力。因此調試能力也是工程師編程能力提高的關鍵手段。很早以前有個傳說:「調試能力有多強,編程能力就有多強。」不過如今不少編輯器的功能很強大,調試能力的門檻已經大大下降。
調試能力是項目可否按時、高質量提交的關鍵。即便一個稍具複雜度的項目,大部分工程師也沒法一次性準確無誤的完成。大項目都是經過不斷地調試進行優化和糾錯的。因此調試能力是不可或缺的能力。
多寫程序,解決Bug,多請教高手是提高調試能力的重要手段。
編譯並在線上部署運行程序是系統上線的最後一個環節。隨着SOA架構的普及以及業務複雜度的增長,大部分系統只是一個完整業務的一個環節,所以,本地編譯和運行並不能徹底模擬系統在線運行。爲了快速驗證所編寫程序的正確性,編譯並在線上部署就成了必要環節。因此編譯部署能力是一個必備技能。
讓盤根錯節的衆多子系統運行起來是個不小的挑戰。得益於SOA架構的普及以及大量編譯、部署工具的發展,編譯部署的門檻已經大大下降。基於應用層進行開發的公司,已經不多有「編譯工程師」的角色了。可是對於初級工程師而言,編譯部署仍然不是一個輕鬆的事情。
衡量一個系統成功的一個重要指標是使用量。隨着使用量的增長和業務複雜度的增長,大部分系統最終都會碰到性能問題。 性能優化能力是一個綜合能力。由於:
能夠說,性能優化能力是工程師們成長過程當中各類技能開始融會貫通的一個標誌。這方面能夠參考以前的博客文章「常見性能優化策略的總結」。市場上還有不少與性能優化相關的書籍,你們能夠參考。多多閱讀開源框架中關於性能優化方面的文檔和代碼也不失爲好的提高手段。動手解決線上性能問題也是提高性能優化能力的關鍵。若是有機會,跟着高手學習,分析性能優化解決方案案例(我技術博客以前也發表了不少這方面的文章),也是快速提高性能優化能力的手段。
性能優化能力是架構師必須掌握的一種能力,說到這裏也順便給你們推薦一個架構交流學習羣:650385180,裏面會分享一些資深架構師錄製的視頻錄像:有Spring,MyBatis,Netty源碼分析,高併發、高性能、分佈式、微服務架構的原理,JVM性能優化這些成爲架構師必備的知識體系。還能領取免費的學習資源,下面的性能優化腦圖也是在羣裏獲取。相信對於已經工做和遇到技術瓶頸的碼友,在這個羣裏必定有你須要的內容。
若是說性能優化能力體現的是架構師的靜態思考能力,在線運維能力考驗的就是動態反應能力。殘酷的現實是,不管程序多麼完美,Bug永遠存在。與此同時,職位越高、責任越大,不少架構師須要負責很是重要的在線系統。對於線上故障,若是不能提早預防以及快速解決,損失可能不堪設想,因此在線運維能力是優秀架構師的必備技能。
爲了對線上故障進行快速處理,標準化的監控、上報、升級,以及基本應對機制固然很重要。經過所觀察到的現象,快速定位、緩解以及解決相關症狀也至關關鍵。這要求架構師對故障系統的業務、技術具有通盤解讀能力。解決線上故障的架構師就比如一個在參加比賽F1的車手。賽車手必需要了解自身、賽車、對手、同伴、天氣、場地等全部因素,快速決策,不斷調整。架構師必需要了解全部技術細節、業務細節、處理規範、同伴等衆多因素,快速決斷,迅速調整。
在線運維本質上是一個強化學習的過程。不少能力均可以經過看書、查資料來完成,但在線運維能力每每須要大量的實踐來提高。
工程師抱怨產品經理的故事家常便飯,抱怨最多的主要緣由來自於需求的頻繁變動。需求變動主要有兩個來源:第一個緣由是市場改變或戰略調整,第二個緣由是僞需求。對於第一個緣由,不管是工程師仍是產品經理,都只能無奈的接受。優秀的架構師應該具有減小第二種緣由所致使的需求變動的機率。
僞需求的產生有兩個緣由:
第一個緣由是需求傳遞變形。從信息論的角度來說,任何溝通都是一個編碼和解碼的過程。典型的需求從需求方到產品經理,最終到開發工程師,最少須要經歷三次編碼和解碼過程。而信息的每一次傳遞都存在一些損失並帶來一些噪音,這致使有些時候開發出來的產品徹底對不上需求。此外,需求方和產品經理在需求可行性、系統可靠性,開發成本控制方面的把控比較弱,也會致使需求變形。
第二個緣由就是需求方徹底沒有想好本身的需求。
優秀的架構師應該具有辨別真僞需求的能力。應該花時間去了解客戶的真實業務場景,具有較強的業務抽象能力,洞悉客戶的真實需求。系統的真正實施方是工程師,在明確客戶真實需求後,高明的架構師應該具有準確判斷項目對可行性、可靠性、可用性等方面的要求,並能具有成本意識。最後,因爲需求與在線系統的緊耦合關係,掌握在線系統的各類細節也是成功的業務架構的關鍵。隨着級別的提高,工程師所面對的需求會愈來愈抽象。承接抽象需求,提供抽象架構是架構師走向卓越的必經之途。
市場上有一些關於如何成爲架構師的書,你們能夠參考。可是架構能力的提高,實踐多是更重要的方式。業務架構師應該關注客戶的痛點而不是PRD文檔,應該深刻關注真實業務。掌握現存系統的大量技術和業務細節也是業務架構師的必備知識。
做爲工業時代的產物,分工合做融入在互聯網項目基因裏面。架構師也須要負責幾個重大項目才能給本身正名。以架構師角色去管理項目,業務架構能力固然是必備技能。此外,人員管理和成本控制意識也很是重要。
項目管理還意味着要有一個大心臟。重大項目涉及技術攻關、人員變更、需求更改等衆多可變因素。面臨各類變化,還要在確保目標順利達成,須要較強的抗壓能力。
人員管理須要注意的方面包括:知人善用,優化關係,簡化溝通,堅持真理。
成本控制意味着對項目進行精細化管理,須要遵循以下幾個原則:
項目管理方面的書籍不少。可是,提升業務架構能力一樣重要。積極參與大項目並觀察別人管理項目的方式也是很是重要的提高手段。
不想作CTO的工程師不是一個好的架構師。走向技術管理應該是工程師的一個主流職業規劃。團隊管理的一個核心能力就是規劃能力,這包括項目規劃和人員規劃。良好的規劃須要遵循以下原則:
市場上有不少規劃管理方面的書籍,值得閱讀。最優化理論雖然是技術書籍,但它是規劃的理論基礎,因此不妨多看看翻閱一下。從自我規劃開始,多多學習別人的規劃也是規劃能力提高的重要手段。
由於受邀去作了一個分享,做者花了一段時間去思考和彙總學習方法論,接着天天不斷地採集謠言並嘗試解惑,再根據我的經驗繪製出優秀架構師的能力模型,最後聚集成文。
文章系統性地闡述了學習原則、分析了常見困惑,並制定明確學習目標,指望對工程師們的工做學習有所幫助。須要申明的是,文章內容掛一漏萬,所謂的架構師能力模型也是做者的我的觀點。歡迎你們在評論中分享本身在學習成長方面的心得。