路虽远,行则将至 - 附暑期实习、秋招历程经验分享

news2024/11/28 16:04:25

前言

大家好

许久没有时间静下心来打开编辑器写文章了

忙碌暂过,难得一闲时

求学三年,终到离别时

回忆过往,枯燥且多彩

有一点经验,以文字形式分享,希望帮助到大家

可能是这段时间事多且杂,加上很长一段时间没有写博客
正在编辑文字的我,脑子空空,有些许陌生感
行文逻辑如有错误、含有不严谨之处,请多见谅

个人情况:

  • 技术语言:C++
  • 求职岗位:后台开发
  • 竞赛:国家级两项(非ACM)、其它若干
  • 奖学金:国家奖学金等
  • 科研成果:专利一项,论文一篇

获得offer情况:

  1. 暑期实习
    • 菜鸟期,只拿到3个offer
    • 一大厂、一中厂,还有一个不知名小公司
  2. 秋招
    • 刷经验 拼命升级期
    • 三家大厂(两sp,一ssp),两中厂,其他若干
    • 字节面两次,二面挂两次
    • 腾讯面两次,二面挂两次
    • 快手面两次,二面挂两次

失败原因:自己最大的问题在于项目深入这一块,对一些项目实战细节了解不深导致大多挂在这一块,所以希望后面的学弟们在准备时一定要把项目准备好!

注:由于求职时间为2023年暑期实习及秋季招聘,时间已过去几个月,一方面细节回忆不是很细节,另一方面具有时效性,请依据实际情况进行调整

求职历程

一、基础篇

1.1 选择技术路线

主旨:结合自身实际情况,选择适合自己、感兴趣的技术方向。

可选择方向:

  1. 算法
  2. 后端
  3. 前端
  4. 测开

自身选择历程:

  • 首先排除算法。掂量了自己的水平及能力,学历/论文不够,算法这一条路应该行不通。
  • 然后在前后端中选择,二者各有一些开发经验,综合考虑发展前景和个人兴趣,最终选择后端开发,编程语言选择了C++。
  • 最后规划学习路线和收集资料。

1.2 收集备战资料

明确路线后,开始在各大网站查找前辈们的求职经验,了解他们的准备过程及所需要使用到的资源。

在此过程中,寻找与自身方向吻合度高的文章并整理到自己的文档中。分析共同点,制定个人学习计划

由于很久没有接触这一块了,很多细节不是很了解。一些内容仅靠自己的少量记忆进行描述。

1.3 按部就班学习

准备资料可以分为四部分:

  1. C++基础及进阶知识
  2. 项目
  3. 八股文
  4. 算法题

(1)基础知识

目标:学习C++的基础知识,语法、函数、特性等。

学习路线:

  • 先看纸质资料,包括C++课本、C++ Primer、计算机网络、操作系统、数据库、Linux基础、Git基础等。边看边使用笔记软件记录,形成笔记,不会的知识点查阅文章帮助自己理解,形成自己的知识库笔记系统。
  • 再看视频资源,主要听的是侯捷老师的课程,大致是:C++面向高级对象开发、STL标准库和范型编程、C++设计模式、C++新标准C++11&14、C++内存管理机制…
  • 最后把书和视频中的一些例子自己重新敲了一遍。

花费时间:大概1个月

(2)项目经历

目标:准备简历中的项目经历。

这里自己狠狠地踩坑了,准备暑期实习时就在Git上找了一个项目,尽管啃完源码后自认为还可以,结果在面试时被问懵了,挂了很多次。这是不太好的一种做法,不建议采取。(后面秋招反应过来了)

平时有机会多参加学校内的一些课题项目或者自己提前准备好个人的项目方案。采用网上同质化严重的项目,加上不熟悉具体流程,很容易被刷下去

当然,还是按照自己的实际情况来准备项目经历。

  • 首要条件是要有与个人技术路线对齐的项目经历,有总比没有好。
  • 更进一步,在可选择条件多时,尽量选择优质的项目写在简历,不用过多,一到两个就可以了。
  • 关键在于:
    • 项目设计的难点在哪里?
    • 遇到的困难是怎么克服的?
    • 具体使用了哪些技术细节?关键点在于如何通过一个项目体现自己的技术实力,如何解决地难点部分?
    • …(想象自己是面试官,多反问自己)

花费时间:大概1个月

