首页 > 【复盘+持续更新】一个开发的春招和两段实习经历总结
头像
Asdassf
编辑于 2020-08-28 15:05
+ 关注

【复盘+持续更新】一个开发的春招和两段实习经历总结

懵懂小白

朋友圈的朋友圈里有两个学长出去实习了,看起来他们实习生活非常丰富;我们几个低年级的学弟学妹约他们出来听听感受;印象深刻那天是端午节假期,抱着听故事心态去的我,却收获了很多干货,比如:

1)如果想搞开发就不要读研,如果是对学术热爱再读研;

2)基础知识,计算机网络、数据库、操作系统赶快复习起来,计算机网络和操作系统把教材的搞通搞透,数据库要比黑书上的多学一点

3)会刷题,leetcode起码100题起步

3)有一门自己非常熟悉的计算机语言,拿它刷题,还要熟悉它的底层

当时两位学长的总结还是非常丰富的,基本涵盖了工作面试所有的准备点(可能刷题100道现在估计不够doge);被刷了一遍认知的我还跑去激动地跟朋友讲心得。


误打误撞的面试,挂*1

上面提到的那位朋友在一个社团里看到了抖音上海招人的通知,虽然是日常实习生,但我们还是想试试;她搞到了hr微信,我简历直接给hr之后就通过了;过了当天晚上就通知我准备面试,约在了3天之后;

面试官的电话打过来了,当时我还没开始看牛客,并不懂面试会直接问哪种技术问题;很简单的双指针找重合的问题没答出来;面试完发现自己什么都不会,一直哭“面试怎么那么那么难”;
后来要准备期末,把此事放下;

从错误的目标开始刷题,挂*2

放寒假了,正式执行实习计划。
我的目标暑假实习谷歌,于是对着“谷歌招聘包打听”开始认真地排刷题计划。因为之前有一点点刷题基础,开始按照大佬一天20题的计划实践。后来发现自己高看自己了,一者那时候自己太菜一天刷2题就不错,二者自己不喜欢random刷题,还是希望有系统有目标地进步。后来看到了github题库上的200题,发现这个比较适合自己。

那个时候自己也在同时准备基础知识,在牛客上找了几篇有总结性的面经,对着问题找答案式的复习开始

靠着一股子勇敢劲儿,2.11号我又面了字节。however我又挂了。二面面试官直接怼着基础问。从java语法怼到了jvm虚拟机(但是我根本不搞Java开发),最后给了一道n数和的算法题。我发现自己有两个问题比较突出:
1)无论面试之前刷了多少题,面试的时候我的脑子都是空白的。主要原因是我不好意思让面试官等太久,所以不敢思考。
2)面试回答问题的时候逻辑不清晰,说话没有条例。
同时,那边谷歌准备的任务也失败了。我kickstart总是做不好,每题要花上一天的时间,思考过程非常艰难。

这次失败给了我极大的打击,我痛定思痛,开始有针对性系统准备


一边打怪一边升级

首先,200题基本刷完之后,我把重点转到了基础知识上;当时为了准备复习我列了这样一个提纲:
【项目】
【亮点1】
【对应底层技术知识】
【我的设计思路】
【我的实现思路】
【计算机网络】
【万维网和http协议】
【https协议】
【ICMP】
【Socket】
【TCP连接断连接、拥塞控制、滑动窗口还有几个特别的时间】
【操作系统】
【进程管理:死锁、进程调度、进程线程、同步问题、进程通信】
【文件系统:Linux文件目录、日志、挂载、磁盘扫描算法】
【数据库】
【ACID】
【MySQL语句】
【第一范式、第二范式、第三范式】
【语言基础】
【JAVA基础】
【基本类型、包装类型】
【Collections和下面的底层实现】
【JVM虚拟机(对应Java内存管理)】

其次,我也有针对性、有反馈的学习这些知识,比如每当学过一个知识点后,我会复述一遍知识点并录音再听。这样做有两个好处:
1)模拟面试环境。面试的时候你也需要有逻辑地向面试官讲述问题。
2)迅速得到反馈。复述的时候磕磕绊绊的地方就是自己不熟悉的地方,复述之后再听一遍自己缺的地方,是自己完全不了解的地方。

第三,每次面试之后我会把面试官问的一个比较大的、我不会的问题记录下来,有针对性地背,迭代自己的知识库。
比如最经典的那个问题:从输入网址到浏览器显示在界面上有几步。还有一些关于项目的问题:你们做的东西是一个什么样的算法

后来我依次面了腾讯、阿里、字节(第3次)、美团。一开始面腾讯的时候自己紧张地睡不着觉吃不下饭,后来到美团的时候已经开始谈笑风生了。
所幸,后面的面试我没有再挂过。

第一次实习

4月下旬,我开始在腾讯cdg的AMS实习。这段实习是远程的,没有持续多久,我离职了,甚至放弃了转正机会。。。是的你没看错。。。原因总结起来是沟通不够,没得到足够的反馈,没法坚持。
我和mentor基本没有沟通,因为自己比较内敛,有什么问题也不好意思问,总是先自己探索一遍,探索不出来才敢开口。记得有次,自己想把代码推送给远程仓库,总是有conflict(其实是项目规定用rebase更新,但是自己不知道怎么用,所以没有rebase成功),我就一个冲突一个冲突的解决。但是由于我代码落后远端将近1个月,我解决了一个下午都没有解完。终于找到了mentor,他给了我cherry pick的指令就解决了。那个时候对自己这个缓慢成长还是非常地挫败,
还有mentor让我先搞懂一个大模块的代码,先学会大致的逻辑。但我是一个比较爱关注细节的人,那个大模块我在没人帮助的情况下,将近看了半个月。但是其实mentor期待的应该是我快速整理逻辑,然后列给他,他快速地给我反馈。
那时候自己确实比较不聪明,其实互联网有三个比较重要的特性。
1)目标感强,漫无目的地看代码库基本很难搞明白,还会让自己没有成就感。相反,有需求做就是有个小目标,再去看代码更容易。
2)先做一个版本再快速迭代,老板希望先看到一个结果。
3)作为一个新人多多沟通,问问题没有什么可耻的是吗?


Part 7 (6.4-6.30) - 开启新地图

Part 8 (7.1-7.20)- 努力工作却?

Part 9 (7.20-8.17)-


Part 10


全部评论

(7) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期精华帖

热门推荐