已經(jīng)學(xué)習(xí)了一段時間的Python,如果你看過之前蘇喂的文章宠哄,就知道是時候該進去【項目】階段了壹将。
但是在練手項目的選擇上,還存在疑問毛嫉?不知道要從哪種項目先下手诽俯?
蘇喂首先有兩點建議:
最好不要寫太應(yīng)用的程序練手,要思考什么更像是知識承粤,老只會寫寫爬蟲是無用的暴区,但是完全不寫也不行。
對于練手的程序辛臊,要注意簡化和抽象仙粱,但是如果簡化不得當(dāng)?shù)脑挘苋菀卓磶灼坛叹捅粦械孟率至恕?/p>
接下來就給大家介紹幾種適合新手的練手項目彻舰。
0.算法系列-排序與查找
Python寫swap很方便伐割,就一句話(a, b = b, a),于是寫基于比較的排序能短小精悍刃唤。剛上手一門新語言練算法最合適不過了隔心,還能順便刷題,利于找工作尚胞。簡單的練習(xí)济炎,讓你受益無窮。
1.編譯系列
這個系列的重點就是前面說到的簡化辐真,但是不要指望一口氣寫一個完整的C編譯器须尚,即使只針對C一個很小的子集。所以我們需要一步一步來侍咱,寫一個計算器的解釋器是很好的開始耐床,再進一步可以寫一個極簡語言的解釋器,譬如brainfuck楔脯。
再進一步你可以擴展已有的計算器解釋器撩轰,譬如加入聲明、賦值與運算昧廷、循環(huán)堪嫂、流程控制, 構(gòu)成一個簡單的LL(1)語法木柬,然后遞歸下降分析皆串,這就可以搞一個簡易同時又圖靈完備的玩具語言出來了。
2.分布式系統(tǒng)/計網(wǎng)系列
這系列的項目眉枕,第一步可以從寫一個簡單的HTTP客戶端開始恶复,原因很簡單怜森,因為HTTP大概是最簡單的應(yīng)用層協(xié)議了。然后可以考慮實現(xiàn)一個基本的ssh谤牡,你大概每天都會用ssh副硅,難道不想做一個自己的簡易版本嗎?
然后可以考慮分布式系統(tǒng)課上的經(jīng)典作業(yè)翅萤,譬如寫一個簡單的RPC恐疲。可以參考Java的RPC原理以及Google的RPC框架(有Python版)套么。
3.操作系統(tǒng)系列
操作系統(tǒng)系列培己,可以嘗試寫一個簡單的存儲管理的文件系統(tǒng)。第一步的簡化就是用一個大的空文件作為磁盤违诗,把對磁盤的讀寫抽象成對這個文件的讀寫漱凝。基本就是實現(xiàn)下inode诸迟,然后包裝成一個shell茸炒,支持下最基本的命令,新建阵苇、追加壁公、讀寫、刪除之類的操作绅项。這個練習(xí)最有趣也最有意義的地方在于多級索引的實現(xiàn)紊册,
4.周邊系列
你也可以試試Jython,IronPython之類的快耿,看看和CPython比如何囊陡。然后再試試Pypy,必然是一開始很高興掀亥,最后發(fā)現(xiàn)各種常見庫不支持撞反,最后還是轉(zhuǎn)回CPython。
做實驗的話用IPython把Python函數(shù)當(dāng)命令跑很方便搪花。
最后
想學(xué)習(xí)python的小伙伴遏片,記得關(guān)注我+私信回復(fù)【1】找到合適自己的學(xué)習(xí)方案
祝各位小伙伴前途無憂,感謝您的閱讀與關(guān)注撮竿!