技术人求职指南

技术人求职指南

《技术人求职指南》

《技术人求职指南》(一)你是否应该选择跳槽

每天都会有很多的人在跳槽,刚毕业几年技术人员跳槽很容易,薪水也容易让自己满意,因为公司愿意为你的潜力买单并培养你。但是随着年龄的增长,跳槽变得不那么容易,薪资也很难增长。你对薪资的期望会越来越高,而公司对你的要求也越来越高,如果你和应届生做的事情差不多,或者你能做的事情应届生都能做,公司花三万可以招聘三个应届生,为什么要花三万招聘你呢?在这种残酷的竞争之下,技术人员需要打造属于自己的技术壁垒,争取为公司创造更大价值,若你能为公司创造千万收益,那就可能拿百万收入。

大家都知道跳槽有利也有弊,所以需要非常谨慎的对待跳槽。跳得好可能更符合你未来的职业规划和能力提升,跳的不好则是会影响职业生涯,或者是到新公司浪费你一两年的时间,比如一直做之前做过的事情,熟悉新公司的环境、新业务、和新同事建立信任感等都需要时间。在原公司你最重要财富是建立的根基,这个根基包括同事对你的信任、你的团队、和你在整个公司的地位,这个跟进在新公司是需要花很长一段时间才能建立起来的。

什么情况应该跳槽?

大家跳槽的原因很多,比如薪资没有达到预期,在团队中没有上升空间,能力提升遇到了瓶颈,和老板相处不好。那么这些问题是应该跳槽的原因吗?我们逐一分析下。

薪资没有达到预期是否应该跳槽?我认为薪资不是跳槽的主要原因,薪水不高只是短期的,要带着发展的眼光看薪资,只要努力投资和提升自己,薪水不是问题。我刚毕业的时候在一家公司呆了三年,中间职位从开发晋升成了技术主管,期间工资只涨了两千。但是我在这段经历里做了很多技术积累和技术框架,这些技术积累为后续进大公司做了准备。带着发展的眼光看薪资的意思是,看自己未来五到十年的平均薪水,所以薪资最重要的是增长性,首先每年都应该有增长,其次增长幅度越来越高。
在现在团队没晋升机会是否应该选择跳槽?我认为没有机会就需要创造机会,机会这个东西的确有一半是靠运气,但还有一半是自己创造出来的。创造机会就是主动向老板申请做某件事情,并把这件事情做好,比如向老板建议将AI运用到业务中,让系统智能化支持业务;建议做一个框架,提升团队的开发效率和影响力,并能开拓一条招聘的渠道。如果你建议做某件事情就要有很强的责任心,并主动把这件事情做完美,而不仅仅是完成。
在现在的团队中遇到瓶颈了是否选择跳槽?有的同学说他每天都在做添加删除修改,get和set代码,自己的技术没有多少提升,是不是应该考虑跳槽做更有挑战的事情。首先有挑战的事情是可以靠自己想出来的,比如每天做添加删除修改,可以做一个自动生成添加删除修改功能的框架。我刚毕业的时候做了一个框架,子类继承父类就能自动拥有添加删除修改方法,开源地址是https://github.com/kiral/utils,后来被技术经理进行了一次优化,成为技术部使用的框架。另外在业务团队最重要的是如何快速支持业务,所以要多学习业务知识,学习如何做好业务架构,提高推动能力,这些都是不小的技术挑战。
和主管的理念不合是否应该跳槽?你和老板相处的时间可能比你和家人相处的时间都长,你和家人相处时间长了多少都会有些不愉快,偶尔和老板有不愉快的地方是很正常的。和老板相处也是管理学问的一种,叫向上管理,建议有时间可以学习下。
遇到问题不能解决是否应该跳槽?我一直认为在一个地方遇到的问题在另外一个地方也会遇到,问题永远都存在,只是出现的时间不一样,所以要主动解决问题,用跳槽的方式能绕过问题,但是不能解决问题。比如我有个朋友在一家公司做会计压力大换了家公司,到新公司后一个月又离职了。又或者和老板相处不好,那么换个地方可能也会和老板相处不好,所以要分析和老板相处不好的原因,然后想办法解决。解决问题的能力同样可以用于生活中,软技能是相通的,在工作中推动同事解决问题,在生活中推动物业解决问题。人总是对未知的事情抱有乐观态度,感觉跳槽之后一定比现在好,但是我身边很多同事的例子告诉我,跳槽和转岗不如意的例子太多了,跳槽后做边缘业务、老大对自己不满意、新老板想法太多没有重点等。通过跳槽绕过问题,还可能会引发一堆其他的问题,人总是能看到自己没有拥有的东西,而忽略了自己拥有的东西,往往这些东西才是最重要的,比如为了让自己暂时过得舒服点,放弃了一次解决问题提升自己的机会。
跳槽的注意事项

那么什么情况你才应该跳槽呢?通过自己的努力都不能解决问题,才开始考虑跳槽。如果你选择了跳槽,那么让我们一起看看跳槽的注意事项。

