俗话说,对于程序员来讲,每年都应该出去面试一下,看看自己的技术能力在外面处于什么水平。程序员在一个公司一个环境一个业务干得太久,很容易丧失学习的动力,获得的仅仅是从新手到熟手。当然,我相信在各行各业均是如此。但是,恰好,计算机的技术层出不穷,每年都有新的框架新的技术出现,甚至会要求程序员在一个项目中立刻上马一个全新的技术。

  《剑指Offer》这本书的作者来自于微软,书中第1章主要介绍面试的常见流程,以及在简历的准备以及面试过程中的一些软技能。后面6个章节则介绍了面试时所具备的一些硬技能,也就是专业知识的掌握程度,以及编码动手能力,解决问题时的一些思路等等。

  【好书推荐】是我一直以来想增设的一个主题,但由于本身工作经历的原因,看完一本书和对一本书进行概括总结以及思考的能力还有待进步,便一直搁浅迟迟没有展开。所以我尝试用一种另一种方式来开展这个主题,边读边写,更希望读者能和我一起读这本书交流这本书。

  《剑指Offer》这本书,我打算用两个大的主题:一、结合书中作者的经验聊聊面试中的一些软技能;二、逐一通过Java编写书中提及到的编程面试题,并在题中给出几种不同的解法和思路过程。

  本文先谈谈第一个主题——面试软技能。

简历

  面试的第一步是写简历,简历如何写确实是个学问,一味的想去填满美化自己的简历,把不该写的写在了简历上反而得不偿失,把自己应该大写特写的部分一笔带过也是一种重大失误。我第一次跳槽的简历不完全统计我改了8个版本。

  这是我存储在Onedrive上的简历版本,通过修改时间能看到,从第一版到第八版经历了6个月。

  简历是面试的第0步,千万不能随意对待,当然如果你的背景强大,学历背景、哪个大厂的背景或者是职位背景,那可能只需要和boss喝两杯咖啡就能拿到offer。言归正传,我们先来看看《剑指Offer》的作者是如何建议我们书写简历的。

  1. 项目经验

  作者建议面试者在简历中按照STAR法则描述项目经验。

  Situation:简短的项目背景。

  Task:自己的任务。

  Action:为完成任务自己做了哪些工作,是怎么做的。

  Result:自己的贡献。

  很多人不知道如何描述自己的项目经验,不少人通常会这么写:该项目是用于XX的后台管理系统,使用了SSM框架,采用了MVC结构,应用了XX技术等,我负责了XX模块、XX模块的开发。然后就不知道该怎么写下去了,觉得这个后台系统没什么可写的,草草地描述。这个描述对于面试管来说基本没有什么信息,这样的简历很有可能面试的机会都没有。作者在书中结合STAR法则描述了自己在微软Winforms项目组的经历。我们来通过STAR法则来看看如何描述自己做了一个看起来没有什么技术含量的后台管理系统。

  该项目是XX的后台管理系统(Situation)。本人的工作是独立开发了XX模块、XX模块(Task)。在做XX模块时,发现在和前台交互过程需要写大量的分页代码,于是本人通过查阅资料将mybatis的分页插件pagehelper引入到了系统中,解决了分页代码重复编写且比较容易出错的问题。另外在做XX模块时,因为要实时获取后台数据,并且数据有变化时需要将数据推送到前台,并没有采用轮训ajax的方式获取,而是引入了websocket(Action)。在这个系统的开发过程中,一直保持较低的bug率,一共完成了XX个功能模块,占整个系统X%,在性能提升方面分析业务,将一些同步任务改为了线程池异步的方式大大提高了性能(Result)。

  1. 专业技能

  这一块在简历中也是比较重要的部分,作者解释了“了解”、“熟悉”、“精通”的区别。

  “了解”指对某项技术只是上过课或者看过书,但没有做过实际的项目。

  “熟悉”指如果在实际项目中使用某项技术已经有较长时间,通过查阅相关的文档可以独立解决大部分问题。

  “精通”对一项技术得心应手,当有其他人向你请教这个问题时,有信心也有能力去解决。

  对于我们简历关于专业技能的描述应该大部分是“熟悉”,敢把精通往简历上写的,那是真正的勇士。了解可以分情况来讨论,按作者的观点,如果你去一家做图形图像的公司面试,在此之前你没做过图形图像相关的项目,只是大学上过这么课程或者业余时间看过书,那么可以写了解图形图像,但如果你去一家电商企业面试此时你写了解图形图像就没什么意义。

  对于很多人来讲,简历最大的问题是没什么可写的,“我做的大部分都是一些后台管理系统,涉及到的技术就只有spring、mybatis这些,什么Redis、ElasticSearch、ZooKeeper根本就用不上这怎么办”。如果你真的是这种情况,那我的建议只能是,再等等跳槽吧。那又有人说,我自己学,没有做过项目,那不也是了解某项技术了吗?那得看你怎么学。如果你学Redis只是跑起来,写了个Main方法set和get了一下就认为自己已经学了没什么好学的了;如果学ElasticSearch、ZooKeeper同样也是跑了起来,就认为已经学好了。那这和精通八种编程语言打印“helloword”有什么区别呢?

  毛主席说,没有条件创造条件。我们说,没有项目创造项目。Redis不仅仅是个缓存,你可以用它做分布式锁,可以用它做注册中心,可以用它做配置管理,找一找github上关于Redis的项目,不妨重新造个轮子;ZooKeeper不妨也做个后台管理,不妨也做一个配置中心,这些做完不也是完成项目熟悉了吗?面试的时候,实话实话自己的项目大部分是后台管理,对于Redis、ZooKeeper是自己业余学习的,自己也写了几个相关的项目,面试官大多会理解你的,甚至觉得你是一个不可多得的人才,没有做过相关项目经验不足是因为客观因素,但主观来讲你是一个非常热爱技术热爱学习的人才,这几乎成为了你的加分项。

  3. 其他

  简历上的就只剩下其他个人信息了,姓名、联系方式、毕业院校等等。

  简历是面试之路的第0步,做完这步就是投递简历静等翻牌。假设现在有公司翻牌,此时就正式进入面试流程。

  书中提到了面试常见的三个流程“电话面试->共享桌面远程面试->现场面试”。“共享桌面远程面试”我相信大部分没有经历过,我自己也没有经历过,所以我们跳过这个过程。

