大四Java程序猿的技术之路以及对在校生学后端的建议

2020/2/19 17:09:37

本文主要是介绍大四Java程序猿的技术之路以及对在校生学后端的建议,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

前言

各位社区的技术大佬们大家好,我是一名普通本科院校计算机科学与技术专业的大四本科生,主要做后端开发。

大学期间,学校比较普通,玩的人也比较多,学习氛围也一般,自己从大一下册开始慢慢自学技术吧,期间从课本的C语言到自己去拓展C++,然后自学Java,然后框架、组价等,大二暑期开始了第一段实习旅程。在学习和实习期间很多时候浮于表面,没有深入某个技术。也走了很多弯路,正好曾现在空闲时间,待在家里想写一篇博客,说一说我这3年多在学校学习技术的一些经历和对于普通计算机专业同学的学习之路的建议吧,希望能帮到社区的一些在校同学。

我会分几个点来说吧,首先我会说一下我大学期间是怎么经历从什么都不懂到慢慢接触到互联网相关技术以及里面踩过的坑。然后我会讲下大学期间的侧重点,最后我想讲一下我对大学期间学习安排上的一点建议。

大学的学习之路

大一

我们学校大一上册是安排的专业相关课程是 程序设计基础(C语言),我记得我在高考完过后,等录取通知书的那段时间,因为我所有的专业都是报的计算机相关专业(计算机科学与技术、软件工程等),所以这个阶段就在中国大学生慕课上通过浙江大学翁凯学得,一开学看课表,我擦C语言,不用学了oh-yeah!然后就愉快得去了学生组织浪荡。。。

直到大一下学期,发现学院周围的人居然有人已经开始做一些小东西了???我惊了,我压制着内心的失落,企图找到自己的方向,告诉自己,要做咋们就要好好做!于是就开始学习C++,但是过了一遍过后,发现C++这个东西,太特么妖了吧。。。学不来,学不来,期间我试着写了写Qt。内心慌得一批,周围有人学前端的,我就试着去过了一遍HTML、CSS、JS,helloworld水准。我发现我自己是真的怎么喜欢做前端。虽然前端容易让人有成就感。随后我也不知道怎么了看中了某课网上的Android职业途径,觉得挺有意思,然后开始学,恰好,Android的前面部分是Java,对没错它就是Java,由于我过了一遍C++,学Java的时候特别顺畅,学起来似乎有点膨胀啊!感觉某课网上的的步骤一学起来特别快。信心大增,开始飘飘欲仙。。。但是好事不长,后来放暑假过后,开始深入到一些交互层面、一些系统调用、网络调用、数据操作之类的,让我一脸懵逼,我开始怀疑人生了。。。学了一半多,,还有一半的时候我居然放弃了。。。没错,我放弃了。

大二

大一暑假过的很快,毕竟我还是学了一月的样子,大二开学过后,分了新宿舍,我们室友其中有一个是ACM协会的,成绩也是专业前三的那种。我们组团一起学习,于是我和几个室友商量,要不找个实验室待着吧。由于ACM这个室友已经有了,也就是我和另外一个要去找,还有一个室友不愿意去。。寻找了许久,发现不是这个老师拉你干私活,就是另外个老师有点什么不好的消息。。。最后迫于无奈,我找到了班主任。我们班主任真的超级Nice!直接帮我找了一个老师,然后这个老师有间大概可以坐下30个人的学习中心。。。而且还是没什么人的,就只有几个勤工俭学的人。word天。美滋滋。。然后我就去了。随后和老师商量,又招了10来个人来实验室,于是乎我们一个团队就开始了啥也不懂自学之路。说巧也巧那段时间正好中国服务外包大赛开始了,我和一起加实验室的室友然后再到班上着了三个人,组了一个队,就报名了。。。选的题就是一个Web系统,正好我学了Java,我们就说那就用Java做后端。然后就开始了不归路。。。上学期把Java重新过了一遍然后学jsp+servlet然后学SSM框架。上学期寒假开始做项目。。。后来开学了,做起来实在是难。。而且md 没人教啊!!!什么业务都定不下来!就瞎做。。。最后果然不出意外,崩了!虽然崩了,不过还好,至少那时候我还学到点东西。虽然啥都不懂,但是知道框架怎么用。

