半導體企業內的數位轉型課程筆記-4-Python
製程整合單位的數位轉型課程架構與概念-Python

前言
Python 在2024年重回最流行的語言寶座,與AI發展密不可分。Python接近自然語言的風格,也使他可在短時間學習,並且十分容易應用。在2024年的Stack Overflow Developer Survey中,Python成為最多人開始學習撰寫程式碼的程式語言。
此外,Python也被認為是進行AI分析最推薦的語言。 ref: 2024 Stack Overflow Developer Survey

從0到100很困難,但從0到30,30到60的階段性成長是相對容易。若是只要用Python解決簡單的問題,畫出圖表的話,可以直接用chatGPT或Copilot輔助並做出成果。
但是在教學基礎Python的時候,我發現同仁對於”簡單”的想像和我有很大的落差。
在思考一個專案的雛型時,由於我們缺乏開發經驗,常會以現有手上使用的成熟產品作為範本去思考邏輯,
但是可以作為商業銷售的”商品”,一直限縮到作為個人嗜好乃至成果發表的”工具”,或甚至只是一個展示可能性的”樣品”,其中要思考的規模以及人力範圍,差異都非常大,在過程中出現意料外的錯誤也令人感到挫折,然而這是非常正常的,試想在ikea買的簡單家具都有可能組錯了,何況是一個初學者所想要做的專案呢?
因此思考,試誤、釐清需求是非常重要的。此外,學習的重點是有目標,因此建議大家如果想要學一樣東西,先設定好務實的目標再進行,例如: 完成一個小專案,學會讀取資料等等。
總結來說,錯誤是學習過程的一部分:每次 Debug 都是成長的機會,不要害怕錯誤訊息,並仔細閱讀錯誤訊息。學習途中也可以嘗試解決工作中真實問題,讓學習更有成就感。並且使用免費線上資源,例如chatGPT、Copilot或Youtube影片輔助,產生成果並共同成長。
ref: 從新手到大師的學習之旅(一):四大法則掌握高效學習關鍵
邊學邊做的簡單應用例子
- 建立一個可以自動化產生 Excel 報表的 Python 程式。
- 撰寫一個腳本,能從設備數據中識別異常模式,例如大於或小於某些數值,就標示出來等。
學了之後的後續應用例子
- 利用 Python 進行生產數據分析:用
Pandas,Matplotlib,Seaborn分析生產良率。 - 自動化產生報表:每天從 SQL 資料庫匯出數據,使用 Python
Pandas和openpyxl自動產生報表 (例如Power Point或Email格式)。 - 使用Python整理機台log檔案,並整合SQL資料庫,利用Power BI產生圖表
- 設備異常監測:結合機台數據,透過 Python 與機器學習演算法(例如 scikit-learn)實作早期異常偵測。
怎麼開始

目標與基本概念
此篇文章的目的,不是要您成為一個專業的軟體工程師,而是當您是一個半導體製造公司裡的員工時,面對數位轉型的政策,如何使用Python輔助您工作上的專業技能,並進一步增加工作效率的大方向說明。
ref: https://forum.gamer.com.tw/C.php?bsn=60561&snA=11466
在此推薦幾個youtube頻道,試試水溫,不需要急著花大錢買課程,先看影片學習基本概念:
- 彭彭的課程,從第1部影片看到第13部資料讀取後,再從25看到30,也就是Pandas的部分,最後看41。如果看完之後還有想學習的部分,再使用關鍵字看其他影片。
- PAPAYA電腦教室
進階課程
- 彭彭的課程,第32部~36部,第42部到44部
- Python for Data Analytics - Full Course for Beginners
- 使用Python進行機器學習分析
開發環境與工具介紹
我推薦使用VS Code作為初學IDE進行開發與環境設定,以下推薦兩個開發工具,面向不同,但都十分容易上手。
VS Code
- 優點: 跨平台、輕量化,擁有豐富的擴充套件(如 Python )。適合初學者和進階使用者。
- 推薦的VS Code擴充套件:
- Python: 提供語法highlight、程式碼執行和錯誤檢查功能。
- Jupyter: 在 VS Code 中運行 Jupyter Notebook。
- Pylance: 強大的 IntelliSense(自動補全)和語法檢查功能。
- Prettier或black: 自動格式化程式碼,提高可讀性。
- 安裝與使用教學: 可以參考官方指南。
Google Colab
- 優點: 免費的線上 Jupyter Notebook 環境,支援 GPU 加速。
- 適合學習方向: 機器學習、深度學習專案,特別是需要運行高效能計算的項目。
常用的 Python 套件
- Numpy/Pandas: 用於數據分析。
- Matplotlib/Seaborn: 資料視覺化。
- Flask/FastAPI: 開發輕量型 Web 應用程式,方便內部工具部署。
- Pytest: 自動化測試。
有些人可能會說,我現在就要解決問題,現在就要做出一個專案,想要邊做邊學,沒辦法看完20-30個影片基礎後才產生成果,那您可以使用生成式人工智慧,不管是chatGPT或者是copilot等等,嘗試描述自己的問題,想辦法兜出一個可行的解決方案。
遺憾的是,雖然科技進步得很快,但人類的學習仍然是相同的速度,使用快速產生的結果,就像把錄音帶放到錄音機裡面播出來一樣,錄音帶不屬於您的大腦,在什麼都不懂的情況下,產生的code就像錄音帶的內容一樣,或許要修改都很困難,甚至連問題都沒辦法精確描述,這樣子的情況下,在當下以為節省的時間,其實只是延後到未來的某一刻而已。
因此,我還是建議能夠在有基礎知識背景下去使用AI工具,但另一方面,您既是時間緊迫的白紙,已沒有背景知識,又想要快速產生專案,那該如何是好?
在下一個段落中,列出我自己使用生成式人工智慧的經驗與建議,進行來回的交流,產生一個快速可交差的專案結果。
不過,再提醒您,速成的方式就像您在考試中把課本正確解答的數學證明題全部抄到紙上一樣,對您本身的技巧精進是幾乎沒有幫助的。
可以跟生成式人工智慧學習的地方
模仿它的用字,使用專業的術語搜尋,追加問題,例如:
- 將 ChatGPT 作為程式碼檢查工具:輸入錯誤訊息,讓 AI 協助除錯。
- 輸入具體的錯誤訊息與目標("How to fix TypeError in pandas merge?"),獲得更精確的解答
- 產生教學範例:要求 ChatGPT 撰寫簡單範例,例如 "Generate a Python script for sending an email with SMTP."
- 使用 Copilot:
- 自動補全功能,但解釋每行程式碼,確認理解後再使用。
- 配合「測試驅動開發」(TDD):先撰寫測試,再讓 Copilot 自動生成邏輯程式碼。
- 這裡有一部影片是2023 台灣生成式 AI 年會 — 林穎俊老師的演講,我覺得不只是給小學生,也很適合一般人作為反思與學習使用,供參考。

