vlambda博客
学习文章列表

最新干货丨java应届生如何找工作?



甲骨文天眼

每逢毕业,史上最难就业季" 似乎是永远逃不开的魔咒,这是因为每年应届毕业生的人数都在增加,今年也不例外,据教育部的数据显示, 今年毕业生又增加了40万达到了874万;赶上疫情,很多公司裁员、缩招,为了缩减运营成本,正在招聘的企业用人也特别谨慎,对于人才的标准也有所提高。

招聘的企业在招人的时候,要么是招来了就能干活的人;要么是招一个有潜力值得培养的人。而后者基本上都是大公司,大企业。

但大家也别太担心,反倒是一些互联网公司,如快手、抖音、线上教育等行业反而需求更旺盛了,开发人员作为互联网公司中很重要的组成部分,大量的需求依然在那里。

我们再来看看Java开发的市场现状

今天的“Java”作为所有编程语言中最热门技术,可以说它无处不在,目前全球有着数十亿的设备正在运行着Java,很多服务器程序都是用Java编写,用以处理每天超过数以千万的数据。

所以,Java工程师依然是开发行业的常青树。只要具备过硬的技能,就能在职业生涯中有一个好的起点。

所以那些纠结从事什么方向的、纠结学什么语言的,果断放心好了,Java方向的工程师在很长一段时间在行业内将存在大量的需求。

企业需要什么样的人才?

前一阵子在群里跟大家聊天,有一个同学现在是大四面临毕业,但他写简历方面有些问题,具体就是缺少实际工作经验。

说起来JavaSESSM、微服务、SpringBoot/CloudNoSQLRedisDockerMongoDB这些东西都会,但在简历中具体的工作经验这一块就不知道该写什么了。

大家不会问你:会不会这个技术?而是问:你是在什么时候用过这个技术,又是怎么用的?

所以,绝大多数人还得靠实力。

面试时,99%的面试官都会重点考察项目能力。常规性情况下大多是先笔试或机试、随后是HR面试、之后再由技术总监来进行终面,给出最终结果。

项目能力方面的考察更多的应该是体现,你参与了哪些项目,在项目中你负责哪些模块,你如何设计,如何对接,如何联调,项目组人员如何配置,你觉得这人员配置是否合理,业务是什么样的,你是如何理解业务的,你负责的模块对应着实际业务上的某个部分,数据是如何在整个程序体系中流动的,你与其它组员是如何沟通。

然而这些能力并不是你去跟着网上的教学视频,或者跑跑课本或者书籍上的教学demo就能掌握的。

所以想要在毕业后拿到大厂offer的前提是:简历上要有相关项目经历,这是大公司招人的基本核心要求。

应届生毕业生的简历,绝大多数存在这样的问题,想求职互联网大厂但是简历的相关实习经历根本没有,或是水分太高,自己都发虚,HR一问就分分钟问倒你。

所以,对于应届生想获得项目经验,实习是一个不错的选择。

应届生如何通过自学准备呢?

不管是不是科班出身,每一个程序员都应该花时间了解和学习计算机科学相关的基础知识,因为所有关于如何编程的底层逻辑和原理都在那里了。

切记:学习资料在于精,不在于多,多反而不是好事,作为一名程序员,大家的学习时间都太宝贵了,我们要把80%时间投入在最有价值20%的学习内容上

我见过不少厉害的人,他们选择自学,并且学的还不错,所以关于是否要自学还是找人带,我这里的建议是个人情况而定。如果你的底子不错,学习能力较强,也可以尝试自学。我这里分享一套大牛的自学方法,人家通过这套方法自学 Java并成功拿下腾讯 Offer

他将学习分为以下几个阶段:

Java基础

Java开发,Java基础是最需要下功夫的一项。在校招时最注重的就是基础,拿不出像样的项目没关系,但是基础万万不可不牢固。

· 想要基础扎实,看书沉淀是必须的,有一些编程基础的同学推荐阅读《JAVA核心技术 卷1》,可以跳过图形程序设计、事件处理、Swingapplet以及部分日志章节,如果比较吃力也可以先跳过多线程章节。

· 看完一本书,一定要多加练习去理解和吸收。科班的同学可以用Java写实验,写的同时一定要多多运用学到的特性。练习阶段各种设计模式套上去用,不要怕笨重,即使是滥用特性和设计模式也是一种有效的学习。

