08,年末特輯下:2022 工作與程式學習總結

「今天是公司尾牙,也是我進公司剛滿一年半。」——本來要用這兩句作為開頭的🤣。結果年假放起來,一轉眼兩星期過去,驀然回首,2023 年 1 月都快結束了!

不得不說,2022 才是我身為軟體工程師,覺得自己比較有進步的第一年。儘管不特別勤奮,但對細節還是相當講究的,尤其是「團隊文件文化」的建立,與程式碼可讀性的落實。

個人部分,寫程式的能力,要說提升多少,可能也沒有——code review 功力倒是明顯提升了,主還是在於一些重要工具的熟悉、應用上。

這些工具是在 Python 開發工作上佔據一定重要性,有著「應用廣、可延續」的特性,並擔當「讓團隊開發更加高效且健全」的角色。

可以說,作為一個稱職的 Python 開發者,就應該要使用這些東東!

其中的一部分,去年已經寫成教學文章。剩下的還沒動筆的,今年也要寫出來。接下來就來盤點一下,它們具體是哪些。

從 WorkFlowy 到 Logseq——我偏愛「清單式筆記」的四大理由

本文原為〈Logseq 使用滿一個月心得:一顆冉冉升起的「卡片筆記」新星〉中的一個章節——「清單的四大優勢」,但因後續擴寫內容並加上動態演示圖片,為避免原文篇幅過於肥大(畢竟該篇的主角仍是 Logseq),故獨立成篇。


清單式筆記的定義

所謂「清單式筆記」(又稱「大綱式」筆記),指的是筆記的內容、段落都會強制以「無序清單」——即「bullet points」——來呈現,如下:

  • 項目一
  • 項目二
  • 項目三

與之相對的,則是「文件式筆記」,其實就是我們一般常見的筆記頁面,可以插入大量不同元素,比如一般文字段落、引用區塊、程式碼、分隔線或 H2 標題等等。

07,年末特輯上:2022 寫作反省與明年目標

今天是 2022 年的最後一天,臉書塗鴉牆上的「總結、回顧」文章也開始百花齊放,看得我目不暇給。

一直不是個擅長規劃的人,對年度回顧也常常不知從何起手,因此很少發表此類文章。僅有的一篇就是剛開始學習程式那年所寫下的〈2018年學習總結〉——好青澀🐧

轉眼已 4 年過去,時光飛逝!

今年,我也要來寫!但全方位的總體回顧,對我而言還是有些困難(太多細節缺乏事前規劃,也沒有事後記錄),所以乾脆就只從我最最關心的兩大面向——程式與寫作——切入即可。抓大放小,符合我常掛在嘴邊的「簡潔主義」。

本期為全年「寫作」的回顧與反省,下期則是工作與技術學習的盤點,共分兩期展開。因為是「特輯」,字數可能會略多於平常。

06,十年後,還能繼續當軟體工程師嗎?

從 12 月初 ChatGPT 進入大眾的視野以來,引發的熱潮與衝擊,遠遠大於過去任何一項 AI 產品。

我對此也深感興趣(恐慌?),忍不住花了一些時間在關注與它相關的議題及應用,從 YouTube 影片文章臉書粉絲團,到同事的意見,都是我好奇的範圍。

和擔心被 AI 取代的眾多人類工作者一樣,我就是想要在「現在」這個時間點,多多少少預期一下,這類基於大型語言模型(Large Language Model)的人工智慧,對我的當前工作的衝擊究竟有多大?以及我「還有多少時間」?

以下是我的粗略看法,真的很粗啦!另外因為這個議題的內容有點多,本期就不提其它了。

05,終於寫了「關於我」頁面

對我來說,這星期的「頭條」版面,幾乎全被 ChatGPT 佔光光了。相比過去任何 AI 相關的產品、新聞——包括最為人知的 AlphaGo——對一般人的衝擊,它的威力顯然都遠大得多。

真別說!玩得最入神的就是軟體工程師們(一個可能被 AI 取代的高危險群),我自己也不禁沉迷了一下,想像著它將帶來的無限可能。

關於「AI 取代人力」的個人看法,我打算下一期再來聊聊,還是先把目光轉回到自己,與身邊的人上。

04,我訂閱了 PM 朱騏的文字付費內容

為了能讓 Weekly Review 系列的寫作盡可能持續——不要像以前的我,幾乎兩三下就半途而廢——我一邊寫也一邊在持續調整寫作的模式,也就是下文說的「畫框」。而畫自然是指文字本身。

在〈Hexo 部落格寫作一週年:完整心得與總結 + 如何持續寫作 Part 2〉中,我提到了「發文的頻率與長度」這個萬年苦惱,並提出「短文發在臉書」這個暫時解決方案。

這方案確實讓我寫作的頻率明顯提高,今年 7、8 月之間,臉書發了 8 篇短文,且其中的幾篇(比如這篇),我自己也非常喜歡。

但它同時也有一個明顯的「副作用」——強化了我對臉書的關注與依賴,這是我不想要的部分。

所以,一段時間後,我不禁再次思考:要怎麼做才能在「保持」提升發文頻率的同時,又不那麼依賴臉書?

Weekly Review 系列就是我思考後的答案,而它也帶來了一些意料之外的正向效果,比如接下來要講的。

VS Code:Python Flake8 與 Black Formatter 擴充套件快速上手

Python linter、formatter 整合 VS Code 的文章,已經寫過好幾篇,但還是不厭其煩地繼續寫,原因很簡單——它們實在太基本也太重要,卻往往未受到足夠的重視。

永遠不要小看這些排版上的細節程式寫作習慣的影響。

如同我在〈VS Code:Python isort 擴充套件介紹與簡易設定教學〉文末所言:

對於重視程式寫作規範,意在貫徹 Clean Code 精神的開發者而言,它不是一種選擇,而是一種必然。

以及〈VS Code 設定 Python linter 與 formatter:以 Flake8、yapf 為例〉中說的:

Linter 和 formatter 雖然無法保證你寫出 Clean Code,但至少能協助你盡可能符合 PEP 8 風格,並省下處理排版細節上的心力,讓你更專注在程式的核心部分。

儘管「善用 linter、formatter」和「寫出 Clean Code」之間,還相隔著不知多少努力與反省,但後者必定是建立在前者之上——我對此深信不疑。

所以我不曾去質疑這些工具的必要性,因為它們就像陽光、空氣、水一般,不可或缺,只要我還寫程式的一天,就只會立足於它們之上。

廢話不多說,我們進入正題。