兩周疾風式教學課程構想

關於詳細的課程安排和教學內容正在構思中.

可能有很多人會質疑兩周時間究竟能學到什麼。我認為,可以了解軟體開發涉及的的基本內容,以及掌握解決問題的思路.

可以參考這兩篇文章:

vue實現一個移動端屏蔽滑動的遮罩層

作為初學者,在工作過程中一定會遇到各種沒見過的問題,怎麼樣通過網路快速解決,是一種重要的能力。

web app開發心得

文章作者自己也在很多方面作為初學者,但是通過認真和努力,不僅完成了工作,學習了新的技術,而且輔導了兩位新人。我覺得這是一種比較好的學習方式。

一般來收,解決新遇到的技術問題的思路是:

首先,理解業務需求,明白自己要做什麼.

然後,在自己已有的知識儲備中尋找可能的解決方案.可以利用的資源包括自己學習和開發過的項目,公司團隊有做的類似的功能,或者在網上遇見的開源解決方案.如果完全沒有思路,那麼利用網路搜索,或請教別人.大部分問題都不會很特殊或很難,在網上可以找到思路或者解決方案.

之後要進行驗證,運行demo看能否實現效果,學習基本用法.如果demo可用,仿照demo進行修改,整合在自己的代碼中.

最後是測試,以及根據測試出的問題進行修改和調整.

總體來說,思路和整體控制能力比較重要,具體的技術細節在工作過程中可以慢慢熟悉.如果工作內容是專註於某一方面的開發,可能三周或者三個月之後,實際工作中會用到的技術點就都接觸過了,基本可以像有經驗的開發人員一樣,遇到問題無需請教或搜索,腦中也會有大概的解決思路.

下面附上目前構想的課程安排計劃,按照旋疾風式教程的風格,快速向前推進。

第一天:半天

計算機 硬體 軟體 歷史背景 基礎知識 發展情況 編程的概念 各種語言 開發工具 的介紹 彙編 C lisp

半天

基礎開發環境配置 Idea git jdk maven node npm webpack 前端腳手架 spring boot init

第二天:

編程語言基礎語法 值 常量 變數聲明 條件 循環結構 結構化程序設計 注釋 文檔

jvm node 運行時環境 類型系統 變數作用域 包和模塊管理機制 編譯 解釋 混淆

第三天:

函數式思想 及實現 集合與數據結構

面向對象思想 及實現 介面與泛型

第四天:

關係資料庫 sql 增刪改查 連接查詢 事務

數據訪問框架 數據源 JDBC 驅動 連接池 spring data json和xml restSql

第五天:

網頁基礎 HTML5 CSS3 Bootstrap UI庫

HTTP及web開發基本概念 ES6基礎 dom 事件 ajax

第二周:

Vue 微信小程序 瀏覽器調試工具的使用

混合打包 跨平台開發介紹 election ReactNative

網路基礎概念 TCP/IP協議 並發機制與多線程 高性能IO 非同步調用

web伺服器 和 web框架 spring mvc koa2 對象序列化 格式轉換 JSON object XML

異常處理機制 日誌系統 性能分析和優化基礎

cookie session 許可權控制 客戶端存儲 非關係資料庫 內存資料庫 分散式數據系統 介紹

Linux操作 shell powershell cmd操作 nginx配置

docker k8s 使用 大數據 雲計算 spark 介紹

常見軟體項目類型和業務場景 軟體公司分類 開發風格 流程 行業現狀

技術新動向 kotlin coljure 微服務 介紹

以上基本的課程內容預計用十個工作日。半天安排四節課。剩餘晚間和周六日的時間可以安排自學和練習。

雜項 浮點運算 貨幣時間格式處理 正則表達式 字元串處理和國際化 常見配置文件格式介紹 代碼規範 開發流程 (分配在平時課程間隙,或者晚自習,周六日等時間)

多媒體開發 UI設計 交互設計 圖形 音頻 視頻 canvas (根據個人興趣選學或自學)

項目實踐 分模塊 分方向 前端 後端 全棧 devops (根據整體課程進度和個人學習情況參與)

安排Java和Javascript兩種語言同時對照學習能更好的理解編程的實現思路,不至於陷入具體技術和語法細節的限制中。另外這兩種也是工作中使用最多的語言,有了這兩門語言的基礎,基本上就可以快速入門和上手其他語言和環境。

總體來說,課程主要是為零基礎和無經驗者提供對軟體開發的基本介紹,以便在遇到問題時能快速理清思路,找到最有可能解決問題的方向.根據個人經驗,雖然在網路上能夠找到大部分問題的答案,但由於網路信息龐雜繁蕪,如果沒有相對清晰的思路很難快速找到對自己最有價值的內容.技術發展日新月異,但是對整體技術有清晰的思路能幫助程序員在各種混亂的環境中快速找到突破口,以更小的代價獲得可用的解決方案.


推薦閱讀:

天下武功,唯快不破
你大概走了假敏捷——認真說說敏捷的實現和問題(手繪版)
架構師--技術選型
機器學習項目為什麼未實現敏捷開發

TAG:軟體開發 | 敏捷開發 |