选择适合自己的行业。当你感兴趣的领域和你擅长的领域产生了交叉点,这个交叉点就是你的命运之域,就是你能充分发挥你能力的领域。如果没有交叉点,优先选择你感兴趣的领域,因为兴趣是源动力,能促使你快速在这个领域达到很高水平。
尽量选择同行业。行业经验是需要积累的,积累的时间越长在某个领域才越有可能成为专家,换领域则意味着重头开始学习新的业务知识,之前的积累也会遗忘。不过新的行业若能结合你之前的经验也是可以的,比如松下幸之助之前是做电灯的,后来做自行车,他就把电灯和自行车结合在一起创造了更有价值的自行车。
不要在同规模公司之间跳槽。因为这样对自己的帮助不是特别大,除非新公司潜力更大,能成长为更高规模的公司。
选择更有挑战的事情。业务越好流量越大的团队,挑战也就越大,机会也越多;挑战多就需要更多的人才,你才有上升的空间,并且还能让你的技术能力变得更加全面。
不要频繁跳槽。我记得我刚毕业的时候老师就和我说要在一家公司好好做,不要像袋鼠一样跳来跳去,很多公司都不招聘一年一跳或两年一跳的员工,因为招聘成本很高,如果招进来又走了,浪费了新公司很多时间和成本。如果跳槽到新公司马上就想走,就说明当初接受offer的时候没有想清楚或者没有沟通到位,所以面试通过之后一定要和新公司沟通下,自己到新公司主要负责做什么,并向谁汇报,再考虑下对这个工作是否满意,不能等进了公司之后才发现不满意要走。
总结

本文说明了什么情况下应该跳槽?首先通过自己的努力尝试解决自己的困惑,如果不能,其次再考虑跳槽,跳槽要选对行业,找到自己擅长并且感兴趣的领域。如果还是比较困惑,可以多个同事和朋友聊聊,毕竟兼听则明。

《技术人求职指南》(二)如何写好简历

前段时间有朋友问他投了简历为什么公司迟迟没有给他面试机会,还有朋友说他因为频繁跳槽在复试的时候被拒绝,但是他说他每次跳槽都是有进步的,不过我从他简历中只能看到频繁跳槽,并没有看到进步。这些问题都和所写的简历息息相关。

在工作中,我曾筛选过近千封简历,面试过300名左右的求职者,也推荐过上百封简历。这个过程中,我发现一些求职者的简历确实有写得不尽如人意的地方,有的简历写得太简单缺少必要信息,而有的简历又写得太多没有突出重点。

今天我将分四个方面和大家谈谈如何写好简历:首先,什么是简历;其次,为什么要写好简历;再次,简历的内容;最后,五点建议。

  1. 什么是简历

简历,通俗来说就是简明扼要的经历,也是突出自我亮点的工作或学习经历。所以写简历要把握两个重点:一是展示你的亮点,二是让面试官快速找到你的亮点,从而引导他如何面试你。但是,需要注意的是:写简历不是写你全部的经历,不能像讲故事那样把自己经历过的事情全部写上去,那这个是自传就不是简历了,如果你把做过的项目和系统全部写上去,面试官时间有限,可能就看了一个你做的普通项目就不再看下去了,最终导致错过了面试官了解你亮点的机会。

  1. 为什么要写好简历

我觉得写好简历至少有三个好处:一是更容易通过简历筛选关,这是整个面试的第一关;二是帮面试官节省大量筛选简历的时间,从而获得面试官的好感;三是为后面的面试做铺垫,能在面试时引导面试官进入你的技术领域提问。一般来说,通过简历,面试官即可大概了解你的能力和亮点,而好的简历能引导面试官朝着你擅长的领域提问,避免面试时把你带入了未知领域。因为技术人员不可能精通所有的技术点,如果面试官从你的简历中找不到亮点,那么面试官会问他觉得比较重要的知识点,这些知识点有可能恰好是你不擅长的而最终导致面试失败。

另外,简历写得好坏不仅会反映出你的表述能力,还能反映你做事的态度,因为找工作这么重要的事情你如果连简历都不愿意认真写,那以后进入公司工作了做事可能也不会非常认真。

面试的确是要靠运气,但好的简历产生的引导却能帮忙提升运气,所以一定要谨慎对待。

  1. 简历的内容

简历主要包括6个部分的内容,分别是基本信息、应聘信息、自我介绍、教育背景、工作经验和项目经验。

第一部分,基本信息
必填项有姓名、手机号、常用邮箱、目前所在地和毕业时间。其中,常用邮箱用于通知你面试进展,或给你发送笔试题。目前所在地则关系到后续是进行电话、视频还是现场面试。选填项有博客地址或GitHub、英语读写听能力等。如果你写了博客地址或GitHub就一定是要有亮点的,其亮点表现为几个方面:经常写博客说明你有技术热情;博客写的知识点比较深入能体现你的技术深度;经常提交代码到GitHub,还做过开源项目的commiter,说明你喜欢编码、实战能力不错。但如果你的博客只是写了几篇简单的技术笔记,写了不仅不会加分还可能会减分。

第二部分,应聘信息
应聘信息包括应聘的职位和期望工作地。应聘职位和期望工作地可以写多个。举个例子,腾飞应聘高级 Java 开发工程师/专家,期望工作地点上海或杭州。另外,应聘的职位和投递的职位要相符,比如对方招算法工程师,你的简历就应该写应聘算法工程师,而不应该写应聘其他职位。这些细节很重要。