可能看起来没什么,哎,只有自己经历了才知道,没有人指路是多么难。。。一个bug调两天,最后发现是什么参数拼写错误???或者是什么版本不兼容??我也是服了。转眼大二下就到了,我十分痛心于自己在学习的道路上没有人带,就和小伙伴们商量,我们要不开始做延续把。。。就开始去大一宣传(忽悠),吹牛逼说实验室的人有多牛逼,有多牛逼。大二下册,虽然比赛失败了,但是也还好,由于逛博客(搜bug)逛多了,了解了很多很“高端”的东西,于是乎就学了SpringBoot、Dubbo、Zookeeper和Redis这些东西。但是这个学了是真的不是学了。而是会用了,反正网上各种教程,照着用就是了。。。

不就大二暑假就来了,感觉自己学了点东西还挺牛逼的我,就去了一家小公司实习。然后公司 用的SSM+SpringCloud,没事,反正就写业务,写写SQL和controller还是感觉自己没毛病的。要说小公司实习没收获也不全是,至少还是让我了解到实际一个项目的组成有些什么,开发中哪些地方需要注意下问题。虽然没有并发,没有多线程,没有什么高端的组件,也不可能让我写复杂的功能。但是我还是觉得挺不错的。

大三

不久大三就开学了,开学过后,实验室招新就开始了,招了一群大二的学弟。然后日常就是偶尔学学技术、偶尔教教学弟。我又接触了一下消息队列。RocketMQ、Elasticsearch和一些乱七八糟的东西。当时还没意思到为自己面试做准备。。。直到大三块期末了。。。实验室有个前端去面试TMD的一家公司过后。我才意识到,要去找公司面试实习岗位了。。。然而为时已晚。。。

第一场面试就是一家大公司。招Java岗位实习,我记得是1月份,我记得特别清楚,首先两道算法题,一道树的遍历,一道数组的求值问题,还好我树的遍历还记得,但是后面一体我就没有思路。那就暴力法!还没写出来,面试官就让我不写了,然后就开始自我介绍,介绍完过后,就问我Java,你知道Java有哪些方式加锁吗?我说synchronized。他说还有吗?我????(一脸懵逼)当时我没看过Lock你敢信。然后他问你知道HashMap的put操作过程吗?我???不知道!!,然后他果断放弃了Java,然后开始问我数据库,你知道索引吗?我???加快查找速度的?你知道他的数据结构是什么吗?我????不知道!好成功又换了方向,问我你能讲讲elasticsearch倒排索引吗?这个我知道!!我当时还没意思到,面试官已经不想问了。后来闲聊几句就结束了。我当时还没意识到我凉了,毕竟没面试过。我就回去了。随后左等右等没有后续,我就意识到我凉了。

我好好回想了一下他的问题,然后开始去看大家的面试过程,我意识到,我似乎一直都在看框架的使用、看组件的使用,而忽略了很多内部的原理,而且我也没有去认真看过关于并发的知识。后来投了一家大公司也有面试邀约,我也就没有去了。随后我就开始疯狂补多线程的知识,补JVM的知识、补一些原理的知识、此外还有数据结构、计算机网络、操作系统。