閱讀說明書很重要
閱讀說明書很無聊,但是非常重要。尤其是在需要的時候,README就是唾手可得的工具書。
閱讀說明書(Documentation)是掌握 Python 工具和框架的關鍵技能之一,尤其是在遇到複雜問題或嘗試新技術時。即使初期看起來有些枯燥,但實際上,閱讀說明書不僅能幫助快速了解工具的功能,也能培養解決問題的能力。透過閱讀說明書您可以:
- 快速了解功能與限制
- 說明書通常會列出工具或函式庫的所有功能,並解釋適用情境及潛在限制。可以避免浪費時間在不適合的解法上。
- 學習正確的用法
- 官方文件提供的範例程式碼經過驗證,能幫助你使用工具時少走彎路。例如,使用
pandas處理數據時,文件會清楚說明不同方法(如merge和concat)的適用場合。
- 官方文件提供的範例程式碼經過驗證,能幫助你使用工具時少走彎路。例如,使用
- 高效率的解決問題
- 當遇到錯誤時,文件中的 FAQ 和 Troubleshooting 區域常能提供解答。閱讀說明書後,可以更獨立地解決開發中的問題。
- 學會善用社群資源
- 在閱讀文件後,可以更清楚如何描述問題,方便在社群(如 Stack Overflow)中,甚至使用生成式人工智慧提出精確的問題。
如何有效閱讀說明書?
- 快速掃描目錄
- 首先瀏覽目錄,了解文檔的整體結構。大多數說明書會分為以下幾個部分:安裝指南、基本使用、API 參考、高階功能及錯誤排除。
- 專注於解決當下問題
- 如果您需要特定的功能,例如學習如何用 Matplotlib 畫圖,可以直接跳到相關章節,而不用從頭讀到尾。
- 掌握範例程式碼
- 幾乎所有說明書都附有範例程式碼。先執行範例並觀察結果,理解其作用後再修改為適合自己的需求。
- 使用搜尋功能
- 現代說明書通常是線上文檔,內建搜尋功能,輸入關鍵字即可快速找到需要的部分。例如搜尋 "pandas merge dataframes" 以了解合併資料表的用法。
- 善用快速入門指南(Quickstart)
- 官方文件通常會包含 Quickstart 部分,簡短說明核心功能,適合初學者快速上手。
結語
規劃短暫但固定的時間,例如一星期2個小時進行學習,並設定衝刺目標,比如在三個月內完成一個數據分析專案,可以讓您想學習程式語言的成功率更加上升。
您可能覺得一星期2小時很多,但就我的例子來說,其實也不過是4集動畫、2集連續劇、或是每週減少20%-50%滑手機的時間而已 (若認真記錄手機使用時間,有時意外的驚人的多)。
除此之外,也不要忘記自己撰寫筆記,進行第二大腦的輸出,會讓未來複習時更事半功倍!
希望此篇文章對想學習Python的您有所幫助。