0.自我介绍
先简单介绍一下自己的情况,本科985,硕士科研所。本硕都不是计算机,偏物理方向。今年秋招拿到了阿里、腾讯、百度、快手等互联网公司的后台开发的意向书。想发个帖子记录一下,也希望分享一些自己的经验,希望可以对后面的学弟学妹有所帮助。。目前收到的意向书如下: 阿里巴巴风控 Java开发 腾讯视频 C++或者Golang 后台开发 百度 ACG商业平台研发部 网易有道 Java开发 快手国际化 Java开发 京东商家研发部 池子排队 小米云平台 池子排队
1.本科读研OR工作?
这个模块暂时先放着,我暂时先不谈。大家可以在评论区多多讨论。我当时选择了读研,现在看来,有一些后悔。
2.跨专业有没有影响?
肯定是有影响的,我本硕基本跟计算机关系不大,所以面试的时候基本上面试官都会问我一个问题:“你本硕都是学XX专业的,为什么要做计算机呢。” 每次面对灵魂拷问的时候,我一般说:“出于个人兴趣以及考虑到未来职业发展,我对本专业所从事的工作兴趣不大,对互联网相关职业更有兴趣,因此自己在课余时间自学了很多计算机相关的知识。”
3.硕士阶段该如何准备?
根据我身边同学以及我的面试经验来说,一般面试主要是这四个部分,算法、项目、基础、设计题(比较少,但是我今年面试也遇到了一些)。我下面简单分享一下这几个方面的准备情况。
3.1算法
算法现在基本成了互联网笔试面试的必备了。提前批一般没有笔试,但是也有少部分公司有笔试题。正式批投递的时候,几乎都有笔试题。笔试题的成绩也可能会是一些大公司的重要参考指标。准备算法题可以先学习一下基础的数据结构。等了解了基本的数据结构之后,就可以做算法题了。主要做题平台就是剑指Offer、LeetCode。另外还有一些觉得比较有帮助的公众号:labuladong笔试题和leetcode的套路不太一样,一般还会考虑输入输出,有点类似于ACM的形式,通过故事的形式讲述题目,具体的可以看一下牛客网上面的笔试题目。针对输入输出提前练习一下,我刚开始就没经验,笔试的时候被输入输出卡了好一阵。
3.2项目
投递开发岗位,简历里面如果没有项目(或者不对口的项目,比如图像算法的),面试过程会及其尴尬。我之前是做图像的,简历里面全是跟图像算法相关的,各种图像分类目标检测,面试官可能对这个领域也不是很懂。就会造成面试过程特别尴尬。没办法聊项目,只能聊基础。这体验就很差了。
针对简历里面没有项目的,那么最好赶紧增加一些跟后台相关的项目经验,可以通过实习(上策)、教研室项目(中策)、或者去网上找一个项目跟着做(下策),推荐慕课网,上面有很多不错的项目,而且价格不贵。或者B站上有一些培训班放出来的视频,尚学堂,尚硅谷,黑马之类的。之前看过一些,感觉质量也很不错。尽量避开秒杀、商城这类项目。这类项目普遍反映太多,有点烂大街了。根据目前的招聘要求,基本都会要求分布式微服务,所以在做项目的时候,尽量的找一些微服务相关的项目。
针对简历里面有项目,但是不相关的(主要针对算法转开发),如果确定要做开发,建议如果时间充足,也按照上面的准备。但是如果时间不充足的情况下,就把自己做的跟算法相关的项目里面的工程化的部分着重突出以下。面试的时候毕竟是后台开发的岗位,面试官可能对你的准确率、召回率之类的并不关心,可以着重讲一下项目工程化落地的部分。以我之前的为例,我之前做的项目算法部分主要是做的图像分类和目标检测,后面工程化用到了Flask框架,以及Kafka消息队列。我就着重突出了这部分给面试官讲解,效果还可以,感觉比直接讲算法的指标这些强的多,因为毕竟是面的后台开发。。
3.3基础
3.4 系统设计
这些我在网易、字节面试的时候遇到过,别的家没有遇到过类似问题。比如:”设计一个朋友圈系统“、”设计一个转账系统“、”设计一个文章评论系统“,主要考察对项目的理解。这些题都比较开放,回答的可以很简单也可以很复杂。这种类型的题只能通过平时多看看一些博客或者公众号来积累积累。
3.5 面经
面试的时候,有的放矢才是最好的,知道常考的一些点,才可以更好的准备面试,因此也需要看一些面经,推荐GitHub上面的 JavaGuide,上面分门别类总结了很多面试常考的问题。以及牛客网上大家分享的面经。
4.秋招大体时间安排
现在秋招的趋势是越来越早了,因此最好这些基础能够在研一就开始学习,越早越好。
4.1日常实习
日常实习有条件实验室建议去参加一下,虽然没有转正机会,但是确实是一个积累项目的好办法,公司的项目一般都比实验室的有含金量。推荐几个找日常实习的好平台,***,Boss直聘。因为日常实习不考虑转正,所以难度会小很多。但是也要把心态放平,因为公司可能并不会把很核心的项目交给实习生,我们去就是能接触一下实际工业界的项目,私下的时候可以多问师兄,了解项目的全貌。千万不要只负责自己的那一块内容,项目背景什么的也要了解到。
4.2 实习生春招
等到研二下学期,大概过完年的时候,2,3月份,各大互联网公司的春招就开始了,这个春招主要是针对研三学生的正式招聘和针对研二学生的实习生招聘,建议可以多参加一下,这时候的实习生大多数都会有转正机会,表现好的可以通过实习生转正拿到秋招的offer。即使可能去不了,但是一些公司比如阿里,会有针对春招实习生的直通车计划,到了秋招的时候可以直通终面。就算最后没能通过实习生面试,也可以通过提前参加面试来积累经验,提前总结自己的面试不足,更好的准备秋招。
4.3 秋招(very very important)
秋招是非常非常重要的。为什么这么说?因为秋招中岗位是最多的,机会也是最大的,所以一定要慎重对待。大多数会集中在6-10月份(对的,你没有看错,就是6月份。。。 今年确实出现了一些公司的提前批秋招在6月份的情况),秋招又分提前批和正式批。提前批大多数没有笔试,一般简历通过直接面试,然后提前一步拿offer,我大概是8月上旬开始投递的简历,基本上8月底就全部收到意向书了。9月份的时候,秋招正式批才开始。秋招基本都会有笔试。
4.4 应届生春招(补招)
这个春招是研三下学期,过完年的时候,2,3月份,这个时候部分公司会有一些补录的岗位放出来。但是尽量不要拖到这个时候,到了这个时候不确定性就比较大,而且会是神仙打架一样。竞争会很激烈。还是建议在秋招中就签到合适的offer。
4.5 程序员
程序员要如何成长这个问题,一直是各大网站、论坛的热点。对此网络上众说纷纭,一千个读者里面就有一千个哈姆雷特。LZ 觉得想要让个人技能成长速度,大于公司规模或业务的成长速度,不断优化自己,成为一名“不错”的程序员主要需要掌握以下学习方法与实战技巧。
学习方法
- 掌握良好的学习心态
- 掌握系统化的学习方法
- 知识内化成能力
- 广度和深度的选择
实战技巧
- 你需要学会的编码习惯
- 在业务团队提高自己的业务抽象和架构能力
端正心态,确立好方向后,那当然就是开始行动了。Java 程序员,成长最快的时间是从你开始工作那一刻计算的前三年。在这三年里面你经历的一些大大小小业务问题,以及一些面试经历都会是支持你技术成长的基石。
4.6 那么该怎么行动起来?哪里入手?
最近也一直有粉丝私信我说,有没有 Java 方向的全面一点的实战笔记,最好是同时今年面试也能用到的。对此互联网雷锋(小编我)也是一直心心念念着,前段时间就从阿里的一位朋友手上拿到一份其内部的 Java 成长笔记,大家看了之后就知道,真的香!
由于笔记有 800 多页,全部为大家展示出来也不现实,就只为大家展示部分内容,需要的朋友可以回复【学习】即可获取
4.7 Java 面经
实实在在的面试经验分享﹐也有高频面试点分享如果认认真真读完面试相信你会有很大的收获
阿里面经
基础篇
关于 Java 的基础篇面试就有 45 个常考内容,精华满满,根本不需要担心有平时没有涉及过的内容
spring 篇
由于笔记有 800 多页,全部为大家展示出来也不现实,就只为大家展示部分内容,需要的朋友可以回复【学习】即可获取
5.总结
楼主是非科班转到的计算机,这其中的酸楚恐怕只有亲身经历之后才会理解。再加上今年就业市场比较严峻,只能说确实很不容易。研究生生活也过的很苦逼,好在最终结果是好的,国庆节回想这一切的时候,又感觉是值得的,想当初读了研究生之后,我天天后悔想退学,当时也尝试以本科生的身份参加了校园招聘,人家根本不认,因为不是应届生了,招聘只针对应届生,这也进一步印证了秋招有多重要。好在我后来缓过神来,根据牛客网的前辈们总结出来的经验开始学习,在这里再次感谢牛客网这个平台。。。今天就想着写一下我的感受,希望能对后面的学弟学妹们有帮助。我大老粗,也讲不出什么大道理,总之就是一句话:“干就完了。”