全棧修煉手冊:如何選擇自己的技術棧?全棧開發神兵利器

全棧修煉手冊:如何選擇自己的技術棧?全棧開發神兵利器

原文鏈接:https://github.com/frank-lam/fullstack-tutorial

前言

  • 全棧修煉手冊:如何選擇自己的技術棧?
  • 在編程的世界裡,該如何選擇自己的技術棧呢。學前端?學 APP 開發?對於 Java、C++、C#、Python、PHP 又如何選擇呢?人工智能現如今這麼火,是不是機器學習、深度學習更高級一些呢?那麼程序員又如何修煉內功呢?
  • 全棧開發神兵利器
  • 工欲善其事,必先利其器。這裡我將推薦開發過程中的提效工具、開發利器、協作工具、文檔技術等等。

一、數據結構與算法

  • 數據結構與算法

排序算法、動態規劃、遞歸、回溯法、貪心算法等

  • 海量數據處理
  • 數據處理典型案例,逐漸更新

二、Java

  • Java 基礎概念

基本概念、面向對象、關鍵字、基本數據類型與運算、字符串與數組、異常處理、Object 通用方法

  • Java 集合框架

數據結構 & 源碼分析:ArrayList、Vector、LinkedList、HashMap、ConcurrentHashMap、HashSet、LinkedHashSet and LinkedHashMap

  • Java 併發編程

線程狀態、線程機制、線程通信、J.U.C 組件、JMM、線程安全、鎖優化

  • Java I/O

磁盤操作、字節操作、字符操作、對象操作、網絡操作、NIO

  • Java 虛擬機

運行時數據區域、垃圾收集、內存分配機制、類加載機制、性能調優監控工具

  • Java 設計模式

Java 常見的 10 餘種設計模式,全 23 種設計模式逐步更新

  • Java Web

包含 Servlet & JSP、Spring、SpringMVC、Mybatis、Hibernate、Structs2 核心思想,如 IOC、AOP 等思想。SSM 更詳細請轉向:Spring | SpringMVC | MyBatis

三、Python

  • Python 語言基礎
  • Scrapy 爬蟲框架
  • Flask
  • Django

四、前端

  • HTML(5)
  • CSS(3)
  • sass、scss、stylus
  • CSS 框架
  • BootStarp、LayUI
  • JavaScript
  • 基礎語法、進階、ES6
  • JavaScript 框架
  • Vue
  • React
  • Angular
  • jQuery
  • Node
  • 常用 api、對象池、異常處理、進程通信、高併發
  • 靜態編譯
  • Flow
  • TypeScript
  • 打包工具
  • webpack
  • glup
  • rollup
  • 工具
  • npm
  • yarn

五、數據庫

  • MySQL
  • 存儲引擎、事務隔離級別、索引、主從複製
  • Redis
  • Redis 核心知識
  • MongoDB
  • 基於分佈式文件存儲的數據庫
  • SQL
  • 常用 SQL 語句

六、操作系統

  • 操作系統原理

進程管理、死鎖、內存管理、磁盤設備

  • Linux

基礎核心概念、常用命令使用

七、網絡通信

  • 計算機網絡

傳輸層、應用層(HTTP)、網絡層、網絡安全

  • RESTful API
  • 軟件架構風格、格設計原則和約束條件
  • Web網絡安全
  • web前後端漏洞分析與防禦,XSS 攻擊、CSRF 攻擊、DDoS 攻擊、SQL 注入
  • Socket 網絡編程

八、分佈式

  • Docker
  • 容器化引擎服務
  • 微服務思想
  • 服務拆分,持續集成、持續交付、持續部署
  • Kubernetes(k8s)
  • 容器化部署,管理雲平臺中多個主機上的容器化的應用
  • 雲計算
  • SaaS(軟件即服務) 、PaaS(平臺即服務) 、IaaS(基礎架構即服務)
  • Zookeeper
  • 分佈式協調服務
  • Dubbo、Thrift(RPC 框架)
  • 分佈式服務治理
  • 分佈式事務解決方案
  • ActiveMQ、Kafka、RabbitMQ
  • 分佈式消息通信
  • 熔斷,限流,降級機制
  • Redis
  • 分佈式緩存
  • Mycat
  • 數據庫路由
  • Nginx
  • 反向代理
  • Tomcat
  • Web Server 服務
  • DevOps
  • 自動化運維
  • Go
  • 併發的、帶垃圾回收的、快速編譯的語言

【說明】分佈式專題 筆者也在學習中,這裡列舉了一些技能列表,筆者將局部更新。敬請期待

九、機器學習

  • 經典機器學習算法
  • K 近鄰算法、線性迴歸、梯度下降法、邏輯迴歸、支持向量機、決策樹、集成學習
  • 基礎框架
  • Tensorflow,Scikit-learn

【說明】學習過一段時間算法,但一直未來得及整理。敬請期待

十、工具

  • Git
  • 基本概念,常見命令,速查表
  • Git 工作流
  • 集中式工作流,功能分支工作流, GitFlow 工作流,Forking 工作流,Pull Requests
  • 正則表達式
  • 常見符號含義,速查表

Learn

  • LEARN_LIST

包含閱讀清單,學習課程兩部分

  • web應用開發標準流程

Talking

本倉庫致力於成為一個全棧開發愛好者的學習指南,給初學者一個更明確的學習方向,同時也是對自己技能的強化和鞏固。在架構師這條路上,希望和大家一起成長,幫助更多的計算機愛好者能夠有一個明確的學習路徑。持續不間斷的維護本倉庫,也歡迎有更多的極客們加入。

都說好記性不如爛筆頭,定期的學習和整理必然對學習鞏固有所幫助,這裡通過索引的方式對全棧開發技術做一個系統分類,方便隨時鞏固和學習,當然還有面試。在學習這條路上難免會有很多盲點和學不完的知識。有道無術,術尚可求,掌握好思維能力才能應對千變萬化的技術。不要把大腦當成硬盤,也不要做高速運轉的 CPU,而修行自己的大腦成為一個搜索引擎,學會分析解決問題。

Since 20,May,2018

Reference

個人的能力有限,在編寫的過程中引用了諸多優秀的 GitHub 倉庫。本項目的啟發來自 @CyC2018 的學習筆記,是一個非常優秀的開源項目,在本倉庫中部分內容引用文字和圖例;引用了 @計算所的小鼠標 中對於 JCF 的源碼分析和理解;引用了 阿里面試題總結 中全部的面試題,並對面經進行了整理勘誤,並進行了知識拓展和修改;引用了 牛客網 上的面試經驗貼。也引用了知乎上的熱門回答和優秀博客的回答。在這裡特別鳴謝,我將每篇文章中做外鏈引用說明。

文中我也推薦了學習的書籍和學習課程,都將附著上最高清、最形象的配圖進行講解。在文中的配圖都來自自己繪製的、博客、Github、PDF書籍等等,這裡沒法一一感謝,謝謝你們。

推薦一些優秀的開源項目,供大家參考,reference。

Contributors

該項目還在萌芽起步階段,在編寫的過程中難免遇到錯誤和不足,你可以在 issue 中提出,或是提交你的 contribution。【開源貢獻】如何給我的倉庫貢獻?

感謝以下夥伴們對於本倉庫的貢獻,如想加入本開源項目,請聯繫筆者。

License

本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。使用者可以對本創作進行轉載、節選、混編、二次創作,但不得運用於商業目的,且使用時須進行署名,採用本創作的內容必須同樣採用本協議進行授權。


分享到:


相關文章: