程序员找工作:知识、技能、经历梳理与求职目标的确立
作者:admin | 分类:招聘求职 | 浏览:86 | 时间:2024-09-02 14:02:37特别说明:
电视剧《花千骨》中,白子画为何收花千骨为徒?
《琅琊榜》中梅长苏为何选择靖王,抛弃太子和豫王?
《泰坦尼克号》中杰克和露丝为何一见钟情?
基特王子为何选择灰姑娘?
乍一看,这些问题似乎与程序员求职无关,但实际上,这些原则是普遍适用的。想想看,为什么你投十份简历,只有一两家公司联系你?或者为什么你投的每份简历都能获得一次面试机会?
最根本的原因是,一方求索心切,另一方提出的重点令其心动不已,求索者心中有数,回应者则将求索者想要的一面展现出来,这便是奥秘所在。
程序员在找工作的时候,一开始有三件事对于能否获得面试机会至关重要:
知识、技能和经验复习
设立求职目标
友情提示:如果不想看长文,可以:跳转至第3部分查看简历优化的实际操作;跳转至第4部分查看如何提高简历投递成功率。
【01】知识、技能和经验回顾
知识、技能、经验,都是一个人所能体现的商业价值。企业招一个人,一定是因为这个人能以某种方式帮助企业实现价值。而且,一般情况下,个人的贡献必须大于企业为这个人承担的各种成本(工资、社保、公积金、个人所得税等),否则,你就是没用的。
所以作为程序员,一定要清楚自己的价值,个人的商业价值可以通过以下五个因素来分析:
当我们在招聘网站上填写简历的时候,前三个要素包含的内容最多。
招聘网站上的简历模板大部分都是按照知识、技能、教育经历、工作经历、项目经历来设计的,随便填一下就OK了。然后大家的简历看起来就比较千篇一律,大家都长得一模一样,然后...
我们已经偏离主题了,让我们回到知识、技能和经验的话题上。
一开始不建议直接在招聘网站上填写简历,强烈建议先用Word或者把你认为自己拥有的有价值的知识、技能、经验,无论大小,都整理、记录下来,这是我们后续优化简历的基础,也是确立求职目标的基础。
1.1 知识和技能
有必要讲一下知识和技能的区别,很多人经常混淆这两个概念。
知识可以通过语言、文字、语音、视频等方式来传授,比如C++、Java、数学、物理、Qt、设计模式、网络协议等都是知识。
技能就是运用知识和经验的能力,比如用Qt开发桌面客户端软件就是一门技能,用Java和界面库开发APP也是一门技能。
技能有许多不同的定义,我们来看看其中几种。
《心理学词典》对技能的定义是:“个体运用现有的知识和经验,通过实践所形成的智力活动和身体动作的复杂系统”。
百度百科对其的解释是:掌握和运用专门技能的能力。
皮连生的定义:技能是经过实践,按照一定的规则或操作程序,成功地完成某项智力任务或身体协调任务的能力。
有了以上关于知识和技能的概念,就比较容易理解知识和技能的区别和联系了。我的知识大致如下:
C、C++、Java、Scala、Qt、MFC、WTL、QML、Qt Quick、HTML、CSS、Lua、MySQL、XML、Json、Win32 SDK、Node.js、VLC、-C、HTTP、P2P、RTMP、RTSP、HLS、P2P、UML、软件开发模型(瀑布、迭代、Scrum等)、项目管理知识、团队管理知识、自媒体运营(我运营订阅号“程序视野”)。
知识一段时间不用就会褪色,就会被扔掉,所以在你的知识图谱里,一定有一些你经常用到的,现在最熟悉的。比如我最熟悉的 C、C++ 和 Qt。
我们需要把最熟悉的三类知识标出来,因为它们以后会派上用场。
技能是知识的应用,所以一般来说,只要你有什么知识,你都可以找到一套技能。比如我可能有以下技能:
好了,现在我们对知识和技能的认识应该比较清楚了,应该能够理清自己掌握了哪些知识和技能了。值得一提的是,在讲解技能的时候,经常会把知识列出来。
需要注意的是,每个人都有很多知识和技能,你必须找出自己擅长的2到3种知识和2到3种技能,这会是你求职的重要参考,人只有用自己最擅长的技能去做事,才能取得最好的结果。
1.2 经验
知识和技能可以帮助我们创造商业价值,积累知识和技能的过程本身就是有价值的,积累知识和技能的过程就是经验。
著名电影《贫民窟的百万富翁》讲述了在孟买贫民窟长大的少年贾马尔参加一档名为“谁想成为百万富翁”的节目,克服重重障碍,最终赢得2000万卢布的大奖和心爱的女孩的故事。
这个故事的神奇之处在于,贾马尔回答了诸如“《do》的作词人是谁”、“1973年动作片《囚禁》的主演是谁”、“本世纪历史上得分最多的板球运动员是谁”、“左轮手枪是谁发明的”、“100美元钞票上印的是哪位美国总统的肖像”等问题,连博士级专家都对这些问题不确定!这与他的身份完全不符,引起了主持人的怀疑,主持人认为他在作弊。节目暂停后,警方接到通知,以诈骗罪逮捕了这名可怜的男孩。
为什么贾马尔能做到?随着问答节目的进行,我们发现贾马尔从来没有学过与这些问题相关的知识,但他独特的贫民窟生活却恰好遇到了这些问题。这就是经验的价值。
程序员的(学习、工作、项目)经历也有非常独特的价值,往往在求职过程中起到非常重要的作用。比如,如果你做过视频项目,那么在找做类似视频项目的公司时,你会很容易脱颖而出;如果你做过图像处理相关的项目,那么进入美图秀秀这样的公司也会相对容易……
在回顾自己的项目经历时,一定要思考清楚并记录关于自己的部分,并从以下三点探索自己的亮点:
我的两个项目经历如下:
【1.网络视频卡顿优化】
项目描述:
智能机顶盒的视频聚合客户端在高峰时段或播放热门视频时经常会出现卡顿的情况,针对该问题我们进行了优化,为用户提供流畅的观看体验。
成就:
播放质量得到了极大改善,有关延迟的投诉减少了 80%。
职责:
作为项目经理,负责项目范围定义、进度跟踪和控制
作为系统设计人员,选择技术方案,设计加速和优化算法,设计系统结构。
作为核心开发人员,负责客户端http基础类库以及服务端http(基于Qt)的开发。
【2.智能电视机顶盒研发】
项目描述:
面向电信运营商及零售市场的互联网电视机顶盒,具有视频导航、搜索、点播、直播、语音搜索、游戏、卡拉OK、资讯、教育等功能。
环境:
4.0.3系统,全志A10S芯片方案,Java/C/C++
成就:
组建智能终端团队,两年开发两代智能机顶盒产品、六大盒子,产品转型顺利。
职责:
开发团队的组建和管理
硬件平台选择
软件体系结构设计
项目管理
我没有把上述三点对应的内容全部列出来,也没有把个人亮点全部写出来,但你心里一定清楚自己起到了什么关键作用。如果你有攻克技术难关的经验,有明显的可量化的业绩,一定要总结出来,因为面试的时候经常会被问到这些。
天赋和人脉其实是一个人非常重要的商业价值。至于天赋,一般程序员的简历很难体现出来。如果你说自己像姚明一样高,像白子画一样帅,或者比李易峰帅,对你想就职的公司来说,可能没有太大的价值。你还是想办法表现出自己有超越常人的强大学习和研究能力吧。
至于人脉关系,这个就不好说了,如果你认识创始人刘晨,而且目标公司也用PHP,那可能有用,如果你是做iOS开发的,说自己和唐乔是朋友,那可能也有用。
我觉得这些内容在程序员的面试中更有可能被讨论,而不是出现在简历中。
【02】设立求职目标
前戏太长,有的朋友可能已经失去耐心了,别着急,高潮马上就到了……
无论你是大学毕业初入社会求职者,还是在职场打拼多年的老手,找工作都要避免一件事:无的放矢。
在找工作的时候,明确目标行业、公司、职位,做好针对性的准备,就能收到事半功倍的效果。
2.1 职业连续性
每次跳槽都更换行业、开发语言,对于一个程序员的商业价值(知识、技能、业务等)积累是极其不利的。如果这不是你第一次找工作,那么有必要考虑职业连续性。
如果你目前从事金融行业,那么跳槽时最好还是留在金融行业,这样可以积累相关的行业经验,逐渐形成优势。如果你目前从事 iOS 开发,那么跳槽时最好找一份 iOS 相关的工作,这样你的 C、Swift、Cocoa 技能才能不断提升。…
当然,如果你发现自己不喜欢现在的行业,不喜欢自己正在使用的技术,那也没关系,下面的这些方法可以帮助你找到新的兴趣。一旦你找到新的方向,转而去做,也要考虑未来的连续性。如果你总是说不喜欢现在的,更喜欢别的,经过几年的修修补补,你可能会发现,那些一直默默努力的朋友,突然一夜之间就变得牛逼了……
2.2 通过成就事件挖掘职业兴趣
当我们总结和整理工作和项目经历时,要特别留意那些让你感到特别有成就感的事件,它们隐藏着你的职业兴趣,可以帮助你发现未来想要追求的职业方向。
我们可以按照STAR原则来回顾成就事件:
一旦有了成就事件,就可以继续深挖,最好知道自己为什么高,或者用什么方法达到的,可以按照以下两点来分析:
通过这样的分析,你或许能够发现自己最擅长的技能是什么,以及工作中最在意的是什么,然后以此为基础制定新的职业目标。
【03】简历优化
如果你不知道自己的商业价值是什么,软件开发工程师适不适合自己,如果你不知道自己想要从事什么样的行业、什么样的公司、什么样的职位,那我们之前打下的前戏这么久就都白费了......
我相信,如果你想继续看下去,你肯定是暗恋着某人,想要好好打一架。好啦,闲话少说,我们进入正题吧。
简历优化有几个关键点:
关注行业、企业、职业
分析招聘信息,从知识、技能、职责中提取关键词
根据招聘信息中的关键词筛选个人知识、技能和经验
重新组织并呈现匹配的知识、技能和经验
3.1 关注行业、企业和职业
聚焦的目的是为了缩小目标范围,节省时间和精力,进行深入的研究和分析,有针对性的优化自身商业价值的组合,增加简历的吸引力,最终增加获得面试机会的概率。
程序员针对某一领域的问题,使用编程语言、技术框架、设计模式、算法等开发软件,软件肯定离不开目标需求和业务,所以程序员左手有技术,右手有业务,如果对业务内容完全不感兴趣,很难想象能做出好的软件。所以,当你有目标行业、有目标公司的时候,你还需要了解这家公司是做什么产品的,是产品型公司,还是项目型公司,还是以外包为主。选择你感兴趣的业务范围的公司,不感兴趣的公司果断筛掉。
就拿我自己来说吧,我在消费电子领域工作了5、6年,开发智能机顶盒的软件,涉及视频点播和直播,也做过一些流媒体方面的研究。近一年来,我在互联网行业创业。为了连贯性,我需要认真对待自己从事过的行业领域,但不必继续在之前的方向工作,换个方向也行。
有些人比较随性,不重视积累。比如看到一家公司的HR长得漂亮,可能会冲动,什么都不在乎,不管不顾的就去上班,哪怕是换行业、换技术。我也是比较随性,但不是HR长得漂亮,前台长得漂亮,而是我天生如此,刻意的培养自己,导致我性格比较随和,什么都不追求。所以,关于行业,其实我没怎么考虑……但有一个基本原则,我不想进夕阳行业,也不想进走下坡路的公司。
技术方面,我最擅长的语言是 C++,最擅长的框架是 Qt(我出过两本书,《Qt 核心编程》和《Qt Quick 核心编程》),最擅长的技能是客户端软件开发。如果新职位能用到我的知识和技能就更好了。
但是,并不是所有人都愿意一直沿用同一种技术栈。我认识一个哥们程序员简历模板,他用了 10 年的 C#,实在是受够了。在原公司无法转换其他方向,他就辞职了,想转 C++ 相关的技术栈。结果一直有公司想让他去能用 C# 的岗位,一直给他打电话,但他每次都拒绝了。
说了这么多,我现在的目标是高级软件开发工程师,语言是C++。至于行业,互联网、智慧城市、云服务等都可以。另外之前一直在小公司工作,现在希望能在大公司体验不一样的工作氛围。嗯,这是基本要求。
如果我寻找软件开发工作,我会有两个缺点:
不过换个角度想想其实也没什么,我以前做过管理,也创业过,回来做开发不是更稳定吗?
好的,我的聚焦过程已经完成了,现在让我们进入简历优化的实际过程。
3.2 简历优化实践
程序员的简历一般包含以下内容:
根据实际情况,有的简历可能没有自我评价或者附加信息程序员简历模板,有的简历没有任何教育经历可写(比如高中生),有的简历甚至没有任何工作经历或者项目经验(比如大学生等初次求职者)。
这里再补充一些与程序员个人品牌相关的信息(详情见我的微信订阅号“编程视野”第10080号文章:),比如技术博客、主页、参与过的开源项目、自己做的APP等等,这些都能很好的展现程序员的知识和技能,为你的简历加分,也能弥补面试时间和信息交流短的问题。要知道,决定你是否能通过简历考验的通常是另一位程序员,而向聪明内向的程序员致敬的最好方式就是“Show me the code”。
3.2.1 简历模板
很多程序员都是用招聘网站提供的简历模板,如果想在不同的招聘网站上投递简历,可能要填写5、6遍简历,非常耗时。但是也没办法,各个平台的数据交换格式不统一,就得麻烦求职者了。我一般会有一个基本的word格式的简历,在不同的招聘网站上以此为基础制作不同的简历。
接下来我来介绍一下我的简历,很简单,依次包括以下五个部分:
个人信息
求职意向
技能与评估
工作经历
项目经验
我的简历的前三部分如下:
个人信息
求职意向
技能与评估
我工作时间比较长,工作经历和项目经验比较多,如果一一列举的话,实在是太浪费文字了,前面已经列举了两个项目经历,这里就不再赘述了。下面是我最近的一些工作经历:
工作经历
2014.12~2015.12,陕西XX网络科技有限公司
2014.11~2014.12,北京XX商务通信服务有限公司(西安)
2008.01~2014.09,西安XX软件技术有限公司
1). 部门人员的组织、领导、管理、激励及绩效评估
2). 项目策划、实施、跟踪与管理
3). 技术路线评估与选择
4). 系统分析与设计
5). 重点模块代码实现
1).2009年至2010年,负责组建机顶盒开发团队和互联网视频搜索开发团队,并带领团队完成技术积累和产品探索,使公司成功进入新的行业领域,完成公司业务转型。
2)2012-2013年,负责组建智能机顶盒团队,完成机顶盒产品的智能化改造
3). 2012.07—至今,主导智能机顶盒产品研发
4)2011.10—2012.06,主导开发第二代高清互联网机顶盒产品
5)2009.05—2012.01,负责第一代高清互联网机顶盒产品的研发和改进
好了,我的简历主要框架就是这样了,接下来我会根据我的目标职位——高级软件开发工程师,找一些职位信息,通过分析职位信息来优化简历的技能与评价、项目经验部分,这两部分也是我们优化简历的重点。
3.2.2 简历优化
我曾多次起草过软件开发工程师的招聘要求,涵盖了C++、Java、Web前端等技术层面,每次脑子里都会浮现出一些关键词,这些关键词就会被写进招聘信息里。
另一方面,我在应聘的时候,总是希望从招聘信息中推断出起草招聘要求的软件工程师、项目经理或者部门经理头脑中的关键词,大多数时候都能猜到。当你找到这些关键词的时候,你的简历就已经成功了一半。
接下来我们来看看几个招聘要求。
第一个招聘需求如下图所示:
红线标出了一些关键的基本要求:C++、Qt 和桌面客户端。这些是申请该职位必须满足的硬性要求。
绿线表示软性要求,这类要求不容易直接量化衡量,但面试官可能会在面试过程中通过谈话的方式进行测试。例如软件设计能力、技术沟通能力、交流能力、沟通与团队合作等通常会在面试中体现,而编码能力则可能通过笔试或面试过程中不断询问技术细节来测试。
蓝线标示优先条件,若有多个候选人,只要符合这些条件,就会被考虑。
公司在审核软件开发工程师的简历时,首先由HR进行筛选,然后由技术人员(程序员或者经理)再次进行筛选,通过技术人员的筛选后,才会通知笔试或者面试。
HR一般不太懂技术,当他们接到招聘需求时,会跟技术人员沟通需要关注的重点,然后根据这些重点筛选出合适的简历。通常在HR眼中,重点就是关键词,所以我们在修改简历的时候,尽量使用招聘信息中出现过的词语,方便HR识别。HR看一份简历,多则一分钟,少则二三十秒。
技术人员筛选简历通常比HR更仔细,大致分为两个步骤:先筛选关键词,然后检查项目经验是否体现了所发布职位所需的技能和软技能。如果关键词不匹配,则PASS,整个过程不到30秒;如果匹配,则会继续检查项目经验,整个过程可能需要几分钟。
在看项目经验时,我们一方面看应聘者是否在项目中用到了未来需要的相关技能,另一方面看具体的项目内容,对比行业、产品、业务相关性,如果应聘者做的产品和招聘方想做的事情相关性高,就会优先考虑。
通过了解简历筛选的流程,我们可以知道关键词的重要性,然后根据从招聘信息中提取出来的重点来修改简历。
我在修改简历的时候,尽量体现公司要求的尽可能多的技能和软技能,一般可以思考以下两点:
技能与评估
项目经验
我会根据我的简历,先看看技能和评估部分如何修改。
因为目标岗位是高级软件开发工程师,而招聘信息中并没有明确体现对管理能力和经验的要求,所以我的管理经验可以淡化或者去掉。然后重点突出C++、Qt、软件设计、技术交流等内容。新版如下:
技能与评估
那么,现在的内容跟上一版相比,是不是有很大的不同呢?调整之后,硬性要求、软性要求、优化条件都已经考虑到了。
接下来我们需要将项目经验重新整理和呈现,以便能够更体现企业HR和面试官所关注的重点。以下是我的一个具体的项目经验:
2009.05—2011.09,跨平台视频点播系统
项目描述:面向电信运营商及零售市场的综合视频服务产品,具备视频导航、搜索、点播、直播、天气、资讯、股票、教育等功能。产品形态包括机顶盒、客户端、Linux客户端等。
软件环境:Linux、Qt 4.5.1、Qt 4.5.1、C/C++ 硬件环境: F20芯片方案、PC
职位:项目经理、核心程序员
职责及工作内容:
1).软件体系结构设计
2).基于Qt框架设计实现跨菜单及影视信息墙
3).基于Qt的客户端业务流程代码实现
4).基于Qt实现认证模块
5).团队建设与项目管理
成就:
1).研发出稳定、高性价比的互联网机顶盒产品,开拓电信市场,销售量突破30万台。
2). 在团队中推广Qt,积累技术知识
3).提供Linux客户端,为客服、运维、售后提供强有力的支持
这个招聘要求主要在技能(C++、Qt)方面匹配我,而下一个招聘要求主要在业务(行业)经验方面匹配我。
红线标记了基本要求:C/C++、Linux。
绿线标注的软性要求一部分是一些不易量化的技能,比如熟练掌握多线程、有独立设计经验等;一部分是与产品业务相关的,比如音视频编解码、封装、流媒体、网络协议、视频业务系统等。
此招聘信息有两个优先条件,但是都不符合我的知识和技能。
看程序员的知识、技能、经验就像看一座山,从侧面看是山脊,从正面看是山峰,距离和高度不一样。如果想提高和招聘信息的匹配度,就需要想办法从不同的角度去挖掘和呈现,如果这样看起来不合适,那么那样可能就正好。因此,如何选择角度就变得非常重要。
一个程序员的知识、技能、经验,从不同角度看都是一座山,视角很重要。
我们来看看新修改的技能和评价:
技能与评估
和之前的招聘信息的内容差别很大吧?
这次修改了两个项目经验,都是之前修改过的,方便对比区别,第一个:
2009.05~2011.09,跨平台视频点播系统
项目描述:(略)。
软件环境:Linux、Qt 4.5.1、Qt 4.5.1、C/C++ 硬件环境: F20芯片方案、PC
职位:项目经理、核心程序员
职责及工作内容:
1).软件体系结构设计
2). 独立设计基于Qt的EPG框架
3). 设计并实现音视频解码及解封装流程(参考) 4). 设计并实现机顶盒软件多线程模型
5).团队建设与项目管理
成就:
1).定制化的多媒体框架,保证了互联网机顶盒产品的视频处理效果,开拓了电信市场,销量已超过30万台。
2).提供Linux及版本客户端,为客服、运维、售后提供强有力的支持2).坚持多媒体关键模块的自主实现,形成技术积累
这次我重点关注了多媒体、设计等方面,和上次有很大的不同。
我们先来看看文章开头提到的互联网视频卡顿的项目经验,新版本如下:
2013.11~2014.06,互联网视频卡顿优化
项目描述:
智能机顶盒的视频聚合客户端在高峰时段或播放热门视频时经常会出现卡顿的情况,针对该问题我们进行了优化,为用户提供流畅的观看体验。
职责及工作内容:
1). 作为系统设计人员,选定技术方案,设计加速及优化算法,设计系统结构。 2). 使用C++实现标准http协议(包括客户端和服务端)
播放质量得到了极大改善,延迟投诉减少了 80%。
嗯,我认为它已经变成了不同的效果。
需要特别提醒的是,简历优化是对程序员知识、技能、经验的装扮,从不同的角度呈现不同的方面,可以仔细思考,但切不可弄虚作假。
3.3 测试优化效果
如果你已经确定了求职目标,可以有针对性地优化简历,但是又担心效果,不知道自己的优化能不能给HR留下深刻印象,这里有一个方法你可以试试(别告诉我是我告诉你的):
这个过程可以确保你先练习简历和面试技巧,然后以最佳状态迈向你最喜欢的公司中你最喜欢的职位。
【04】如何提高简历投递成功率
根据前面的分析,为了增加简历投递的成功率,遵循下面的流程会很有帮助:
将知识、技能、经验进行整理并记录下来,形成基本简历
设立求职目标
过滤职位发布以及与您的目标相匹配的公司和职位
分析每个招聘信息并提取关键字
基于关键字,结合基本简历,优化技能描述和项目经验以生成目标简历
根据我自己的经验,我只能提交大约3个恢复,因为为每个职位生成目标履历可能需要1到2个小时,但值得花更多的时间。
哦,天哪,终于结束了,如果您仍然不满意,请阅读(单击查看)
程序视野
原始内容
长按识别二维码