面试

  1.电话面试

  这个流程也并不是所有的公司都会有,也并不是大厂才会有。电话面试最关键的就是,找一个信号佳且比较隐蔽的地方。我曾在楼梯间接一个公司的电话面试,不料撞上了leader,场面一度非常尴尬。我电话面试有一个习惯,会做电话录音。目前大多数安卓手机都有电话录音的功能,主要是为了自己在电话面试后能对自己的面试情况做一个复盘,哪些知识点没有做好,是因为没掌握还是说话技巧的问题等等。

  2.现场面试

书中作者说的很详细,谈到了面试公司的距离提前规划路线,当天的着装,以及注意面试邀约中的细节,包括提前准备几个需要向面试官提问的问题。

面试过程中作者介绍得非常详细,从需要掌握的基础知识到面试考察解决问题的思路等等。

在最后一个“向面试官提问的问题”时,有几个问题尽量不要出现:询问面试官的面试情况,询问薪水状况,而是尽量询问和面试岗位相关的问题。例如:这个岗位和XX业务相关,公司是否会有相关的培训等等。回想我以前的面试,在最后向面试官提问时,我认为,这是一个很好的机会,面试官是优秀的人,他经验比较丰富,这是一个很好的交流机会,所以我通常会向面试官询问针对自己的情况对自己未来的发展有什么意见或者建议等等,有的面试官真的会很耐心分析你的情况给你做一个分析和解答,这的确是一个不可多得的机会。当然你如果实在想不出问题,不问也比乱问好。

  书中的第一章节,作者主要是谈到面试前以及面试的流程性问题,不要犯非技术性问题,低级错误,更多在于软技能。本文关于《剑指Offer》的第一部分也介绍到这里,后面部分,我也会将面试的硬技能分享给大家,也希望大家关注公众号(CoderBuff)和我一起阅读这本书。

这是一个能给程序员加buff的公众号 (CoderBuff)

