来自:架构之美

1. 解决问题能力

篇章一我们聊了专业能力,今天我们来说说解决问题能力。

我认为整体分为:设计能力、编码能力、问题排查能力,这三方面。

如果说专业能力主要是考察你的知识储备的话,那么解决问题能力,则是考察你灵活运用专业知识的能力。

面试官问道,如何设计一个XX功能/服务/系统,这时候,篇章一文章介绍的BeafQPS方法论就派上用场了。

不仅要实现功能和业务,还要准确的识别出功能/服务/系统的难点,可能是需要高性能,或者需要高可用,或者需要高扩展,也可能是三者都要兼顾等等。

过程中就体现了你的设计能力,既要有敏锐的洞察力,也要有结构化的全方位思考,以及可实操的落地方案。

以上,便是可以体现你设计能力的几个关键点。

下面我们来说说编码能力,有不少工作经验较长的朋友,出去面试前,都不刷题,认为企业不会让自己写代码,这个侥幸心理不能有呀。

现在越来越多的企业看重候选人的编码能力,有的团队,架构师甚至TeamLeader,工作中也时常需要写代码。

这里推荐大家面试前要至少把经典题目刷一下,比如二分查找、快速排序、反转链表、层序遍历二叉树、给定两数之和求下标、最近公共子节点、爬楼梯的算法等。

另外比较务实的公司会考些工程类的题目,比如懒加载的单例模式、实现生产和消费的demo、多线程交替打印有序数组、负载均衡算法等。

还有的公司会考SQL,需要把join、group by having count、sum、avg等用法复习一下,现在leetcode上也有SQL的题,可以刷两道找找感觉。

也有的公司会考Linux,需要把awk、sed、sort、uniq等关键命令熟悉下,典型题目是统计文本中出现次数最多的ip。

最后来说下问题排查能力,回答相关问题时,要先定位再修复。

先从监控和异常日志入手。

如果是业务问题,那么可能是代码bug或者网络抖动造成的业务流程中断,也可能是某种原因造成的数据不一致,现象就是业务不正确或者业务不完整。

如果是系统问题,比如负载过高、内存不足、磁盘io过高、接口耗时变长、吞吐量降低等问题,需要借助top、jstack、free、jmap、gcutil等命令,以及apm监控和链路追踪系统,完成定位。

定位之后,要给出短期和中长期的解决方案,比如负载过高,短期可以通过扩容机器来缓解,中长期可以去调整线程池参数,减少线程上下文切换次数、优化慢查询,防止请求堆积,消耗cpu和内存等。

再比如,发现是数据不一致导致的问题,短期的话,可以完善监控,并通过修复接口手动修数据;中长期的话,如果是主从延迟问题,可以核心链路强制读主库;如果是分布式事务问题,可以采取最大努力通知、事务消息、TCC、Seata等解决方案。

解决问题能力,只靠积累专业知识是不够的,需要多实践,多总结。

以上给大家介绍了五大考察点其中的专业能力和解决问题能力,接下来文章我们聊下剩余的三个考察点。

2. 沟通与协作能力

如果说专业能力和解决问题能力是硬实力的话,那么接下来我们要讨论的就是软实力。

首先说下沟通与协作能力。

无论作为leader还是团队成员,我们都需要与很多同事一起工作,如果沟通与协作能力有问题的话,可能会降低团队的整体工作效率、影响团队的士气和氛围。因此,面试官也会观察候选人这方面的能力。

如何在平时提高沟通与协作能力,并在面试过程中,更好的体现出来呢?

很多内向的朋友可能会觉得这是一种天赋,与性格有关,自己不是那块料没法提高呀,我想说,因为大多数人的努力程度是非常低的,所以还远远没有到拼天赋的地步。

建议这些朋友,抓住团建、聚会、吃饭、散步、打电话的时间,多与身边人交流聊天,久而久之,沟通能力一定会提高。这里也有个短期的特训技巧,去app商城搜一下“语音聊天”,试着下载两三个,每天与上面的陌生人聊30~60分钟,坚持一周,沟通能力就会有明显效果~

下面再说下协作能力,首先要有同理心,人无完人,我们不能用对家人和朋友的期望,来要求每一个同事、每一个面试官。

比如面试官迟到了、或者说错话了、作为候选人,可以理解包容、恶劣情况下也要审时度势,权衡利弊,当然,必要时我们也要坚守自己的底线和原则。

另外要补充的一点就是,很多较为高级的职位,工作职责都会包含日常指导初中级工程师、跨团队沟通、统筹协调、项目管理、团队管理等,因此越是工作经验丰富的朋友,越要注意提高自己的沟通协作能力。

