从猿六年---C++笔试\面试的不成熟小建议来啦

前言/背景

本人情况,2014年毕业,前两年做的更多的是量化分析岗。16年转的C++开发,满打满算也有6年多C++开发经验啦。 6年来在三家公司待过,自己被面试过,也面试过别人。 本文从面试者和面试官的角度综合分析下,C++被面试的时候,我们怎么做才能提高我们被录取的可能。
本文大概3000字,阅读时长15分钟左右,希望对您有所帮助。

面试流程

(1)改简历、投简历

除非你是大神,名校+大厂经历,你的简历可以写得像流水账,只需简历罗列,重点无需突出,否则简历还是需要认真对待的。

(1.1)如果打算批量投简历,那就根据自己目标意向行业,这个行业的整体要求,简历中重点写自己满足的技术+项目经验。如要投金融行业:那么简历中重点突出,具备金融基础知识,技术栈网络通讯,多线程,进程间通讯等,和相关高吞吐量、低迟延的项目经验。
这样目标行业有多个,那么就有多份简历。基础的部分不用改变,主要是调整突出相应的技术栈和项目经验。

(1.2)如果有具体的投递目标(如内推的),那么就根据内推岗位的具体招聘要求,修改自己的简历,重点突出自己无论从技术还是过往项目经验都特别符合该岗位要求。


(2)笔试准备

(2.1)如果工作经验1、2年的,笔试比较重要,可能要求笔试通过后才能面试,主要考查基础知识,如:const,常指针,引用,C/C++区别,普通数组和vector区别,多态,虚函数, 常用算法:手写二分查找,快排等,常用设计模式:单例。等等。

(2.2)如果工作经验已经有3年左右了的,一般以面试为主,有可能先面试后笔试,笔试更多的是走个过程(各个方面都考察一些,语言,数据库,逻辑),不难,但也不能考得太差,否则影响二面什么的。


(3)面试

(3.1)想起我刚有机会面试别人的时候,问我当时的老大应该怎么面,他说:你就跟TA聊,从两个方面考虑,技术+沟通。 技术不用多说,一些基础的东西要懂。沟通分拆成两个方面,一是表达,而是理解。 有的面试者理解能力不够,不能很好的理解面试官的问题,回答问题的时候可能就是完全错误的方向。 有的面试者能理解问题,但是表达欠佳,不能突出重点,或太啰嗦东扯西扯,或说的太少不能深入问题。

(3.2)其实要求技术和沟通这两个方面很好理解。 毕竟软件开发往往是多人合作完成的,技术不到位,如基础太差不好带你上手啊(如面应届生的时候就特别看重基础,应届生没必要过多强调你在学校做过哪些项目,你还不如强调你看了那些技术书,如通读多遍C++ Primer并把后面的练习题都上机做了一遍,远比你做个xxx项目xxx项目xxx项目来得有吸引力)。沟通,因为以后招引来大家是一起共事的,一起合作的,如果面试的时候双方沟通就有问题,我说东你说西,面试官都不敢想象把你招进来做什么,天天吵架吗?

(3.3)应届生或从业时间不长的面试者,企业一般面试考察基础知识。 而对于从业多年的,那么就重点考察解决问题的能力了。 面试官往往从你的简历中的项目入手,问问项目大概做了什么,具体解决什么行业问题,其中你做的部分在项目中的位置作用,手写项目架构图,中间有遇到过什么大的技术问题没有,最后怎么解决的。 这是大的方面,还可以深入到技术层面,如你们网络通讯用的什么,直接用socket还是用asio,消息中间件用的时候什么,知道哪些消息中间件,他们有什么区别?平时有用过锁吗,什么时候用递归锁? 读写锁是什么,你的项目中什么时候用到了?

(3.4)C++标准在不断发展,从前的98,到11,14,17,现在都20,23了,企业的使用一般比标准慢,毕竟一个新标准出来还需要对应的编译器支持不是,但是现在C++11是常用的了。 所以一般就要问问一些C++11的东西啦,如auto,decltype,智能指针,新for,lambda表达式等。这方面本人也落后了,了解不多,就不献丑了。

