如何成為Linux 全棧工程師
轉載至傳智播客C++學院-虛竹
成為全棧式系統程式設計師
學習態度
* 謙虛* 嚴謹
* 勤思* 善問
學習方法
只聽不練肯定學不會Linux,每個知識點都需要去動手實踐才能快速掌握python程式設計
第 1 章
什麼是全棧工程師
全棧工程師,也叫全端工程師,英文Full Stack developer。是指掌握多種技能,並能
利用多種技能獨立完成產品的人。
第 2 章
全棧工程師能幹什麼
2.1 全域性性思維
現代專案的開發,需要掌握多種技術。網際網路專案,需要用到:
* 產品設計– ai
– CorelDRAW
* 介面設計– ui
– photoshop
* 前端開發移動優先– IOS App (Objective-C/C++)– Android App (Java/C++)– Hybrid App (混合模式移動應用)– 移動web (Html5/JavaScript)
* web前端語言– html5– JavaScript– Css3
* 作業系統– Linux– Unix
* Web伺服器– Nginx– Apache
* 快取伺服器– Memcached– Redis
* 後端業務伺服器– python– c/c++– php– java– node.js– Erlang
* 資料庫– MySQL
– Mongo DB
* 檔案系統– FastDFS(淘寶)– GFS(Google File System)
* 微信公眾號– 微信互動– 微信支付
* restFul API設計
所以說一個現代化的專案,是一個非常複雜的構成,我們需要一個人來掌控全域性,他不需要
是各種技術的資深專家,但他需要熟悉到各種技術。對於一個團隊特別是網際網路企業來說,
有一個全域性性思維的人非常非常重要。
2.2 溝通成本
專案越大,溝通成本越高,做過專案管理的都知道,專案中的人力是1+1<2的,人越多
效率越低。因為溝通是需要成本的,不同技術的人各說各話,前端和後端是一定會掐架的。
而全棧工程師的成本幾乎為零,因為各種技術都懂,胸有成竹,自己就全做了。即使是
在團隊協作中,與不同技術人員的溝通也會容易得多,讓一個後端和一個前端去溝通,那完
全是雞同鴨講,更不用說設計師與後端了。但如果有一個人懂產品懂設計懂前端懂後端,那
溝通的結果顯然不一樣,因為他們講的,彼此都能聽得懂。
2.3 創業公司
對於創業公司來說,全棧工程師的價值是非常大的,創業公司不可能像大公司一樣,各
方面的人才都有。所以需要一個多面手,各種活都能一肩挑,獨擋多面的萬金油。對於創業
公司,不可能說DBA,前端,後端,客戶端各種人才全都備齊了,很多工作請人又不飽和,不請
人又沒法做,外包又不放心質量,所以全棧工程師是省錢的一妙招。
雖然說全棧工程師工資會比一般的工程師會高很多,但綜合下來,成本會低很多。
第 3 章
如何成為全棧工程師
3.1 語言基本功
3.1.1 C
* 現代的所有語言都借鑑了C語言或LISP語言
* 培養了程式設計師嚴謹的程式設計邏輯
* 本質,讓你知其然並知其所已然
3.1.2 C++
* 培養了面向物件程式設計的思維
* 最強大最複雜的程式語言,會當凌絕頂,一覽眾山小
* 高效能,高穩定性
3.1.3 Python
* 解決一個問題,C實現100行,Java實現50行,Python實現20行
* 萬能膠水,什麼都能幹,什麼都能粘合進來
* 語法簡潔,易學
* 有C和C++背景的程式設計師輕鬆駕馭Python
3.1.4 JavaScript
* Html中的預設的程式語言
* Hybrid混合程式設計的派頭兵
* JQuery
* AngularJS
* Ionic
3.1.5 SQL
* MySQL
* Mongo DB
3.1.6 Html5
* 各種標籤
* Phonegap
* Cordova
3.1.7 Css3
* BootStrap
* MUI
3.2 演算法基本功
3.2.1 資料結構
* 把具體問題抽象化成結構體或類
3.2.2 排序演算法
* 氣泡排序
* 插入排序
* 歸併排序
* 快速排序
* 雜湊排序
3.2.3 連結串列
* 增刪改查
* 逆序
* 樹轉連結串列
* 連結串列轉樹
3.2.4 二叉樹
* 搜尋二叉樹
* 平衡二叉樹-紅黑樹
3.2.5 圖
* 深度優先搜尋
* 廣度優先搜尋
* 海量資料探勘
3.3 作業系統Linux基本功
* 基本命令操作
* 開發環境Vim/gcc/gdb/Makefile
* 檔案IO
* 檔案系統
* 程序
* 程序間通訊
* 訊號
* 執行緒
* 執行緒間同步
* 網路協議
* socket程式設計
* 高併發伺服器
* 開源伺服器框架
* 伺服器阿里雲部署實施
3.4 資料庫基本功
* SQL基本語句
* 表的設計與優化
* 資料庫的備份部署和實施
* 資料庫快取優化
3.5 Hacker精神和能力
* 熱愛程式設計,不單純是為了搞門技術混口飯吃
* 快速學習能力
* 高強度抗壓能力
* Google解決問題能力
* 健康的體魄
第 4 章
全棧式開發一個專案
4.1 python能幹什麼?
* 圖形化開發
* 系統指令碼
* web伺服器
* 網路爬蟲
* 伺服器叢集自動化運維