【好书推荐】《剑指Offer》之软技能的更多相关文章

  1. 【好书推荐】《剑指Offer》之硬技能(编程题12~16)

    本文例子完整源码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/sword <[好书推荐]& ...

  2. 【好书推荐】《剑指Offer》之硬技能(编程题7~11)

    本文例子完整源码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/sword <[好书推荐]& ...

  3. 【好书推荐】《剑指Offer》之硬技能(编程题1~6)

    本文例子完整源码地址:https://github.com/yu-linfeng/BlogRepositories/tree/master/repositories/sword 前一篇<[好书推 ...

  4. 【强烈推荐】《剑指Offer:名企面试官精讲典型编程题》一书中IT名企经典面试题

    各位程序猿:         <剑指Offer>一书源自该书作者何海涛坚持更新与编写的博客(http://zhedahht.blog.163.com/),该博客收集整理了大量如微软.Goo ...

  5. 面试经典算法题集锦——《剑指 offer》小结

    从今年 3 月份开始准备找实习,到现在校招结束,申请的工作均为机器学习/数据挖掘算法相关职位,也拿到了几个 sp offer.经历这半年的洗礼,自己的综合能力和素质都得到了一个质的提升. 实话说对于未 ...

  6. 剑指Offer——“你最大的缺点是什么”回答技巧及范例

    剑指Offer--"你最大的缺点是什么"回答技巧及范例   问题分析:认识自己的缺点是一个巨大的优点, 当HR问到你缺点的时候, 你的机会来了, 请快展示你的自知之明吧!你想把优点 ...

  7. 对面试题(剑指offer)产生的一些思考。

    零散的思绪.另外,推荐<剑指offer>.本文初期大部分思考都从剑指引发. 面试题不单单只是用来面试.其中有很多编程的经验可以学习.就如同我们当年的考试:) 1:鲁棒性的一个方面:边界条件 ...

  8. 《剑指offer》全部题目-含Java实现

    1.二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. publi ...

  9. 剑指Offer——企业级项目中分层的含义与依据及多态的优势

    剑指Offer--企业级项目中分层的含义与依据及多态的优势   关于以上两点,由于项目经验较少,自己不是很明白,特整理如下. 常见分层架构模式 三层架构 3-tier architecture   微 ...

随机推荐

  1. 【转】Pro Android学习笔记(四六):Dialog(3):对话框弹对话框

    目录(?)[-] 帮助提示框的实现 实现再弹框 再谈fragment管理器 提示框的按钮Help,将触发弹出新的帮助提示框. 帮助提示框的实现 帮助提示框的实现很简单,利用重写onCreateView ...

  2. 自己写的基于java Annotation(注解)的数据校验框架

    JavaEE6中提供了基于java Annotation(注解)的Bean校验框架,Hibernate也有类似的基于Annotation的数据校验功能,我在工作中,产品也经常需要使 用数据校验,为了方 ...

  3. JVM类加载(4)—加载器

    定义: 虚拟机设计团队把类加载阶段中“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类.实现这个动作的代码模块称之为“类加载器 ...

  4. Centos开启telnet/ssh/ftp/sftp服务

    Telnet 开启telnet服务步骤: 1.   查看CentOS/Telnet_server版本:#cat /etc/issue,   #rpm -qa | grep telnet 2.   安装 ...

  5. 【原】spring jar 下载

    作者:david_zhang@sh [转载时请以超链接形式标明文章] 链接:http://www.cnblogs.com/david-zhang-index/p/8098965.html 1.进入官网 ...

  6. js中object、字符串与正则表达式的方法

    对象 1.object.hasOwnProperty(name) 检测object是否包含一个名为name的属性,那么hasOwnProperty方法返回true,但是不包括其原型上的属性. 正则表达 ...

  7. js数组中的reverse()方法

    reverse方法是将数组中的元素的顺序进行反转,在原数组上操作,然后返回原数组.由于本人是学习js的新人,对reverse函数进行了几个小实验,以下实验均在Chrome浏览器上运行 实验一:reve ...

  8. 你做电商死法TOP10:你中了几枪?

    有相关报道说淘宝目前只有3%的店铺能够盈利,其余97%的店铺基本上都成了炮灰.这是一个非常可怕的数字,都说不赚钱的电商是犯罪,那么,是什么原因导致了会有如此庞大的电商群体一如既往的走在这千军万马的不归 ...

  9. sharepoint Foundation 2013安装过程

    安装完必备软件后,便可安装sharepoint Foundation 2013

  10. 选择炸了(JIRA)的88个

    作者:Martin Seibert SEIBERT MEDIA 首席执行官. 原文地址:http://seibert.biz/jirareasons 作者Martin Seibert 是德国互联网代理 ...