[转载]从数学专业到统计专业再到算法工程师 如何校招如何跳槽
转载一篇自己的经验到牛客来,希望能帮到学弟学妹们~
作为一名算法工程师,我的经历应该不算是从业人员中的大多数。而且我从业时间其实也还不是太长,但还是有一些心得想分享给和我相似经历的童鞋们。
个人经历
我大学往后的经历大概是,本科专业是应用数学,辅修了心理学的双学位(有毕业证,也有学位证,但还是有点困惑国家到底是否认可),研究生保研到本院的专硕,应用统计,学制是三年。毕业后校招特别特别幸运的被网易北京提前批录用,也同期拿到了微店的提前批,岗位都是数据分析师,拿到口头 offer 后就没有面过其他公司了(~ ̄(OO) ̄)ブ,主要的原因只有一个,因为我当时意识到自身能力和大环境的差距,以及面试真的很靠运气和眼缘,为了保住自己的自信心,就一直在学校默默等网易最终的 offer。后来在网易待了一年半左右,跳槽的时候面了几家公司,最后都拿到了 offer,权衡了下,最后选择了字节跳动,现在在字节也已经待够一年啦。
学生时代
详细来说说学生时代吧,因为我的学校不在北上广,所以直到硕士毕业前都对找工作这件事没什么概念,所以也没有任何实习经验 (ノへ ̄、),后来才发现这样真的很吃亏,而且找工作的时候简历就不会好看。本科的时候基本上被数学分析,高等代数,泛函等等等折磨的够呛,后来到研究生学统计的时候就好了一些。因为研究生时候的老板年纪比较轻,接触了很多比较新的领域,于是他就带着我们走进了机器学习的大门,从 andrew ng 在 coursera 上的 machine learning 开始,组会也一直有讨论 The Elements of Statistical Learning 这本书,而且我们真的讨论的很细致(这本书真的值得一推,校招时找到工作真的全靠它)。还有李航的那本统计学习基础也很推。所以在研究生期间,我们学了大量的理论知识,但编程却学的很少,连 linux 都用的很少。本科的时候学过 c++,当时真的不喜欢 ︿( ̄︶ ̄)︿,连考试都是勉强过,没想到后面。开始学编程的契机,其实也不是因为要找工作,而是身边有已经就业的朋友强推 python 给我,于是我就去学了学。自学 python 其实不难,现在网上能找到各种各样的课程,尤其是那种不用配环境,互动的课程,学起来真的很轻松,但是难的是坚持。
现在网络这么发达,应该没办法找理由说没有资源学习了,所以不管你在哪里上学,不管学校如何,都不是问题~
简历
之所以先写简历的部分,是因为不管是校招还是后续跳槽的面试,简历都是重中之重。面试官们会通过简历来建立对你的第一印象,更有甚者它会直接决定是否会有后续的面试。
首先技术相关的工作,我觉得简历应该简单大方,不要花哨,我一般会选择用 latex 来做简历。
其次,简历内容应该重点明确,把自己最重要,最熟悉的项目放在前面,用简短清晰的语句来描述,不要大段大段的文字。
最后,我习惯对我已经写好的简历建立一个类似思维导图的东西,这样能帮我更好整理思路。比如如果第一个项目用到了树相关的算法,我就会以此展开来复习所有与树相关的知识点,不要放过任何细节。
加分项,简历中最加分的就是附上自己的技术博客或者 github,尤其是你的 github 有很多 star 的时候。
校招面试
考虑到之前并没有任何实习经验,而且 python 还是自学的,所以做了一个兰州二手房的分析的项目,如果你也像我一样,并没有实习经验或者实习经验很少,一定要自己独立完成一些感兴趣的项目,github 上有很多相关的项目可供参考。项目不用太复杂,重点是遇到问题后解决问题的思路和完成度。
在网易笔试通过之后,我即将面对人生中第一个和工作相关的面试,但大脑中对整个流程却一片空白。于是我当机立断在前往北京之前,投了几个实习,想先了解下互联网行业面试大概是什么样的。这几个实习面试对我的帮助很大,首先了解了互联网面试的流程,其次认识到自己的优势和劣势。我的优势在于理科出生,理论比较好,机器学习算法细节了解比较充分,而劣势也相当明显,没有实习经验,对数据结构了解几乎为 0,编程能力较弱。这也是我觉得很重要的一点,要认清自己,不能盲目自信,也不能夸张认为自己什么都不行。面试过程中要充分放大自己的优势,但也要承认自己的劣势,并给出合理的解决方法。
工作中提升自己
初入团队,领导和同事对你能力的认知是一片空白,这时候最重要的获得别人的认可,而认可是一个累计的过程,即将做的每一个项目都是获得别人认可的机会,所以要好好把握,大概三四个项目后,leader 和同事就会对你形成固有印象。
工作中负责,我觉得是一个最重要的品质。而负责是基于主动思考的,当接到一个项目时,你是如何对待它,只做一个执行者还是会主动思考,提出自己的想法(即使想法并不是十分完善)。当你主动思考了,策略效果可能会更好,毕竟你对这个项目最熟悉,能看到,拿到第一手的数据。当你对代码质量,代码逻辑负责的时候,也会少很多后续可能需要"回锅" debug 的问题。
还有一个比较重要的品质是主动学习,互联网行业迭代更新很快,要保持学习才能跟上大时代。一方面是工作中的主动学习,趁着工作的机会学习自己之前并不了解的方面,比如之前都用 map reduce,而组里都用 spark,那就刚好学习 spark,组里的每个同事都是最好的老师;另一方面是工作之余,很多童鞋平时工作真的很忙,但是刷微博的时候看看大佬们分享自己领域的最新的进展也是好的。
工作之余,不要忘记你在面试时发现自己的弱项,毕竟找工作,在现在这个社会,在互联网行业并不是一劳永逸的事情。我自己的弱项,就像前面所说,数据结构知识几乎没有,所以有空的时候我也会去刷刷 leetcode,因为现阶段目的性并不是很强,也就是说并不是为了找工作而疯狂刷题,而只是为了提升自己,所以整个过程也就更愉悦。准备一定要做在前面,不要到了时间点匆匆忙忙。
跳槽面试
说到这其实跳槽面试就没有什么好说的了,面试官们具体问了什么,我也记不清了。而且每个面试官风格都不一样,命中同一个面试官的可能性微乎其微。
推荐给大家这本书 软技能:代码之外的生存指南
这里也提到了面试的一些准备技巧,大家也可以借鉴学习。
最后欢迎大家来我的公众号,或者博客,问问题,找我玩都可以~
版权声明:本文为CSDN博主「阿塔塔塔」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fengfei9225/article/details/104513679
#算法工程师#