资料总结/刷题指南

(1)技术方面基础的要打牢固,应届生及从业不久就的重点关注各个技术点的区别与使用,当从业多年后,就要关注技术点的底层原理了。找工作过程中再翻翻C++ Primer,侯捷的书。同时关注新标准,看看C++11,17相关的。
这里给一个复习网站,**cppreference: **https://zh.cppreference.com/w/cpp/language

(2)大厂的话算法是必须的,还需要刷刷算法。 其实我们很多人,都是普通开发者,包括我自己,能进大厂的毕竟是少数。 很多人在工作过程中根本用不到算法和设计模式这类的,有的时候连数据库访问,网络连接都不会用到。这些基础东西,从我们入职公司的时候,公司就已经搭建好自己的基础库了。很多时候,入职后,有个师傅带着你做了一两个小需求后,你懂一点业务了,也知道怎么用公司的基础库了,更知道当前项目的大概架构了,那么你就是其中的一个合格的小小螺丝钉啦,可以在你的岗位上不断ctrl+c,ctrl+v,开发新需求,解决新bug了,哈哈哈。

(3)但是,如果我们还想进一步不断提高自己,那么算法,底层基础的东西就更需要学习了。 更需要研究公司的基础库,看看它们是怎么实现的,用了哪些技术,掌握,变为已用才是根本。

(4)所以,在找工作过程中,还没离职或有条件的话,应该要好好看看现有的项目,特别是底层的基础库,学习起。

个人经验总结

(1)我的第一次技术面试是11年,研究生入学面试,一个老师问了我a+++b,是先a++再+b,还是b先++后,再a+b,我当时直接搞蒙了,这太基础了,基础到不能基础了,就是一个运算符的优先级问题。但是我当时回答得支支吾吾,不敢确定,还扯什么看编辑器。也问了一道排序组合的基础问题也没答好。最后,面试分数比较低,该985我也没能进去,调剂到了一所双非,算是自己一生的遗憾吧。重提伤疤,就是想时刻提醒自己,也给大家提个醒,基础基础,还是TM的基础,越是大厂、名校,越看重基础。

(2)技术岗是有区别的,有的技术岗就是重技术,做底层,做技术攻坚,而有的技术岗是重业务的,做功能懂业务是关键。如我所在的金融行业,整体是重业务的,懂业务就很重要,融资和融券交易规则差别大着呢,技术嘛,都能买来,买买买,买系统,买模块,买劳务。本人入职第一周,领导就教育:咱们金融行业业务才是第一位的,把某个业务完全搞懂了你就是专家,而技术谁都能实现,随便招个人让他做就行了。作为一个伪技术宅,我当时其实是不太服气的(现在再想想,可不是嘛,我不就是那个随便招来做技术的,哈哈),入职2年多,发现做领导的人都是懂业务的。一个领导不懂业务是被鄙视的。哈哈,毕竟不是互联网,有区别呢。

寄语

啰啰嗦嗦写了3000多字了,最后总结下:
(1)简历不建议海投,看到那些找工作投了1、2百份简历的想想都恐怖,海投没意义。 有的岗位明明看去自己不满足要求或根本不合适就没必要投啊。现在更是内推+猎头的时代了,海投更没有意义了。

(2)根据找工作方面多准备几份突出不同重点的简历。

(3)面试是一个 技术+沟通的过程,而沟通是双向的,你如果觉得跟面试官(他如果是你以后的合作同事的话)沟通不顺畅,也可以不考虑该岗位啊。

(4)技术重基础,深入看原理,项目重业务中技术难点。

(5)最后的最后,应届生不用提你学习能力强,请公司给个机会,入职后会不断学习什么的,没有意义(你还不如说你刷了哪些书哪些题,自信满满),你能力强不强面试官问问技术基础就知道了,新工作从来不是给来的,而是因为你适合。

祝面试顺利,高薪入职,短期内升职再加新,踏上猿生巅峰!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值