剑指Offer
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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

2.1 面试官谈基础知识

“C++的基础知识,如面向对象的特性、构造函数、析构函数、动态绑定等,能够反映出应聘者是否善于把握问题本质,有没有耐心深入一个问题。另外还有常用的设计模式、UML图等,这些都能体现应聘者是否有软件工程方面的经验。”

——王海波(Autodesk,软件工程师)

“对基础知识的考查我特别重视C++中对内存的使用管理。我觉得内存管理是C++程序员特别要注意的,因为内存的使用和管理会影响程序的效率和稳定性。”

——蓝诚(Autodesk,软件工程师)

“基础知识反映了一个人的基本能力和基础素质,是以后工作中最核心的能力要求。我一般考查:(1)数据结构和算法;(2)编程能力;(3)部分数学知识,如概率;(4)问题的分析和推理能力。”

——张晓禹(百度,技术经理)

“我比较重视四块基础知识:(1)编程基本功(特别喜欢字符串处理这一类的问题);(2)并发控制;(3)算法、复杂度;(4)语言的基本概念。”

——张珺(百度,高级软件工程师)

“我会考查编程基础、计算机系统基础知识、算法以及设计能力。这些是一个软件工程师的最基本的东西,这些方面表现出色的人,我们一般认为是有发展潜力的。”

——韩伟东(盛大,高级研究员)

“(1)对OS的理解程度。这些知识对于工作中常遇到的内存管理、文件操作、程序性能、多线程、程序安全等有重要帮助。对于OS理解比较深入的人对于偏底层的工作上手一般比较快。(2)对于一门编程语言的掌握程度。一个热爱编程的人应该会对某种语言有比较深入的了解。通常这样的人对于新的编程语言上手也比较快,而且理解比较深入。(3)常用的算法和数据结构。不了解这些的程序员基本只能写写‘Hello World’。”

——陈黎明(微软,SDE II)