【大總結2】大學兩年,寫了這篇幾十萬字的乾貨總結
本文十天後設定為粉絲可見,喜歡的提前關注
本篇文章應該算是Java後端開發技術棧的,但是大部分是基礎知識,所以我覺得對任何方向都是有用的。
1、資料結構
資料結構是計算機儲存、組織資料的方式。資料結構是指相互之間存在一種或多種特定關係的資料元素的集合。通常情況下,精心選擇的資料結構可以帶來更高的執行或者儲存效率。 ---摘自百度百科
為什麼把資料結構放在第一位呢?因為我認為這是一切的基礎。
比如
學了時間複雜度空間複雜度,你就能寫出更好的程式,解決更多的效能問題。
學了順序表和連結串列,你就知道,在查詢操作更多時,應該使用順序表,而在修改操作更多時,應該使用連結串列;
學了棧之後,你可能才能理解並寫出遞迴,學了佇列,會對訊息佇列有一個認識,之後用輪子(比如kafka)才更得心應手。
學了串,你才知道String到底怎麼實現的,你才知道了字串如何匹配(KMP),搜尋引擎(ES)是如何做出來。
學了排序,你才知道各種排序優缺點,知道各種語言的sort是如何實現的(別給我說就是快排),用到實際專案中。
學了雜湊,你才可能讀懂HashMap是怎麼玩的。
這是我做的一些總結:舊版總結
我進行了刪減,新寫的東西懶得加了。
涉及語言:
py3:注重演算法本身的知識
c/c++:實現基礎資料結構和演算法
java:實現較複雜資料結構
1.1、概述
1.2、線性表
筆記:
基礎程式碼實現:
應用:
1.3、棧和佇列
筆記:
基礎程式碼實現:
陣列實現佇列(易懂實現迴圈)
應用:
相關演算法:
1.4、串
筆記:
基礎程式碼實現:
相關演算法:
1.5、陣列和廣義表
注:題目慢慢新增
筆記:
部分題目實現:
應用:
1.6、樹
筆記:
基礎程式碼實現:
應用:
相關演算法:
1.7、圖
筆記:
基礎:
相關演算法:
皇后問題(位運算)
旅行商問題(認識狀態壓縮)
1.9、查詢
基礎程式碼實現:
相關演算法:
1.10、排序
基礎程式碼實現:
相關演算法:
總之不要著急,基礎打牢。
1.10下面推薦一些學習資源:
跟著經典走,絕對沒錯,這個書寫的真的不錯,裡面的虛擬碼你有能力自己實現一下。
2、大話資料結構
講的太入門了,看一遍對小白很有幫助
另外一本經典書,是第一本的延申,有能力絕對要多看幾遍,寫的不錯。
二、演算法
演算法(Algorithm)是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。也就是說,能夠對一定規範的輸入,在有限時間內獲得所要求的輸出。如果一個演算法有缺陷,或不適合於某個問題,執行這個演算法將不會解決這個問題。不同的演算法可能用不同的時間、空間或效率來完成同樣的任務。一個演算法的優劣可以用空間複雜度與時間複雜度來衡量。
先不說有沒有用(事實上工作上連leetcode知識用到的都不多),國內大廠面試筆試,演算法是佔很大部分的;國外(比如北美),更是刷leetcode就能進(我只是聽說的hhh)。
2.1ACM
首先關於ACM的建議:強校儘可能打一打吧,弱校除非很熱愛,否則不建議。
其中,強校指的是能穩定產出區域賽銀牌以上的學校。
如果在弱校,你可能舉步維艱:
首先我見過的,聽說過的一帶二的選手,最多也就區域銀,但是消耗了大量學習時間,還帶了兩個水貨拿牌子,這是很不值的。
其次,遇到某些讓你很難受的教練,可能你打了名額不讓你去,可能各種打壓你等等(競賽環境好的同學可能都想象不到吧)
當然,環境決定不了一切,如果你決定由你創造歷史,也是可以的,請你在大一就判斷一下:是否演算法程式設計比賽比賽每次都第一,並且落下第二兩道題以上(反正要碾壓)?如果是的話,在考慮是否走這條路。(我大一就是這樣,但是其實p都不會)。
當然,你的學校如果有打ACM的那一群人,有一個集訓隊,非常建議加入他們,
第一,可以鍛鍊自己。你不知道多少個日日夜夜為了除錯一個bug在那裡冥思苦想,你寫的程式碼加起來可能有幾萬行(500題*30行=15000行,很正常吧),而這幾萬行程式碼是你幾萬行業務程式碼不能比的。
第二,這群人不一定是將來混得最好的人,但是一定是中上游的人,而讓這些人成為你的朋友,對你很有幫助。
第三,享受快樂,你ac的那種快感。
2.2推薦資源
這裡我自己寫的ACM部落格並不多,也不全,所以給你們點oj和板子合集。
新手推薦匡斌專題,刷完保銅衝銀絕對沒問題kuangbin專題合集
我推薦的,也是比較有名的一些oj
國內:(排名不分先後)
浙江大學(ZJU):http://acm.zju.edu.cn/ 北京大學(PKU):http://acm.pku.edu.cn/JudgeOnline/
同濟大學(TJU):http://acm.tongji.edu.cn/ 杭州電子科技大學(HDU):http://acm.hdu.edu.cn/
吉林大學(jlu):http://acm.jlu.edu.cn/ 哈爾濱工程大學(hrbeu):http://acm.hrbeu.edu.cn/
哈爾濱工業大學(HIT):http://acm.hit.edu.cn/ 北京郵電大學(Bupt):http://acm.scs.bupt.cn/onlinejudge/
汕頭大學(STU):http://acm.stu.edu.cn/ 福州大學(FZU):http://acm.fzu.edu.cn/
華中科技大學(HUST):http://acm.hust.edu.cn/JudgeOnline/ 華東師範大學(ECNU):http://acm.cs.ecnu.edu.cn/
國外:
俄羅斯:烏拉爾大學(URAL):http://acm.timus.ru/ 薩拉托夫大學(SGU):http://acm.sgu.ru/
美國:USACO: http://train.usaco.org/usacogate
波蘭:SPOJ:http://www.spoj.pl/
另外,基本各路模板我都有,可以找我要哈。
你也可以去洛谷,計蒜客等網站刷題,這些網站都對新手比較友好,是刷題的好去處。
2.3工作面試演算法
不是每個人都會打acm,所以面向實際,價效比很重要,這裡推薦《劍指offer》和leetcode。
其中,《劍指offer》肯定要看完並且理解,leetcode據說刷一百多道就能應付一般面試。
我本來想總結十篇精華帖,但是說實話leetcode題解絕對夠了。
建議刷這幾個專題,價效比高一些哈。
三、語言基礎
這不用我說,絕對是很重要的一部分,語言都學不明白,別的更不要想。你可以學習Java、c、c++、python、go等語言。
我主要是Java技術棧的,但是總結的基礎知識有一些不方便放出來,是我的私密文章,我只把一些公開的放出來。
3.1Java
1、一個".java"原始檔中是否可以包括多個類(不是內部類)?有什麼限制?
2、short s1= 1; s1= s1+1; 有沒有錯?3、short s1= 1; s1 += 1;有沒有錯?
4、使用final關鍵字修飾一個變數時,引用的內容一定不能變?
5、是否可以從static方法內對非static方法呼叫?為什麼?
6、Overload和Override的區別?7、Overloaded的方法是否可以改變返回值的型別?
8、介面是否可繼承介面?抽象類是否可實現(implements)介面?抽象類是否可繼承具體類(concreteclass)?抽象類中是否可以有靜態的main方法?
9、Java中實現多型的機制是什麼?10、abstractclass和interface有什麼區別?
11、String s = "Hello";s = s + "world!";執行後,原始的String物件中的內容變了沒有?
12、下面這條語句一共建立了多少個物件:String s="a"+"b"+"c"+"d";
13、final, finally, finalize的區別。14、error和exception有什麼區別?15、Java 中堆和棧區別
16、能將 int 強制轉換為 byte 型別的變數嗎?(引申到所有大型別轉小型別
17、hashCode有什麼用?與 a.equals(b) 有什麼關係?19,java中會存在記憶體洩漏嗎
這些問題以及更多問題都是我總結的比較好的問題,要答案去評論,我發。
想獲取更多筆記的。。。。。我不會給你們的hhhhh。
3.2Java一些總結
只有這些公開的了。
3.3python:
另外,如果是零基礎py,我推薦廖雪峰的教程,百度搜即可。
3.4其它語言
哪種語言需要小白教程,評論,我給你想想有哪些好東西。
另外,py爬蟲建議學習一下。
四、作業系統
如果你時間緊,可以跳過。
作業系統是管理計算機硬體與軟體資源的計算機程式,同時也是計算機系統的核心與基石。作業系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入裝置與輸出裝置、操作網路與管理檔案系統等基本事務。
4.1基礎知識
放下我的作業系統基礎知識總結
4.2具體實現
我認為學了最好可以把經典的演算法都實現一下。
我模擬了一些。
4.3jvm
如果你是Java技術棧,jvm是肯定要接觸的,這部分我也是小白,暫時沒怎麼弄過jvm調優,但是知識一定要準備好,畢竟你學紅黑樹的時候也不知道將來寫TreeMap的時候有用呢?
4.4Linux
linux是人人都要會的。
我這部分其實很菜,基本上啥都不會,但是真的很重要。。。
我懶得找我總結的東西了,其實大部分就是一些命令的使用。
linux-在cenos上安裝大全(nginx/JRE/maven/Tomcat/MYSQL/redis/kafka/es...)
對於原理,我讀過一本書的小部分,後來因為各種原因沒有繼續讀下去,但是推薦給你們。
《linux核心設計與實現(第三版)》 拉夫,機械工業出版社的那本。
4.5多執行緒
比如Java多執行緒,這其實也是屬於作業系統只是的一部分,所以我放到了這裡。
我這部分暫時沒有總結完。
synchronized使用和原理全解(((((推薦)))))
4.6推薦資源
基礎知識:
推薦王道考研的視訊,真的很贊,b站就可以搜得到。
優點:聲音好聽(有磁性)、學長總結(學生更容易聽懂)、不講廢話(節省時間)、講的通俗易懂(反正我一遍就懂)
我對比了不下五種視訊,這是最好的。
有的人可能會問我又不考研?那你不能看一遍?這麼好的視訊不看多浪費啊?
多執行緒:
這本書我猶豫了很久到底要不要推薦呢?因為我看完了其實感覺一般,有些例子過於囉嗦,而且沒有底層原理的講解。但是用來入門的話,如果你是一個細心且耐得住性子的人,這本書還算不錯。
這本書個人感覺比上一本好。但是還是看個人感覺吧,需要手把手教的那種,還是第一本好。
五、關聯式資料庫
開發離不開資料庫,我把資料庫的知識分為以下幾個階段:
5.1關聯式資料庫基本知識和任意一個語言實戰(MYSQL)
請注意,這是兩個事,前者我推薦資料庫系統概論,相信大部分學校的教材都是這本,裡面的理論很重要,是基礎。
後者我推薦MySQL必知必會,這本書絕對是入門sql語言的最佳選擇。
這兩本書我不接受任何反駁,是相關方面國內最好的。
再推薦一個視訊:b站上面的東南大學徐立臻教授資料庫原理,真的講的很好,我看了不止一遍。
下面放下我的總結:
5.2有基本的優化能力,複雜的sql編寫能力
這部分我認為非常重要,實際工作中都是很複雜的sql,並且涉及到優化。
我推薦高效能MySQL(第二版),這本書說實話我讀不完,甚至只讀了十分之一,慚愧慚愧,但是還是讓我受益良多。
還有,推薦leetcode資料庫專題,真的也讓我受益良多(你們可能只知道leetcode演算法吧hhhh)
5.3瞭解資料庫基本的實現原理
這裡我推薦《MySQL技術內幕:InnoDB儲存引擎(第2版)》
5.4自己寫資料庫
我當然是沒達到的,但是我看到了很多大佬都在做這方面內容,包括本校的幾屆畢業薪資最高的學長、包括同級的外校大神,強行讓我做但是我不會啊。。。哭了
但是我想當推薦一下資源,我雖然沒實現,但是看了有很多收穫,如果你按著做出來了,完全可以當作一個不錯的專案。
推薦兩門網課:mit6.830 和 cmu15445(建議做前者的實驗(相對完整),看後者的課程)。
學完兩門網課之後,對資料庫系統已經有了大致的瞭解。
接下來可以看資料庫系統概念(但是這本書寫的有點繁瑣),推薦看pingcap的tidb原始碼閱讀二十四篇(https://pingcap.com/blog-cn/),看文章的時候可以看一下原始碼(需要學一下go)。
另外一個好的學習資源是talent plan,作業質量挺高的。
(https://university.pingcap.com/)
如果你對pingcap的tidb很感興趣,想繼續深入學習,可以再瞭解一下分散式,推薦mit 6.824,接下來就是看論文,寫lab的快樂時光,接著你可能想看看tikv,那麼可以學一下rust啦。
六、NOSQL
記憶體越來越快、越來越便宜的今天,你要是不會一個nosql那可以不用幹活了吧?
但是簡單地用當然不夠(你會用map就會用nosql),你最好知道一下複雜的操作,和nosql的原理。
我這裡研究的是redis:
6.1入門
Redis是一款基於鍵值對的NoSQL資料庫,它的值支援多種資料結構:
字串(strings)、雜湊(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。
• Redis將所有的資料都存放在記憶體中,所以它的讀寫效能十分驚人,用作資料庫,快取和訊息代理。
Redis具有內建的複製,Lua指令碼,LRU逐出,事務和不同級別的磁碟永續性,並通過Redis Sentinel和Redis Cluster自動分割槽提供了高可用性。
• Redis典型的應用場景包括:快取、排行榜、計數器、社交網路、訊息佇列等
但是我們實戰之前,還是要了解基本使用
6.2原理總結
這部分在我看來是最有意思的,我們有必要了解底層資料結構的實現,這也是我最感興趣的。
比如,你知道redis中的字串怎麼實現的嗎?為什麼這麼實現?
你知道redis壓縮列表是什麼演算法嗎?
你知道redis為什麼拋棄了紅黑樹反而採用了跳錶這種新的資料結構嗎?
你知道hyperloglog為什麼用如此小的空間就可以有這麼好的統計效能和準確性嗎?
你知道布隆過濾器為什麼這麼有效嗎?有沒有數學證明過?
你是否還能很快寫出來快排?或者不斷優化效能的排序?是不是隻會調庫了甚至庫函式怎麼實現的都不知道?真的就是快排?
包括資料庫,持久化,處理事件、客戶端服務端、事務的實現、釋出和訂閱等功能的實現,也需要了解。
另外,
物件(字串物件、列表物件、雜湊物件、集合物件、有序集合總結)
6.3多機
6.4實戰
進一步的瞭解了redis的使用和原理,我們來寫一些簡單的實戰程式碼
6.5更多的細節問題
七、網路/前端/專案基礎知識
7.1網路原理
只要是開發肯定離不開網路知識。
但是我不建議你把那本《計算機網路(第七版)謝希仁著》看完,我感覺太過無聊而且底層的那幾層我個人感覺是真的用處不大。
推薦書籍:《計算機網路:自頂向下》、《圖解http》
7.2前端基礎
除非你可以牛到給老闆說:“老子就是不會前端,專做後端”,否則你還是要會一些前端的。
建議上vue\react\node.js,這些是我問的前端同學的建議。
如果時間不夠上面的知識,bootstrap建議看一下(因為我就會一點hhhh)
7.3專案基礎知識
不同於基礎語言知識,這部分知識可能涉及到網路方面知識,學會後你可以具體做一些東西比如Java,你就需要學servlet、JDBC等JavaEE技術,但是這些技術又不會真的工作用,只是基礎,但是真的很重要,建議拿這些知識寫一些專案,比如學生管理系統。
但是我不建議你再學JSP,這都9102年了,為啥非抱著它不放呢?你學leaf不好嗎?如果說servlet、JDBC是基礎,我覺得jsp真的沒必要,他也不是什麼所謂的“基礎”。
八、安全和測試
這部分我覺得也是很值得學習的,反向思維很重要,不要以為開發就可以不懂測試,不懂安全。
我們們寫程式碼的時候也是邊寫邊側不是麼。
說一下我學這些的理由:
壓測的話,LoadRunner太不方便,太過於龐大,可能專業測試需要學,開發學jmeter就可以啦。
安全方面其實我挺有感觸的,你們知道為啥要放驗證碼嗎?你們知道SpringSecurity是咋實現的嗎?你們知道xss,sql注入,檔案上傳漏洞,瀏覽器安全,這些東西怎麼攻擊怎麼防禦嗎?
我們作為開發其實是需要知道的吧。
九、框架的學習
Java來說,學完了JavaEE肯定要學框架的,你總不能拿servlet和jsp、JDBC寫專案吧?
推薦ssm,不要學ssh了,都9102年了,我們們就不要浪費時間了。
springboot是一定要學的,相關的spring生態圈都要學,這部分我也剛接觸,以後要多多學習。
至於原理,抱歉我能力有限,目前正在學習中。。。。。。。。。。。。。。。
十、中介軟體和工具
這一部分我暫時沒怎麼寫總結部落格,但是我認為都是要會用並且瞭解原理的。
推薦的連結有幾篇是其他人寫的,因為我也是小白,有的方面沒什麼經驗。
10.1訊息佇列
這是必會內容,否則你寫的專案可以說沒有什麼效能可言吧。
首推kafka,當然你學別的未嘗不可,就算拿redis也能寫,看你自己的需要吧。
建議學習原理,我覺得挺重要的。
10.2搜尋引擎
這我認為不是必會的,但是最好學習一下,推薦你可以自己基於字典樹做一個小型搜尋引擎,還可以統計熱點詞、過濾敏感詞等等,非常方便。
至於具體的我推薦elasticsearch,並且我建議原理一定要了解一下,什麼倒排索引之類的。
10.3本地快取
現在光會關聯式資料庫肯定是不行的,你要會一種nosql資料庫,你要做快取,提升效能,,但是進一步提高效能,預防快取問題(比如快取雪崩),你就需要做多重快取,本地快取是少不了的。我推薦咖啡因。
10.4git
不多解釋,就是給你提個醒。
教程推薦廖雪峰
10.5 maven
這個也是必學內容,小白的直觀感受就是可以不用到處搜jar包了。還有很多其他強大的功能。
Maven專案物件模型(POM),可以通過一小段描述資訊來管理專案的構建,報告和文件的專案管理工具軟體。
Maven 除了以程式構建能力為特色之外,還提供高階專案管理工具。由於 Maven 的預設構建規則有較高的可重用性,所以常常用兩三行 Maven 構建指令碼就可以構建簡單的專案。由於 Maven 的面向專案的方法,許多 Apache Jakarta 專案發文時使用 Maven,而且公司專案採用 Maven 的比例在持續增長。
10.6nginx
沒有商量,必須會。
Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,在BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力在同型別的網頁伺服器中表現較好,中國大陸使用nginx網站使用者有:百度、京東、新浪、網易、騰訊、淘寶等。
10.7 zookeeper
必會,關鍵你kafka啥的都得在這上面跑。
ZooKeeper是一個分散式的,開放原始碼的分散式應用程式協調服務,是Google的Chubby一個開源的實現,是Hadoop和Hbase的重要元件。它是一個為分散式應用提供一致性服務的軟體,提供的功能包括:配置維護、域名服務、分散式同步、組服務等。
ZooKeeper的目標就是封裝好複雜易出錯的關鍵服務,將簡單易用的介面和效能高效、功能穩定的系統提供給使用者。
10.8 idea
必會
10.9vim
必會
10.10dubbo
10.11Xmind/ProcessOn
- Xmind官網地址: https://www.xmind.cn
- ProcessOn線上作圖地址:https://www.processon.com
我這裡列舉了兩個工具,他們兩個都可以做概要設計的腦圖
10.12Postman
這個是介面除錯的神器,單測比較繁瑣的你可以試試這個嘛,不過很多介面還是隻能寫寫單測,反正很香。
不過這個名字一看就是男生用的,那我們女生用啥呢?往下看
10.13Postwoman
官網地址 :https://postwoman.io
PostMan一聽就是男生用的,咋妹子們肯定要用最近開源的Postwoman啊,它是一款開源的 Postman 替代品
開源沒多久優點如下:
輕盈,可直接線上訪問;
簡約,採用簡約的 UI 設計精心打造;
支援 GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH 方法;
支援驗證;
實時,傳送請求即可獲取響應。
10.14Gradle
官網地址 :https://gradle.org
Gradle是一個基於Apache Ant和Apache Maven概念的專案自動化構建開源工具。
它使用一種基於Groovy的特定領域語言(DSL)來宣告專案設定,目前也增加了基於Kotlin語言的kotlin-based DSL,拋棄了基於XML的各種繁瑣配置。
這個跟Maven功能是一樣的,但是兩者語法不一樣,而且我覺得版本控制的時候沒Maven好使,有小坑,勝在語法簡潔。
十一、設計模式和框架原理
當你開發到一定程度,學習設計模式肯定是避免不了的
建議閱讀經典書籍,這是筆記,我覺得看筆記也可以。
《Head First設計模式》第七章-介面卡模式、外觀模式
《Head First 設計模式》第十章-狀態模式 狀態模式
學了設計模式你才敢去看原始碼。
至於spring原始碼,我畢竟還年輕,寫程式碼太少,沒勇氣去看(也沒能力去看),以後再說吧。
十三、我推薦的資料
文中提到的書和視訊我都是看過的,不會只聽說過就推薦給你,那是不負責任。
跟著經典走,絕對沒錯,這個書寫的真的不錯,裡面的虛擬碼你有能力自己實現一下。
2、大話資料結構
講的太入門了,看一遍對小白很有幫助
另外一本經典書,是第一本的延申,有能力絕對要多看幾遍,寫的不錯。
推薦《劍指offer》和leetcode。
其中,《劍指offer》肯定要看完並且理解,leetcode據說刷一百多道就能應付一般面試。
我本來想總結十篇精華帖,但是說實話leetcode題解絕對夠了。
這本書我猶豫了很久到底要不要推薦呢?因為我看完了其實感覺一般,有些例子過於囉嗦,而且沒有底層原理的講解。但是用來入門的話,如果你是一個細心且耐得住性子的人,這本書還算不錯。
這本書個人感覺比上一本好。但是還是看個人感覺吧,需要手把手教的那種,還是第一本好。
《計算機網路:自頂向下》、《圖解http》
總:
Stack Overflow,https://stackoverflow.com/questions/tagged/java
Stack Overflow 可以說是解決問題的殺手鐗
嗶哩嗶哩
上邊的視訊都是非常高質量的,你可以去搜尋看一下。
慕課網
雖然有些視訊時付費的,但是質量是真的高,那些免費的入門足夠看了
菜鳥教程
一聽名字就知道適合菜鳥的,但是基礎的知識寫的非常詳細,很清晰易懂,非常適合剛開始學習程式設計的小夥伴。
W3School
剛開始學WEB開發時,經常結合w3school學習前端,開發時,如果遇到記不清的標籤,就去w3school搜尋。
中國大學MOOC
如果你是非科班的,想要系統著補某們大學的課程,那麼中國大學MOOC是個不錯的選擇,這裡有各種各樣的課程,有些老師還是講的挺好了,和大學課程老師的教學差不多。我編譯原理就是在這裡學到.
第零、最後,我的建議
0.1不要飄
永遠保持一顆謙虛的心,你認為你厲害或者你很努力是因為你的環境不好而已。
在一箇中專,你會寫專案,能寫增刪改查,就覺得自己特別努力特別厲害。
在一個三本院校,你可能天天按時上課,就覺得自己特別努力特別厲害。
在一個一本院校,你可能覺得上課好好聽講,下課好好寫作業,就覺得自己特別努力特別厲害。
在一個211,你可能沒課的時候也去圖書館,並且課下時間對老師講的東西做了一些擴充,就覺得自己特別努力特別厲害。
在一個985.。。。。。
還用繼續說嗎?你認為的努力和厲害,換個環境,毛都算不上。驕傲的人必定失敗
0.2不要慌
很多人焦慮找不到好工作,我也是。
我見過省會城市一個挺大的當地企業,四五十平米的屋子擠著幾十個人,每個程式設計師在自己的一平米空間裡工作,月薪2500.
我見過清華的,手寫作業系統執行在自己做的cpu上,手寫資料庫,oi省一、數雙學位、一天速成java寫了個app拿了第一,GPA大部分4.0。
人和人的差距,比人和狗的差距還大。
所以不要慌,你再慌,也有人不如你,你再慌,也有人比你厲害。
一步一步走,永遠不要被別人影響,做好自己。
0.3不要猶豫
挺多人還在比那個語言好,糾結學哪個語言,糾結哪個方向掙錢。
想的多不如去做,我相信不管你做什麼,只要努力一定有收穫。
0.4我不建議花時間學的東西
AWT 和 Swing
好像不知道大清朝早已經亡了幾百年一樣。已經 9102 了,誰還會用 AWT 和 Swing 去開發桌面應用呢?
Struts
Struts 是早年一個優秀的 MVC 框架,單從技術的角度來看,還是蠻不錯的。但是自從有了 SpringMVC 後,Struts 就被拍死在沙灘上了。
Hibernate
Hibernate 太重量級了,學習成本太高,取而代之的是輕量級的 MyBatis(支援定製化 SQL、儲存過程以及高階對映)。
JSP
等等。。。
當然誰和誰的情況都不一樣,如果你入職的小公司確實需要,還是要學的(但是我建議你跑路,沒意義的)
相關文章
- 大學兩年,寫了這篇幾十萬字的乾貨總結
- 大學兩年的一點總結
- 併發程式設計概念大總結--乾貨程式設計
- Canvas乾貨總結Canvas
- 這兩年在大資料行業中的工作總結大資料行業
- Python那些事——超級乾貨,python常用函式大總結Python函式
- React Native純乾貨總結React Native
- 總結了100多場視訊號直播的乾貨
- 「完結」16篇影像分類乾貨文章總結,從理論到實踐全流程大盤點
- 關於PaaS的純乾貨總結
- 【年度總結】在大廠混了兩年,然後呢?
- Redis系列總結--這幾點你會了嗎?Redis
- 這一篇就夠了——APP瘦身總結APP
- ❀ Spring5學習大總結Spring
- 大資料開發工程師的兩年工作經驗總結大資料工程師
- 拒絕FileNotFoundException!總結了這幾個讀取jarExceptionJAR
- 大前端效能總結前端
- http headers 大總結HTTPHeader
- css常用大總結CSS
- Python 潮流週刊第 2 季完結了,分享幾項總結Python
- NestJS學習總結篇JS
- 你所需要的java基礎提升篇大總結Java
- 自媒體工具有哪些,乾貨總結
- 「乾貨」檢測識別二維碼的幾大開源庫彙總
- 十幾道含答案的大廠面試題總結面試題
- 這兩天的面試經驗總結面試
- 【乾貨】驗證碼的常見型別總結型別
- Vue.js大總結Vue.js
- 總結兩點
- 2021年過了四天了,才想起來寫2020年的總結
- shell學習總結-2
- 【多執行緒總結(四)-三大性質總結】執行緒
- 這可能是你見過的最全的網路爬蟲乾貨總結!爬蟲
- Flutter 開發踩坑記錄(乾貨總結)Flutter
- 乾貨:計算機網路知識總結計算機網路
- Binder總結篇2-Binder使用
- 如何寫一個好的測試?總結起來就這兩點……
- 「乾貨總結」程式設計師必知必會的十大排序演算法程式設計師排序演算法