Python:程序員的技能樹,決定了一生職業的高度
什麼是程序員?
碼農、程序猿、程序媛
使用 程序實現價值
程序=數據+算法
軟件=程序+軟件工程
程序員=工程師?
程序員金字塔
程序員知識結構
面試造火箭,工作打蚊子
會什麼是你的下限,能夠會什麼是你的上限
越底層的東西越決定上限
學習慾望
杜絕 1年工作經驗重複 N年
如果自己遇到這種問題會怎麼解決,與資料中的解決方案相比優劣如何?
別人為什麼會想到這種解決方案?
自己是由於經驗欠缺還是技能點欠缺才導致沒有想到好的解決方案?
解決這類問題的根本思路是什麼樣的?
學習能力
不是懂得多,而是學得快
知其然更要知其所以然:技術以深度優先
類比現實:對現實世界的模擬
更好地接受信息:建立自己的知識體系;閱讀並記筆記,納入知識體系
深度思考:閱讀書籍
動手實踐、頻繁練習:項目驅動型學習;主動思考
自我總結:完善知識體系;筆記、博客、分享
持續學習:逃離舒適區;學到老,活到老
如何學習新技術
如何閱讀源碼
閱讀該技術的架構文檔,瞭解其總體架構和組成
根據總體架構,將源碼文件以模塊或者上下層級進行分類。
從未閱讀過的模塊中選擇最獨立(依賴性最小)的模塊代碼讀起。
閱讀此模塊的功能介紹文檔。
閱讀此模塊的源代碼: 運行程序,斷點調試。
一邊閱讀一邊整理調用關係圖。
轉到第三步。
參考 官方文檔或者經典書籍
計算機思維
馮.諾依曼體系:程序存儲,順序執行。
二進制存儲:用比特解決問題
位運算:位運算的高效
邏輯分支:條件判斷、循環、迭代、遞歸
個人規劃
長期規劃:職業規劃;高瞻遠矚
短期規劃:具體技能、晉升、學習方面的規劃;優先級排序
基礎學科
物理:電路原理;量子計算機
數學:工程優化;線性代數;微積分
英語!!:閱讀英文文獻;計算機術語
計算機組成原理
計算機的硬件組成和運行原理
馮諾依曼體系、 摩爾定律、 阿曼達定律
數據的機器表示:原碼、補碼、反碼、浮點數/定點數
指令系統:複雜指令集、簡單指令集
存儲器:分類、緩存
CPU: 流水線、偽共享、緩存
IO設備:IO總線、DMA、中斷
計算機操作系統
屏蔽計算機硬件的中間層
作業調度: 調度策略、優先級
進程管理:進程和線程、進程間通信
存儲管理:內存、虛擬內存、文件系統、頁、頁緩存
IO管理:IO設備讀寫操作
Linux操作系統
計算機網絡
單個計算機之間的互連
TCP/IP協議棧:四層/七層
TCP連接狀態
TCP與UDP的區別
HTTP協議、RESTful規範
網絡安全
如今的互聯網:IPv6、物聯網、5G
編譯原理
將代碼轉換成機器可理解的二進制,有助於實現DSL
詞法分析、語法分析
類型檢查
運行時環境、中間代碼
代碼生成、代碼優化
數據結構和算法
程序=數據+算法
無論你在哪裡。技術的提高都是靠自己。現在是互聯網時代,即使你在深山,你依然與世界同步。