直到大三下册,我又去面公司了。这次我没有选择去投大公司,就投一些中小型互联网公司,大概人数在200-500的公司。也面试过了几家,期间我也参加了一家巨无霸公司的校招,但是没意外,凉了!到了快期末的时候,我接到了一家公司的面试邀约,这家公司人数虽然不多吧,但是研发人员还挺多,大概有100人,我就去了,说实话,我去之前根本没有听过这家公司,是一家做2B业务的公司,面试的时候,面试官是一个在阿里待过,从有赞挖过来的架构师,技术面比较难,人心作祟,技术面虐成狗,我居然过了,我怀着去看大佬的心态,就去了。当时我的基础学习状态是:把一些框架的原理看了看,JVM看了一点,计算机网络看了一些、数据库看了一些,并发看了看。随后暑期入职过后,我就吭哧吭哧得天天9 10 5 (甚至9-12),写业务,因为在学校我还是写了几个项目,入手还算比较快!工作了一月把,慢慢进入状态,发现实在是没有时间学习,一个同事影响了我!他天天7点到公司,看书学习技术到9点然后开始上班!我擦!真的牛逼~我想既然人家可以!我也可以!然后我就和他组团7点过到!就变成了7-10-5,这段时间老实说我还是很开心的!每天早上看书学习,然后到点上班!每天都很充实!但是是真的累!

时间过得很快!入职三月过去了,我面临着考评发offer,我找我leader问了下转正的事情,leader给我承诺15-16k吧。我当时和我周围的朋友们拿的offer纵向对比了下,差不多吧,我也没有什么坏心思,我就老实说,我觉得公司不错,我想留下来!leader说,如果不满意你可以去面面其他公司!没事的!老实说我leader对我还是不错的,当时他给我说的薪资,是他对我的估计!我也就信了。后来转正分享过后,研发中心老大他们商量了我的薪资,我leader找我聊了,隐晦说可能没那么高,什么的,我心想,低个1-2k我也能接受吧,毕竟我们实验室和一些朋友14-18k的都有,就算14k我也可以接受把。当时我的心里是想15k吧。但是当我接到offer过后,我心里真的不是滋味吧。offer发下来,12K+后三月考评增长0-25%,也就是说我还需要经过几月考评,我当时在实习生当中把,评定应该是最高的。公司不大嘛,实习生的水平也就都一般,我还算努力,也肯学,所以评分还不错。说实话,我接受不了!上班从9点上到10点半(我们组基本都是这个时间走),周六周末我去学习,偶尔还帮别的人写业务。心里落差太大了。第二天就提离职了。我们组的leader找我聊了,公司后端老大也找我聊了下,但是我比较坚决吧。我也不需要毒鸡汤,很简单,我就想,只要工资ok,大家开心,工作我会努力,加班我也能接受。但是我受不了套路我!最终还是离职了!可能是我太天真了吧。

大四

离职过后回到学校,真的有点迷茫,都11月了,也没有很多公司招聘,再加上我没有任何面试准备。。。血亏啊!我真的就没有骑驴找马把offer当做筹码!我是不是太单纯了!

于是乎我就开始了复习之路,想着既然没什么太多公司了,那我就春招去吧!就开始安排从数据结构开始系统重学!我感觉以前学的太乱了!真的太乱了!回到学校,实验室新一届的学弟们又来了,边在实验室自己复习,边教教学弟把,自己就重学数据结构、JDK的一些源码、计算机网络、多线程、Netty等等,

直到现在,疫情来了,放假过后回到家,现在想回杭州找工作!浙江这段时间还特别严重!我怕了。。。

Java学习路线建议

在家这段慢慢思考着几年的学习之路我发现我是真的垃圾!太浮躁,浮于表面!一手好牌打得稀烂!幸好自己发现早!不然等毕业了就真的是一个废物!就想着分享一下我的对普通院校计算机相关专业自学后端路线的看法!

ps:大佬勿喷!谢谢!仅供参考!

大一

  • 大一我个人觉得主要是先把基础学习好!
项目 建议用时 理由或建议 推荐书籍
C语言 大一上-2月 里面的一些概念挺通用的,较有代表性。 《C Primer Plus》
数据结构 大一上-3月 它是后续所有的基石,每个结构都非常清楚 《数据结构(C语言版)》
算法 大一下开始 利用算法更好得去理解数据结构和解决问题 建议刷题leetcode每天一题
Java基础 大一下-2月 现在大部分互联网公司都是Java,其次Go 《Java核心卷1》
前端基础 大一下-半月 后端需要了解前端的基础知识 知道前端有什么东西就好
servlet 大一暑假-1月 相对来说简单且用于了解基本的工程开发
MySQL基础 大一暑假-1月 免费、使用广泛 《深入浅出MySQL》
  • 可能有些大佬会说C语言不需要2个月,数据结构也不需要3个月,这个是在上课比较多的情况下,如果没课,至少缩短一半,不过刚入门的时候是比较难的所以慢点也无所谓。