个人建议:

  • 即将找工作的小伙伴可以提前看看各大公司的招聘网站,看看对应岗位的招聘需求。PS:有些岗位会介绍一些非常好的开源项目,这里我们是可以借鉴一下的(后悔当时没有早看到)
  • 能完整走完项目流程最好。开发、部署、上线、运营… 相信大部分都会完成一个项目的源码开发,但后续的线上部署实际则忽略了,这一块如果有时间的话也建议做一下,在线上运行时发现问题,思考问题,解决问题。
  • 源码要敲,尽量少copy整个文件。
  • 向已工作的师兄师姐、同学请教实际工作时遇到问题的解法、常用工具等…

(3)八股文

目标:熟悉基础,流程表达

个人准备方法:

第一步:把需要理解/背诵的知识点誊抄到自己的文档,形成自己的笔记内容

在这里插入图片描述

可以依据类别,把知识点按照问题+回答的方式总结下来,形成自己的知识体系
再打印出纸质材料方便自己学习与背诵。

第二步:理解与记忆,形成“肌肉”记忆。

每天坚持9点左右到达图书馆,开始进行知识点学习与记忆。

  • 无他,就理解+记忆反复多次
  • 每天坚持读完/背完一类知识点,一次需要3小时左右,一个上午
  • 一轮学习所需时间为1周。

1周后,将问题单独打印成一册,训练时,只看问题描述,然后回答

  • 回答时,必须要说出来,不能是觉得心里知道,而不开口讲述。
  • 面试时是需要向面试官解释知识点的细节的,是需要开口说话的,同时也需要讲解得当,将知识点叙述地尽可能地准确,而不是讲完了后,只有你自己懂了,面试官根本没有听懂…
  • 训练时,可以使用手机将自己的回答过程录制下来,然后再回看视频,想象自己是一个小白,看看自己的回答是否将此知识点讲解明白。
  • 切记,一定要敢说,敢讲,敢练。
  • 目标:坚持练习30天,基本实现看到某个知识点后,立马可以熟练地回答,不卡壳、语速适中。

以经常被问到的一个计算机网络知识为例:请你描述下TCP三次握手和四次挥手的过程。

相信一看到这个题目,大家都会觉得很简单。但是一到真实面试时,会很紧张,同时描述也会磕磕绊绊的,尽管描述没什么问题,也有可能会显得不熟练、不稳重、知识深度很低、不自信。

对于这样的高频问题,在训练过程中,可以考虑每天都坚持讲解一遍,要保证回答过程中语速适当、不磕绊,回答流畅且顺利,不漏知识点,自信向面试官展示自己对于这类问题的理解。

面试多次后,自己就会明白,有些题目是在反复出现,这类问题就是平时训练的重点,尽可能的把答案回答全、回答准确,不要遗漏细节内容

(4)算法题

在算法题这部分,短时间内突击效果不理想。

因此选择采取每天尽可能练习,保持题感,坚持刷题,强化肌肉记忆。

刷题阶段可以分为三阶段:

  1. 基础了解
  2. 专项学习
  3. 拼命刷题

基础了解:此阶段是没有刷题经验同学的第一关。

  • 刷算法题和实际编程稍微有点区别,部分同学在第一次进入刷题网站时,尽管知道题目的解题思路,但是不熟悉刷题网站的使用、解题模式的转变等…
  • 这里需要做的就是花点时间了解下解答算法题的操作、熟悉编程语言对应的一些API(比如C++经常使用到vector、queue等对应的一些api)…

专项学习:重要阶段。

  • 这里有两种学习路线,一种是按照类型刷题,另一种是按照题目顺序学习。
  • 两种方法各有优劣,按照自己的实际情况选择一种坚持学习就行。
  • 以自己为例,采用按照类型进行专项学习。
    • 先统计出一些热门题型,如动态规划、二叉树、链表等
    • 再针对某类题型的概念、解题思路、例题、变式题进行线形学习。不局限于大佬的笔记、B站讲解等方式,选择适合自己的就行。
    • 关键在于,每一次学习后,要对学习内容按照自己的理解总结并记录下来,而不是光是听,而是要将其转化为自己的知识点。
      在这里插入图片描述

使用笔记软件对每次学习的内容进行总结,并给出自己的思考过程。

总之一句话就是:学习,总结、记录、反思,形成自己的知识笔记,方便后续的复习。

在这里插入图片描述

了解各类题型后,就可以通过做题巩固及拓宽自己的知识点。

  • 开始时,每道题给自己的时间不要超过20分钟,20分钟后若还不会做,可以放弃了,直接看题解。
  • debug也不宜过久,不需要出现几天半个月都专注于一道题上。完全不会的题看评论区各位大佬的题解,有思路但没有正确的同学需对照题解看看自己的错误点在哪里。
  • 提交成功且正确的同学可以看看其余的解法,不局限于一种解法。在这个阶段,建议每道题从做题、解题、反思总结这几个阶段时间限制到1小时内,不要太长,每天坚持做1题都是可以的,关键是要坚持。

