
总体描述
这是一本关于测试题目和面试问题的书籍,旨在通过剖析多个热门话题和填补通用编程知识空白(如数据类型、算法、模式等,不过安全相关的内容几乎没有)来帮助读者准备技术面试。全书共17章,约350余页。书中几乎没有任何图示,尽管像图形结构这类内容配上可视化展示会更有助于理解。
内容概述
开篇近50页(前两章)完全是理论性内容,包含大量诸如"确定职业方向、分析就业市场、评估技能、打造线上形象和作品集"的指导。第二章则完全专注于求职申请和职位搜索技巧。
从第三章开始出现编程题目,不过主要集中在章节末尾。本章最值得关注的是算法和算法复杂度(大O表示法)——这正是我先前某篇技术解析中详细讨论过的内容。
接下来连续三章都围绕数据类型,更准确说是数据结构展开。分别讲解了链表(第4章)、树与图(第5章)、数组与字符串(第6章)。这些可能是全书最有价值的章节,包含大量示例代码(主要是C++,不过在数组和字符串章节也出现了Java、JavaScript和C#)。数据结构本身的讲解还算到位,关键术语都有解释。以链表为例:类型(单链表/双链表/循环链表)、操作(遍历/插入/删除)以及相关练习题都有涉及。树与图、数组字符串的讲解模式也基本相似。总体而言,这些基础知识讲解得比较清晰,对于不常接触图形结构的开发者,这些内容足以帮助复习相关知识。
第七章专门讨论递归问题。这部分没有太多需要补充的。
递归章节之后是排序专题。这个部分非常实用,主要原因有二:排序在编程中无处不在(虽然很多语言的内置排序函数已经帮我们封装了实现细节);其次排序问题曾经(现在有时仍是)面试官最喜欢考察的内容之一。选择排序、插入排序、快速排序、归并排序——这些经典算法都有讲解配套练习题。
接下来是并行编程章节。当然,这章不可能涵盖所有并行编程方法,更不会涉及Go或Kotlin等现代语言的具体实现。不过基本概念如线程、监视器、信号量、死锁等都有不错的解释。
面向对象编程(OOP)章节只有短短10页,可想而知其内容有多简略——连概念性的讲解都很表面,更没有绑定具体语言。构造函数、析构函数、继承、多态、虚方法、类和对象——作者勉强塞进了这些基础概念。
设计模式章节同样篇幅局促。严格来说这里几乎谈不上有什么模式讲解,只是简单列举了几种基础模式,并提及创建型、行为型、结构型这三种分类。
数据库章节也很单薄,我认为这是全书最薄弱的部分之一。
图形和位操作章节虽然没能让我学到新知识,但由于日常工作不涉及这类任务,读起来倒也饶有趣味。
随后是两个益智题目章节。第一部分是经典逻辑题,比如"哪个开关控制哪盏灯"(网络流传甚广的灯泡谜题),或是"如何让不同动物安全渡河"的约束问题。第二部分则侧重图形谜题(注意与前述图形编程章节无关)。
倒数第二章是综合题型,作者把所有无法归类到前述章节的技术问题都堆在这里:包含技术问题、逻辑题、架构设计、加密算法、安全知识(虽然安全部分只有两三页的敷衍内容)。
全书最后是与编码无直接关联的软技能建议:薪资谈判、反向提问技巧等职场话题。
个人评价
本书最适合IT行业新人或转行人员。既包含求职渠道分析,也涵盖了面试常见考点(算法复杂度、链表指针、树图实现、OOP、设计模式、数据库、位操作等核心知识)。