2018 給學(xué)弟學(xué)妹的建議
2018 給學(xué)弟學(xué)妹的建議
目前的互聯(lián)網(wǎng)行業(yè)已經(jīng)完全不是它剛開始盛行的樣子了。在互聯(lián)網(wǎng)爆火??的初期,你可能會(huì)簡單用一下語言就能找到一個(gè)不錯(cuò)的工作[1]。那時(shí)候,即使是沒有學(xué)歷支撐直接從培訓(xùn)班出來的基本也都找到了還算是不錯(cuò)的工作。但是,現(xiàn)在已經(jīng)完全不一樣了。
面試的難度可以說一年比一年難,學(xué)的人越來越多,和你競爭的也越來越多,特別是像面試阿里、騰訊、字節(jié)跳動(dòng)這樣的大廠,你可能要和更多人去競爭。“面試造火箭,入職拎螺絲” 想想也是正常,畢竟這么多人去競爭那少數(shù)的 offer,如果不難點(diǎn)的話,區(qū)分度就沒那么明顯了
學(xué)習(xí)計(jì)算機(jī)專業(yè)的越來越多,和你競爭的也越來越多,需求就那么一些,人多了之后,平均工資水平以后應(yīng)該不會(huì)和其他行業(yè)差別這么大。但是,我個(gè)人感覺技術(shù)厲害的還是會(huì)很吃香。只是,普通的程序員的工資可能比不上前幾年了
學(xué)歷越來越重要,有些公司招聘會(huì)要求全日制統(tǒng)招本科(??苹緵]希望了),我同事都在偷偷的考在職研究生了
所以如果想學(xué)習(xí),需要趁早,做在同齡人中拔尖的那一部分。
下面是一些我覺得還不錯(cuò)的一些建議,希望對(duì)大家有幫助。
養(yǎng)成學(xué)習(xí)和計(jì)劃的習(xí)慣
無論在學(xué)校還是以后的工作中, 都要養(yǎng)成終身學(xué)習(xí)的習(xí)慣。
學(xué)習(xí)這東西不僅僅是為了應(yīng)對(duì)考試,更要應(yīng)對(duì)以后工作中對(duì)你的要求和實(shí)現(xiàn)自己夢想需求,在校期間可以考考駕照、會(huì)計(jì)等證。
不管多遠(yuǎn),你遲早要自己開車的,學(xué)校附近的駕校比外面便宜的多,而且這是你時(shí)間最充裕的時(shí)候
學(xué)學(xué)會(huì)計(jì)相關(guān)的知識(shí),對(duì)你以后理財(cái)、投資都有幫助
堅(jiān)持學(xué)英語,尤其是口語
養(yǎng)成團(tuán)隊(duì)協(xié)作習(xí)慣
在平常學(xué)習(xí)的工程中,大家可以能是單獨(dú)完成學(xué)習(xí)任務(wù),但在工作中,需要團(tuán)隊(duì)協(xié)作。所以應(yīng)該在工作前學(xué)會(huì)一些團(tuán)隊(duì)協(xié)作的軟件和方法。
在大一學(xué)完第一門編程語言的時(shí)候,我那時(shí)是C語言, 我想你也一定順利的通過考試和考核了,在這其中是否發(fā)生了粘貼復(fù)制別人的代碼,而且發(fā)生了找不到自己最初那個(gè)版本的困擾。這時(shí)候你需要一個(gè)版本控制軟件來幫你記錄版本變更和團(tuán)隊(duì)協(xié)作。
建議你在大二上學(xué)期開始初步使用 git 來管理你的代碼以及和你小組內(nèi)的成員進(jìn)行團(tuán)隊(duì)協(xié)作,git 是你開始工作必須會(huì)遇到的第一個(gè)軟件,無論你是要做后端還是前端。如果你用不好它,那你可能會(huì)刪除你未來同事的代碼,這樣你會(huì)很尷尬的。不如提前學(xué)好它,畢竟刪除同學(xué)的代碼,也就刪了
git 學(xué)習(xí)教程
入門文章 https://www.liaoxuefeng.com/wiki/896043488029600
官方文檔 https://git-scm.com/docs
視頻 https://www.imooc.com/learn/1052
如果你看完文檔或者了解 Git 你會(huì)發(fā)現(xiàn) GitHub
這個(gè)是我的主頁: https://github.com/zhangyunan1994
不過 GitHub 有時(shí)會(huì)無法訪問,在學(xué)習(xí)的時(shí)候建議你使用國內(nèi)的 gitee, 這個(gè)是中文版的,速度很快,支持私有的倉庫
這個(gè)是我的 gitee 主頁: https://gitee.com/zhangyunan1994
建議同學(xué)在大二開始使用,比如在Java課程或者在數(shù)據(jù)結(jié)構(gòu)的習(xí)題中,將作業(yè)交到 gitee 上, 一方面教給學(xué)生單獨(dú)使用 git ,另一方面也可以讓學(xué)生初步學(xué)習(xí)下如何協(xié)作
在初次使用的時(shí)候應(yīng)該學(xué)會(huì)使用分支、合并、推送、強(qiáng)制推送等功能
等到小組結(jié)組開發(fā)時(shí)應(yīng)該學(xué)會(huì)如何處理沖突和協(xié)作
根據(jù)我當(dāng)時(shí)課程推薦一些輔導(dǎo)
有些課程的具體時(shí)間可能會(huì)記混
| 時(shí)間 | 課程 | 輔導(dǎo) |
|---|---|---|
| 大一上 | 線性代數(shù) | 看看書,多做題就好了,這個(gè)對(duì)以后對(duì)算法題和統(tǒng)計(jì)分析有幫助 |
| 大一上 | 離散數(shù)學(xué) | 多看書,如果可能找一些算法題看下,圖書館應(yīng)該有,矩陣是必須要掌握的 |
| 大一下 | C 語言 | 大部分人接觸的第一門語言,一定要認(rèn)真學(xué),在老師講課的同時(shí)可以看一下 慕課網(wǎng)C語言,如果時(shí)間富裕的話,建議開始用 git 來管理你的代碼,少打兩把游戲可能就學(xué)會(huì)了,記得高數(shù)不要掛科哦 |
| 大一下 | C 語言課設(shè) | 建議用 git 來管理你的代碼,并嘗試將其發(fā)布到 github 或者 gitee |
| 大二上 | 數(shù)據(jù)結(jié)構(gòu) | 好多算法都依賴于數(shù)據(jù)結(jié)構(gòu),這時(shí)候可以隨堂看一下 《算法基礎(chǔ)》和《數(shù)學(xué)之美》這兩本書,要認(rèn)識(shí)到數(shù)據(jù)結(jié)構(gòu)的重要性和應(yīng)用場景 |
| 大二上 | 數(shù)據(jù)結(jié)構(gòu)課設(shè) | 如果這時(shí)候順利的話,應(yīng)該可以運(yùn)用 git 來管理你的代碼了 |
| 大二上 | 數(shù)據(jù)庫設(shè)計(jì) | 一般會(huì)用 SQLServer 給大家講數(shù)據(jù)庫的設(shè)計(jì)和 SQL 語句的使用,這個(gè)將來是你工作中遇到做多的知識(shí),學(xué)的越扎實(shí)越好,另外大部分企業(yè)使用的是MySQL,這個(gè)安裝更簡單,大部分SQL是通用的,建議有時(shí)間看一下 與MySQL的零距離接觸 和 菜鳥教程,一定要具備創(chuàng)建數(shù)據(jù)庫和增刪改查的能力 |
| 大二上 | 操作系統(tǒng) | 學(xué)習(xí)一下操作系統(tǒng)的相關(guān)技術(shù)了,重點(diǎn)學(xué)習(xí)下 Linux 命令,推薦 《Linux 命令與shell腳本編程大全》,學(xué)習(xí) linux一定要學(xué)會(huì) Vim 的簡單實(shí)用 |
| 大二上 | 建議 | 這時(shí)候建議你看一下 HTML、CSS 學(xué)會(huì)一些頁面的編寫,這個(gè)相對(duì)簡單一點(diǎn),持續(xù)學(xué)一下,至少可以做一下簡單的頁面 |
| 大二下 | 計(jì)算機(jī)網(wǎng)絡(luò) | 這個(gè)一定要知道一個(gè)URL 從瀏覽器地址欄回車到顯示頁面中間經(jīng)歷了什么 |
| 大二下 | 組成原理 | 這本書好難背呀,一定要熟記和理解了 |
| 大二下 | Java | 不要這時(shí)候看《Java 編程思想》這本應(yīng)該是工作之后看的,你這時(shí)候可以看一下《Head First Java》或者 《Java 核心技術(shù)卷 1》,一定要找本薄點(diǎn)的看,不然容易睡著的,也可以看看視頻https://www.imooc.com/learn/85,這個(gè)有三季,這個(gè)時(shí)候一定要學(xué)會(huì) java + jdbc 完成簡單的小功能,比如圖書系統(tǒng),宿舍系統(tǒng)之類的,如果可以用上maven 也是很好的 |
| 暑假或其他時(shí)間 | Java | 在學(xué)習(xí)了java之后,就需要學(xué)習(xí)一些框架了,從簡單的 SSM 開始,以下會(huì)給出相關(guān)資源 |
| 大三上 | xml 和 html5 | 這個(gè)也是工作中遇到很多的,最好徹底掌握,畢竟這個(gè)很早就開始學(xué)了 |
| 大三上 | oracle | 學(xué)了 SQLServer 和 MySQL,這門課就沒那么難了,主要考察你的動(dòng)手和思考能力 |
| 大三上 | 建議 | 這時(shí)候就要用 SSM 做一個(gè)完整的系統(tǒng),建議4個(gè)人一組,并且使用git作為版本控制,團(tuán)隊(duì)之間有分工 |
| 大三下 | java企業(yè)開發(fā) | 這時(shí)候會(huì)再學(xué)習(xí)一遍 SSM ,如果你有理解錯(cuò)的地方,這時(shí)候一定要和老師交流,如果沒有理解錯(cuò),就在鞏固一遍,順便學(xué)一下Spring Boot |
| 暑假 | 建議 | 準(zhǔn)備一下畢業(yè)設(shè)計(jì)方向,學(xué)學(xué)新知識(shí) |
| 大四上 | 畢設(shè) | 準(zhǔn)備畢設(shè),看看能不能把所學(xué)的用上,如果不打算考研了,可以準(zhǔn)備看看面試要求了 |
如何獲取資源
慕課網(wǎng) https://www.imooc.com/
百度網(wǎng)盤找資源 http://www.rufengso.net/s/name/Java
百度直接搜
找老師和學(xué)長要,尤其是已經(jīng)畢業(yè)的學(xué)長,他們很多
CSDN、思否、博客園、簡書等博客網(wǎng)站搜
淘寶買一下,一般10元1個(gè)T的那種
推薦一些書籍和教程
| 教程 | 類型 | 適用時(shí)間 |
|---|---|---|
| 《碼農(nóng)翻身》 | 書籍 | 到了大二可以買本看看,挺有意思的一本書 |
| 《寬客人生》 | 書籍 | 從物理學(xué)家到數(shù)量金融大師的傳奇 [My Life as a Quant: Reflections on Physics and Fin] |
| 《算法基礎(chǔ)》 | 書籍 | 學(xué)數(shù)據(jù)結(jié)構(gòu)時(shí)開始看,要一直看,有個(gè)《算法導(dǎo)論》那本太厚,容易勸退,先看這本比較好 |
| 《Java 核心技術(shù)卷 1/2》 | 書籍 | 學(xué) Java 時(shí)開始看 |
| 《Head First Java》 | 書籍 | 學(xué) Java 時(shí)開始看,和上者選其一,這本更有趣 |
| 《Linux 命令與shell腳本編程大全》 | 書籍 | 學(xué)習(xí)Linux時(shí)開始看,大學(xué)階段一直看 |
| 《vim 實(shí)用技巧》 | 書籍 | 初次接觸 Vim 時(shí)看看,沒事多看看就好 |
| 《深入理解Java虛擬機(jī)》 | 書籍 | 大四上學(xué)期看看,主要是多背背,面試容易問 |
| git 教程 | 文檔 | https://www.liaoxuefeng.com/wiki/896043488029600 |
| git 教程 | 官網(wǎng)文檔 | https://git-scm.com/docs |
| git 教程 | 視頻 | https://www.imooc.com/learn/1052 |
| Java入門第一季 | 視頻 | https://www.imooc.com/learn/85 |
| Java入門第二季 | 視頻 | https://www.imooc.com/learn/124 |
| Java入門第三季 | 視頻 | https://www.imooc.com/learn/110 |
| 與MySQL的零距離接觸 | 視頻 | https://www.imooc.com/learn/122 |
| 我自己在寫的 | 文檔 | https://github.com/some-big-bugs/growth |
一些好的文檔項(xiàng)目推薦
注意: 不要好高騖遠(yuǎn),要找自己會(huì)的那部分一點(diǎn)一點(diǎn)看,一點(diǎn)一點(diǎn)的學(xué)
| 名稱 | 描述 |
|---|---|
| free-books | 免費(fèi)書籍 |
| awesome | awesome 合集 |
| javaok | 必看!java后端,亮劍誅仙。java發(fā)展路線技術(shù)要點(diǎn)。 |
| JavaGuide | 【Java學(xué)習(xí)+面試指南】 一份涵蓋大部分Java程序員所需要掌握的核心知識(shí)。 |
| advanced-java | 互聯(lián)網(wǎng) Java 工程師進(jìn)階知識(shí)完全掃盲:涵蓋高并發(fā)、分布式、高可用、微服務(wù)、海量數(shù)據(jù)處理等領(lǐng)域知識(shí),后端同學(xué)必看,前端同學(xué)也可學(xué)習(xí) |
| CS-Notes | ?? 技術(shù)面試必備基礎(chǔ)知識(shí)、Leetcode、計(jì)算機(jī)操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、系統(tǒng)設(shè)計(jì)、Java、Python、C++ |
| interviews | Everything you need to know to get the job. |
| toBeTopJavaer | To Be Top Javaer - Java工程師成神之路 |
| fullstack-tutorial | ?? fullstack tutorial 2019,后臺(tái)技術(shù)棧/架構(gòu)師之路/全棧開發(fā)社區(qū),春招/秋招/校招/面試 |
| android-interview-questions | Your Cheat Sheet For Android Interview - Android Interview Questions |
| AndroidNote | 安卓學(xué)習(xí)筆記 |
| spring-analysis | Spring源碼閱讀 |
| SpringCloudLearning | 《史上最簡單的Spring Cloud教程源碼》 |
| mit-deep-learning-book-pdf | MIT Deep Learning Book in PDF format (complete and parts) by Ian Goodfellow, Yoshua Bengio and Aaron Courville |
| miaosha | ????秒殺系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).互聯(lián)網(wǎng)工程師進(jìn)階與分析???? |
| spring-boot-demo | spring boot demo 是一個(gè)用來深度學(xué)習(xí)并實(shí)戰(zhàn) spring boot 的項(xiàng)目,目前總共包含 63 個(gè)集成demo,已經(jīng)完成 52 個(gè)。 該項(xiàng)目已成功集成 actuator(監(jiān)控)、admin(可視化監(jiān)控)、logback(日志)、aopLog(通過AOP記錄web請(qǐng)求日志)、統(tǒng)一異常處理(json級(jí)別和頁面級(jí)別)、freemarker(模板引擎)、thymeleaf(模板引擎)、Beetl(模板引擎)、Enjoy(模板引擎)、JdbcTemplate(通用JDBC操作數(shù)據(jù)庫)、JPA(強(qiáng)大的ORM框架)、mybatis(強(qiáng)大的ORM框架)、通用Mapper(快速操作Mybatis)、PageHelper(通用的Mybatis分頁插件)、mybatis-plus(快速操作Mybatis)、BeetlSQL(強(qiáng)大的ORM框架)、upload(本地文件上傳和七牛云文件上傳)、redis(緩存)、ehcache(緩存)、email(發(fā)送各種類型郵件)、task(基礎(chǔ)定時(shí)任務(wù))、quartz(動(dòng)態(tài)管理定時(shí)任務(wù))、xxl-job(分布式定時(shí)任務(wù))、swagger(API接口管理測試)、security(基于RBAC的動(dòng)態(tài)權(quán)限認(rèn)證)、SpringSession(Session共享)、Zookeeper(結(jié)合AOP實(shí)現(xiàn)分布式鎖)、RabbitMQ(消息隊(duì)列)、Kafka(消息隊(duì)列)、websocket(服務(wù)端推送監(jiān)控服務(wù)器運(yùn)行信息)、socket.io(聊天室)、ureport2(中國式報(bào)表)、打包成war文件、集成 ElasticSearch(基本操作和高級(jí)查詢)、Async(異步任務(wù))、集成Dubbo(采用官方的starter)、MongoDB(文檔數(shù)據(jù)庫)、neo4j(圖數(shù)據(jù)庫)、docker(容器化)、JPA多數(shù)據(jù)源、Mybatis多數(shù)據(jù)源、代碼生成器、GrayLog(日志收集)、JustAuth(第三方登錄)、LDAP(增刪改查)、動(dòng)態(tài)添加/切換數(shù)據(jù)源、單機(jī)限流(AOP + Guava RateLimiter)、分布式限流(AOP + Redis + Lua)、ElasticSearch 7.x(使用官方 Rest High Level Client)。 |
正確提問
我們平時(shí)任何時(shí)候都離不開提問,特別是初學(xué)的時(shí)候,但是真正知道如何正確的提問的人很少。問別人問題前不要來一句 “在嗎”,你說你問了在嗎我是回復(fù)好還是不回復(fù)好呢 ?
更多關(guān)于如何提問的內(nèi)容,詳見 github 上開源版『提問的智慧』 https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md,抽時(shí)間看一下,我想看完之后應(yīng)該會(huì)有很多收獲。
健康生活
我一直覺得這一方面是最重要的,我想很多人和我一樣會(huì)無意識(shí)間忽略它,等到真的身體不舒服了,你才開始意識(shí)到健康生活的重要性。
除非萬不得已,不要熬夜了。熬夜的危害就不用多說了,禿頭加內(nèi)分泌失調(diào),你懂得!
看電腦 45 分鐘之后,起來走5分鐘,看看遠(yuǎn)方放松一下。不要覺得這 5 分鐘浪費(fèi)時(shí)間,相反,這 5 分鐘可能為你帶來更大的效率提升。
適當(dāng)健身,保持一個(gè)不胖的身材。
高效搜索
建議搜索順序 google > bing > 百度 > 其他
善于總結(jié)
學(xué)習(xí)完任何一門知識(shí)后,你可能當(dāng)時(shí)看視頻感覺老師講的挺容易懂的。但是,過幾天后你發(fā)現(xiàn)你忘的一干二凈,別人問你一個(gè)類似的問題,你一點(diǎn)思路都沒有。所以,我推薦你學(xué)完一門知識(shí)后不光要及時(shí)復(fù)習(xí),還要做好總結(jié),讓知識(shí)形成一個(gè)體系。另外,你可以假想自己要給別人講這個(gè)知識(shí)點(diǎn),你能不能把這個(gè)知識(shí)點(diǎn)講清楚呢?如果不能,說明你對(duì)這個(gè)知識(shí)點(diǎn)還沒有徹底了解。這也就是人們經(jīng)常說的費(fèi)曼學(xué)習(xí)技巧。
總結(jié)的方式:
有道云筆記、OneNote……這類專門用來記錄筆記的軟件上;
在 github 或者gitee 上寫文檔,這也能鍛煉你git使用,建議找 4~10 個(gè)人一起寫,這樣大家能相互學(xué)習(xí)
思維導(dǎo)圖xmind;
通過寫博客輸出
多用 Github
沒事多去 Github 轉(zhuǎn)轉(zhuǎn),如果有能力可以參與到一些開源項(xiàng)目中。多看看別人開源的優(yōu)秀項(xiàng)目,看看別人的代碼和設(shè)計(jì)思路,看的多了,你的編程思想也會(huì)慢慢得到提升。除了這些優(yōu)秀的開源項(xiàng)目之外,Github 上面還有很多不錯(cuò)的開源文檔、開源資料什么的,我覺得對(duì)我們平時(shí)學(xué)習(xí)都挺有幫助。Github 用得好還能裝一下,畢竟人家還是一個(gè)全英文網(wǎng)站,咳咳咳。
實(shí)踐
多去實(shí)踐,將學(xué)到的東西運(yùn)用到實(shí)際項(xiàng)目中去。很多人都找我抱怨過沒有實(shí)際項(xiàng)目讓自己去做,怎么能有項(xiàng)目經(jīng)驗(yàn)?zāi)??如果?shí)在沒有實(shí)際項(xiàng)目讓你去做,我覺得你可以通過下面幾種方式:
在網(wǎng)上找一個(gè)符合自己能力與找工作需求的實(shí)戰(zhàn)項(xiàng)目視頻或者博客跟著老師一起做。做的過程中,你要有自己的思考,不要淺嘗輒止,對(duì)于很多知識(shí)點(diǎn),別人的講解可能只是滿足項(xiàng)目就夠了,你自己想多點(diǎn)知識(shí)的話,對(duì)于重要的知識(shí)點(diǎn)就要自己學(xué)會(huì)去往深處學(xué)。
Github 或者碼云上面有很多實(shí)戰(zhàn)類別項(xiàng)目,你可以選擇一個(gè)來研究,為了讓自己對(duì)這個(gè)項(xiàng)目更加理解,在理解原有代碼的基礎(chǔ)上,你可以對(duì)原有項(xiàng)目進(jìn)行改進(jìn)或者增加功能。
自己動(dòng)手去做一個(gè)自己想完成的東西,遇到不會(huì)的東西就臨時(shí)去學(xué),現(xiàn)學(xué)現(xiàn)賣。
注意代碼規(guī)范
從學(xué)習(xí)編程的第一天起就要養(yǎng)成不錯(cuò)的編碼習(xí)慣,包、類、方法的命名這些是最基本的。
推薦閱讀:
阿里巴巴Java開發(fā)手冊(cè)(詳盡版)https://github.com/alibaba/p3c/blob/master/阿里巴巴Java開發(fā)手冊(cè)(詳盡版).pdf
Google Java編程風(fēng)格指南:http://www.hawstein.com/posts/google-java-style.html
Effective Java第三版中文版: https://legacy.gitbook.com/book/jiapengcai/effective-java
關(guān)于打造個(gè)人 IP 的問題
無論是學(xué)生開始已經(jīng)工作,如果能讓面試者先知道你這個(gè)人,然后你才投的簡歷,對(duì)你面試或者以后的成長都有幫助。
比如有的學(xué)生可能還沒畢業(yè)就已經(jīng)有個(gè)非常著名的博客或者項(xiàng)目,這樣的人出去找工作肯定事半功倍,那如何打造自己的 IP 呢?
這個(gè)我也沒什么辦法,只能說盡量去做一些能提高知名度的事情。
寫博客,一邊學(xué)習(xí)一邊總結(jié)
使用 Github,這個(gè)在一些公司是加分項(xiàng)
參加一些開源項(xiàng)目的討論,最好能直接參與修改
在一些有排名的網(wǎng)站刷排名
當(dāng)然起個(gè)好名字也挺重要的,畢竟這個(gè)名字可能伴隨你的技術(shù)生涯
后記
時(shí)間有限,內(nèi)容不一定全
其他資料,可以 [email protected]
注釋:
1: 聽當(dāng)時(shí)導(dǎo)員和學(xué)長說的,在 08 年你畢業(yè)就能找到工作,在 10 年你會(huì)點(diǎn)編程就能找到工作