第三部分,自我介绍
自我介绍是用事实介绍自己的亮点和擅长技能,是简历中最重要的部分。自我介绍要用事实描述,而不要用观点描述。那么什么是事实,什么是观点呢?比如,“我有10年Java开发经验”,这个就是事实;而“我崇尚团队合作,学习能力强”,这个就是观点。事实是可以证明的,而观点很难,所以用事实描述会比用观点描述更有说服力。举个用事实描述的例子:

腾飞有十年的Java开发经验,其中有两年的项目管理经验,三年的系统架构经验,带领过20人的团队支持公司营销业务线,负责部门核心平台架构优化和升级。腾飞有很好的技术热情,喜欢阅读源码,看过JDK框架包、并发包、Spring和Redis等框架的源码,爱好分享并经常发表技术文章,主导或参与了JarsLink开源项目。腾飞学习能力强,曾经在2周内完成iOS的学习,还开发了一个广告应用并上线。

第四部分,教育背景
教育背景包括学历、毕业院校和毕业时间。面试官需要用毕业时间计算你的工作年限,不同的工作年限要求不一样。1~3年,要求扎实的基础能力和学习能力,通过这些能力来看你未来的潜力,BAT需要高潜力的学生。3~5年,还要看项目经验、技术深度和解决问题的能力。5~10年,技术能力基本定型,主要看重你的综合能力,包括沟通能力、技术深度、技术广度和架构能力。

第五部分,工作经验
工作经验的内容包括公司名称、公司规模、公司类型、任职时间、职位、做的事情和取得的成绩,时间上应由近至远写起。其中,职位可以写软件开发工程师、高级开发工程师、架构师、技术主管和技术总监等;做的事情可以写负责某产品的架构升级,某系统的开发和设计工作等。举个例子:腾飞在某大型互联网公司任技术专家,负责过多个金融系统架构和建设,推动融资平台架构演进,组织过几十人的项目组完成双11大促支持,并获得业务方好评。

第六部分,项目经验
项目经验部分是用事实描述法写出你在这个项目中做的事情。由近至远写,但注意不要把所有项目经验都写上,主要是写亮点项目,或最能体现你技术能力的项目。举个例子:我在某项目中担任项目架构师和PM工作,负责该项目的架构,主系分和项目计划推进工作,推动5支团队60名人员开发完成该项目。我还在某项目中承担核心开发工作,负责用户管理模块的设计和开发工作,主要运用了Redis和分布式Session等技术。

     如何在简历中通过项目经验体现进步?假如你换了三次工作,在这三家公司的职位依次是工程师、高级工程师、技术主管或技术专家等,简历上就可以写“两年时间从开发工程师晋升为高级工程师和技术主管”,面试官从你这段经历就可以看出你一定很不错并很有潜力。 
  1. 五点建议

简历的长度一到两页最合适。一般我推荐两页。若页数太多就要思考下简历是不是没有突出重点,是否按照前面说的只展示出自己最擅长的技艺。
不要在简历中写之前的薪资和期望薪水。写期望薪水有百害而无一利。首先,假如面试官发现你的期望薪水比他的还高,那面试官可能就会用更高的要求来面试你,或者由于这个职位给不到这么高的期望薪水,而导致起初简历筛选就没通过。其次,薪水的计算很复杂,期望薪水是税前还是税后呢?是否包含年终奖呢?是否包含其他个人所得奖金呢?所以我建议还是根据面试状况最后再谈期望薪水。
不要频繁跳槽。若求职者每年换一次工作,面试官就会认为他的职业规划想不清楚,并且忠诚度偏低,招进来后可能很快又会跳槽,技术积累也不够。其实,这样的简历在起初也很难通过筛选的。
慎用精通这样的形容词。形容技术能力可以用“使用、掌握、熟练和精通”,很多求职者的简历上写自己“精通Java”,其实一部分求职者只是用过JDK,连源码都没看过,这种仅仅停留在使用阶段,如果写了“精通”,那面试官肯定会问JDK源码和实现原理等问题,若回答不出来很可能会直接导致面试的失败。精通Java是件非常难的事情,但是Java里有很多小的知识点,比如垃圾回收、类加载、多线程和网络编程等,你可以选择某个知识点深入学习,在这些知识点上写“精通”,比如“精通类加载,并使用类加载技术开发了一个模块化框架”。
找一个好的简历模板。这能突出你做事情的专业度。建议简历排版简洁,用统一的字体,内容统一字体大小,每一段前面空两格,段与段之间空一行。
总结

最后我们总结下,找工作需要认认真真的写好简历,把它当做面试的第一关,简历要突出亮点,重点写自己的亮点技术和重点项目。

《技术人求职指南》(三) 掌握方法论

最近面试了几名同学,面试结果都不是很理想,他们自己也能感觉出来,所以和我说“因为最近在准备论文,所以没怎么准备面试”,“最近一直在上课,没有时间准备面试”。像这种情况我觉得真的非常可惜,虽说面试有时是看运气的,但面试前还是一定要准备好再投简历,并格外珍惜每次面试的机会,否则有时候你以为你错过的只是一次面试机会,但是过了几年之后你可能会发现你错过了一辈子。

如果我们把面试上理想的公司比喻为在通关一场游戏的话,那么准备面试阶段其实就是在找攻略并加练习的阶段。

那么我们要从哪几个方面来准备面试呢?我觉得一共要准备以下六个方面:温习基础知识、多刷题、准备自我介绍、总结技术亮点、梳理职业规划、了解目标公司和职位。

第一,温习基础知识

面试不同的公司,各面试官提的问题肯定不同,但是基础技术是每个面试官通常都会问的,所以面试前务必要好好复习基础知识。基础技术问题有常用算法、SQL、数据库事务、事务隔离级别、TCP和HTTP协议、线程和进程、操作系统等。比如,如果你应聘Java程序员,则对应的基础技术知识就有垃圾回收机制、JDK集合类的实现原理、内存模型、并发编程、运行时数据区和类加载机制等,这些Java的基础知识点就是Java的特点。

第二,多刷题

面试官会从海量的技术题库中抽几道技术题面试你,网上有各大公司的技术面试题,你自己可以全部过一遍,做到心里有数。如果你都会做了,面试的时候其实会增加很多自信。

当然好的面试官会考察你擅长的技术,看看你对技术深度的掌握程度。但是也有面试官会问他自己擅长的技术,这样就需要你有一定的技术宽度才能应对各种问题,所以你需要尽力去准备,准备得越充分,面试时就会越从容,最后面试成功的概率也就会越大。

除此之外,建议你还要刷一些测试思维能力的题目,比如谷歌面试时的一道题目,有一栋100层高的大楼,给你两个完全相同的玻璃球,假设从某一层开始,丢下玻璃球会摔碎,那么怎么利用手中的两个球用最少次数找到这个临界层的层数呢?最简单的做法是拿着球一层一层地尝试。稍微好一点的做法是用二分法,先去50层测试,这样可以直接排除一半的楼层,如果没有摔碎,再去75层测试。更优的做法是,先拿一个球去10层试试,然后每次增加10层,用一个球缩小范围,再用另外一个球一层层地试,这样最多20次就可以测试出目标楼层。

第三,准备自我介绍

大部分面试官一般都会让应聘者首先做个自我介绍以描述自己的基本情况,其次是描述自己的技术亮点,做过的亮点项目或产品。如果没有技术亮点或做过亮点项目,可以讲下在某个项目中解决的难点,这里有个技巧就是回忆下在解决哪个事情上花费的时间最长就是最有挑战的点,另外学习能力强也是亮点,比如快速搭建出Redis。自我介绍回合是应聘者最主动的一个回合,因为在这个回合主要是应聘者说,面试官听,所以我认为这个回合非常重要,如果介绍得非常好,就可以让面试官对你有好感,我建议在这部分准备一个五分钟时长的自我介绍。但是在面试中很多同学的自我介绍一分钟都不到,其实工作经验较少的,也可以准备学习经验,比如如何快速学习新技术或学习英语。

举个例子,如果让我去做自我介绍我会这么说:“我叫方腾飞,方向的方,经济腾飞的腾飞,目前在某大型互联网公司负责带团队建设数据和风险域,以及团队架构工作。我有10年以上的Java开发经验,超过3年的系统架构,擅长业务架构,负责过十几个系统架构设计工作。有很强的推动能力,组织过数十人的团队完成过大团队双11稳定性工作,目前也在推动团队进行单元化建设工作。有较强的技术影响力,12年利用业余时间创办了并发编程网ifeve.com,目前已经是国内知名的技术网站,世界排名最高2W左右,日访问量数万。擅长和爱好写作,从05年到现在已经写了数百篇文章,文章曾多次在InfoQ和程序员杂志发表,是畅销书《Java并发编程的艺术》的作者之一。”如果面试官还有兴趣,接下来我会再介绍下我做过的最有技术含量的项目和最能体现我架构能力的项目。你按照这个思路讲下去才算是一个比较完善的自我介绍。

第四,总结技术亮点

技术人员平时做的项目很多,到面试之前必须静下心来总结一下,自己做过的项目和技术亮点。举个例子,如果让我说亮点技术产品,我会说“我开发过一个Java动态模块框架JarsLink,是阿里巴巴的开源项目,用于提高部门后台开发效率,目前部门的后台开发、数据采集和指标计算都会使用这个框架。”如果面试官对这个框架感兴趣,我会继续展开,为什么要做这个框架?它解决了什么问题?这个框架有哪些挑战?我是如何解决这些挑战的?如果让我说最能体现我架构能力的项目,我会讲小微融资架构,会讲一下业务面临的痛点以及针对这些痛点我所想到的解决方案和架构演进方向。

整理好亮点之后,就可以把最优秀的几个亮点放在自我介绍里。

第五,梳理职业规划

每个人都应该好好梳理下自己的技术规划,如果不知道怎么梳理职业规划,可以参考下别人的职业规划。比如,我的职业规划是逐步形成由点到线,线到面,面到体的技术架构能力。从能架构一个系统,到某个业务线的架构,再到部门架构,最后能够驾驭某个生态体系的架构。一个系统就是一个点,几个系统组成线,几十个系统组成一个矩阵就是一个面,数不清的系统组成一个体。如果从职位上来看规划的话,是从开发工程师、到高级开发工程师、再到技术专家、然后到架构师、技术主管、技术总监和CTO。

第六,了解目标公司和职位

你可以通过目标公司的官方网址、宣传资料和公司高管讲话中了解你应聘的公司信息和应聘的职位,每个公司的价值观不一样,对人的要求也不一样,知道了这家公司的价值观,你就可以有针对性地准备面试,并且还可以让HR感觉你来面试这家公司是做过充分准备的。熟悉应聘职位的描述和职位要求,能够让你知道准备哪些技术点,缩小准备面试的范围。

