python 是去年四月開始到去年九月利用課余時間自學的。因為在平時工作中鮮有用途,因此之后幾乎再沒更新過了。
之前寫過大約十篇左右淺顯的筆記,大部分也是從廖雪峰那里自學后記述的。都放在為知上。現在準備搬到簡書上來,也當重溫一遍吧。
圖靈叢書里面的python那本還是不錯的,很多基礎的語法還是從那里面看下來的。
個人看法
python是一門較為友好的語言,比起objective c要簡單的多。因為有許許多多的第三方庫作支持,在我們熟悉基礎語法的情況下,python作為膠水可以做很多跨語言,跨平臺的實現。
實踐
自學期間從一開始熱情滿滿,到之后覺得python就目前的工作而言,無用武之地,頗有些心灰意冷。
公司在職期間,用到python的也就3次
-
在windows平臺導出了一個.exe 用來作控制臺,對于那時候比較多的設備端調試,要用到諸如
PC端下載工具
、設備管理器
,常用文件夾
,筆記文檔
,支付相關文檔
之類的很多文件夾。相比起Mac端有Alfred這樣的神器而言,windows端實在是乏善可陳。
具體用到的第三方庫和類我已經記不大清了,之后的筆記中會有補完。- 實現方式:在本地磁盤的某路徑下創(chuàng)建一個excel文檔(python有專門的創(chuàng)建/讀寫excel的庫),對上述的特定文件/文件夾/.exe路徑作相應的保存。通過python自帶的庫打開對應路徑的文件。
- 頁面布局。python沒有像MFC或我們iOS/Android下的控件拖曳(貌似也有,當時我還沒找到?),直接通過代碼來繪制GUI.
- 打包和導出成應用。python的源碼運行是可以跨平臺的,但是我們想封裝成對應的可執(zhí)行文件,
(windows下的.exe, Mac下的.app)
需要專門的py庫,執(zhí)行起來是有一定繁瑣的。 - 最后使用應用的感受:一個c++/MFC的簡單應用生成出來也許只要幾百KB的東西,python打包出來需要20多M。原因還是在于C/C++是接近底層的語言。而python需要經過一層解釋器轉化成C,所以打包的時候大部分的大小都在這個依賴庫中去實現。由于當時寫這些應用更多的是為了熟悉python練手,真正應用生產當初還是會使用MFC作為首選。
另一個應用是SN號的生成和轉化。在POS的數據傳輸過程中,經常會用到數據值之間的轉化
(ascii轉hex, 轉string等等)
,當時簡單的做了一個exe應用用來將連接USB后得到的SN號進行數據類型轉化并輸出,提升工作效率。這里不作贅述。最后一項還蠻意外的,就是兩個月前發(fā)生的。公司的藍牙回聯測試,老外發(fā)了一份.py過來,說國外客戶那邊通過這個執(zhí)行文件可以繞過bluetooth 2.0配對,直接通過mac地址去回聯設備。因為我那一陣子經常得瑟穿著一件 python 的T恤,領導直接將代碼和工程丟給我,讓我去搭建環(huán)境。一下子懵逼了,幾乎快一年沒有碰python,很多基礎語法全部忘光,還要在一臺老掉牙的windows設備上,一個晚上搭建開發(fā)環(huán)境,復現問題。我?guī)缀跏且宦防浜拱聪氯プ龀鰜淼摹_€好,最后結果還不壞(沒讓我去深入研究python的工程代碼已經算萬幸)
感慨
- python在國外非常流行。我的很多國外的同學,都對此有所耳聞,甚至已經成了python的票友,在科研甚至工作中用上了python。用他們的話說,在這個全民摳腚(coding)的時代,python這條大蟒蛇還是具備這個讓編程日趨平民化的魅力和條件的。
- 然而在國內,大約是北上廣這些地方python的工資很高,也很流行。相對于已經開始走下坡路的iOS/Android應用開發(fā),python仍然乘著前端興起的浪潮大行其道。可是在福州,python仍是一門諱莫如深的語言,像swift一樣被企業(yè)束之高閣。我曾聽同事提起到他在上家公司的遭遇:
他的一位前同事將部分服務端代碼改為python,被領導劈頭蓋臉大罵,言之鑿鑿的說到別人已經用其他語言寫好了(抱歉,前端的情況我并不很了解,復述時不免出現偏差),你為甚么還要重寫一遍?等你走了,誰還會改這個代碼?
非常現實的問題擺在面前。大多數程序員都是價格導向的。雖然我們需要也推崇鉆研和匠人精神,只是腳踏實地的生活著,任何一個人能在沒有氛圍和環(huán)境的情況下去學習一門暫時還用不上的語言嗎。
最后
整理python的筆記,也是為了讓東西不要放在本機而是存在網絡上相對安全。不過就目前而言,學習python的意義遠沒有學習js的動力來的大。
碼代碼是一門手藝活,也需要有原動力來攛掇。
如是。