· 有了一定量的编程经验后,可以再回过头将《JAVA核心技术 卷1》速读一遍,查漏补缺。同时我们开始扩宽我们的知识领域,开始进行JavaWeb的学习。

JavaWeb基础

JavaWeb是一系列技术的综合,也是大多数Java学习者日后的技术方向。及早了解JavaWeb也有利于更深层面理解,Java在完整的应用中,是如何与各个模块交互并发挥作用的。

基础篇包括ServletJSP的学习、tomcat的使用、理解MVC分层模式、MySQL的基础用法及JDBC、了解HTTP协议。

这部分的学习,我主要通过《Head First Servlets and JSP》这本书。这本书轻松幽默读起来很愉快,但是实在是很厚,而且部分技术已经过时,有时间的同学可以选读。

可以看到这部分的内容是很杂且多的,此阶段注重广度的基础学习,日后慢慢深入。这里推荐个在线教程:

· Servlet系列教材(一)-基础-教程:开发第一个Servlet - http://how2j.cnhttp://how2j.cn/k/servlet/servlet-eclipse/558.html

· MySQL系列教材(一)-安装http://mysql-server-how2j.cnhttp://how2j.cn/k/mysql/mysql-install/377.html

· Tomcat系列教材(一)-教程http://-how2j.cnhttp://how2j.cn/k/tomcat/tomcat-tutorial/541.html

· JSP系列教材(一)-教程http://-how2j.cnhttp://how2j.cn/k/jsp/jsp-tutorials/530.html

· HTTP协议系列教材(一)-教程http://-how2j.cnhttp://how2j.cn/k/http/http-tutorials/568.html

· JDBC系列教材(一)-Java使用JDBC之前,先要准备MySQLhttp://how2j.cn/k/jdbc/jdbc-mysql/386.html

· MVC系列教材(一)-教程http://-how2j.cnhttp://how2j.cn/k/mvc/mvc-tutorials/561.html

重点要理解Servlet的原理以及生命周期。在完成这一部分的学习后,可以简单的做个小网站,包括注册登陆,增删改查等功能。如果想继续折腾,可以考虑将项目部署在阿里云或者腾讯云上,一个完整可供他人访问的项目,所获得的成就感是非凡的。

· 部署到Linux系列教材(一)-介绍-如何把J2EE应用部署到Linux - http://how2j.cn

· http://how2j.cn/k/deploy2linux/deploy2linux-breif/1591.html

Java进阶

Java始终是我们JavaWeb开发体系中最核心的一环,唯有不停地探索,才能把握住方向和机遇。

· 在做完一个简单完整的JavaWeb项目后,我们对代码的认知和理解会提高不少,这为接下来的深入学习打下了基础。Java圣经《JAVA编程思想》值得仔细品读,作者的功力十分深厚,即使很多内容还无法理解,但每次读完一定会有所收获。同样建议跳过图形化用户界面章节,这是一本伴随我们技术成长的好书,买一本放在旁边,摸着就有底气。

· 读完编程思想,建议写一个有一定复杂度和代码量的后台项目。可以是一个HTTP服务器,一个大型聊天室,也可以参考我的项目实现一个DBMSwwwyanxin/wyxDBMS。这一部分要强化我们的Java基础,同时也为日后的招聘积累项目经验。

· 做完项目我们又该看书沉淀技术了,此时我推荐《Effective Java》,这本书并不厚但是干货十足,作者讲述Java的最佳实践和经验规则。它能帮助我们写出清晰、健壮、高效的代码,同时这本书涵盖了非常多的面试考点,一定要牢记于心!