总结

准备面试并不是临时抱佛脚就能全部完成的,而是要系统化地学习、在平时的工作中做积累,量变才能引起质变,面试进更好的公司只是一个水到渠成的过程,能力到了自然就能进更好的公司。多准备一点,胜算就多一分!

《技术人求职指南》(四) 实战练习

上一篇讲了面试的一个基本攻略,这一篇主要讲实战。打游戏是通过打怪提升经验来通关的,而面试是通过刻意练习和实战提升经验拿到offer的。在参加面试之前,主要有四个方面需要准备和学习:首先是表达能力,其次是总结能力,然后是借力,最后就是实战。另外,还要学会站在面试官角度来反向思考面试问题。

练习表达能力

整个面试过程主要是你在和面试官说,所以表达能力非常重要,也许你知道很多技术问题的答案,但是你并不一定能很好的表达出来,甚至可能在表达的时候忘记了答案。我之前参加公司的晋升答辩,我把整个答辩过程中要说的每一句话都写了下来,变成了一篇演讲稿并练习了很多次,但是实际脱稿表达的过程中仍然有一些内容没有说出来。

打的怪越多,经验增长越多。表达能力是需要反复练习的,练习的越多表达越好,所以为了更好地应聘,你需要针对一些技术问题做自问自答的练习,比如对着镜子自己问自己问题再讲给自己听,并进行录音,然后反复地听听自己的回答,看看自己有哪些不足,思考下如何回答能更好。我平时上下班时,会一边走路一边思考一些问题,并讲出来给自己听,或者在中午吃饭的时候主动讲给同事听,通过这些方式就可以练习表达能力。

练习总结能力

面试的时间其实不长,一般是15到30分钟左右,所以回答问题一定要做到言简意赅,把答案用精简的语言表达出来,简单来说就是你能否用一句话回答面试官的问题,然后再用三句话展开说明下。很多应聘者回答一个问题能用5分钟左右,导致面试官不得不主动打断,以避免进一步发散。举个例子,面试官问:“Spring AOP的实现原理是什么?”你可以首先用一句话回答,“Spring AOP是通过JDK的动态代理和CGLIB框架实现的”;然后进一步展开,讲述JDK动态代理和CGLIB的实现原理,“JDK动态代理的实现原理是在运行期目标类加载后,为接口动态生成代理类,将切面植入到代理类中;CGLIB的实现原理是在运行期动态生成一个要代理类的子类,将切面逻辑加入到子类中,子类重写要代理的类的所有不是final的方法。”

那么如何练习总结能力呢?首先把一个问题的答案写全,能写多少写多少,也可以在网上搜索下答案,看看别人是如何回答的,整理成一篇比较完善的文章,然后提炼这个文章里你觉得最重要的点,把这篇文章变得越短越好,从500字的答案缩短成50个字。

学会借力

有的玩家打怪速度快、经验增长更快,他们的投入产出比更高,我们可以向他们取经,问问升级心得。在你的身边一定有这样优秀的同事,他们能很快学到一个技术的本质,并且能很准确地回答某个问题,所以平时在网上看到一些经典面试题,可以问问他们这个问题的答案,并且和他们一起探讨下,观察他们的解题思路是什么,是如何思考和回答一个问题的。比如你可以利用和同事一起去吃饭的路上问他一些问题,也可以把问题抛到技术群里让大家一起探讨下。

参与实战

打过游戏的人都知道,BOSS都有固定的攻击套路,也就是有规律可循,掌握了这个规律就能很好地击败BOSS完成通关。掌握面试的规律是需要你亲自去面试几家公司才能体会到,所以你需要尽量去面试几家公司,但是面试和打怪不一样,打怪失败了可以重来,面试失败了就不一定能重来了。这里有一个小技巧,如果你的理想公司是A公司,那么你可以先去面试同级别的B、C和D公司。通过实际的面试,一方面增长面试经验,另一方面看到自己的不足,这可以为面试成功目标公司增加更多的胜算。

在面试B、C和D几家公司之后,你也许会面试失败,但我觉得面对失败时需要的不是安慰而是看清自己,正如最近的一部电视剧《北京女子图鉴》中说的“向内认知、向外成长”!向内,认清自己,看问题才会更透彻;向外,经历了事情才会成长。我之前面试阿里时也经历过一次失败,通过那次失败我认清了自己的技术只是停留在使用技术层面,所以我又好好准备了1个月再次面试就通过。我们很难从成功中总结改进经验,只有失败的反思才是最深刻的,也是提升等级最快的。面试失败之后无论是否是面试官的问题,你都应该首先从自己身上找原因,这样才能提高自己,比如某个问题面试官没有说清楚问题,导致你问题没回答好,虽然面试官有一定的责任,但是你自己没有和面试官确认问题,也有一定的责任,所以只有从自身找原因才能提升自己的经验。

我每次面试应聘者之前,会先看看他之前的面试记录,然后找一些他之前没有回答上来的题目继续问题,通过他是否能回答上之前问过的问题,来判断他是否有技术热情,有技术热情的应聘者一定拥有很强的求知欲望,不会放过任何一个技术题目。所以,我建议当你面试回来之后,要回忆和整理下面试的题目,哪些题目你回答对了,哪些题目没有回答上来,为什么没有回答上来,没有回答上来的题目要继续找找答案。

