20 | 代码之外,技术面试应该具备哪些软素质

技术面试一般涉及以下6个环节:

重学数据结构与算法(面试现场)

简历筛查

好的简历要满足以下3个必要条件,分别是信息完备、抽象概括、重点突出。

  1. 信息完备,指的是必备的东西不可缺。例如姓名、学历、联系方式、工作经历等。
  2. 抽象概括,指的是可有可无的东西不要写。例如,政治面貌、户籍等。
  3. 重点突出,指的是对你有利的东西要放大放粗。例如,电话、S绩效、系统性能提高50%等。

自我介绍

建议控制在5分钟,按照时间顺序,比如从大学开始分段介绍,高度抽象出来,以10句左右为限制。说的时候语速放慢、吐字清晰,注意抑扬顿挫。

项目介绍

项目介绍一般需要25分钟左右,主要围绕以下3个问题来描述。

  1. 在项目中,你解决了什么问题?不解决会有什么后果? Why?
         一定是公司遇到了某个必须解决的问题(系统问题、业务问题),最终导致你去做什么对应的事情。
  2. 这个问题的复杂性在哪?你在解决过程中需要具备哪些能力? What?
        既然明确了问题,那么就要再一步找到这个问题的关键点和复杂性。再以此,提炼出技术问题,寻找解决方案。
  3. 这个问题解决了多少?你取得了哪些业务收益?How?
        最终产生了什么样结果,比如节约了多少多少成本,等等。

技术考察

技术考察一般持续15分钟左右,考核的是你的专业知识和经验,比如设计模式、数据结构、机器学习或者AI等。

手写代码

手写代码一般1~2题,持续时间大约是10分钟左右。

开放性问题

开放性问题会隐藏在面试过程中的各个地方。当然,最集中的还是在面试最后的5~10分钟。开放性问题考核的是候选人的综合能力。例如,对行业的理解、对问题的分析、对观点的表达等。

 

21 | 面试中如何建立全局观,快速完成优质的手写代码?

手写代码的能力

手写代码必须谋定而后动,它考察的是候选人关于模块、函数的分解能力,对代码中变量的声明、初始化、赋值运算的设计框架以及对于编程任务的全方面把控能力。

手写代码的全局观解题方法

  • 首先,根据问题进行复杂度的分析。估算问题中复杂度的上限和下限。
  • 接着,定位问题。根据问题类型,确定采用何种算法思维。
  • 然后,分析数据操作。根据增、删、查和数据顺序关系选择合适的数据结构,利用空间换取时间。
  • 分析完这些之后,想一下这些代码大致包含哪些模块,需要拆解出哪些函数,需要用到哪些变量,以及需要在哪里声明和赋值。
  • 有了这些全局观后,再动手写代码。

如果不会写代码怎么办

第一种情况:你有思路、有方法,但代码中一些接口函数名不太清楚。可以考虑用伪代码代替,并如实告知面试官。

第二种情况:你有思路,但不确定对错。这种情况,你应该在问题分析阶段,与面试官进行问题的讨论,避免浪费时间。

第三种情况:你理解了问题,但毫无解决思路。这种情况,更应该在最开始就跟面试官反馈,可以让面试官给与一些反馈,如果实                        在是没有信心,可以向面试官表明希望更换一道题。

 

结束语 | 勤修内功,构建你的核心竞争力

 

  • 勤,即次数多,可理解为是持续不断的意思;
  • 修,即练,可理解为预习、学习、复习;
  • 内功,即认知,是你对这项技术的理解深度;

勤修内功就是不断温习技术原理,持续加强技术认知。

相关文章: