困境
linux系統(tǒng)實在是過于重要,起碼對于android程序員來說,它是非常重要的敦姻。基本你深入到每個技術的底層歧杏,要理解它就逃不開要理解linux系統(tǒng)的知識镰惦。
它就像終極boss一樣,不管你走哪條路犬绒,要走到頭就要經過它的考驗旺入。
但是它又實在是非常的龐大,你很難用幾個月的時間,啃上一兩本書茵瘾,敲上幾行代碼就理解它礼华,熟悉它。那么你就得準備好和它長期相處拗秘,既不能逃避它圣絮,也不能讓它阻擋你正常的學習、使用的腳步聘殖。
我們需要一種這樣相處的辦法晨雳。
反思
不管是從哪個語言開始接觸的編程行瑞,我們熟悉這個語言的工作機制奸腺,熟悉它的函數(shù)和類庫,熟悉它常用的框架以及軟件架構血久,都是循序漸進的突照。甚至可能我們在用它做了很多項目,解決了很多問題之后氧吐,對它的了解僅僅是有限的一部分讹蘑。但是我們覺得我們已經掌握它了,并不會覺得有任何的技術障礙筑舅。這是為什么呢座慰?
根本上,還是因為我們能夠有一套成熟的上述辦法翠拣,讓我們可以與它和平相處版仔。
這套辦法涵蓋了:
- 運行和調試方法
- 文檔和源碼閱讀方法
- 便捷可靠的IDE,提供代碼提示误墓、跳轉蛮粮、查找等功能,使人從記憶任務中解脫出來
- 清晰的知識地圖谜慌,讓我們知道自己在干什么然想,有哪些東西可用
- 成熟的社區(qū)和豐富的資料、開源庫等
- 工程化工具欣范,讓我們可以方便地管理变泄、編譯、集成恼琼、發(fā)布軟件妨蛹。
然后我們就可以將一個龐大的知識庫,拆分成一小部分一小部分驳癌,慢慢學習滑燃、吸收。而未知的部分颓鲜,不會阻礙我們使用它表窘,我們可以在需要時典予,再去研究它,快速上手乐严。
問題
那為什么到了linux系統(tǒng)這里瘤袖,一切就變得復雜了呢?
因為我們要學的東西更加生僻了昂验,我們要研究的知識更加底層了捂敌。我們要處理的源碼更加龐大了,我們要掌握的概念和要解決的問題更加復雜了既琴。
這讓我們運行和調試更加困難吁峻,編碼和編譯更加困難,集成和發(fā)布更加困難趾痘,理解和熟悉更加困難蜀肘。
正因如此,我們更加要掌握以上提到的6個基本功磺箕,扎實地理解掌握奖慌,才能掌握linux系統(tǒng)的學習、使用方法松靡。
解
- 運行和調試方法
- 文檔和源碼閱讀方法
- 便捷可靠的IDE简僧,提供代碼提示、跳轉等功能雕欺,使人從記憶任務中解脫出來
- 清晰的知識地圖岛马,讓我們知道自己在用什么,有哪些東西可用
- 成熟的社區(qū)和豐富幫助資料
- 工程化工具阅茶,讓我們可以方便地管理蛛枚、編譯、集成脸哀、發(fā)布軟件蹦浦。
拆分學習
我們說了,在有了一套解決辦法之后撞蜂,我們就能夠逐步拆分式學習linux系統(tǒng)了盲镶。這個拆分也有通用的辦法。
提出知識點(概念)
細化概念
了解它要解決需求蝌诡,提出的辦法溉贿。源碼對照
針對細化過的概念,對照源碼學習實現(xiàn)原理浦旱。包括宇色,功能-函數(shù)對照,機制-流程對照,使用方式-文檔對照等宣蠕。驗證
通過案例和實驗例隆,驗證概念和知識。總結&記錄
對學習的概念進行適當?shù)难由烨朗础⑹崂矶撇恪⒖偨Y,形成知識體系皿曲,并輸出到文檔唱逢。