尽人事,听天命。结束技术面后的思考与复盘。

投递的秋招技术面已经全部结束,分享一点机械狗转行路上的经历与思考。

背景。

本硕985机械,本科全在浪,和互联网0接触。转行是在读研时候开始决定的,到找工作大概一年半,期间有很一部分时间在给导师干活,导师是接项目的应该都懂,学习的时间那是真的靠挤出来的,可以说转行路道阻且长。

技术栈是cpp,面的都是后台岗,因为准备得比较早,所以春招和秋招bat都过了,也都给到了sp+的包。下面讲讲我这接近两年的经历。


初探。

这个阶段可以说是刚进实验室的半年。实验室是写单机工业软件的,最开始接触编程,学习了数据结构,设计模式,觉得很有意思,编程的魔力在于一个东西只需要动动手指和一些思考设计,最终就能出现一个产品,这种感觉是很奇妙的,快速的正反馈与打游戏的反馈机制极其类似,勾起了我对计算机的兴趣。

也是这段时间,让我对计算机有了一个比较感性的认识,积累了一定的编码基础和能力。

总结一下这段时间看过的书籍《essential c++》《大话数据结构》《设计模式》《effective c++》


自我否定。

半年之后,和找完工作的师兄师姐们聊天,大概了解了互联网需要学习的东西,于是开始了学习计算机网络,操作系统,数据库。由于万事开头难,实验室的工作和这也无关,所以学得有些慢,并且相对比较艰难,常常看了忘,忘了看,一度陷入自我怀疑,是否真的适合转行呢?

总结一下这段时间看过的书籍《CSAPP》《计算机网络-自顶向下》《数据库概论》


开始总结。