· 最后还要深入学习Java多线程技术以及Java虚拟机原理,这两部分难度较大,理解起来比较抽象。也许日后工作中,我们很少遇到并发问题,不一定有机会进行JVM调优,但是这部分一定要认真对待,越理解底层写出的代码越高效,查bug时越准确,另外更重要的是面试常考!推荐两本书《Java并发编程的艺术》《深入理解Java虚拟机》,以及并发编程网(http://ifeve.com/)重点掌握Java内存模型,各种锁的原理及应用,JVM GC垃圾回收原理。

JavaWeb进阶

围绕整个Java体系学习,我们要筑起高高的城墙。

· Linux,现在的服务器基本都是Linux系统,也不存在图形化操作界面。作为开发工程师推荐阅读《The Linux Command Line》,有中文在线免费版本TLCL。那本《鸟哥的Linux私房菜》更适合运维工程师,就不推荐给大家了。学习的时候,可以去阿里云或腾讯云租一个学生服务器,每个月大概10元左右,直接ssh到云服务器上操作,能更好地模拟公司的开发及生产环境。

· 操作系统原理,主要学习进程控制调度、进程通信、存储和设备管理、文件管理以及系统安全。这一部分可以看教材或者自行找一些网课补充。

· 数据库,可以买一本《MySQL必知必会》小册子作为基础入门,没有什么理论的堆砌,是一本实践指南。学习数据库原理可以阅读《MySQL技术内幕》,索引优化、事务、锁、范式都是重点。

· 网络协议,入门可以读《图解HTTP》、《图解TCP/IP》,如果要深入研究可以读《UNIX网络编程 卷1》和《TCP/IP详解 卷1》。大多数开发者接触HTTPTCPUDPIP协议比较多,所以对整体网络协议栈有个完整了解是必要的。

· 数据结构与算法,数据结构是算法的基础,一定要清晰明了。算法则是笔试面试中无法绕过的难关,推荐去LeetCode刷题,现在也有了中文官方网站(https://leetcode-cn.com/)。从easy难度开始刷起,积累一定题量之后,做算法题会很快找到类型方法。

· SSM框架,Spring+SpringMVC+MyBatis可以说是开发必备了,但框架只是锦上添花,不要太依赖框架进行学习。当我们能不依赖任何框架开发完整项目时,才是真正掌握了它。最为重要的是理解Spring的两个特性:IOC反转控制和DI依赖注入。明白实现原理以及为什么要使用Spring,只有这样才能在层出不穷的框架中灵活应对,立于不败之地。

· Spring系列教材(一)-教程http://-how2j.cnhttp://how2j.cn/k/spring/spring-ioc-di/87.html

· Spring MVC系列教材(一)-教程http://how2j.cn/k/springmvc/springmvc-springmvc/615.html

· Mybatis系列教材(一)-基础-入门教程http://-how2j.cnhttp://how2j.cn/k/mybatis/mybatis-tutorial/1087.html

加分技能

· 前端。一些岗位要求全栈,即使不是全栈,懂得前端技术的后台能写出更加合理的接口,与前端工程师合作起来会更顺利,理解项目更通透,解决问题更准确迅速。

· 学习一门动态语言。动态语言开发起来更灵活迅速,同时比较动态静态语言的特点,可以更好去提炼跳出语言束缚的代码思想,推荐学习JavaScript或者Python等。

· 大数据。大数据开发近几年也是热门方向之一,有兴趣的同学可以学习。

· 热门工具及框架,包括分布式Dubbo、缓存优化redisnginx、虚拟化技术docker等。一般来说本科应届生不会要求很高,但是要对热门技术有一定的了解。

常用网站推荐:

· GitHubBuild software better, togetherhttps://github.com/);

· Java学习:How2J Java教程(http://how2j.cn/);

· Linux命令行:TLCLhttp://billie66.github.io/TLCL/index.html);

· 算法:(https://leetcode-cn.com/);

· 正则表达式测试:PHP, PCRE, Python, Golang and JavaScripthttps://regex101.com/)。

以上就是自学Java的经验分享。

建议:以上方法自学能力超强、并且非常自律的同学。






编程语言的学习  


根据自己的学习情况进行选择


如果你不是学习能力非常强,自控能力特别好,还想尽快学完拿高薪,那么小天给你一个建议:参加培训


为什么选择天眼创智


甲骨文天眼Java课程自2003年开设以来,培养了上万名Java人才,目前在上海、北京、长沙、湘潭、南京、嘉兴与台州等地均设立有分/子公司。


课程核心是学习3个必备模块+1个高级专题


Java开发必备模块

J2EE核心框架模块

分布式+微服务开发必备模块

分布式+微服务高级专题



天眼创智分别从就业教学课程学习等方面倾心为同学们服务!


保证最后做到达到学生满意就业、企业满意用人的目标!


最新干货丨java应届生如何找工作?







9名可领取学习路线和资料

先到先得 快来领取吧










往期推荐:





/部分图文源于网络侵权请联系删除