站在面试官的角度思考

作为应聘者可以站在面试官角度来思考如何应聘,如果你是某个公司的面试官你会招聘什么样的人才,你会出哪些问题来考核应聘者,应聘者怎么回答才算合格。你可以在网上找一些面试官写的文章;你最好能在公司也承担面试官的职责,面试一些其他的应聘者;如果没有机会做面试官,你也可以像面试官一样问身边同事问题,观察他们是如何回答问题,思考你是否对他们的回答满意,若不满意,原因是什么。

总结

能力是需要练习出来的,从面试的理论到实战一定是要通过正确地、并有针对性地练习,才能把知识转化成自己的能力。能力到了自然就能进入更好的公司。总之,多准备一点,胜算就多一分!

《技术人求职指南》(五)如何高效面试

我推荐过很多应聘者,面试完之后我会得到很多反馈,比如”面试官问的问题比较多,有些问题回答上来了有些没有,不知道自己是否能通过”,“技术面试的时候,有些技术点问的很细致,自己没有回答上来”,“HR很在乎我频繁跳槽,所以终面没有通过”。这些反馈都是面试中遇到的问题,所以今天和大家一起聊聊技术人员如何正确地进行面试,从而提高面试通过率。

整个面试会分为简历评估、技术面试和HR面试三部分。前面文章已说明,个人简历很重要,优秀的简历就能通过简历评估面试,这里就不再赘述。下面则主要讲述技术面试和HR面试。

技术面试
需要首先说明的是,技术面试可能是电话面试也可能是现场面试,这取决于你和面试官是否在同一个城市。如果是电话面试,一定要在通话质量非常好的情况下进行面试,否则要和面试官改约时间。如果是现场面试,最好带上纸和笔,提前画一下自己做的系统架构,这样能更直观地表达自己做的事情。

技术面试主要包括以下四个方面:

  1. 自我介绍

大多数面试官一般都会让应聘者首先做个自我介绍,自我介绍回合是应聘者最主动的一个回合,因为在这个回合主要是应聘者说面试官听,所以我认为这个回合非常重要,如果介绍得非常好,不仅可以让面试官对你有好感,还可以为后面面试官提问埋伏笔。那么,什么叫为提问埋伏笔?就是在自我介绍里强调你擅长的技术点,引导面试官考察你最擅长的技术点。对于面试官而言,还可以通过自我介绍考察你的沟通能力,你是否能用言简意赅的表达方式描述清楚自己做过的事情。

  1. 介绍做过的产品

介绍产品时面试官会考察应聘者的主动性和系统化思考能力。很多人都是做产品的一个功能或一个模块,但是在这个环节你需要把整个产品搞清楚并能够讲清楚这个产品是什么,为什么做这个产品,这个产品有哪些功能,做这个产品时的技术挑战有哪些,以及你是如何解决这些挑战的。比如,“我现在在公司主要负责做小微融资,小微融资主要为经营者提供融资服务,面临的挑战是场景多、用户广、用户个性化诉求多,我的解决方案是系统实现可配置化和平台化。可配置化是指通过配置对外提供服务,而不是通过编码;而平台化会引入第三方机构帮忙一起解决用户的诉求。”

  1. 回答技术问题

回答面试官的问题要做到一听、二问、三思、四答。

一听,指要听清楚问题。会听也是沟通能力的一种,不仅要听清楚问题,还要学会边听边猜,判断面试官考察的点。
二问,指通过询问确认问题。有些问题可能面试官问的比较抽象,你需要把这个问题聚焦,并向面试官确认“你问的是XXX这个问题吗?”
三思,指思考问题。确认问题后,应先在脑海里思考下这个问题,最好不要拿到问题就开始讲答案,很多应聘者说了半天,但是都没说到点子上,或者说了十几句,只有一句说到了点子上,浪费了彼此大量的时间。如果面试官问了某个技术点你不知道,一定要快速回答说这个问题你不清楚,以便于面试官继续提新的问题,但是要把这个问题记下来,因为也可能后续面试还会问。我就喜欢问应聘者在之前面试中没回答上来的问题,看看候选人是否有技术热情和快速学习的能力。
四答,指最后清楚地回答问题。回答的时候要表达清楚,注意语速和音量,要让面试官听清楚你的答案。如果是当面面试,还可以配合一些手势,这样可以加深面试官对答案的印象。如果有黑板,也可以在黑板上画一下架构图,便于面试官理解。
举个例子,有个面试官问了一个JVM问题,怎么判断FULL GC是否正常?首先思考下何为不正常,第一个点GC是用于回收内存的,第二个点GC不能干扰应用程序。所以从这两点出发,那么可以得出结论,频繁的FULL GC 但是内存又没有回收回来,内存曲线成稳定上升趋势,很可能是内存泄漏了,这样的GC是不正常;因为FULL GC导致应用响应延时或卡顿,甚至OOM也是不正常的。

  1. 如何回答开放性问题