拼命刷题:通过上一阶段的训练后,可以按照题目序号顺序进行刷题了。

  • 刷题号为1-300的题库,每道题时间限制为5分钟,包括题目思考与代码编写。
  • 时间一到没有思路或者测试失败立马查看题解,着重于思考大佬的思路为什么可以解出来,而自己却没有这种思路。
  • 理解后再按照此思路重新敲一遍,这个过程不要看着答案敲,而要凭借自己的理解重新写一遍代码。
  • 如果思路卡壳或者测试case不过,那么再对照检查。重复上述过程,直到可以所有case通过。
  • 按照个人经验,一道题大概需要0.5-1h。

形成刷题记录:每次刷题后,可以对自己的刷题过程进行总结。

  • 使用xmind进行归纳,统计刷题日期、是否成功解出(YES表示所有测试case通过,NO表示失败)、是否为最优解、🌟表示重点关注题型…

在这里插入图片描述
为什么这样做呢?

  • 因为有些题过一段时间后就会忘记,手感生疏,所以需要统计刷题时间。
  • 更重要的是,分析查找出自己不会的题目,以便后续突击时重点关注此类题。
  • 一般来说,同一道题,不同时间连续三次做对后,可以理解为对这道题比较熟悉了,后续刷题过程可以暂时略过。

贴一下自己三年来的刷题记录:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

没有天赋,只有多练。
个人面试时,在有思路的情况下,基本可以做到5min左右快速敲完代码并一次提交通过。
当然,没有思路时,再长的时间也没有做出来… 后续也就是理所当然地被挂了…

二、简历篇

这一块自己没有发言权,毕竟自己做的不是很好。

个人的理解大概就是:简洁、突出重点、体现个人价值、岗位匹配度。

简历不要只做一份,每个岗位都投递相同的简历,而是需要依据岗位需求适当修改下内容再投递,不要想着偷懒,一份简历投递所有岗位。

简历上重点:

  • 项目经历,描述好项目使用的技术栈、实现了哪些效果、项目难点技术是什么
  • 个人技能,不是简单写自己会C++/Python/Java,而是要继续深入表述,具体到细节部分,不要泛泛而谈,写自己最为熟悉的部分

适当调整简历:

  • 当投递几份简历投递后,若效果不是很好,则需要思考简历内容是否不当。
  • 可以寻找之前求职过的师兄师姐进行指导,看看简历的不足,进行修改调整,再进行投递。

三、笔试篇

笔试形式一般是机考,在一个在线网站上进行,需要对屏幕进行录屏、打开摄像头实时录像,手机需要扫码进入一个小程序,此时不能切出去,多次切出小程序会被判断作弊,可以使用此小程序内的计算器等,部分公司会要求再使用一个手机摄像头拍摄参考者的整个考试过程,也就是拿个支架放在身后。时间大概1-2h,请确保电脑有电源、手机有足够的电量。有些笔试时可以使用自己的草稿纸。

笔试题型有选择、填空、判断、算法题、场景题等,一般以选择+填空+算法为主,当然一些大厂只有算法,记忆中腾讯只有5道算法、字节4道…

选择、填空、判断一般都是考察语言的基础知识,可以先在网站题库中刷一些题(不需要太多,了解下考啥就好了),然后做一些真题。这一块时间不需要准备太久,因为前面背了八股文,笔试的知识点可以轻松点。

重点在于复习笔试中的算法题。在前面介绍刷算法题的过程,更多面向的是面试过程中遇到的算法题。为了对付笔试中的算法题,还需要学习额外的知识点。

笔试中算法题一般还是以ACM模式为主的,格式与力扣中有些出入,需要自己定义输入、输出。当然,核心思路肯定是一样的,只是小部分有些不同。考察的知识点也有些差别。

结合个人经验,准备笔试中的算法题时,首先需要了解基础的ACM模式输入与输出。然后再学背包问题及其变式、树DP问题等,这类问题稍微会更难一点,时间有限的情况下可以把基础的解题模块记住,考试后套模版即可。一般题目难度不大的情况下,模版稍微修改后就可以通过一些cese,难度大的题目实在不会可以放弃。

