本文十天後設置爲粉絲可見,喜歡的提前關注
本篇文章應該算是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
等等。。。
當然誰和誰的情況都不一樣,如果你入職的小公司確實需要,還是要學的(但是我建議你跑路,沒意義的)