律師|編程進階之路,雖無捷徑但有長短( 二 )


  • 技術路線:需要對技術追求抱有持續的興趣 , 技術既要具備深度也要具備廣度 , 大多數開發在職場初期可能都具備這種心理 , 但是隨著職場的不斷磨練和環境的影響 , 追求技術的熱情 , 也許會被磨的平淡;
  • 管理路線:技術向管理角色的轉變 , 因為互聯網的環境原因或多或少存在一定的被動因素;多數公司站在需求與成本平衡的角度 , 對于極具技術深度的人才需求并不強烈 , 技術能力較好同時具備業務和團隊的管理能力更受職場的歡迎;
  • 創業路線:在互聯網領域中機會還是比較多的 , 各行各業都在提倡互聯網+的背景下 , 如果在職場中有了足夠的能力、資源的積累 , 會有相當一部分選擇嘗試創業;
【注意】如果把技術當成解決業務的工具 , 即使對技術深度的追求不多 , 也要對技術的使用做到細致與熟練 , 對于專業范疇內的能力是不能打折的 , 遇見過少數的技術面試這樣解釋自己的綜合能力:因為追求于項目管理或者業務解決能力 , 所以欠缺技術細節方面的沉淀 。 這種思路當真是清奇 。
二、技術棧整理上面聊編程中關于選擇的熱點話題 , 這里來說具體的技術積累 , 作為一名Java編程選手 , 下面主要圍繞相關主流的技術棧與進階過程做梳理 , 大致分為基礎、進階、高級三個階段 , 受到工作經歷與經驗的影響 , 所以在劃分的時候存在諸多主觀因素 。
1、基礎篇
在衡量一個開發人員的能力時 , 通常會提到一句話:技術深度與業務高度 , 這里說的技術深度 , 至少有6-7成的因素是指基礎能力的深度 。 經常閱讀框架的實現源碼會發現 , 都是對于JDK源碼、設計模式、結構算法的排列組合 , 從而形成解決某類場景業務的組件 。

【建議】在有大量模塊化空閑時間的階段 , 把主要精力持續放在以上基礎模塊 , 是收益最大的選擇 , 這里更多指大學階段 。 編程中越是基礎原理就越復雜 , 這是普遍認可的共識 , 所以這個模塊在學習的時候對于時間成本要求較高 , 一旦進入工作階段 , 很難在抽出整體的時間細致的回顧基礎模塊 。
假設Java的集合容器模塊 , 用1-2周的時間 , 從API使用到源碼邏輯 , 分析內在的擴容機制 , 涉及的算法與數據結構 , 進而再上升到設計模式的實踐 , 流程這樣走下來對于基礎的理解就具備一定的深度了 , 也自然達到觸類旁通的效果 , 那么對于IO流與并發也就是相同的原理 。
2、進階篇
這里羅列的是當前技術選型中常用的框架與組件 , 當進入工作階段之后 , 會接觸到各種不同的開發組件 , 學會熟練使用不同的組件去解決不同類型的需求是不可缺少的能力 , 這時候對于框架原理的理解 , 完全依賴于基礎能力的積累程度 。

【說明】一下 , 最近幾年隨著對互聯網數據的重視 , 很多公司都在做數據的采集沉淀與分析 , 同時大數據領域的開源組件推出 , 已經弱化了Java工程師與大數據工程師的邊界 , 所以對于大數據技術棧的了解 , 對于管理海量的業務數據是至關重要的 , 熟悉3-2個數據存儲查詢的組件 , 會提供更開闊的技術選型思路 。
3、高級篇
當能力到達這個階段 , 基本上就是架構師級別的水準了 , 同樣的道理這個階段依賴于基礎和進階能力的沉淀 , 鑒于作者本人沒有歷經過架構師的職位 , 所以無法給到主觀的建議 , 只是對于團隊中架構師的職責做的分析 , 主要在于提供技術棧的選型和復雜業務的解決方案 , 流程自動化是分布式系統的必要支撐 。