这一块具体的学习可以去一些大佬搭建的刷题网站中进行刷题,里面还有近期笔试的算法题目及解题方法,通过刷真题的方式学习方法,这样是最方便且高效的,可以一定程度上节约自己的时间,更专注于解题思路的培养。

AC题目的数量越高越好,这肯定是毋庸置疑的。其实自己算法题也是弱项,状态好时可能会多对几道,状态差时一道也做不出来。

个人进面的算法题正确率:
腾讯共5题,AC3道,后两道通过部分case;
美团5题,AC3道,后两道通过部分case;
华为机试总分600,得分500;
字节4题,AC3题;
其余厂记不太清了,反正最后一题基本没对过,剩下的可以完成。

四、面试篇

面试前:

  • 干净整洁的个人形象,不要显得太邋遢。
  • 安静且有保障的环境。 因为面试一般是在线形式,所以需要提前想好面试地点在哪里,提前准备好,尽量保证安静、光线好、网络通畅、有电源等。大部分同学应该选择在宿舍进行面试,这也是可以的,提前与舍友沟通好就可以了,自己一般选择在图书馆设置的室外座位进行面试,一是有电源、网络好,二是可以锻炼自己的胆量,敢于开口答题(室外座位是自由讨论区,一般情况下人不多,是安静的,而且可以讨论讲话的)
  • 放平心态,自信答题。

面试过程中

  • 答题过程中语速不能过快,过快面试官可能会听不太清回答内容是什么。语速要正常且回答不停顿,遇到会答的题,更要稳重,尽量答全,不要漏知识点。不会的题一方面可以发散思维,尽量答一点,实在不会,可以告知面试官,部分面试官会有一点提示或者引导。如果没有回答正确,也不要紧张,保持心态,继续答题。
  • 手撕算法题时,听清楚面试官的要求,看到题目后不要直接上手写代码,而是先要看清楚要求,不懂的地方要与面试官进行沟通。使用1-2min想一想思路,然后5min左右敲出代码,写完后再简单检查一遍,不要着急直接提交测试。检查完毕后再提交,尽量保证一次就AC。有错也不要着急,稳住心态,仔细查看,一般来说,有思路时写的代码没有AC错误大概率不难,可能是某个地方不小心写错,修改即可。避免多次debug,多次debug还是没有AC会显得解题思路不清晰…

面试后:

  • 立刻总结,把面试被问到的一些题目进行归纳总结
  • 对没有回答正确或模糊的知识点进行查缺补漏,避免下一次还不会,不断补齐自己的短板。

写在最后

本文仅简单分享个人求职经验,仅供参考

没有对细节内容进行过多描述,比如项目具体需要什么、算法具体有哪些模版…

一方面是因为求职方向不太一样,方法不一定适用于所有岗位,另一方面是因为细节内容工作量有点大,暂时不能详细介绍(其实是忘的差不多了,不会了…)

最后祝愿各位学弟学妹们,都可以找到自己满意的工作,前程似锦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1815925.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NSS题目练习8

[SWPUCTF 2022 新生赛]numgame 打开发现不能直接更改数值,会变成负数,快捷键不能用,输入view-source查看源代码,发现js文件 点开后发现最下面有个酷似flag的东西 提交后是错的,看着像是base64,解码后得到另…

The Sandbox 游戏创作比赛|巴黎 CITY JAM

The Sandbox City Jam 邀请大家参与 The Sandbox 全新 Game Jam:City Jam!活动将以社区为中心,每次一个城市,旨在将国际文化带入The Sandbox。你可以通过参与比赛赢得奖品,发展技能,并与其他创作者为伴&…

autosleep框架设计与实现

在低功耗系统中,autosleep是一个较小的模块,是低功耗主流程的入口。在Linux内核中,autosleep是休眠流程的触发点和入口点,PM Core的休眠流程入口pm_suspend()就是被autosleep的睡眠工作队列调用而进入休眠的。 该功能的支持受宏…

反向代购系统建站技术详解

一、引言 随着全球化趋势的深入和电商行业的快速发展,反向代购(Reverse Daigou)作为一种新兴的商业模式逐渐受到关注。反向代购,即海外消费者通过国内电商平台购买国内商品并委托平台或第三方进行国际配送,满足了海外…

[Java基本语法] 从0到1带你精通Java基本语法

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏:🍕 Collection与数据结构 (92平均质量分)https://blog.csdn.net/2301_80050796/category_12621348.html?spm1001.2014.3001.5482 🧀线程与…

类和对象(二)(C++)

初始化列表 class Date{public:Date(int year, int month, int day){_year year;_month month;_day day;}private:int _year;int _month;int _day;}; 虽然上述构造函数调用之后,对象中已经有了一个初始值,但是不能将其称为对对象中成员变量的初始化…

