《剑指offer》阅读笔记 第一章 面试的流程

目前研一在读,想找找暑假实习,自己代码能力不是特别强,所以寒假刷一刷剑指,做个简单的笔记

第一章 面试的流程

面试的三种形式:

一、电话面试

二、共享桌面远程面试:

考察编程习惯及调试能力,注意:

  • 思考清楚再开始编码;

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

  • 能够进行单元测试

三、现场面试:

  1. 行为面试环节:

    性格特点,项目经理,自我介绍(主要学习、工作经历),注意准备几个问题

    (1)项目经验:

    Situation:简短的项目背景。比如项目的规模,开发的软件的功能,目标用户等。

    Task:自己完成的任务。详细写,注意用词,“参与”和“负责”的区别。

    Action:为了完成任务自己做了哪些工作,是怎么做的。详细写,做系统设计的可写系统架构的特点;做软件开发的可写基于什么工具在哪个平台下应用了哪些技术;做软件测试的可写手工测试还是自动化测试,黑盒测试或白盒测试。

    Result:自己的贡献。最好用具体数据说明。功能开发:按时完成了多少功能;优化:性能提升百分比是多少;维护:修改了多少个bug。

    常问问题:

    • 你在该任务中碰到的最大问题是什么?你是怎么解决的?

    • 从这个项目中你学到了什么?

    • 什么时候会和其他团队成员(开发、测试、设计、项目经理等)有什么冲突?是怎么解决冲突的?

    重点突出自己完成的工作以及取得的成绩。

    (2)应聘者掌握的技能:

    注意“了解”、“熟悉“和”精通“的区别。

    • 了解:上过课或看过书,没有做过实际的项目。

    • 熟悉:实际项目中使用某项技术已经较长时间,通过查阅相关文档可以独立解决大部分问题。

    • 精通:得心应手使用某项技术,别人请教时,能有信心解决。

    (3)回答“为什么跳槽”

    话术:现在的工作做了一段时间已经没有太多激情了/现有工作对个人能力得不到锻炼,希望找一份更有挑战性的工作/能锻炼其他方面能力的工作。具体说为什么厌倦现在的职位,以及为什么对面试的职位感兴趣。

    应对工资低的话术:我只管努力干活,相信公司不会亏待勤奋的员工。

  2. 技术面试环节:

    应聘者需要具备的素质:

    • 基础知识扎实全面,包括各种编程语言、数据结构、算法等

    • 能写出正确的、完整的、鲁棒的高质量代码

    • 能思路清晰地分析、解决复杂问题

    • 能从时间、空间复杂度两方面优化算法效率

    • 具备优秀的沟通能力、学习能力、发散思维能力等

    (1)扎实的基础知识

    • 编程语言:c++

    • 数据结构:链表、树、栈、队列、哈希表,链表与二叉树常问

    • 算法:查找、排序,二分查找、归并排序、快速排序、动态规划、贪婪算法

    (2)高质量的代码

    代码质量:边界条件、特殊输入

    例:把字符串转换成整数:

    • 特殊输入:非数字、正负号

    • 最大正整数和最小附证书以及溢出

    • 不能转换成整数时如何进行错误处理

    • 输入空指针的特殊处理

    例:求链表中的倒数第k个节点:

    • 思路:用两个指针,第一个指针先指到头节点上,然后走k-1步,接着两个指针同时向链表尾部走,当第一个指针指向最后一个节点时,第二个指针指向的是倒数第k个节点。

    • 注意节点总数小于k的情况和k为0的情况

    技巧:写代码之前先想好测试用例

    考虑边界条件、特殊输入(如nullptr指针、空字符串等)及错误处理。

    (3)清晰的思路

    找具体的例子、用图形表示抽象数据结构、基于递归的思路:分治法、动态规划

    • 画图能使抽象问题形象化

    • 举例使抽象问题具体化

    • 分解使复杂问题简单化

    (4)优化效率的能力

    斐波那契数列:递归方法,时间复杂度n的指数,类推循环o(n)

    (5)优秀的综合能力

    沟通能力(低姿态)、学习能力

    最近看什么书、学到什么新技术

    抛出新概念,短时间的理解力、是否能解决问题

    知识迁移能力:青蛙跳台阶

    抽象建模能力、发散思维能力

  3. 应聘者提问环节

    不问公司发展、不谈薪水、不打听面试结果

    问与应聘职位或项目相关的问题:公司成立时间、主要业务、职位要求先了然于胸,留心面试官说过的话

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值