面试过程中,不卑不亢、语速正常、注意抑扬顿挫,不要想机关枪一样,一个声调突突突,那样面试官会听的很累,抓不住重点。保持微笑,与面试官真诚的交流互动。沟通协作能力这块就会有个不错的分数。

3. 成长潜力

好的,我们聊下一个考察点,成长潜力。

企业招一个人的成本是很高的,尤其是高端岗位,企业一定不希望候选人入职待一年就走的,这样不利于团队的稳定性和梯队建设,也不利于企业的发展,因为新人入职的第一年,基本都在熟悉业务、系统、流程、团队等,真正做出重大贡献,往往要第二年才能开始。

因此,企业对候选人的成长性是有期望的,面试官会看,候选人过往的经历有没有在较短时间内,完成新业务或系统的熟悉,快速做出业绩的事例;也会看候选人,对自己做过的事情,有没有较为深刻的理解,是否善于发现问题,并提出解决方案以及执行落地。

典型的场景是,我们在描述完自己很拿手的项目之后,面试官问,这个项目有没有可以优化的地方?如果候选人能够脱口而出,把当前的问题,短期、中期、长期的规划,清楚的说出,就可以体现出很好的主动性,这也意味着成长潜力。

最近面试了一个同学,简历里写的项目,用到了限流的高可用手段,上面还写了具体用的是令牌桶算法,于是我就问,还了解其他的限流算法吗?他表示不清楚,由此可以初步判断,这位同学的主动性和成长潜力可能是一般的,这个例子,给我们的启示就是,工作中使用的技术,不要仅仅停留在使用层面上,也要去了解原理,深入细节,了解选型的原因,这体现了主动性,也体现了成长潜力。

4.文化匹配度

下面我们再聊下文化匹配这个考察点。

通常这方面都是由主管、VP、HR来考察的,有的面试官很坦诚,“我们这里加班很多,早10晚10,996,你能接受吗?”,也有的会通过询问离职原因了解候选人的三观,面对这种问题,offer收割机可以如实作答,因为面试也是双向选择;对于手上没有offer的朋友,可以适度修饰作答。

每个企业都有自己的使命、愿景和价值观,候选人面试前可以提前做好功课,如果顺利面到后面,适当的表达自己对企业文化的认可,会有很大加分的。

最后要说的是,面试攻略系列文章其实是属于标题党,功夫在于日复一日一点一滴的积累和思考,希望通过这一系列文章,能让大家对技术人的能力模型、思考框架,有个较为系统的认知。

5.彩蛋

大家认知里比较热门的基础知识,主要有编程语言基础、多线程、IO、缓存、数据库、各种组件与工具等等。

操作系统可以说是上面这些“基础知识”的基础知识了。

学好操作系统,可以帮助我们更好的理解,运行在它上面的一些程序、软件、组件、工具等等,从而可以让我们更快的学习其他的新技术,因为他们的底层都汇聚在操作系统这一层,是相通的。

先来看下操作系统在维基百科的定义:

操作系统(英语:Operating System,缩写:OS)是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

如图1所示来方便大家的理解操作系统(以Linux操作系统为例)。

图1 操作系统架构

可以很清楚的帮助大家理解操作系统与计算机软件(应用程序)和硬件的职责边界和层次结构。

图2 操作系统内核体系结构

图2则给大家展示了操作系统需要处理的一些基本事务:进程管理、内存管理、文件管理、网络操作、设备控制,以及操作系统内核的体系结构。现在请各位老铁闭上眼睛想下,什么是操作系统呢?操作系统能做哪些事情呢?

恭喜各位已经可以准确回答上这个问题了,同时也已经打开了操作系统学习之路的大门。

人生路漫漫,帮助我们走向人生巅峰的,一定是我们真实的能力。

所以一起苦练基本功吧,记得关注和分享哦,后续会给大家提供更专业、更精彩的文章,包含专业知识与原理、架构设计、职场感悟、人生趣谈等内容。

期待与大家一起成长!

作者:达叔,前美团资深工程师。

特别推荐一个分享架构+算法的优质内容,还没关注的小伙伴,可以长按关注一下:

长按订阅更多精彩▼如有收获,点个在看,诚挚感谢

