學習Python兩年,我的人生軌跡發生了怎樣的變化?

雲棲號資訊:【點擊查看更多行業資訊
在這裏您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

image

學習Python的經歷教會了我很多東西,可以說,它深深地改變了我的人生軌跡。這段學習經歷告訴我:關注自己能掌握的東西,通過開源站在巨人的肩膀上,一個人可以通過小預算,或是零預算的項目產生很多價值,大項目也會在不久之後道路。

我既不是成功學的教練,也不是專業的開發人員,我在自己的環境中取得成功的方法可能對你來說並不合適。但是,我曾幫助許多同事開始他們的編碼之旅,並且這樣的模式都獲得了成功,希望這個模式也可以幫助各位讀者入門。

夢想

我總是會被科技吸引,早年記憶之一就是擺弄一臺舊收音機,拆開、檢查電路、再重新組裝。十幾歲的時候,我迷上了遊戲機和電腦。我一直熱衷於學習編程,但是大多數嘗試都限於重複教程。

上大學時,我寫了許多小應用程序,但它從來沒有真正成爲一種習慣。大學一畢業我就被聘爲金融經濟估值分析師。但我的夢想是寫代碼,成爲一名開發人員,用技術解決問題。我希望把這個想法告訴經理和同事,得到正式的授權後繼續代碼之旅。

image

這聽起來像是妄想,如果無法證明我能夠成功,人們怎麼會相信我呢?更何況寫代碼並不是我被僱傭的原因。

大任務果然從來沒有來過,我的第一份工作已經過了三年了。我一直在收聽技術會議的廣播,閱讀相關博客,看看蓬勃發展的開源社區發展出了怎樣了不起的產品。我想成爲開發者的願望越發強烈,但情況並沒有改變。

不能說第一份工作毫無價值,我學到了很多關於金融建模和經濟框架的知識,但是在內心深處,我渴望的是硅谷的技術。只是等待完美的任務落到自己身上是一個美好的夢想,但這不太可能,也不受自己的控制。

旅程開始

大學時,我選擇了具有C#基礎的.NET框架作爲技術棧。直到今天,我仍然喜歡c#語言的優雅和表現力。然而在工作中,我那時的主要任務是處理數據。.Net庫並不太適合處理數據科學問題。所以我把注意力轉向了Python。

我接受了一個挑戰:在空閒時間裏無理由地連續寫100天Python代碼。有的日子會很愉快,我一連幾個小時都停不下來,有的日子就很懶,只寫幾行。但我最終堅持了下來,在100天后,我在想自己的下一步是什麼。

當時在工作中遇到一個任務,需要反覆執行一些財務報告的數據驗證。一開始這個任務挺有趣的,但是第五次之後,我厭倦了一次又一次在Excel中創建10個數據透視表。那時,我迫切地想把新掌握的Python技能付諸實踐。

image

具有Pandas包的Python提供了Excel所能提供的所有數據處理功能。Excel提供了對每個單元格的控制,而通過Pandas可以操作列向量。假設將兩列相加,在Excel中需要在第一行定義一個公式,然後向下拖動。

而對於Pandas,需要引用的量是列名——在後臺操作一次性應用到整個列。一旦產生更多的行,不需要調整邏輯,只需要一行代碼就可以實現兩行的相加。

這個功能非常適合我的任務,我執行的大多數檢查都是簡單的聚合比較。或許你會覺得我在100天的練習後已經準備好了,然而這練習並沒有教會我如何解決問題。遵循教程是一回事,將問題轉化爲可管理的步驟又是另一回事。

我一步一步地瀏覽博客和StackOverflow之類的問題,知道我能將需要解決的問題轉化爲代碼。雖然速度並不快,但我還是完成了檢查任務的自動化。手動執行的檢查驗證被我轉化成了幾秒鐘的代碼運行。

學習教程是一個很好的起點。然而,要正確地學習一門編程語言,必須找到自己的問題並解決它。

分享,學習,幫助

第一次的成功給了我動力。那時團隊中沒有人在工作中使用Python。大多數人都知道Excel VBA,PowerQuery和Access。我對Python介紹引起了很多人的興趣,他們認爲Python易於理解,很多同事也受到了學習這門語言的啓發。雖然我還是個初學者,但是突然就變成了一個可以給人建議,幫人起步的人了。

這也就帶來了全新的問題。通過與同事的討論,併合作實現許多想法,我學到了很多關於Python的知識,也有了一些很好的實踐經驗。與團隊合作解決複雜的問題,促使我在版本控制、單元測試和持續集成/持續部署方面擴展了自己的視野。

展示自己的產品,你身邊的人可能會面臨類似的挑戰。在最壞的情況下,身邊的人可能並不會感興趣,但是即使如此,展示也不會讓你失去任何東西。在最好的情況下,身邊的人會促進工作,也會給你提出新的問題,提高你的技術。

image

接受新的挑戰

從那之後,我們面臨的挑戰也越來越大。意外之下,一個遺留的財務應用程序沒法使用了,我們的部門曾經依靠這個程序來發布財務結果。

接受Python的挑戰原本只是想想而已,但現在卻成了必然選擇我被要求組建一個團隊並領導一個相關Python程序的開發,時限兩個月。意料之中,我們這個小團隊按時完成了這個任務。

這個挑戰非常傷腦筋,但並非不可解決。我如果只是一直妄想獲得一個這樣大任務的機會,當這個機會真正來臨時我也會悲慘的失敗。而我選擇了慢慢地提高我和團隊的技能,這使我們逐漸走向成功。

後來的事情便不再受我控制。由於這個項目開發的成就,我獲得了第一次晉升和加薪。一年之內,我找到了一份新的工作。我現在負責一個擁有金融功能的數據集成。我使用最先進的數據平臺和分佈式,解決了一些在幾年前無法想象的問題。

從細微之處開始提升,當更大的挑戰來臨時,就能夠做好準備,成就也會隨之而來。

image

學習Python是一段艱難的旅程。開源社區創造了許多神奇的工具,和培訓的材料,也爲衆多問題提供了答案,它是我學習之路上的最大幫手。在過去幾年中,我一直從這些內容中獲益。而如今,我有能力去在技術上幫助別人了,有更多的事情等着我去完成。

【雲棲號在線課堂】每天都有產品技術專家分享!
課程地址:https://yqh.aliyun.com/live

立即加入社羣,與專家面對面,及時瞭解課程最新動態!
【雲棲號在線課堂 社羣】https://c.tb.cn/F3.Z8gvnK

原文發佈時間:2020-07-09
本文作者:讀芯術
本文來自:“讀芯術公衆號”,瞭解相關信息可以關注“讀芯術

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