《剑指Offer(第二版)》读书笔记

9787121310928

第1章 面试的流程

  • 面试的3种形式

    • 电话面试
    • 共享桌面远程面试
    • 现场面试
  • 思考清楚后开始编码

  • 良好的代码命名和缩进对齐习惯

  • 能够进行单元测试

    • 通常面试官出的题目都是要求写出函数解决某一问题,如果应聘者能够在定义函数之后,立即对该函数进行全面的单元测试,那就证明了自己有着相当专业的软件开发经验。如果应聘者先写单元用例,再写解决问题的函数,那么我相信面试官肯定会对你刮目相看。
  • 应聘者需要具备的素质

    • 基础知识扎实,包括编程语言、数据结构、算法等
    • 能写出正确的、完整的、鲁棒的高质量代码
    • 能从时间、空间复杂度两方面优化算法效率
    • 具备优秀的沟通能力、学习能力、发散思维能力等
  • 应聘者尽量避免以下四个“跳槽”原因

    • 老板太苛刻
    • 同事太难处
    • 加班太频繁
    • 工资太低

面试官总会格外关注 边界条件、特殊输入等看似细枝末节但实则至关重要的地方,以考查应聘者是否关注代码质量。

如果 在面试时遇到难题,我们有三种办法分析、解决复杂的问题:画图能使抽象问题形象化,举例使抽象问题具体化,分解使复杂问题简单化。

【软技能】IT行业知识更新很快,因此程序员只有具备很好的学习能力才能跟上知识更替的步伐。

  • 应聘者提问环节
    • 不要问和自己职位没有关系的问题。比如,你面个一线码农,你问面试官“公司未来五年的发展战略是什么?”,这明显不合适,除非你应聘CTO,面你的是CEO。
    • 不要问薪水。在技术面试中不能谈薪水,要谈也等HR在场。
    • 不要立即打听面试结果。
    • 推荐问的问题是与应聘的岗位或项目相关的问题。

第2章 面试需要的基础知识

面试题2: C#实现Singleton模式

  • 解法比较
    • 第一种不能在多线程环境中正常工作
  • 第二种虽然能在多线程环境中工作,但时间效率很低
  • 第三种通过两次判断一次加锁确保在多线程环境中高效工作
  • 第四种利用C#的静态构造函数特性确保只创建一个实例
  • 第五种则利用嵌套类型的特性,做到真正按需创建实例,提高使用效率

数组,最简单的一种数据结构,它占据一块连续的内存并按照顺序存储数据。

Last Updated: 6/29/2018, 3:06:00 PM