這個作業屬於哪個課程 | 軟體工程 |
---|---|
這個作業要求在哪裡 | 作業要求 |
這個作業的目標 | 對自己現在和將來的認識與計劃 |
學號 | 102202107 |
個人技能
當前技能樹與技術偏好概覽
1. 技能樹
- 程式語言:學習過 C、Python 和 Java。
- 大資料處理與分析:學過大資料基礎實踐與大資料導論,對 Hadoop、HBase、MapReduce 和 Spark 有一定的瞭解,能夠在實際專案中進行初步的資料處理和分析工作。
- 後端技術:擅長使用 Java 進行軟體開發,並且熟練掌握了 Spring Boot、MyBatis Plus、Redis 等技術框架,能夠快速構建高效的後端系統。
- 機器學習基礎:正在學習機器學習的基本原理,包括但不限於 KNN、K-Means、決策樹等演算法,並嘗試將其應用於具體專案中。
2. 技術偏好
- 資料分析:學習過 Spark、Hadoop 及 MapReduce 進行資料處理,特別是對於大規模資料集的清洗、轉換和分析流程有著濃厚的興趣。希望透過更多的實際專案操作,進一步加深對這些技術的理解和應用。
- 機器學習:對機器學習技術尤其是自然語言處理(NLP)和計算機視覺(CV)領域內的最新進展保持高度關注。對監督學習和無監督學習演算法如 KNN、K-Means、決策樹等有基本掌握,並希望透過實際專案經驗加深對深度學習框架和技術的理解。
3. 缺少的能力與改進方向
- 團隊合作:我需要提升團隊協作能力和溝通技巧,希望做到 1+1>2。
- 程式碼質量:提高個人編寫程式碼的質量,注重程式碼的可讀性、可維護性和可擴充套件性,減少對自動化工具的依賴,培養獨立思考和解決問題的習慣。
課程相關
1. 程式碼量
我之前的程式碼量不足,經常依賴自動化工具,希望本學期這門課完成後,能達到的千行以上程式碼量。
2. 希望學習的知識
- 增強團隊協作經驗:在團隊專案中鍛鍊與人合作的能力,學會如何在團隊中扮演不同角色,提升溝通和協調技巧。
- 掌握軟體工程實踐:不僅僅是理論上的學習,而是透過實際專案,將理論知識轉化為實踐技能,真正理解軟體工程的實際應用。
- 提升程式碼質量:透過程式碼審查、重構練習等方式,改善自己的程式設計習慣,提高程式碼的可讀性、可維護性和可擴充套件性。
軟體工程課程學習指南
課程目標
本課程旨在讓學生理解軟體工程的基本概念,掌握軟體生命週期各階段的關鍵技術和最佳實踐,並透過實際專案來提升團隊協作與專案管理能力。
學習內容
1. 軟體工程概述
- 軟體工程的定義與發展歷程
- 軟體生命週期介紹
2. 需求分析與管理
- 需求獲取與分析
- 需求規格說明書編寫
- 需求變更管理
3. 軟體設計
- 軟體架構設計
- 設計模式與原則
- UML 建模語言
4. 編碼與實現
- 物件導向程式設計
- 程式碼質量與重構
- 版本控制(Git)
5. 測試與質量保證
- 單元測試
- 整合測試
- 系統測試
- 自動化測試工具
6. 專案管理
- 敏捷開發方法(Scrum/Kanban)
- 專案計劃與進度跟蹤
- 風險管理
7. 持續整合/持續部署(CI/CD)
- CI/CD 概念
- Jenkins/GitLab CI 等工具使用
- 自動化構建與部署流水線
8. 團隊協作與溝通
- 有效的團隊溝通技巧
- 角色分配與職責劃分
- 衝突解決策略
學習成果
- 提升專案管理能力:透過實際專案操作,增強在專案規劃、執行、控制等方面的能力。
- 增強團隊協作經驗:在團隊專案中鍛鍊與人合作的能力,提升溝通和協調技巧。
- 掌握軟體工程實踐:將理論知識轉化為實踐技能,真正理解軟體工程的實際應用。
- 提升程式碼質量:透過程式碼審查、重構練習等方式,改善程式設計習慣,提高程式碼質量。
- 適應變化的能力:學習如何在不確定性和變化面前保持靈活性,及時調整計劃以應對專案中的意外情況。
學習計劃
- 第一週:軟體工程概述
- 第二週:需求分析與管理
- 第三週:軟體設計
- 第四周:編碼與實現
- 第五週:測試與質量保證
- 第六週:專案管理
- 第七週:持續整合/持續部署
- 第八週:團隊協作與溝通
- 第九周:複習與準備期末專案
- 第十週:期末專案展示與總結
學習資源
- 《軟體工程:實踐者之路》 - Roger S. Pressman
- 《敏捷軟體開發》 - Robert C. Martin
- Coursera - 軟體工程基礎
- edX - 軟體工程
學習建議
- 定期複習課堂筆記,整理知識點。
- 主動參與團隊專案,積極貢獻自己的想法。
- 利用線上資源進行補充學習,拓寬知識面。
- 透過實際專案練習,將理論知識應用到實踐中去。