不止代碼 == 摘讀

誤區

  1. 拜大牛爲師
    • 大牛很忙,不太可能單獨給你開小竈,更不可能天天都給你開 1 個小時的小竈
    • 由於第一個緣由,因此通常要找大牛,都是帶着問題去請教或者探討
    • 大牛很少,不太可能每一個團隊都有技術大牛
    • 綜合上述的幾個緣由,我認爲對於大部分人來講,要想成爲技術大牛,首先仍是要明白「主要靠本身」這個道理
  2. 業務代碼同樣很牛逼
    • 因此我認爲:業務代碼都寫很差的程序員確定沒法成爲技術大牛,但只把業務代碼寫好的程序員也還不能成爲技術大牛。
  3. 上班太忙沒時間本身學習
    • 首先咱們應該在工做中學習和提高,由於學以至用或者有實例參考,學習的效果是最好的;其次工做後學習不須要大段時間,而是要擠出時間,利用時間碎片來學習。

正確的作法

Do more
作的更多,作的比你主管安排給你的任務更多程序員

  1. 熟悉更多業務,不論是不是你負責的;熟悉更多代碼,不論是不是你寫的這樣作有不少好處,舉幾個簡單的例子:
    • 需求分析的時候更加準確,可以在需求階段就識別風險、影響、難點
    • 問題處理的時候更加快速,由於相關的業務和代碼都熟悉,可以快速的判斷問題可能的緣由並進行排查處理
    • 方案設計的時候考慮更加周全,因爲有對全局業務的理解,可以設計出更好的方案
  2. 熟悉端到端
    系統性」、「全局性」、「綜合性」這些字眼看起來比較虛,但其實都是技術大牛的必備的素質,要達到這樣的境界,必 須去熟悉更多系統、業務、代碼
  3. 自學

Do better面試

要知道這個世界上沒有完美的東西,你負責的系統和業務,總有不合理和能夠改進的地方,這些「不合理」和「可改進」的地 方,都是更高級別的怪物,打完後可以增長更多的經驗值。算法

Do exercise
光看不用效果不好數據庫

學習三步走編程

  1. learning
    這個是第一階段,看書、google、看視頻、看別人的博客均可以,但要注意一點是「系統化」,特別是一些基礎性的東西,
  2. Trying
    本身動手豐衣足食
  3. Teaching
    能掌握 70% 左右,但要真正掌握,我以爲必定要作到可以跟別人講清楚

職業發展

第一階段:大學畢業 3 到 5 年

  • 基礎的 Java 知識:你會開始看《Java 編程思想》、《Effective Java》
  • 高質量代碼進階知識:你會開始看《重構:改善既有代碼的設計》、《代碼大全》、《編程珠璣》
  • 經常使用的主流框架:
  • 系統設計與算法知識:《系統分析與設計方法》、《設計模式》、《需求分析與系統設計》、《面向對象分析與設計》、《UML 用戶指南》、《算法導論》
  • 其餘知識:好比數據庫調優、緩存框架、NoSQL 數據庫、日誌框架等等

第二階段:大學畢業 5 到 10 年

其實,年齡並非問題的真正緣由。真正的緣由仍是在於自身「競爭力」是否符合這個年齡所應該具有的設計模式

  • 能對所負責領域的業務特色、發展趨勢、友商競爭分析
  • 服務於特定領域的客戶,咱們須要能瞭解咱們的客戶企業架構、業務知識。要了解清楚規劃的產品、服務
  • 做爲 TL, 是否有必要能將本身對於市場的洞察轉換成業務規劃,並能向本身的老闆(或者投資人)說清楚、講明白
  • 得到老闆支持後,就須要開始帶着兄弟們幹活了
  • 作完業務設計後,開始要帶着團隊作技術方案設計、接口設計以及編碼實現等。
  • 你還經歷過什麼有挑戰的業務、技術、產品、平臺等方面的成功與失敗經驗

什麼是架構師

  • 組織業務, 業務領域的知識,構建自身看待業務的」世界觀」。
  • 組織技術, 架構師須要選用合適的框架、中間件、編程語言、網絡協議等技術工具, 造成一套軟件系統方案
  • 組織人員, 肯定人員的協做方式
  • 組織全局,對外輸出, 架構師的首要目標是解決業務問題,推進業務增加

面試

面試要作的事

  • 問已經發生的事情
  • 問題解決思路
  • 少問多聽

鑑別方式人員的方式

  • 更多的關心 What/How/Why
    招聘的人中有一種人是比較好的,他總能比較清楚的記住過往項目當中的重點
  • 細節!細節!細節!
    不少關鍵節點的細節很重要,好比網絡庫的優化。

推書

《程序員修煉之道 - 從小工到專家》
《設計模式之禪》
《從優秀到卓越》
《爲何精英都是時間控》
《創新者的窘境》
《魔鬼經濟學》
《創造天然》
《浮生六記》緩存

相關文章
相關標籤/搜索