挨踢部落故事匯(15):不斷拓新成爲科技大潮中的弄潮兒

周佳是個資深宅男,平時有時間主要是宅。比較喜歡研究心理學方面的書籍,平時喜歡看書,給大家安利一本書《超越自卑》,個體心理學大師級著作。興致來了能玩一天遊戲,經常看電影。在工作方面一直專注於服務器後端開發,目前在一家服務公司做雲計算基礎服務。

周佳Java服務端工程師

周佳·Java服務端工程師

Python語言現在十分火熱,而且很多雲計算底層服務都是使用Python做的,分享下週佳是如何從Java程序員學習Python和雲計算的心得。

從Java到Python,眼界大開

周佳在第一份工作滿2年的時候,對於公司內部的技術體系都摸透了,覺得沒有什麼提升了,就想學點新東西。那時候14年左右,大數據剛剛火起來,都在談大數據。他也看了一陣大數據的內容,無非就是Hadoop那套東西,安裝部署之外,好像感覺不能深入做一些東西。後來公司開始全面引進雲服務,移植一些本地的服務到雲服務平臺,於是周佳開始接觸到一些雲服務平臺,公司有意向作一些雲資源給用戶,這就要用到雲服務的公共API,而這些API接口是Python寫的。做爲一個Java程序員,剛開始對Python代碼有一部分是不能理解的。於是周佳開始進軍學習python語言了。

要系統的學習一門語言不能僅靠只在網絡上查找教程,雖然有些帖子某個知識點寫的非常精華,但買一本書是必要的。現在周佳還記憶猶新,當時買的書是《Python基礎教程(第2版 修訂版)》,書的內容不錯,而且配套有很多練習項目,只可惜他並沒有全部看完。大約一週的時間,他把書上的知識點全部過一遍,就開始着手項目了。

相比Java而言,Python語言是一門更高級的語言,抽象度更高。14年Java8發佈,當時周佳並沒有函數式編程的概念,學習了Python,給他打開了一扇新的大門。函數式編程抽象程度高於面向對象,而且在代碼的寫法上更簡潔,偏向於數學化。但是相對的,其可讀性不如面向對象那樣易於理解。Python的抽象程度高於Java,許多Java需要長篇大論的代碼,Python代碼只要區區幾行就能搞定。這讓周佳對Python也是愛不釋手。比如:創建一個1到100的隊列,在Java中只能循環循環賦值,而在python中range(100)就可以了。只會一門編程語言的程序員不是好程序員,當你多會幾門語言的時候,你的眼界會大大的開闊,可能不止發現了一扇門,而是發現了很多窗,解決問題的思路也就多了。

周佳後來入職的下一家公司,需要做個後端管理平臺,於是他選型Python的Django框架作爲開發平臺。有空的時候跟同事聊天,被問道當初他學習Python是怎麼入門的,花了多長時間,他說一週!其實語言之間雖然語法千差萬別,但是理念都是相通的。當初學習Java的時候,他大三學了一年都是懵逼狀態,學習第二門語言的時候,真的只用了一週時間。李連杰的電影裏有句話:學習乾坤大挪移普通人要30年,打通任督二脈者只需1個時辰,想必周佳是打通任督二脈了吧。

Python到雲計算,繼續拓新

2016年周佳入職到一家做雲計算的公司,在面試的時候,他提到有Java和Python雙重開發技能,很容易就通過了面試。到了新公司,又是一個全新的領域,雲計算是他以前是沒有接觸過的。公司雲計算平臺的底層是用Python做的,上層業務平臺使用Java寫的。當然,具體的業務平臺架構是十分複雜的,上層使用的Springcloud的微服務框架,部署於Docker容器內。使用Jenkins做持續集成開發部署。底層基於Docker和虛擬機做雲服務。剛入職的時候,他好些東西不會,硬着頭皮學,抱着大腿就不放,特別是Docker部分,之前他所在的都是一些規模小的公司,可能沒有使用Docker的必要。周佳看着教程,對着命令一遍一遍的練習,拉去鏡像,創建容器,配置網絡,掛載數據卷,反覆練習。經過不長時間,他終於從對雲計算一竅不通的門外漢變成團隊的中堅力量,不僅做上層業務平臺,還做底層基礎服務。堅持不懈的學習使他在全新技術領域有了立足之地。

然而程序猿的世界總是充斥着各種突發事件,前不久雲服務好些個容器掛載的存儲設備突然全部變成只讀設備,無法進行任何操作,在物理服務器上也無法執行相應的Docker命令,無法查詢Docker的容器信息,執行任何Docker命令都進程卡死,周佳判斷肯定是Docker的daemon進程被某些容器卡死了。如果重啓daemon能解決問題,但是這樣做,這個物理服務器上的所有Docker容器會全部死掉,恢復工作是災難性的,肯定是下下策。關鍵是找到到底是哪幾個容器把進程卡死的,於是他找到運維最近創建的幾個容器,進入容器目錄,查詢容器的Config.json配置文件,查詢容器進程的pid,將剛剛創建的容器進程全部殺掉。試了一下docker ps,果然好了,隨後他重建了這幾個Docker容器。事後周佳跟運維溝通了下,原來是由於最近運維給存儲服務更換過硬盤,更換的硬盤上的存儲設備對應的正是這個物理機上的這幾個容器,導致容器存儲設備無法掛載。

隨着IT技術的深入發展,越來越多的公司都在構建自己的雲服務,這有兩方面的意義,一個是構建自己的基礎信息平臺,提高開發運維的自動化程度,提高工作效率;第二個是可以整合物理資源,出售部分剩餘的物理資源爲公司獲取一定收入,當然做大了,還能成爲公司的主營業務。

一入猿門深似海,學海無涯苦作舟。當踏上IT這條道路,就註定走上了終身學習的道路。計算機技術飛速發展,也推動着開發者不得不拼命的學習新技術。只有不斷的更新自己的知識技能,才能成爲科技大潮中的弄潮兒。

如果你也願意分享你的故事,請加51CTO開發者QQ交流羣 312724475聯繫羣主小官,期待你的精彩故事!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章