程序员

Java实习生应聘需要什么?

2020-04-18  本文已影响0人  莲藕工作室

 校园招聘是每个大学生踏入社会的第一步,一般分为春招(年后到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框架知识串联了起来。

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

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

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

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


上一篇 下一篇

猜你喜欢

热点阅读