十年鏟碼,八大體系超千篇數百萬字技術筆記系列彙總(GitBook 悅享版)

十年鏟碼,八大體系超千篇數百萬字技術筆記系列彙總(GitBook 悅享版)

十年鏟碼兩茫茫,縱思量,卻易忘;不覺筆者步入程序員已有十年。十年裏一直浮沉沉沉沉,愈深入,愈覺得世界之大,宇宙浩瀚。十年之期,正巧筆者從阿里離開,重回 3D 打印製造業的懷抱,希望能依託於設備優勢逐步、真正構建分佈式製造網絡。十年裏,筆者從最初的自我摸索、摔爬滾打,到進入華爲、阿里這樣的大廠,不斷地完善對於完整的技術世界觀的理解,並且嘗試對於自我產品意識的啓蒙。

十年裏,學的也很多,忘的也很多,如今發現自己還是在許多技術的門檻處徘徊。從小愚鈍,只能以筆代記,以勤補茁。洋洋灑灑百萬字,數十萬行垃圾代碼,也是筆者存在過的痕跡。同時也是藉此文對過去幾年裏的 TL(@Henry https://github.com/mjolnirjs)和小夥伴表示感謝,讓我不斷地體悟什麼是以客戶/用戶爲中心,將技術產品化,慢慢褪去過去的純技術導向的思維。人生有幸,與有趣的人,做有趣的事,下一個三年,依舊江湖再見。

文章指北

在這個知識大爆發的時代,筆者所見許多人面臨的問題不再是知識的匱乏,也不是缺乏學習的動力、毅力或激情,而是在浩湯洪流之中迷失了方向,也無足夠的承載知識的容器,終致學的越多,忘的越多,竹籃打水一場空。某熊的技術之路系列文章/書籍/視頻/代碼即是筆者爲自己構建的知識圍欄,也是筆者蹣跚行進於這條路上的點滴印記,包含了筆者作爲程序員的技術視野、知識管理與職業規劃,致力於提升開發者的學習效率與實際研發效能。

目前筆者已有數十倉庫千篇文章百萬字,你可以在某熊的技術之路指北 ☯查閱詳細的導航。可以前往 Awesome Lists 或者 Awesome-CS-Books 查閱分門別類的資料與書籍,抑或前往 Awesome MindMaps 查閱完整的知識體系、脈絡與要點的腦圖,或者 Awesome RoadMaps 瞭解不同技術領域的進階指南。最後,你還可以前往 Awesome Interviews 做最後面試前的準備,或者用常見的技術面試題去檢驗自己學習的結果。

您可以通過以下導航來在 Gitbook 中閱讀筆者的系列文章,涵蓋了技術資料歸納、編程語言與理論、Web 與大前端、服務端開發與基礎架構、雲計算與大數據、數據科學與人工智能、產品設計等多個領域:

此外,你還可前往 xCompass 交互式地檢索、查找需要的文章/鏈接/書籍/課程;或者在 MATRIX 文章與代碼索引矩陣中查看文章與項目源代碼等更詳細的目錄導航信息。最後,你也可以關注微信公衆號:『某熊的技術之路』以獲取最新資訊。

Awesome MindMaps

Awesome ITCS MindMaps 是筆者所有系列文章、代碼、項目中的知識系統的腦圖形式的總結:

  • 知識脈絡

知識脈絡

  • 知識要點

知識要點

Awesome RoadMaps

當我們站在技術之路的原點,未來可能充滿了迷茫,也存在着很多不同的可能;我們可能成爲 Web/(大)前端/終端工程師、服務端架構工程師、測試/運維/安全工程師等質量保障、可用性保障相關的工程師、大數據/雲計算/虛擬化工程師、算法工程師、產品經理等等某個或者某幾個角色。在這個知識爆炸與終身學習/碎片化學習爲主的時代,我們面臨的問題之一就是如何進行有效學習,不僅能有效平衡廣度與深度,並且能真正的積澱下來,提升自己的研發效能。於筆者而言,常常鬱結於胸的就是以下三個問題:

  • 應該學習什麼?這是怎樣的一個技術世界?存在着怎樣的高峯與路徑?
  • 如何克服遺忘帶來的無效學習?
  • 如何不再碎片化地學習?

究其根本,也就是需要拓展自己的知識廣度,精進自己的知識深度,錘鍊自己的編程能力。所謂知識廣度,即是爲實際問題選擇合適的解決方案的能力,廣義來說也是眼界與格局的表現。它並不拘泥於某個技術方向或者行業領域,而需要對傳統/流行的各類語言、工具、框架、庫、服務等有一定的認識;能夠明晰各個方案的優劣,並在較高的層次(High Level)描述相關原理。知識廣度的拓展與保持需要建立在龐大的閱讀量與知識沉澱能力上。在能力模型一節中,我們從業務、團隊、技術這三個維度,對技術人員的五個層次進行了梳理:

Awesome Lists 就爲我們準備了精而全的技術開發學習與實踐資料索引,去蕪存菁,去重留一;譬如其中的 Awesome WebSites 一文就爲我們推薦了值得閱讀的資訊、博客等站點列表。知識廣度的拓展也並非一蹴而就之事,需得循序漸進,從初窺門徑,到登堂入室,最後融會貫通,當我們感覺亂花漸欲迷人眼,太多的碎片化知識反而使自己迷失方向之際,就可以前往 Awesome CS Books Warehouse,去深入地閱讀學習各個領域的精選書籍、課程等系統化的內容。

俗話說,好記性不如爛筆頭,當我們閱讀的多了,自然也要開始記錄;而筆者認爲記錄的開始就要有自己的知識體系。在自己的知識體系下隨看隨記、定期整理。唯有建立符合自己認知方式的知識圖譜,纔能有效地沉澱知識,明晰知識邊界並進行不斷地探索。上車伊始,筆者即致力於構建自己的 Awesome MindMaps,提供了軟件工程通用、前端、後端、DevOps、測試、架構師、人工智能工程師等多領域的知識圖譜、學習成長路線與面試必備內容,並在數年來不斷維護與刷新。

筆者目前選擇的是以 MarkDown 格式記錄,並且將所有的筆記存放於 Github-文檔札記以 Git 方式進行版本管理;編輯器是直接使用的 VSCode,移動端編輯的話也是用的 GitGo/WorkCopy 這樣的 Git 應用。這些筆記即是筆者自身技術視野與認知的外化,也類比於外設之於內存,在需要的時候分頁加載到腦海中使用,以應對這知識爆炸的時代。其中的典型代表,Awesome CheatSheets,對於日常開發中用到的相關知識的備忘錄/清單進行總結, 適合快速掌握或者回顧某個語言/框架/工具的語法或使用要點。Tech Road, 我的技術之路是對於筆者多年學習與認知變遷的總結。

先賢有云,知行合一,知是行之始,行是知之成,Linus Torvalds 也曾提到: 'Talk is cheap. Show me the code.',在閱讀與筆記之後,就是要開始實踐編碼。所謂編程能力,並不僅僅是編寫代碼(Write Code)的能力,而是包含了閱讀、編寫、理解、重構、抽象等多個方面,是所謂的代碼管理/掌控。其外在表現之一即是能夠隨時隨地用合適的語言無阻塞地實現某些功能需求,對於常見的語法,接口,算法,設計模式等能夠做到心隨意動,信手拈來。編程能力是提升研發效能的重要保障,於筆者而言也是畢生應該追求的目標與愛好之一。筆者的編程能力較弱,日常開發,特別是在多語言多框架並用的場景下,往往會需要不斷地中斷,查找以繼續工作,也是令我頗爲苦惱。Coding Snippets 系列倉庫,即是對筆者在編程語言、前後端編碼過程中常用的模板、模式等代碼片、工具庫的匯聚。

前文重在討論如何拓寬技術視野、追尋技術的廣度,但是需要銘記的是,技術深度纔是技術廣度的基石,正如中國自古以來常用道術之辯,知其然,也要知其所以然;亦如 Richard Feynman 所述:”What I cannot create, I do not understand.”。所謂知識深度,即是能夠對某個方面做到深入瞭解,並且達到融會貫通,洞若觀火,可以隨心所欲地加以擴展、優化、創新等改造或變換。這方面則更加的見仁見智,不同的領域與方向對於深度的定義與挖掘方向也是千差萬別。Reinvent Wheels 系列倉庫即是筆者在前後端到基礎架構中重造的輪子的彙總。

我們需要自己去從零開始造些輪子,才能深刻理解使用的框架/庫/平臺的內部原理,才能在碰到故障時快速地修復;在下文的幾乎每個章節中,我們都會提到某些筆者自造的輪子。筆者目前將所有的文檔歸類到了不同的系列中,每個系列又分爲 篇-章-節-小節 這樣的層次結構。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章