JAVA实习生一般进去做什么呢?
说说我在阿里的实习经历吧,希望能够给你提供一些信息。
呵呵,四年多以前的事情了,现在回想起来,依然觉得很幸运,也很怀念,尤其是我的mentor和大老板,人都非常非常好。
第一天
办理入职手续,领取电脑,团队技术负责人给我分配了mentor。
mentor跟我交流了一个小时左右,了解了一下我的个人技术情况,包括但不限于如下内容:
(1)Java相关技术栈的技术储备情况,如:
- Spring Boot框架,MyBatis框架的掌握情况;
- Spring Cloud相关组件(Eureka、Gateway、Ribbon、Hystrix、Zuul、Feign、Config等)的掌握情况;
- Maven、Git是否用过,RestClient是否用过,Log4j是否用过,平时写代码的时候打不打日志,写不写注释;
- MySQL(InnoDB)数据库的掌握程度,是否做过SQL优化,知不知道如何建索引,如何看执行计划等;
- Redis、ElasticSearch、Kafka、RocketMQ等相关中间件的是否熟悉;
- Linux操作系统是否熟悉,常用的Linux命令会吗;
(2)在校期间做过哪些项目,这些项目是自己纯练手的,参加公司实习做的,还是导师的项目,或者是自己接的私活,是否成功交付了?一个人做的还是一个小团队做的?
(3)大厂的Java编码规范是不是了解?
(4)喜欢做哪类项目,纯技术的,还是业务技术结合的?
(5)有没有解决过线上故障?
mentor了解情况后,跟我说,他今天下班前,会把给我制定是实习生的学习计划发出来,让我按照这个去做。
然后,他给我发了一个内网链接,上面是新人指南,里面大致有三类内容:
(1)各类权限申请,wiki、jira权限、git权限、线上服务器的跳板机权限等;
(2)Java及办公相关软件下载地址,以及安装步骤等;(JDK、Jetty、Maven、Git、Idea、Navicat、Rest Client、蒲公英、SecureCRT、Office、EditPlus、阿里云会议、XMind等)
(3)阿里的Java编码规范;
当天我把该安装的软件都装了,该申请的权限都申请了,任务圆满完成。
晚上七点左右,mentor给我发来了学习计划,主要包括三个方面:
(1)之前不熟悉的技术栈和知识的上手学习,如:Java编码规范、微服务、Hystrix、Eureka、Feign、ElasticSearch、Kafka、常见的Linux命令等;
(2)下载项目代码,工程run起来,熟悉工程代码和库表结构,熟悉相关核心产品文档;
(3)做一个既不重要也不紧急的小功能,跟进和熟悉整体开发、测试、上线的整个DevOps流程;
另外,mentor还跟我说,遇到不懂的问题随时可以问他,每两天他也会跟我聊20分钟,了解我的学习进度、工作感受和需要帮助的地方。
第二天&第三天
熟悉阿里的Java编码规范,感觉真的蛮有收获的,哈哈,原来自己以前这么菜;
第四天&第五天
根据mentor给我推荐的微服务相关资料,对微服务的知识有了更深层次的理解,尤其是服务拆分粒度和策略上;
第二周&第三周
把之前不熟悉的技术栈通通学习了一个遍,但只是学到了会使用,离深入原理和精通源码还差得很远。
第四周
把我负责维护的客服系统的项目run了起来,结合产品文档和API文档以及代码,把相关核心的逻辑了解了七八成左右。
第五周
终于正式干活儿了,接了第一个小需求,给客服系统的一个模块的CRUD加了一个字段,不到一天就干完了,接下来跟进测试、提交SQL DDL语句执行和代码发布工单,然后由运维和DBA审核通过后,发布上线。
第六周——第八周
源源不断的小需求,小bug做了8个。
其中有个技术需求,就是该项目的代码日志打印太不规范了,导致出现问题很难随着链路进行问题排查,于是mentor给了我新的日志规范,然后重新把核心接口的日志进行重新梳理和更改。
第八周,技术负责人找我面谈(现在知道他是管理80人团队的技术总监),整体是对我的前两个月表示认可,接下来天猫商城的创新业务(核心项目)比较缺人,想把我借调过去,问我是否愿意?
去核心项目组,接触更多的牛人和更牛逼的技术,这个我当然愿意啊。
后几个月
基本上就拿我当正式员工用了,让我循序渐进地接触了很多核心业务和技术,做的事情包括且不限于如下内容:
- 通过CompletableFuture并⾏处理下单接⼝的多个逻辑校验,将下单接⼝的整体响应时间从900ms降低⾄650ms。
- 通过⽤户id + 商品id作为Redis key,并设置过期时间为1s的⽅式,防⽌在短时间内⽤户重复提交订单。
- 通过Kafka消息异步⽅式,将下单结果通知结算核⼼和⽤户中⼼,将各核⼼系统间进⾏解耦。
- 通过XXL-JOB分布式任务调度平台,对过期未⽀付订单进⾏关单,使其成为终态。
- 配合测试和运维团队进⾏定期压测和故障演练,完成系统巡检、问题排查、动态流控、多维度⼀键降级、故障预案处理等操作。
整体来讲,我对这半年多的阿里实习经历,是非常满意的。