非科班計算機學習簡要路線及書籍

2020-08-09 01:57:26

既想保持硬體的主線,但沒有軟體又無法獨立做出項目。
硬體的自學思路不是太明朗,但軟體中智慧演算法之類的應用將自身吸引。

已有C語言基礎,自學過(蜻蜓點水)(沒有具體做專案,只是看、掠過)數據結構與演算法、python、c++、看過幾本計算機方面的書
慢慢的再次學習不願再在一門語言上投入太長時間,leetcode刷題會有種空虛感(不明白刷題的具體意義,以及不願花時間)
對於部分需要實現的東西有着強烈的需求,如現在所需要的與wifi硬體通訊的app,且需要數據庫
學習效率極低,容易被各種東西打斷,消磨大量時間而無法集中精力看java、andriod,同時觀看時又總有一些難以理解的東西感慨萬千,時光不再

如此學習路線一年之前收集過python的,但如今需要java,且很多東西不使用,只是看,很快忘記
另外,學完,達到目標之後,定要紮實與本專業
硬體不適宜自學嗎?還是自己沒有看到相符合的路?

java:

廖雪峯java
《java核心卷1》
《java核心卷2》
《java程式設計思想》

數據結構與演算法

  1. 時間複雜度、空間複雜度
  2. 鏈表、佇列、棧
  3. 樹(二元樹,查詢二元樹、AVL樹,紅黑樹等)
  4. 圖(圖有好多種演算法,深度/廣度搜尋,最短路徑、最小生存樹等)

《離散數學》
《大話數據結構》
《數據結構與演算法分析:C語言描述版》
之前看過的《數據結構與演算法:C++》——清華大學綠皮

視訊:《小甲魚的數據結構與演算法》

  1. 十大排序演算法
  2. 遞回、貪心、回溯、動態規劃、列舉等

《阿哈演算法》
《演算法設計與分析基礎》
《演算法第四版》
《演算法導論》
《程式設計之美》進階

java後端

集合模組: Set(包括HashSet,TreeSet), Map(包括 HashMap,HashTable),List(包括ArrayList,LinkedList)等等,學習原始碼

多執行緒:synchronize,volatile,執行緒池,併發包(如lock等等)。
看《Java 併發程式設計藝術》+《Java編髮程式設計實戰》。

各種檔案流:file,inputStream,outputStream等等。

虛擬機器:重點GC部分,
看《深入理解Java虛擬機器:JVM 高階特性與最佳實踐》

其他:如反射,註解,異常等,很多。

javaweb

快速入門

(1)mysql、html+css+js 、 tomcat、xml等。看視訊,搜尋 JavaWeb的視訊,哪裏不會補哪裏,幾個小時入門一門
(2)servlet+jsp 系列
不建議直接學習框架,先學習 servlet,底層最重要
(3)三大框架
Servlet 寫太麻煩了,只有認真學過 servlet 的人才能 纔能吹框架的好處,所以先學 servlet 在來學習框架,主要有三大框架:Spring + SpringMVC + Mybatis。
其實 SpringMVC 也是屬於 Spring 吧,MVC 只是一種思想,先學習 Spring,直接看視訊入門學習,後面買書。

中介軟體

Redis
先《Redis開發與運維》
《Redis 設計與實現》

計算機基礎學習

計算機網路 + 操作系統 + 數據庫 + 彙編 + 計算機組成原理 + 編譯原理 等

1、計算機網路 + 操作系統
2、數據庫 + 計算機組成原理
3、彙編 + 編譯原理

書籍推薦:
《計算機網路自頂向下》
《圖解 http》
《深入理解計算機操作系統(原書第三版)》
(/《操作系統—精髓與設計原理(第八版)》)
《彙編語言》——王爽
接着《彙編程式設計》

視訊:韓老師講高校《計算機網路原理》

《SQL必知必會》
接着《MySQL技術內幕:InnoDB儲存引擎》

編譯原理?

大一大二這段時間,千萬別問別人幹學啥學啥,如果你有感興趣的,就去折騰,全心全力的折騰,真的能學到很多東西,而這些東西,遠遠不是那些具體的知識點,更多的是,你的學習能力,折騰能力,邏輯思維

偶然看到這句話,深有感覺,」移情別戀「,對很多事情有着強烈的好奇心,但是又會被其他吸引,轉移注意力。
但是,真的開闊了視野,不只有專業,外面很大,足夠想象,很多很多新奇的主意會不斷萌生,失落時也會被那麼多知識的熱情鼓舞
但是可以感覺出來,自己缺少積累,對一件事情的沉澱
( 如果以後能實現那個評價演算法…那該多好呀)

當你把大學所學的知識全部忘光時,剩下的,便是教育的本質