龙空技术网

Java实习生应聘需要什么?

莲藕LotusStudio 15

前言:

当前咱们对“java实习内容”大约比较注重,看官们都想要分析一些“java实习内容”的相关内容。那么小编也在网络上搜集了一些有关“java实习内容””的相关内容,希望你们能喜欢,小伙伴们快快来学习一下吧!

校园招聘是每个大学生踏入社会的第一步,一般分为春招(年后到5月)秋招(8、9、10三个月)两次,但是今年受疫情影响,直到4月大学还没有正式开学,更别提今年的春招。与其在家打游戏不如早早准备今年的秋招,拿到心仪的offer,为自己的未来打下最坚实(也是最容易达成)的一步。

 但是如何走好这一步呢?换句话说招聘方希望得到一个什么样的实习生(本文只针对Java研发类实习生)?

自己所学的知识、技术能不能满足一个Java研发人员最基本的要求?

荒废了很多时间的自己如何才能短时间内达到一个Java实习生的最低要求?

下面我会从我的经验来解答上述的种种疑惑。

一 招聘方希望得到一个什么样的实习生?

我通过过爬取BOSS直聘、拉勾网的部分实习生招聘要求得出了以下的结论。

 通过词云不难看出一个实习生所需要的技术栈:Java、MySQL、JS、MyBatis、SpringMVC、XML、Git、AJAX、Oracle、HTTP、HTML、Spring、多线程、SVN、CSS、Linux、SQL、Shell、算法、数据结构。

 我们可以依照词云画出Java实习生的画像。

 招聘方希望可以招到Java基础扎实,SQL基础扎实,会Mysql、Oracle任一种数据库,前端技术掌握HTML、JS、CSS、AJAX,有一定Linux基础,最好会简单的Shell脚本编写,熟悉网络基本知识,了解最基本的算法、数据结构、设计模式,会使用常见的WEB框架,最好知道SVN、Git这种项目管理工具。

 那么就接下来的事情就变得简单起来了,抛弃幻想将自己打造成一个具有以上技术能力的准工程师。

二 实习生该如何掌握所需的技术栈?

 我相信大部分实习生虽然在学校里不停的学习,纸上的知识固然非常重要,但是如何将自己学习的知识与真实的工作关联起来的呢?

 接下来我通过一个例子来阐述各个技术的联系。

 假设我们要做一个电商网站(所涉及电商网站只是一个简单模型,真实的网站要比我所举的例子复杂百倍)。

我们简单将一个电商网站抽象为用户模块跟商品模块两部分—用户模块以及商品模块。

 首先在开发前我们需要选定一个合适的框架来搭建我们的项目,我们选取SpringMVC+Mybatis来做我们的项目骨架,MySQL来做我们的数据库,使用前后端分离的技术来搭建起我们项目前端与后端的桥梁,前端技术我们不管选用Vue也好,Anguar也好,不过是进一步封装了我们大学期间所接触的HTML、AJAX、JS等技术。

 换句话说我们之所以选用开源框架来进行开发,开源框架们进一步减少了我们的开发工作量。举个例子当你用Servlet来接受请求处理业务时,你需要在web.xml中部署你的Servlet,需要在每一个Servlet根据要求实现它的init方法、doGet方法、doPost方法,而你使用SpringMVC后只需要简单配置就可以实现相同的功能,等到你学会SpringBoot后几行注解也能实现相同的功能,技术框架是越是发展使用起来也就越方便,但是高度抽象的框架也会带来诸如不易发现底层问题等问题,这是后话,相信你进入真实工作环境后也会遇到此类问题。

那么当我们选好型之后也就将前文中提到的前端技术,常用WEB框架知识串联了起来。

接下来我们分模块来简单讲一下上图中各模块所用到的具体技术。

商品模块

1.商品管理模块

 增删改查是我们开发一切项目的基础,在其中我们会用到SQL的基本知识,并且会涉及到Java基础中非常重要的部分—集合框架,选用合理的容器来存储你查询出的数据,将要批量处理的数据会一定程度上提升代码效率。程序的效率不光取决于你的代码写得如何,优化SQL也是必不可少的知识之一,如何优化SQL,提高查询效率很重要的一点就是合理的创建与使用索引,这也是SQL基础中非常重要的组成部分。另外如果来两个更新操作放在一起,第一个更新成功了,由于程序报错导致第二个更新失败,该如何处理呢?这里又用到了另一个非常重要的知识—事务。当我们把商品模块中的管理模块实现的时候,我们也就掌握了部分的Java基础以及SQL中非常重要的几个组成部分。

 2.购物模块  下单过程中我们会涉及库存扣减,当一个商品还有一个库存的时候,两个人同时购买该让谁下单成功呢,这个时候我们会通过数据库锁来实现,当然这是在这个简单例子中的一个简单的处理方式,向淘宝、京东等电商网站会通过更复杂的库存同步来解决这一难题。搜索模块我们怎么实现呢?like + % 固然可以但是我们在这种情况下不如多了解一下ElasticSearch或者Luence,这就会变成你的应聘时的加分项。购物车模块我们在学校里也不止一次的写过存如Cookie或者数据库表,那么有没有更好的技术呢,以Redis为例的缓存(内存数据库,非关系数据库)可以更好地完成你想要的功能,相同,如果你掌握相应技术也会变成你的加分项。

用户模块

 同理,用户模块中你也会用到上面提到的种种技术,我们不一一叙述,只讲一点前面没有提到的技术供大家思考。比如用户登录、注册时的验证码如何生成,如何校验?用户管理的时候权限、角色、用户三者改用几张表关联起了,是一对一还是一对多的关系?用户头像如何保存,如何加载?项目写完了如何打包发布的Linux服务器?当你可以独立设计完成发布一个类似的简单网站的时候,你就完全具备了成为一个Java实习生的所有能力。

 上面举得例子只是给大家一个将所学知识串联起来的思路,想要真正的掌握还需要脚踏实地的学习与实践。

最后送给各位准工程师一句话:纸上得来终觉浅,绝知此事要躬行。一个好的工程师决不能只是夸夸其谈,真正的写代码才会发现自己技术上的不足。

标签: #java实习内容