程序员面试需要的软技能
程序员面试所需的软技能
2016-11-10 蜗牛 云技术实践
写在前面:本文建立在代码基础过硬,想一起研究一下面试中锦上添花的一些技能,注意不是雪中送炭,基础不好的,还是看看之前的文章,好好学学Python再来看吧最初想写这篇文章,是因为平时上课的时候也会见缝插针的讲一些面试题,但是大家给我关于面试的反馈,通常不是某个笔试题不会做,而是一些开放性的问题不知道怎么回答。特别是一些面试到了三面的时候,基本都不会问太多技术问题,这样普遍不善言辞的程序员们很是惆怅,于是我决定分享一下自己当程序员这几年关于面试的一些软技能。是的,你没看错,本文全程无代码。
本文将围绕几个问题来逐个展开
面试准备
作为IT从业人员,跳槽是职业生涯中很重要的一个步骤,这方面我就不讲太细了,毕竟有很多讲职业生涯选择的文章。我只提醒一点,自己的职业生涯,还是要自己好好规划,想好为什么跳槽就可以了。
有了换工作的想法之后,第一件要做的事就是做简历。大型超市为了卖掉更多的洗头膏,都会精心设计一个促销区域,但是我们找一个年薪几十万的工作,却不愿意花心思好好整一下简历。我说的意思不是请专业人员把简历做的酷炫,而是要让简历突出重点,写一份让别的程序员能看懂的简历就OK了。
•简历控制在一张A4纸以内,最好不要超过两张
原因很简单,因为HR和面试官平时都挺忙的,没有那么多时间看简历,最多扫一眼第一页就不错了,所以很多面试官会要求你自我介绍,其实就是他们没看简历~~
•技能只写最重要的
会Word,Excel 啥的就不要写啦,只是用过 Linux 也不要写啦,大学当过什么学生干部啥的也不要写。如果面的职位是Python,以前搞过 asp.net 也不要写啦写点和职位相关,直接能让面试官高潮的技能,比如面运维开发时,就写自己实现过CMDB,上线,工单系统,Django,Flask用的很熟练什么。面前端时,就写自己看过Jquery,angular,vuejs源码啥的,直接命中面试官内心深处的渴望:卧槽,这就是我要的人!
•展示自己的潜力
其实我觉得,让面试官觉得你有潜力的方法最好的方法,就是搞一个博客和Github,记录自己平时的学习和代码。面试官就会觉得你善于总结,对编程有强烈的兴趣,即使你现在技术有些缺陷,也是可以慢慢培养的。这个就属于自我营销,后面会谈及。
•自我营销
想象一个面试场景,你做完自我介绍后,面试官突然饶有兴致的对你说:原来你就是蜗牛啊,我之前看过你的博客,你xx文章里面总结的xx真是不错啊,你应该就可以预计到这场面试的结果,很大概率不需要太多技术问题,就可以直接谈薪资了,而且这是一个真实的故事。
a.打造自己的品牌博客
程序员也需要打造自己的品牌,营销自己。最简单的,就是建立自己的个人博客,大概步骤有这么几个吧,以PC大大的知乎专栏举例
◾明确要表达的品牌信息
◦PC大大的专栏,都集中在网络编程方面
◾挑选细分市场受众
◦就是写给运维开发看
◾创建品牌的口号和标示
◦现在运维圈,提起面向工资编程,都会想到这个专栏,并且这个口号实在是太懂程序员了,俗话说得好, talk is cheap, show me the money
◾内容为王
◦花心思总结一下自己的心得,这个专栏里关于网络编程和操作系统的文章,含金量还是大大的
◾善用社交网络
a、直接在知乎里面回答问题,捕获众多粉丝
当然还有很多其他博客平台,比如博客园,51CTO,Github都可以成为你自己积攒个人品牌的好平台
我觉得现在PC大大换工作,简历里直接贴个专栏地址,比说什么都有效吧
b、注册一个 github账号
把自己的日常代码都放上去,即使关注度不够,HR和面试官也会看到你一个个的提交记录,会觉得你是一个很勤奋的人
c、演讲和大会分享
演讲是进行自我营销的最有效方法之一,虽然扩散速度不及其他媒介,但是真的面对受众,面对面的侃侃而谈,才是最能打动他们的方式,也是你锻炼面试能力的一个最好途径
◾大会演讲
如果有机会去各种技术大会作分享,千万把握好机会,这是创建自己品牌非常好的机会,说不定下面就会有你以后面试官听你分享
◾分享和培训
如果和我一样,没有机会去大会讲,可以在公司内部主动推动一些小分享和培训会,锻炼自己的演讲能力
d、人品牌终极方案—著书
写书对个人品牌效应无需多说,我们对很多技术大神,比如刘天斯大神,印象就是《Python自动化运维:技术与实践》的作者。肖力大神,就是《深度实践KVM》的作者。这两位大神如果出去面试,指不定面试官还会求一本签名书。当然写书需要太多知识和时间的沉淀。我希望以后也可以出本书,但是现在还是老老实实写博客才靠谱。
关于终面:一些扯蛋问题的心得
其实到了终面,基本都是部门负责人了,你已经过五关斩六将的过了好几轮技术面,所以老大基本就不会问你职位相关的技术问题啦。老大所关注的,基本就是你这个人怎么样,有没有培养的价值,所以大致会问你这几个问题(比如你面的是Python的职位)
•你为什么要换工作
老大问你这个问题,就是想评估一下如果你入职之后,能待多久,公司团队能不能把你融进来。
我觉得这个问题,程序员们就不要太纠结于技巧了,直接老老实实从下面俩原因选一个或都讲,坦诚相待就OK了:
•钱不够,薪资没达到期望值
◾这个大家不要避讳,HR和面试官会觉得这个原因是OK的
•觉得现在的工作在浪费时间,没有成就感,想找一个更牛的团队,实现自己的价值
◾表达自己技术和职业上的追求,而不是混日子养老
注意一定不要说是因为和领导闹得不愉快,或者领导傻逼这种话,面试官要是听到这种话,内心独白就是:老子要是把你招进来,以后你背后是不是也会骂我,那赶紧滚犊子吧。然后面带微笑的说,今天的面试就先到这了,balabala……
回答完这个问题之后,最好在表达一下自己心中的技术团队的氛围,常用词汇有,开放,对事不对人,敢于尝试新技术,等等
•你平时业余时间都做什么
其实这个问题我最有发言权,因为我有很多面试都是基本只聊这个就聊到了offer
一个人的业余时间用来做什么,就决定了他的未来 ---- 马云
老大问这个问题,其实目的就是想看你到底是个什么样的人,千万不要回答没啥爱好,回家就看看电视剧睡觉啥的,显得太不上进。基本来说,我常用的回答,业余时间喜欢运动一下,看看书,打打游戏什么的,下面老大一定会会问,喜欢什么运动啊,看什么书啊,都玩什么游戏啊之类的,我分别讲一下这几个,也仅供大家参考:
喜欢什么运动
其实回答一下自己确实喜欢的运动就好,最好是团体或者比较流行的,比如回答踢足球,乒乓球,羽毛球都是很不错的。互联网公司还是非常喜欢组织这些球类比赛,你会这些的话,大家可以一起玩耍,面试官当然愿意啦,或者你看面试官穿着冲锋衣,说自己喜欢户外露营徒步,都是不错的,显示自己很阳光,并不是特别闷骚
然后后面就可以展开聊啦,你自己平时注意积累一下相关的行话,比如喜欢踢球,就找一个死忠的球队,并且用专属名称,比如法国球迷,就说自己喜欢高卢雄鸡,英国就是三狮军团,荷兰就是橙衣军团,德国就是德意志战车,并且选两个喜欢的球员,描述语就用球风硬朗、意志顽强,脚法精准,身体对抗多,全场跑动多等等装逼词汇就差不多了
喜欢看什么书
上个问题其实无关痛痒,这个问题才是老大最感兴趣的,平时看书的时候注意自己对这个问题答案的丰富和积累,比如回答就看点技术书啊,除了技术书就看点畅销书和名著,偶尔也看点玄幻小说啥的就还不错,这里面试官一定会和你聊具体你看过的书,所以对自己列举出来的书,一定要有自己的观点。
技术书就可以列举基本耳熟能详的,老大也不会多问,玄幻小说也没啥可聊的,总不能和你聊凡人修仙传吧,所以重点就是畅销书和名著了,注意,一定要有自己的观点,奇葩无所谓,要让面试官觉得你是有独立思考能力的人就可以了
•畅销书
这个就说几本看过有点名气的就行,比如浪潮之巅,人类简史,从0到1都不错,重点聊点读完的理解,这个就没啥太多技巧了,平时看几本备用吧,比如关于浪潮之巅,你可以借用硅谷之谜里面关于机械论和三论的总结,非常精彩
•关于名著
这个其实才是扯蛋的重点区域,下面几个段子是我经常用的,分享给大家,立等可取,任君享用:
三国演义
对赤壁那段印象很深刻,特别是赤壁之战之后,关羽把曹操给放走了,当时还倍感可惜,关二爷就应该手起刀落balabala,后面再读,就觉得诸葛亮真是牛逼啊,其实是故意放走曹操的,因为当时刘备的势力还不能和孙权对抗,如果宰了曹操,势必把大好天下拱手让与孙权,是自寻死路,所以曹操肯定不能死
如果直接装作没有抓到曹操,东吴和天下人都会觉得刘备这边能力太差了,没什么能力,对成就霸业不利,所以必须要抓住曹操
但是如果抓住直接放走曹操,和孙权的结盟关系势必破裂,对当时还弱小的刘备势力也是毁灭性打击,所以算准了曹操对关羽有恩,关二爷重义气,定会放走曹操,所以才把关二爷放在了最可能宰掉曹操的华容道,事后东吴来问罪,就装作要斩关羽,最后刘备出来求情,借坡下驴,赦免了关羽,所以诸葛亮既向天下人展示了刘备的能力,也没有让东吴一家独大,又没有让联盟关系破裂,还顺便成就了关二爷的忠义之名,真是太屌了。
西游记
关于真假美猴王,孙悟空真是太鸡贼了,唐僧老是念紧箍咒,自己造了一个一模一样的猴子,装作是六耳猕猴尥蹶子不干了,一直到如来亲口答应安心取经,以后一定可以成佛才作罢,就像现在的老板承诺给股权,好好干,公司上市了一定给你XXX一样。
类似的例子还有很多很多,随便讲一个就行。
梁山伯与祝英台
其实梁山伯是个同性恋,因为梁山伯一直都不知道祝英台是女的,所以他喜欢的是男版的祝英台,最后发现祝英台是女的,内心无法接受,悲愤不已,自杀殉情(这个观点是一次听江南春演讲听到的,不是我侮辱传统文化,勿喷)。
类似的例子还有很多,平时注意积累几个就行,比如武侠什么的都是可以聊的,你可以用慕容复打不过乔峰,来类比编程内力和编程招式的区别,总结编程需要多修炼内力等等,大家自己发挥吧,毕竟面试官也挺累的,给他们一点新奇的观点,也能让他们对你提起兴趣。
关于游戏
游戏就说自己会的就行啦,比如dota,LOL,三国杀,狼人杀神马的都可以哇,重点是能聊上就可以啦。
除了xx,你会其他编程语言吗
这个就是看眼界的问题了,建议大家都能掌握一点其他的来应对这个问题,比如我基本都是面前端的职位,到了终面,就可以说自己也会Python和运维开发,然后就说一下自己对于运维开发,Python的理解,其实也不会聊特别具体的技术问题,老大主要看你眼界够不够宽。
你还有什么问题吗
最好不要回答没啥问题了,一定要问几个,显得自己对这个工作是特别渴望的,比如下面几个:
•咱们部门具体采用的技术方案是什么
•我如果能来,是一个什么角色
•公司未来两到三年对技术部门的规划是什么
•我今天面试的结果大概是怎样的,有哪些需要继续提升的
如何谈薪酬
很多程序员,包括很久之前的我,都根本不会谈薪酬,或者谈一次就放弃,别人给多少就是多少。薪酬谈判其实还是蛮重要的,不仅仅是多的那些钱,更重要的因为薪酬谈判中你如何评价自己和谈判能力,会影响公司对你的看法。
一旦成为公司的一员,其实你很难改变别人的第一印象,涨薪也是按照百分比,仔细的谈一下薪酬,可以让未来的雇主觉得你是一个很有价值的员工,就像我当年进百度,不呵呵的说了一句对薪资没啥要求,结果应该就是最低的工资,囧。
其实薪酬谈判是受你自己的声望和能力影响的,想一下你如果你的Github主页有2000个星星,谈判的时候的主动权会非常大,所以薪酬谈判很大一部分因素是日常的积累,就像前面说的自我营销。
获得面试机会的类型
你获取工作方式的不同,也决定的你薪酬谈判时候的地位,通常来说是 公司主动找到你>内推>猎头>自己海投,所以大家尽量找关系内推。如果有一天你的博客下面收到以下面试邀请,那你的谈判主动权会大大提高,所以还是注意日常积累吧
不要先出价
谈判一个重要法则,就是先出价的会比较处于劣势,因为你没法加价了,却给了对方砍价的空间,但是要一个过于高的价格,又会让雇主直接放弃,我的策略是,先找到自己的定位,然后再谈判
找准自己的定位
比如你特别想去A公司,你现在公司是10K,
•先找几个BCDE公司练练手,薪酬谈判的时候直接要高价,比如20K
•如果对方想也没想就拒绝了,说明自己现在还不够格,下次面试要15试试
•如果对方犹豫或者答应了,下次面试你就可以要25K 以此类推
目的就是找准市场给自己的定价,心里有一个谱。
具体谈判
面试官和HR一定会问你,你的薪资要求.这个时候最好的回答就是拒绝回答,面试申请单要求写期望薪资,可以写根据薪酬体系面议,面试官问你,也给出相同的答复,如果再问,可以用几个问题缓解一下,比如
•给出预期之前,我愿意更了解一下贵公司和我的工作内容
•关于这个职位,你们一定有一个具体的预算,我可以告诉你们这个预算是不是符合我心理预期
•我现在没法给出一个具体的数字,如果一定要的话,大概是XX到XX(就必须说出一个区间了)
•我手里已经有月薪15K的offer了,诸如此类,提高自己谈判的地位
最后的建议
面试是个技术活,一定要弄清楚自己值多少钱,并且平时注意自己的积累,不仅仅是技术,各种软技能的修炼也是非常重要的。
以上都是我的一点心得,这些内容在上课的时候也会给学员们讲到,现在写出来分享给大家,能对你又帮助那是最好的了。祝大家都能拿到梦寐以求的offer。