大二

  • 大二我是觉得主要是先了解工程与此同时学习理论知识,并且进行相关技术的深入
选项 建议用时 理由或建议 推荐书籍
SSM使用 上-2月 企业开发用得最多,最受欢迎 《Spring实战》
Linux使用 上-半月 企业服务器基本都是Linux 《鸟哥的Linux私房菜》
Redis 上-1月 缓存的代表作 《Redis设计与实现》
SpringBoot 上-1月 简化开发,提升效率,组件丰富 《SpringBoot编程思想》
操作系统 上-1月 这个是必须的! 教材即可
计算机网络 下-1~2月 这个也是必须的! 《计算机网络:自顶向下方法》
Java并发与IO 下-1月 基础部分只了解这里要深入学习 《Java并发编程艺术》
JVM 下开始 建议长期阅读 《深入理解JVM》
Netty 下-1~2月 简化网络应用开发,深入对网络的理解 《Netty实战》
设计模式 下-半月 深入学习原理必须要知道 《设计模式之禅》
SSM原理 暑-1月 学习设计思想是必备的 看专题博客
  • 大二的任务是最重的,因为大二专业课程最多,而大三需要去准备面试,同时如果大二时间充裕 建议多学一门语言。Go也可以,脚本语言如Shell、Python都可以
  • 还有就是建议自己找点教程至少跟着写一个完整的项目,有工程思维
  • 除了以上的还有一些工具需要学习,如:Git、Maven、Tomcat等

大三

  • 大三可看情况进行拓展微服务和分布式知识
选项 建议用时 理由或建议 推荐书籍
微服务框架 上-1-2月 微服务是趋势可考虑学dubbo或者cloud
分布式相关知识 上-1月 事务管理、设计原则等都是需要了解的
了解消息队列 上-1月 了解一下各类消息队列的区别和使用场景
  • 为什么大三不做细致划分,因为大三一般来说要系统准备面试,建议开学就开始准备,因为往往大三的实习岗位都是当年11月份-1月份发出,寒假可以去面试一波,如果可以骚操作大三下课少就可以提前去实习。会更容易拿offer。

重要提示

  • 基础很重要!原理很重要!体系很重要!

关于大三大四的招聘的时间点和复习时间

  • 建议大三一开学就开始复习。我个人是不喜欢刷面试题。不过大家还是可以看看查缺补漏吧。
  • 还有就是建议大家学习中做笔记、写博客!!!自己写的东西容易复习一点。写得烂不要紧,但是一定要写。后续可以进行丰富!
  1. 大三上12月份开始:就陆续有大公司的实习生招聘了(难度最低)
  2. 大三下2月份开始,有些厂就会提前开始春招。(难度次低)
  3. 大四上7-8月份开始,有些厂陆续提前开始秋招。(难度高)
  4. 大四下12月份-4月份,大四的补招和春招。(难度最高)

最后

  • 希望大佬们轻喷,小弟就只是个小菜鸡!也希望大佬们如果有更好的建议,可以留言,我可以修改!

最后的最后!!!如果大佬们有工作的机会,希望救救孩子吧,最好是杭州,也可以接受上海!!

Email:ilo114@163.com


  • 觉得可以就点个赞吧👍 Thanks!

关于我

  • 坐标杭州,普通本科高校计算机科学与技术专业。
  • 20年毕业,主做Java技术栈后端开发。
  • GitHub: github.com/imyiren
  • Blog : imyi.ren


这篇关于大四Java程序猿的技术之路以及对在校生学后端的建议的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程