重新學習 python
查看在此處留下的記錄,去年 7月份第 n 次試圖學 javascript,當時課程進行到中半段就不繼地放棄綴學,大約卡在 DOM 之後 javascript 與伺服器後端( Node.js 的許多物件指令)的串接,仍有許多疑惑( object, function recursion 之類)便不了了之。
一兩個月前在 Udemy 看到 Angela Yu 新開了《100 Days of Code – The Complete Python Pro Bootcamp》立馬報名。幾年前曾經上過同一位講師的《The Complete Web Development Bootcamp 》,覺得很是受用,蠻喜歡她講解的方式,可惜她其它課程 (iOS App 開發)沒 apple 硬體可支援,故聽到她新開發 python 課程讓我充滿期待。
老實說,我覺得自己 python 程度要比 javascript 好多了(?? 其實是差不多初級者的爛),原因是前者代碼的簡潔,開發應用概念與物件導向規則階層後者要清晰許多(尤其後者的函數參數是另一個函數,然後又要用=>簡化,自己看得亂七八糟O#@#%)。
這門課程宣稱在一百天內讓新手變專家,透過由易到難鑽研各式習題與小專案,終極目標是讓學習者至少具備 python 中等程度 。但就算每天扣除休息睡覺其它的時間都用來學習代碼,我覺得也很難只花一百天的時間消化完成這門課。自己目前大約上到 Day 20 左右,但這陣子重新接觸 python 習作以來,漸漸了解自己欠缺的不是對於程式代碼資料型態功能、參數作用、物件導向...的熟悉,而是分析、拆解大問題 break-down 成小問題,再加以重組、歸位大問題、不同切入思考優化解法等等的能力。
為了補足這些差距,試著再另外學習 turtle、pygame 、pandas 等 python packages 想多接觸小型專案或題型挑戰。不能說這個過程很有趣(因為常常碰壁好幾天還想不出解法),其實”早年”自己蠻討厭什麼透過遊戲設計學程式的作法,理直氣壯地以為學代碼就是要把成果應用在實務的正經用途,作什麼小遊戲程式真是浪費XDXD 。繞了許多彎路迴圈,才發覺現在偶而脫離電腦螢幕,用腦袋放空地想想解不開的問題能否從其它角度思考拆解,較之於苦惱生命存在的哲學困境,單純面對 if/ else/ for /while 的邏輯課題的確是一種踏實的小確幸,而遊戲設計本身即包含了這些數學、邏輯與流程模式。
最後,補充所使用的開發環境。如果代碼很簡單,就直接利用 replit 在瀏覽器 IDE,其免費版有 500mb 儲量對新手已經完全足夠,我還蠻愛 replit 的方便並心動其支援眾多程式語言看起來很厲害。如果需要的套件包 (packages) replit 無法支援安裝或連線執行的速度太慢,就回到本地電腦。雖然不少人推薦安裝 pycharm 為最佳 python 桌面開發軟體,但我用原本學 html/css/ js 時即安裝的 visual studio code,再加上它的 python 延伸外掛 (當然電腦本身要先安裝 python) 。