研一的暑假期间(实际并没有放假),我花了两个月挤时间阅读了深入理解Nginx那本书(当时出差晚上还在酒店看书也是辛酸),期间也自己下源码,实践和阅读了一点。当时的感觉是这本书写得真难读,当然也因为当时的我太菜了,下了重本看完这本书,却很多东西都已忘记,带着不甘的心情,我决定再读一次,并挑选重点进行摘录,写下自己的感想,问题和总结,这种整理读书笔记的有目的性的阅读大大加深了我的理解,并且产出总结文档时,也有足够的正反馈。在这种目的性强,正反馈强的阅读方式下,我开始读越来越多的书,也开通了我的博客,记录自己的总结。阅读Nginx对我来说是一个转折点吧,但这时候已经研二开学,留给我的时间并不多,一直到研二放寒假,可以说爆肝了半年,这段时间看完了《C++对象模型》《深入理解Nginx》《STL源码剖析》《设计模式》《redis设计与实现》《操作系统-设计精髓与原理》《Linux内核设计与实现》《计算机网络-自顶向下》《Linux多线程服务端编程》《UNP》《APUE》,这些书基本刷了两遍(这里详细说一下,《设计模式》和《计算机网络》是第二次看,上半年看过;《操作系统》不是《CSAPP》,是另一本较薄的黑皮书,而且上半年看过CSAPP,所以效率很高;《UNP》《APUE》我是当工具书看的;我个人看书的方法是第一遍速读,大概知道讲了啥,第二遍按前面说的整理读书笔记的方式阅读),而且因为之前一年无形中的积累,所以这段时间的学习并没有十分痛苦,效率很高,在前面提到的那种阅读方式下收获很大。同时这段时间lc刷了250题左右,包括了剑指offer,北大up主大雪菜带着刷的专题(收获很大,他的主站 https://www.acwing.com/),还有一些热题,刷完这些题花了大概一个半月,每天空闲时间基本全在刷题,肝到很晚。大概十二月份的时候,我开始写了自己的两个比较大的开源项目,一个是网络库,一个是协程库,具体的在下面说,为了写这两个库,看了一个cpp disruptor的源码,排第一的线程池项目源码,muduo的源码,使用和大致学习了libevent,看了云风的coroutine,tx的libco和魅族libgo的源码。另外和同学在linya大神面经的指导下还看了leveldb的源码,收获都非常的大。


项目。

找实习时除了写实验室的项目,还写了一个网络库和协程库(被问得最多的也是这两个)。

先说网络库,相信很多写cpp的都复刻过一波muduo,或者套了一层皮,不可否认,muduo用于学习确实非常的优秀,但是如果只是复刻一波,那么亮点,意义又在哪里呢?所以带着思考,我写了一个除reactor内核,基本都不一样的网络库,里面融入了我对STL中内存池的举一反三,融入了我对Disruptor思想的理解与实践,融入了我对面向对象和多态的理解,等等等等;coding过程更不用说,涉及到设计,多线程编程,死锁,测试,总而言之,收获非常的大。

再说协程库,协程这个东西是和网友聊天了解到的,刚接触给我的震撼非常大,原来多路复用还能这么玩,所以也写了一个。有意思的是,虎牙一面的面试官就是我看过的libgo的作者(三面面试官告诉我的),想起在他面其班门弄斧,也是缘分。


实习。

实习的收获很多,毕竟是第一次在互联网公司,接触到了很多以前没有接触到的东西,了解了实践中的一些玩法,但我认为给我最大的收获是:

工作了一些年的同事是一个风向标。他们的能力高于目前的自己,可以促使自己朝着一个明确的目标努力。

带来更多对业务上的反思。在学校更多的是学生思维,对行业没有太多的关注。

互联网工作的笃定。如果对去国企,银行还是去互联网公司纠结,那么最好的办法就是实际体验一下,目前来看,自己对互联网还是真爱。

另外实习期间看了《Mysql必知必会》《Mysql技术内幕--InnoDB》《Spring Cloud与Docker微服务架构实战》《大规模分布式存储系统-原理解析与架构实战》。


面试。

以我的面试经历来看,10%撕代码,20%问基础,35%问项目,25%开放问题,10%聊人生。

撕代码就靠刷lc了,面试中的代码题一般不会太难,毕竟基本需要秒杀,而且面试中的撕代码还有一个目的就是看你的代码风格和debug能力。

基础的话一个是广,一个是深,面试官大多希望学生理解得越深越好,一个问题你能涉及的相关知识越多越好,比如问线程和进程,你能扯到linux的pcb实现,lwp当然更好,之前还看到一个阿里云的老哥更加讲到了寄存器的层面。然后再就是可以多整理面经,我当时把牛客能看到的问题基本刷了一遍,自己整理的好处在于可以回忆以前学习的东西,自己有目的性地又梳理了一遍,不会的又可以扩展自己的知识面,用来以后吹牛逼。

下面是我整理的一个大概的目录。

(ps:该总结已经放在了我的博客中 www.liuyukang.com
问项目的话是要好好准备一下的,面试官会尝试着理解你的项目,发掘你项目的闪光点,所以可以按模块,亮点,难点,瓶颈,优化方向等好好准备一下。项目的问题大同小异,多面面之后会发现问的基本差不多。

开放问题和聊人生就比较玄学了,我自己的做法是尽量多类比自己了解的知识和项目,按模块分析,并表现得自信。


拥抱开源。

我对拥抱开源的理解分为两点:

一是写博客,玩github,把自己的想法和成果分享出来,今天写这个贴子也是这一类。另外我的github地址:https://github.com/YukangLiu,blog地址 www.liuyukang.com,欢迎交流讨论。

二是交流,分为线下和线上,在前面学习的过程中,实际是离不开和实验室同学的相互促进的,我同学@神奇海螺zjx 学习时非常喜欢深挖,平时我们也经常互相吹最近学习成果的牛逼,这让我们都能够快速接触学习到许多我们不知道的东西,自己在吹牛逼时也是对知识的梳理和总结,他现在秋招结果非常不错,也证实了这种方式的有效性。

最后,共勉!
#面经##学习路径##校招##技术栈##书籍推荐##技术工程师#
全部评论
太强了
1 回复 分享
发布于 2020-08-27 12:06
名校就是名校啊, 学习能力真的强。
2 回复 分享
发布于 2020-08-27 13:32
大佬,求拉群
1 回复 分享
发布于 2021-01-10 15:50
太强了
点赞 回复 分享
发布于 2021-02-25 22:27
大佬去哪了?
点赞 回复 分享
发布于 2021-02-25 22:12
y总粉丝hh
点赞 回复 分享
发布于 2021-01-10 01:17
你这时间怎么挤出来的😂
点赞 回复 分享
发布于 2021-01-10 00:17
求拉群,大佬😃
点赞 回复 分享
发布于 2021-01-10 00:09
大佬,求拉群😀
点赞 回复 分享
发布于 2021-01-07 19:22
能私一下时间安排或者是一般晚上到几点嘛
点赞 回复 分享
发布于 2021-01-03 15:33
大佬。求拉群🤤
点赞 回复 分享
发布于 2020-10-23 09:26
tql,学习了准备明年春招,秋招已炸
点赞 回复 分享
发布于 2020-10-12 21:10
大佬求拉群,谢谢~
点赞 回复 分享
发布于 2020-10-09 19:34
大佬拉我
点赞 回复 分享
发布于 2020-09-29 21:37
tql,求拉群
点赞 回复 分享
发布于 2020-09-22 20:38
tqll
点赞 回复 分享
发布于 2020-09-21 16:22
大佬求拉群求拉群😃
点赞 回复 分享
发布于 2020-09-21 15:53
tql
点赞 回复 分享
发布于 2020-09-21 15:32
大佬求拉群~
点赞 回复 分享
发布于 2020-09-21 15:29

相关推荐

06-07 15:32
已编辑
门头沟学院 Java
timeline 2.18投递  2.27测评 3.1笔试 4.3笔试 4.9技术面 4.14 HR面 4.18oc和这家公司真的一波三折,我在大三下的时候拿过福州浩鲸的实习offer,但是后来去了另一家公司新意科技所以没去浩鲸(事实证明这个决定是错的,我在去年12月份被新意给裁了,具体细节可以去搜新意科技,有一个帖子详细说了这件事),春招的时候又投了浩鲸,但是没投福州,投了其他地方,怕被福州的HR认出来(可能有人要问了,HR接触这么多人怎么可能记得你?上面提到浩鲸发了实习offer我没去,浩鲸鱼的HR应该认识我们学院领导,和我们学校比较熟悉,居然直接找到院领导问我为什么不去?这件事还是辅导员告诉我的,据辅导员说因为不止我一个人拿了offer不去,所以HR才去问院领导怎么回事),3.1号做完笔试就没消息了。到了4月份在翻boss直聘的时候看到福州浩鲸又在招聘,我抱着试一试的心态投了简历,结果HR上来就问我去年发了offer为什么不来,我就只能硬着头皮解释,解释完又聊了一些其他的就没消息了,到这我以为又没戏了,结果当天晚上又收到了笔试,笔试内容甚至和3月份的一模一样,做完以后就沟通面试,面完几天就发了offer,至此我以为我的春招会结束,但是我即将尝到大学四年种下的苦果。由于本人英语比较差,差到什么程度,高中三年英语没及格过,加上大学没花太多时间在英语上,所以导致英语没过四级,但是浩鲸的这个部门要求要过四级,所以就没法入职,offer就作废了(可能有人说你自己没认真看招聘要求,浩鲸开发岗位是有两个部门,一个国际部门,一个国内部门,国内部门是不要求四级的,所以我当时可能就没看清楚就投了,我简历上没写四级,面试的时候也没问,HR估计默认了你应该过了四级,所以导致了这种情况),所以经历这么多波折,最终还是无缘,这只能怪自己,没有重视英语这个东西。不过说实话,很多国央企硬卡四级纯粹就是为了筛人,不是为了证明你英语有多好,你如果工作中对英语真有要求,至少也得六级,或者干脆笔试面试的时候来个英语测试,卡四级纯粹就是为了筛掉大学学习态度不好的那一些人,大学四年四级能考好几次,都考不过确实是态度的问题,没有重视这个东西,所以用我的经历告诉大家,四级这东西还是要想办法过了,不然它会在你意想不到的地方卡你。浩鲸这家公司其实真的还行,薪资在福州算最高一档了,我整个春招其他几个offer的薪资都没浩鲸多,也不断的给我机会,最终无缘也很是遗憾,下面是我的面经----- 笔试笔试很简单,应该是我做过最简单的笔试了,只有选择填空简答,都是基础的东西,你看过一些八股就能做----- 技术面(30min)1.自我介绍2.简历上的两个项目是实习的项目还是学习的项目?3.从简历上的两个项目和实习中做的项目中挑一个项目介绍一下?4.你项目中的Redis用来存什么?为什么用Redis存?5.你项目中的为什么要用责任链模式?6.你项目里进行了压测,在压测过程中发现了什么问题?怎么进行性能优化的?7.你如何理解线程安全?java中怎么保证线程安全?8.mysql事务的特性?索引失效场景?9.对于IOC和AOP的理解?AOP能做什么?你用AOP做过什么?10.java反射的作用?你用过反射吗?11.消息队列的工作原理?如何保证消息不丢失?你项目里是怎么做的?12.如何确保缓存和数据库的一致性?13.java异常类型?----- HR面(45min)HR面问的问题比较宽泛,思维跳跃有点大1.学校在省内的排名2.高考各科的成绩3.根据需求写一个sql语句4.平时的爱好?看小说5.如果开发一个小说网站,你会怎么设计这个网站?从需求分析到系统架构展开讲讲6.思考你刚才方案可能存在的问题----------接下来的问题就有点奇葩了7.一个月生活费多少?够花吗?8.你们宿舍平时一起吃饭吗?有一起出去玩吗?9.会不会唱歌?有去过ktv吗?平时一个人在宿舍会唱歌吗?其他基本都是一些闲聊的东西,记不清楚了
查看22道真题和解析
点赞 评论 收藏
分享
评论
127
430
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务