对于实习生而言,其实很多公司要求都不是很高,毕竟对你的要求要对的起给你的工资水平,很多公司肯定都知道你本身的大体水平,不会期望太高,只是让你边学习边工作,如果你足够聪明伶俐,足够好学,可能就多培养你一些。
不过不同水平的公司(BAT>TMD>其他优秀的互联网公司>小型创业公司),肯定是对你的培养程度不同的,相应的对你实习的要求肯定是不同的。不要认为对你要求越高,得到的实习工资就会高,不是的,像腾讯阿里等公司对于实习生技术要求很高,但工资就在两三千左右,但以后的发展却是远远大于这个价值的。
BAT企业对实习生的要求(以阿里为代表):
java基础非常重要,当然也要深入理解原理,什么JVM,JMM,Classloader,还有一些常见类的源码,自己可以试着分析一遍,现在让你说出LinkedList的内部实现你能不能说出来,HashMap不用多说了,80%的面试都会问到。还有重要的,多线程,并发,网络,IO。这些都是要看看的!特别是spring的源码要好好看看,里面的架构设计得非常好!
需要掌握的技术知识具体总结如下:
1、操作系统。尤其是内存/线程/进程方面
2、计算机网络协议,重点关注 TCP/UDP/HTTP。
3、数据结构与算法。
4、数据库,知道mysql存储引擎中索引的实现机制、数据库事务的几种粒度、行锁,表锁;乐观锁,悲观锁等
5、设计模式,熟悉常用的几种设计模式就行。
6、Java语言基础。熟悉java语言基础,了解JVM、内存模型,重点考察 面向对象、集合框架(继承关系,实现原理)、异常体系、IO体系、并发集合、多线程。熟悉多线程编程/并发/线程安全明显可以加分。
7、J2EE,熟悉Spring/Spring MVC , ORM 什么的吧。看过源码,了解原理之类的也明显可以加分。
8、Linux,熟悉基本的linux命令就行吧
9、如果有自己做过的实习项目会加分不少。
TMD企业对实习生的要求(以美团为代表):
1、精通Java/C++/golang程序开发(至少一种)
2、熟悉linux下后台服务开发、网络开发
3、熟悉zookeeper、redis等开源项目优先,
4、有分布式、服务一致性领域研发经验优先
5、优秀的沟通协调能力以及项目推进落地能力
其他优秀的互联网公司(以 网易为代表)
1、具备扎实的计算机专业基本功,数据库、网络、操作系统等,深厚的Java的编程基础
2、熟悉常见的设计模式具备扎实的计算机专业基本功,数据库、网络、操作系统等,深厚的Java的编程基础,熟悉常见的设计模式
3、熟练掌握主流的开源框架设计理念,对Spring、Mybatis等有深入的了解;
4、熟练掌握数据库原理,基于Oracle或者Mysql的设计和开发
5、熟悉Linux操作系统,git,maven等工具
6、有较强的逻辑分析、数据分析、问题排查能力;
其他的一些小型的互联网公司,依据自身的发展方向不同,对实习生的要求也是不同的,需要具体问题具体分析的,当然了不变的一点是:基础知识一定要打好,一些计算机基础什么的该知道的要知道。
其实上面有些技能还是有点超纲的(对于实习生而言),不要有压力,能有六七分的掌握就可以,不要被这些招聘要求吓坏,很多都是要求偏高的,当然了如果你正好知道那也是你的优势不是?