又是一年毕业季的到来,想一想研究生真是过的飞快。最近忙着实习与校招,目前尚未正式收到offer可是问题也不是很大,前段时间在菜鸟网络基础架构部门实习时经历了不少,与一群比我牛逼不少的人共事也学到了不少(尽管也被批评了不少),接下来我将会一边总结实习过程当中的感觉、遇到的问题,一边规划一下将来一年的学习计划。html
其实这块业务并无什么技术含量,简单点说就是离线拉取数据,并对数据进行CURD。其中,比较有意思的是全程使用Java8的stream类库,这个知识点我找时间总结一下(包括foreach、map、reduce、paralleStream等等)。另外须要考虑不少额外的东西,例如数据其实天天只更新一次,因此为了提速接口rt采用了redis来作缓存;同时HTTP接口拉取监控数据不稳定,很容易超时或者链接失败,致使改次请求没法获取数据,这时须要对代码进行良好的异常处理,还须要考虑数据拉取失败时的重试策略(这块还没来得及完善,基本思路是设置最大重试次数,在异常捕获处从新拉取)。web
另一个点,因为是对ip维度进行统计、聚合,那么ip数量很大时若是仍是串行执行就很慢了,因此须要使用多线程来提速。面试
这块我打算专门写一篇博客来细讲,就不在这多说了,届时会把连接更新过来。先甩一张架构图镇楼。redis
最近也参加了不少家公司的面试,有如意也有被虐的很惨的,如下是一些知识点的总结(实际上下面的不少都没有涉及到,毕竟校招仍是考察基础更多一些)。算法
以上是零零散散的知识点,另外语言的基本功、系统设计能力、设计模式等也是后台开发者必备良药。私觉得,上面这些点掌握80%,去面阿里拿个P6应该没问题了(不知道会不会被喷哈哈)~shell
上面说的这些知识点,其实我都只是略懂一二甚至不少都只是了解的层面,因此在接下来的空闲时间里我决定尽量地去学习和整理这些内容,并以博客的形式记录下来。数据库
这块东西其实不少,我以为没有必要把全部的东西都看一遍,一来不现实二来其实也用不到那么多。分布式系统的原理性包括分布式一致性、分布式事务等核心原理是必需要理解透的,能口若悬河的扯个二、3个小时的程度我以为就能够了。经常使用的分布式工具好比zookeeper、Kafka、Hadoop这类系统,也是必须去学会使用及了解原理的,师兄给个人建议是拿Hadoop去从源码级别看起,能学到不少书本上没有的东西,我会尽可能朝这个方向去努力的。设计模式
为了强迫本身去学习,开启了一个系列博客写做计划,目前已经有第一篇产出:ZooKeeper学习之一:安装及命令行使用,后续我会继续加油。缓存
有人可能想说研三不都已经结束找工做了吗怎么还要刷题?稍微考虑远一点,正式工做了通常来讲都是没时间去刷题了,万一要跳槽去一些外企或者喜欢面算法的公司(快手等)的时候,就很是尴尬了,因此仍是要把之后的压力分摊到如今来。服务器
刷题是一种好习惯,应当坚持。
机器学习、深度学习、AI等名词几乎是近两年来IT圈内最热的词汇,若是只是说热度高,那么并非每一个人都须要去学习,而是说这门技术你是否可以用得上、可否产生价值。
我在研究生期间更多的是弥补本科落下的代码量、实习经历,本身也不够勤学去追赶新潮技术,因此对于机器学习这方面只是停留在“听过”的层面。而在阿里实习的过程当中,我发现即便是后台研发人员也可能遇到须要使用到机器学习、统计学习等方法来解决的问题。例如在进行弹性扩缩容项目开发时,就须要对服务的流量进行预测,这块其实是时间序列的数据的预测,天然涉及到了统计和机器学习相关知识(将推荐转换成分类问题)。
沐神(李沐)最近开启了一个深度学习教程,看了第一节课感受很亲民,有时间的话能够追一追:动手学深度学习。
整体上说,作技术开发仍是多敲代码多采坑多记录多积累的过程,因此还犹豫什么,just do IT~