第十五篇——条件熵和信息增益:你提供的信息到底值多少钱?

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么? 四、总结五、升华 一、背景介绍 通过这篇文章,我知道了条件熵和信息增益;如果你试…

创建应用程序

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 使用wxPython之前,先来了解两个基础对象:应用程序对象和顶级窗口。 应用程序对象管理主事件循环,主事件循环是wx…

JavaScript的运算符(算术、比较、赋值、逻辑、条件)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

直播预告|就在明天,解锁半导体测试全攻略

随着5G、物联网、人工智能和新能源汽车等新兴产业的快速发展,半导体测试设备与服务的市场需求将更加多样化。IC测试作为产品良率和成本管理的重要环节,行业测试工程师面临着降低测试成本和提高产品良率的强劲压力。如何提升测试的质量与效率,…

Spring Boot + Mybatis Plus实现登录注册

Spring Boot 实现登录注册 1. 注册 业务逻辑 客户端输入注册时需要的用户参数,比如:账户名、密码、确认密码、其他服务端接收到客户端的请求参数进行校验,然后判断是否有误,有误的地方就将错误信息抛出将密码进行加密之后存储到…

光伏项目管理——数字化改革

随着全球对可再生能源的迫切需求以及环保意识的日益增强,光伏产业作为清洁能源的重要组成部分,正迎来快速发展的黄金时期。然而,传统的光伏项目管理方式已逐渐无法满足现代化、高效化的需求,数字化改革成为了行业发展的必然趋势。…

什么是无头浏览器以及其工作原理?

如果您对这个概念还不熟悉,那么使用无头网络浏览器的想法可能会让您感到不知所措。无头浏览器本质上与您熟悉的网络浏览器相同,但有一个关键区别:它们没有图形用户界面 (GUI)。这意味着没有按钮、选项卡、地址栏或视觉显示。 相反&#xff0c…

Tuxera NTFS for Mac 2023软件:超级详细安装步骤(最新版软件下载)

软件简介: 在 Mac 上打开、编辑、复制、移动或删除存储在 Windows NTFS 格式 USB 驱动器上的文件。当您获得一台新 Mac 时,它只能读取 Windows NTFS 格式的 USB 驱动器。要将文件添加、保存或写入您的 Mac,您需要一个附加的 NTFS 驱动程序。…

checkbox表单校验 至少选中一个Checkbox , 否则会报错

项目背景 : react ant 需求 : 需实现至少选中一个Checkbox , 否则会报错 需求如下 : 注意 : Input, Select, DatePicker可以直接处理Form.Item的验证规则 , 但Checkbox不行 , 需自定义验证规则 实现 : // 自定义的checkbox校验规则--星期const validateAtLeastOneCheckbo…

CP AUTOSAR标准中文文档链接索引

AUTOSAR标准的核心组件包括通信、诊断、安全等,这些组件通过模块化结构进行组织。系统被划分为多个模块,每个模块负责特定的功能。模块之间通过接口进行通信,接口定义了模块之间的交互规则。AUTOSAR标准支持模块的配置,可以根据不…

加密经济时代:Web3如何改变我们的生活方式

随着区块链技术的蓬勃发展和加密经济的兴起,Web3正逐渐成为数字化时代的主流趋势之一。作为下一代互联网的代表,Web3以其去中心化、安全可信的特性,正在改变着我们的生活方式。本文将深入探讨加密经济时代下,Web3如何改变了我们的…

形如SyntaxError: EOL while scanning string literal,以红色波浪线形式在Pycharm下出现

背景: 新手在学习Python时可能会出现如下图所示的报错 下面分情况教大家如何解决 视频教程【推荐】: 形如SyntaxError: EOL while scanning string literal,以红色波浪线形式在Pycharm下出现 过程: 问题概述: 简单…

鸿蒙开发文件管理:【@ohos.securityLabel (数据标签)】

数据标签 该模块提供文件数据安全等级的相关功能:向应用程序提供查询、设置文件数据安全等级的JS接口。 说明: 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import security…

C# WinForm —— 34 ToolStrip 工具栏 介绍

1. 简介 工具栏 ToolStrip,一般紧贴在菜单栏下面 2. 属性 属性解释(Name)控件ID,在代码里引用的时候会用到Enabled控件是否启用Dock定义要绑定到容器的控件边框,默认是topAnchor定义某个控件绑定到的容器的边缘。当控件锚定到某个边缘时&a…