年薪75万的真实技术面试实践攻略(篇章二)相关推荐

  1. 年薪75万的真实技术面试实践攻略(篇章一)

    来自:架构之美 互联网的寒冬已经开始了,想必大家已经有了切身的感受,公司内部晋升要求变高.名额变少,外部机会的要求也水涨船高,并且限制涨幅.职级等. 如何在较为恶劣的大环境下,从海量候选人中脱颖而出, ...

  2. 2020年远程面试全攻略

    怎样提升远程面试成功率?远程面试中到底需要注意哪些问题? 带着大家的这些疑问,圆圆特地为大家整理了一份<2020年春季远程面试全攻略>,希望能在今年春天的面试中助你一臂之力! 01 远程面 ...

  3. 秋招注意事项和面试通关攻略

    首先给大家说声抱歉,最近由于个人工作(突然996)和精力上的原因,导致公众号断更了一段时间,后面会逐渐恢复公众号的更新,在此感谢大家的理解和支持. 国内主流的互联网公司在 8 月份都开放了秋招申请,那 ...

  4. Interview:Java岗位面试—面试求职攻略之一个JAVA程序员面试心得(非常值得收藏)

    Interview:Java岗位面试-面试求职攻略之一个JAVA程序员面试心得(非常值得收藏) 导读 据网上资料显示:2018年互联网行业是寒冬,其他行业日子也不好过.各个互联网大厂纷纷缩招减员,严格 ...

  5. 随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...

    一.什么是随机森林 前面我们已经介绍了决策树的基本原理和使用.但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样 ...

  6. lgg7深度详细参数_机器学习超详细实践攻略(9):决策树算法使用及小白都能看懂的调参指南...

    决策树算法在工业中本身应用并不多,但是,目前主流的比赛中的王者,包括GBDT.XGBOOST.LGBM都是以决策树为积木搭建出来的,所以理解决策树,是学习这些算法的基石,今天,我们就从模型调用到调参详 ...

  7. 解读|爱奇艺互动剧创作技术实操攻略

    21个互动节点,17种结局,260分钟剧集--今年6月国内首部互动剧<他的微笑>上线开播.和大部分人一样,什么是互动剧?互动剧与技术如何衔接?带着强烈的好奇心,小编首次开启了互动剧创作技术 ...

  8. 机器学习超详细实践攻略(1):盘点scikit-learn里那些有趣又有用的彩蛋级入门数据集

    在机器学习算法的学习过程中,找到用来适合用来练手的数据集是我们面临的第一道门槛,毕竟俗话说得好,巧妇也难为无米之炊嘛. 为此,我在知乎上写过一篇回答: 机器学习需要的大量数据集从哪里找? 这篇回答主要 ...

  9. 技术人创业攻略 -用技术改变世界

    童继龙  |  明源云 微信公众号:drate-think 关注:传统企业互联网转型-向死而生(战略.运营.产品与商业模式创新)! 推荐书籍:<技术人创业攻略>,作者:张兰. 技术大牛是所 ...

最新文章

  1. c语言直接插入排序步骤,经典排序之直接插入排序(C语言)
  2. Python编程软件的安装与使用——Windows、Linux和Mac
  3. 在Win10下安装python+tensorflow-gpu-2.4 虚拟环境
  4. 【原创】MapReduce实战(一)
  5. arcengine遍历图层组
  6. linux解决Tomcat内存溢出
  7. 基于SSM的图书商城的设计与实现(文末附源码)
  8. 【TL学习笔记】1:领域自适应(Domain Adaptation)方法综述
  9. Three.js(十二)——骨骼动画、变形动画
  10. window media player 内部应用程序出错
  11. 分享一个超好用的批量处理PPT与PPTX转换,批量删除某一页PPT,批量DOC转换为DOCX的应用
  12. STM32 CAN总线通信学习笔记(一)
  13. 阿里全球数学竞赛赛题曝光!5万余选手奋战三天三夜争夺1%决赛门票
  14. echarts自定义区域地图
  15. 2020年“信创”火了!一文看懂什么是信创
  16. 计算机应该更新,电脑更新要多久
  17. 连夜干出来一个自动处理【支付宝交易支付投诉管理系统】,支持多商户
  18. 请问怎么设置默认浏览器
  19. 学习常用模型及算法:2.元胞自动机和交通模型
  20. 智能枕头方案/案列/APP

热门文章

  1. 迁移学习之InceptionV3(159层),Xception(126层),Inception_ResNet_V2(572层)(图像识别)
  2. PTA数据结构与算法题目集(中文)7-18
  3. 添加流程_艾多美手机商城苹果ios系统的主屏幕添加流程
  4. android单个页面切换_MTransition是一个Android上的页面切换动画库
  5. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
  6. AcWing 397. 逃不掉的路(边双连通分量缩点成树 + 树链剖分乱搞)
  7. MySQL-source报错1064
  8. 计算机硬件系统公开课课件,计算机硬件系统的组成(公开课).ppt.ppt
  9. python私有属性和property装饰器_python – 在使用@property装饰器时在属性的s...
  10. 从两个bug来看Javascript的装载