面试官可能会问一些开放性的问题来看看应聘者的思维能力,比如如何建设高可用系统?那么面对这类问题有哪些比较常用的应对套路呢?因为开放性问题是没有标准答案的,所以你需要尽可能地回答这个问题,也可以在回答的过程中和面试官一起探讨,想到多少说多少。因此,你可以这么回答“高可用系统”这个问题:高可用系统架构有十几种设计原则,涉及到的点非常多,比如减少单点、减少依赖、应用做到无状态、隔离性、接口限流等。然后你再展开进行描述,减少单点需要减少全链路上的单点,比如应用服务器、网络设备、数据库和机房等资源的单点;减少依赖,如果A依赖B,B依赖C,因为有了中间者出问题的概率就会增加,所以高可用中A最好直接依赖B,甚至不要依赖B,直接依赖缓存或者数据库;接口限流,系统每个接口能承担的最大流量是有限的,平时我们系统不会出问题,如果某个接口的流量突然猛增十倍,很有可能直接打垮系统,所以每个接口都可以通过压测测试下,评估下这个接口能够承担的最大QPS或TPS是多少,系统需要承受峰值流量,如果不能承受峰值流量就需要进行扩容。

HR面试
HR面试主要考察一个人的价值观和潜力。回答这些问题最重要的一点是诚信,应实事求是地说,如果编故事资深的HR能看出来,就算看不出来公司后续也会做背景调查。进入这一关请想清楚几个问题:

你为什么想加入这家公司?这家公司有哪些点吸引你?有哪些愿望是能在这家公司实现的?比如可以回答说想做业界领先的中间件,做一款亿级用户使用的产品等。回答这个问题一定要实事求是,不要编,诚信很重要。不建议回答因为薪水跳槽,因为薪水跳槽我觉得是自己没想清楚,假如另外一家公司的工资再多给你几千块钱你会去吗?
你为什么离开上一家公司?可以从上进的角度来回答这个问题,比如说在上家公司太安逸了,还是希望做一些更有挑战的事情,趁年轻多拼搏。
你为什么会频繁跳槽?一年一次的跳槽我认为就是频繁跳槽,频繁跳槽其实是对自己职业生涯没有想清楚,也是一种不成熟的表现,所以应首先承认自己频繁跳槽是不对的,是过去没想清楚自己的职业规划,后面打算在一家公司好好干下去,逐渐提升自己的能力和职位。
你的职业规划是什么?职业规划主要是看自己后续往哪个方向发展,并且想做到什么程度,通过什么样的学习计划逐渐完成职业规划。比如,你可以这样回答,“我是一位偏向应用的开发,对金融业务很感兴趣,后续希望技术能力首先达到一定程度,并在金融领域能成长为一名优秀的业务架构师,或金融领域的技术专家,最近在看领域模型相关的书。”
当你遇到瓶颈的时候你怎么办?你可以这样回答,“首先我会进行一场深刻的反思,并找些书来看看,从书中找答案,同时也会找更优秀的同事或老板沟通下,看看他们是如何提升自己克服瓶颈的。”
这些年你每年的成长是什么?怎么能体现你的进步?那么如何体现进步呢?你以前需要依靠同事才能解决问题,现在可以独立负责一个系统。以前写代码比较草率,现在非常认真,写完代码之后会反复看几遍,并完善单元测试,保证代码高质量上线。以前做事情是想到哪儿做到哪儿,现在是先想清楚这件事情分哪几个步骤,然后再去做。以前是一个人独立完成任务,现在能带团队完成更大的任务。以前不够主动,每次都是等活干,现在是自己规划事情主动完成。以上说到的这些点都是进步的体现。
当你和同事之间产生分歧时你会怎么办?和同事共事,要做到引导而不是指导,引导同事说出他自己的看法,比如有个点他没有考虑到,可以通过反问的方式询问如果遇到这种情况他会如何解决。
总结
面试是否能成功还需要一定的运气,尽人事看天命!区分能控制的和不能控制的,把注意力集中在能控制的事情,尽全力准备面试和参加面试,最后静待佳音!

《技术人求职指南》(六)如何选择Offer

当大家阅读这篇文章的时候,也许大家已经拿到了很多offer,在这里首先要恭喜大家。但是很多应聘者拿到了offer之后还是有很多疑问,比如“我拿到了两家公司的offer,哪一家公司更好,我该去哪一家公司”,“某家公司给了我口头offer,我把另一家公司的offer拒了”,“如果A公司比B公司大,但是B公司给的薪水多,我该如何选择呢”,“某某公司的offer我是否应该拒绝”。

科学决策步骤
大家困惑的地方主要是如何选择offer? 选择offer是一个决策过程,而一个决策可以有以下几个步骤:

让决策的选项变多。当我们在两个选项中做选择很纠结时,很可能是这两个选项都不好,或者两个选项之间没有谁有明显的优势,如果出现这种情况,可以增加更多的选项,比如再去拿更好的offer。
评估每个选项的优劣。可以分别列出两个offer的优缺点,并从行业前景、公司前景、部门前景和未来的老板几个角度分析、评估下,哪个offer的得分更高选哪个。
从长远的角度选择其中一个。一个offer的好坏很难评断,因为自己掌握的信息量有限,所以判断是有一定的局限性,这种情况可以询问前主管、资深的同事或者行业中的大牛,如果是他们会如何选择这几个offer?以及他们做出这个选择的理由是什么?总之,掌握的信息越多,选择会越正确。
对未来的不确定性要有准备。如果拿了这个offer,有些不如意的地方自己应该怎么应对?在这个新公司完全不能适应怎么办?这个问题你不得不考虑。因为人无远虑必有近忧,做任何事情都要做到未雨绸缪。
三个常见纠结点
大家选择offer最纠结的点有三个:第一是薪资问题,第二是如何选择公司,第三是如何选择部门和团队。

1:薪资问题
大部分人可能最关心薪资问题,有应聘者对我说“我能力比他强,月薪比他低一千不能接受”,但是我觉得眼前的薪资不是最需要关心的问题,要关心薪资的可持续增长,看薪资要看差距是否是在数量级间的,如果只是几千块钱的差距这个不算差距,因为现在的工资并不代表你未来的工资,成长性好的员工未来的收益差距是在数量级的,比如A同学第一年月薪比B同学高一千,但是进入某公司后薪水几年不涨,或者工资的涨幅非常低,几年后同学B的薪水比同学A的年薪高上百万都是可能的。只要选对公司、跟对人再加上自己的努力,总有一天你的薪资会和能力对等。

另外看薪水不能只看月薪,收到offer时,首先要明白薪水的组成,比如月薪、年终奖、期权、商业保险、补贴等。再综合比较年薪和福利。张三月薪比李四低几千,但是张三年薪和福利加在一起可能比李四高好几倍都是有可能的。福利上主要关注以下几点:

首先是股票和期权。股票和期权主要是要看最终拿到手上是多少钱。
其次是公积金。等你买房或退休的时候可以取出来,这个我认为可以算在薪水里。国家规定公司和个人都要缴纳工资的12%作为住房公积金,但是有些企业缴纳的公积金只有薪水的8%,比如某企业的工资等于基本工资+岗位工资+绩效工资,基本工资只有65%,然后按照基本工资缴纳12%的公积金,这样就比同样月薪的人低了4%的收入。
最后是补贴。不同的公司补贴不一样,大致有住房补贴、异地补贴、汽油补贴、餐补等。可以把补贴算在工资中。
还有一点建议是不要去询问别人的薪资,也不要相信别人说的薪资。如果你薪水比别人高你会很高兴,但是如果你发现薪资比别人低,你会很郁闷,不仅会影响你选择公司的判断,还会影响你工作的心情,不比较就没有伤害。短期看有些人能力比你差,但薪水比你高是很正常的事情,谈薪水也有运气的成分。但是要把眼光放长远,看到薪水未来的增长性。

2:如何选择公司?
公司在找员工时,倾向于选择有潜力的,其实应聘者选择公司也是一样的,要找有潜力的公司。 所以选择好公司是第一要点,其次是跟对人和选对部门。那么哪些行业和公司是有前景、值得选择的呢?

我们通过一篇文章来分析问题的答案,最近有一篇文章讲的是中国未上市的独角兽公司,文章里写第一梯队市值超过500亿美金,有蚂蚁金服、小米和滴滴;第二梯队市值超过100亿美金,有美团、今日头条、快手、宁德、大疆、陆金所、菜鸟和京东金融。这些公司都或多或少都有某些特质才能成为独角兽,第一个是在某个领域市场占有率高,公司的产品对用户形成了较高的粘性,用户很难流失,若能在一个领域扎下根掌握入口,那么向其他领域扩展会更加容易;第二个是已经树立壁垒,这个壁垒可以是技术壁垒,也可以是品牌壁垒,其他公司很难复制;第三个是已经形成了规模效应,边际成本递减。可以优先考虑这些有前景的行业,其次是公司。

有人拿到offer后问我大公司会不会流程复杂、加班多、官僚味浓呢?其实每个公司都有自己的问题,你听说A公司有各种问题,但是其他公司也有各种各样的问题,其实有些问题根本影响不到你,所以关心你在乎的问题,忽略其他的。

3:如何选择部门或团队?
最简单就是看这家公司哪些部门的绩效好,绩效好的部门增长性好;另外,不仅要看往年绩效,还要判断未来的绩效趋势。最盈利的部门不一定最好,还是要看增长性,增长性不好的部门就缺少机会,什么叫缺少机会呢?就是可能你几年都会做同一类事,或者业务不断调整,你的组织关系被调来调去,这种情况就比较难实现借事修人。有的人可能会说没有机会我可以创造机会,这个的确可以,但是如果你在前景好的部门,创造的机会也许会更好。

还有人说某部门牛人多,我是否应该选择这个部门?其实牛人多和你关系并不大,因为你们工作中不一定有交集,他也不会来带你给你任何帮助。和你有关系的是你的直接上司和团队内的同事。

注意事项
还有几个注意事项要和大家分享下:第一,不要相信口头offer。口头offer是具有不确定因素的,很有可能到时候就不发了,我一个朋友拿到一家公司的口头offer后就没再联系他了,中间问过几次都说还在集团审批中,这个审批也可能会出现审批不通过情况。第二,不要轻易拒绝offer。综合比较所有offer后,选择一个offer再拒绝其他offer,每个offer都是谈薪水的资本,同样不要轻易接受offer,想清楚再接受。

总结
最后总结一下,选择offer最重要的是选择有前景的行业和公司,其次是选对部门并跟对主管,最后才是薪资。祝大家都能早日拿到好offer!

原创文章,转载请注明: 转载自并发编程网 – ifeve.com本文链接地址: 《技术人求职指南》(六)如何选择Offer

相关

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值