2020年程序员面试必备书单,这一篇整理齐了

又到了找工作的季节,大多数程序员却无比纠结,想跳槽却不想面试。毕竟拼实力没啥可怕,怕的是明明有实力,面试时却有口难言。

不少小伙伴在后台询问程序员找工作或者跳槽要做什么准备?

面试就像作战,只要做好充足的准备,一定能胸有成竹。异步君在这里给大家分享几个小技巧:

面试考察的基本功,包括以下方面:

程序风格:能正确使用缩进,括号要对齐,变量名可以起的有意义;

编码习惯:异常检查,边界处理;

沟通:让面试官时刻明白你的意图,不要闭着眼睛不停地写。因为你的算法未必对。对了你也未必写得出来。中间稍微有点问题,你就失败了。对于面试官来说,他根本不知道你的解题进行到哪一步了;

测试:主动写出合理的测试用例(Test case),一些常见的用例,如 null 检查。一般你没写的话, 面试官会让你写,但如果你主动写出来,说明你有好的习惯,容易加分。

对程序员来说,技术面试是整个面试中非常重要的环节。当你拿到一个具体问题时,流程通常如下,可供参考。

明确题意:通过与面试官交流明确需要解答的问题。这部分主要为了让自己放松心态,并且给面试官 留下你具有良好团队意识和交流能力的印象。

描述大体思路:描述你打算用什么算法,什么数据结构。主要是为了让面试官了解你的思维过程,如果你给出的解答与他想要的答案偏差太多,可以及时纠正。同时,描述思路也给了你自己思考的机会。

实现算法:先处理边界条件。对于重要的算法模块,加一些注释或者与面试官进行交流。目的是让面 试官始终了解你在做什么,算法框架是什么。

跑一个测试:用一个测试用例走一遍你写的程序。目的在于和面试官一起确保你的算法是有效的,可 以在过程中及时发现并纠正自己的错误。同时,给面试官留下你有写单元测试(unit test)习惯的良好印象。

描述算法复杂度,回答面试官的问题。


当然,要找一份好工作,功夫还在平时。异步君还为大家整理出了一份关于程序员面试的书单,不仅能帮助做职业规划,还能提高大家的职业技能!

职业生涯规划

《软技能 代码之外的生存指南》

约翰 Z.森梅兹 著

这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。

对大多数软件开发人员而言,编码才是有趣的,而如何与客户、同事以及经理们打交道,如何保证工作效率,如何保障财务安全,如何保持自己的体形,如何找到真爱……这些则统统被视为畏途。本书恰恰可以在这些方面帮到你!

《代码整洁之道》

马丁 著

细节之中自有天地,整洁成就卓越代码。尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,写得不好的代码每年都要耗费难以计数的时间和资源。然而这种情况并非无法避免。

这本书是软件工程大师马丁经典力作,由互联网产品与运营专家韩磊献译,本书荣获第13届Jolt大奖。

从《代码整洁之道》中可以学到:好代码和糟糕的代码之间的区别:如何编写好代码,如何将糟糕的代码转化为好代码:如何创建好名称、好函数、好对象和好类;如何格式化代码以实现其可读性的优化:如何在不妨碍代码逻辑的前提下充分实现错误处理;如何进行单元测试和测试驱动开发。

《代码整洁之道 程序员的职业素养》

罗伯特·C.马丁 著

成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同点,都深切关注创建软件所需的各项实践。他们将软件开发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,他们具有职业素养。

软件开发大师Robert C. Martin在书中介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态进行软件开发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,并引导读者认识到专业程序员肩负的责任重大,阐述了什么才是程序员的职业素养。

《编程珠玑(第2版 修订版)》

乔恩·本特利(Jon Bentley) 著

本书作者Jon Bentley,世界计算机科学家,被誉为影响算法发展的十位大师之一。

多年以来,当程序员们推选出心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师JonBentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上受欢迎的专栏,结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为首卷,主要讨论计算机科学中本质的问题:如何正确选择和高效地实现算法。

在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。

《编程珠玑(续 修订版)》

乔恩·本特利 (Jon Bentley) 著

本书是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。延续了《编程珠玑》的特色,通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行透彻而睿智的描述,为复杂的编程问题提供清晰而完备的解决思路。涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容结合成一个有机的整体,如一串串珠玑展示给程序员。

《重构 改善既有代码的设计(第2版》

马丁·福勒(Martin Fowler) 著

软件开发的不朽经典,生动阐述重构原理和具体做法,普通程序员进阶到编程高手必须修炼的秘笈。

重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。

本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。

技能开发

《程序员面试白皮书》

逸超, 董飞著

这是一本介绍程序员面试的参考书,通过一系列的实例介绍了数据结构、算法以及计算机专业的其他基础知识。同时,本书还在各章中及时回顾教材中的重点内容,书中的题目也很据参考价值,通过实例与知识点相结合的方式帮助读者掌握要领。除此之外,本书还将引导读者分析题目,帮助读者理清思路并最终解决问题。

《师兄教你找工作——100场面试 20个offer背后的求职秘密》

韩速(@美牙君)著

本书以应届毕业生的视角,对求职的整个过程进行了分享和描述。涉及职业规划、前期准备、简历、网申、邮件投递、内推、在线测评、笔试、电面、结构化面试、群面、压力面、谈offer、选offer以及签约注意事项等各个环节。既解答了同学们最关心的若干问题,也包括求职技巧分享。既帮助大家正确地审视自己,也帮助读者客观地面对企业。

《趣学算法》

陈小玉 著

本书从算法之美娓娓道来,没有高深的原理,也没有枯燥的公式,通过趣味故事引出算法问题,包含50多个实例及完美图解,结合学生提问,分析算法本质,并给出代码实现的详细过程和运行结果。

本书可作为程序员的学习用书,也适合从未有过编程经验但又对算法有强烈兴趣的初学者使用,同时也可作为高等院校计算机、数学及相关专业的师生用书和培训学校的教材。

《算法谜题》

【美】Anany Levitin 著

算法是计算机科学领域最重要的基石之一。算法谜题,就是能够直接或间接地采用算法来加以解决的谜题。求解算法谜题是培养和锻炼算法思维能力一种最有效和最有乐趣的途径。

本书是一本经典算法谜题的合集。本书包括了一些古已有之的谜题,数学和计算机科学有一部分知识就发源于此。本书中还有一些较新的谜题,其中有一部分谜题被用作知名IT企业的面试题。全书可分为4个部分,分别是概览、谜题、提示和答案。概览介绍了算法设计的通用策略和算法分析的技术,还附带有不少的实例。谜题部分将谜题按照简单、中等难度和较难三个层级分别列出。提示部分依次给出谜题提示,帮助读者找到正确的解题方向,同时仍然为读者留下了独立求解的空间。答案部分则给出了谜题的详细解答。

《C和C++程序员面试秘笈》

董山海 著

众多高级语言都从C/C++有所借鉴,所以说C/C++的语言基础对从事软件开发的人员来说非常重要。

本书是一本解析C/C++面试题的书,可以帮助求职者更好地准备面试。《C和C++程序员面试秘笈》共包含12章,囊括了目前企业中常见的面试题类型和考点,包括C/C++程序基础,预处理、const、static与sizeof,引用和指针,字符串,位运算与嵌入式编程,C++面向对象,C++继承和多态,数据结构,排序,泛型编程,STL,算法和逻辑思维等最常见的面试题。《C和C++程序员面试秘笈》通过技术点解析、代码辅佐的方式让读者能深刻领会每个考点背后的技术。

本书紧扣面试精髓,对各种技术的剖析一针见血,是目前想找工作的C/C++程序员和刚毕业的大学生的面试宝典。

《Java程序员面试秘笈》

常建功著

· 紧扣面试精髓,一册在手,工作不愁

· 提供最全的Java面试题分类,帮你有备而战

· 涵盖经典的笔试题+上机题,帮你整理知识库

· 解析考题的要点和技术原理,帮你温故而知新

Java程序员目前就业形势较好,因为Java的应用太广泛了,从网页开发到手机安卓开发,都离不开Java。本书紧扣面试精髓,对各种技术剖析一针见血,是想找工作的Java程序员和刚毕业学生的面试宝典。

《编程之法:面试和算法心得》

July 著

· 蜕变于CSDN技术博客“结构之法算法之道”

· 内容涉及面试、算法、机器学习三大主题

· 作者数年的积累成果

· 进入IT行业求职笔试和面试宝典

本书涉及面试、算法、机器学习三个主题。书中的每道编程题目都给出了多种思路、多种解法,不断优化、逐层递进。第1章至第6章分别阐述字符串、数组、树、查找、动态规划、海量数据处理等相关的编程面试题和算法,第7章介绍机器学习的两个算法—K近邻和SVM。

此外,每一章都有“举一反三”和“习题”,以便读者及时运用所学的方法解决相似的问题,且在附录中收录了语言、链表、概率等其他题型。书中的每一道题都是面试的高频题目,反复出现在近5年各大公司的笔试和面试中,对面试备考有着极强的参考价值。

《.NET程序员面试秘笈》

张云翯著

本书是一本解析.NET面试题的书,可以帮助求职者更好地准备面试。全书共11章,囊括了目前企业中常见的面试题类型和考点,包括.NET语言基础、基类、接口和泛型、.NET高级特性、Windows窗体编程、ADO.NET编程、SQL查询及LINQ、ASP.NET程序开发和算法趣味题等。通过技术点解析、代码辅佐的方式使读者能深刻理解每个考点背后的技术。

紧扣面试焦点,对各种技术剖析一针见血,是目前想找工作的.NET程序员和刚毕业学生的面试宝典。

《软件测试工程师面试秘籍》

G.li, 51Testing软件测试网 著

本书用轻松、愉快、亲切的语言为广大应聘测试岗位的读者组织了一场求职战役。书中语言精练,内容丰富,涵盖应聘基本流程、开发类基础知识、测试类专业知识、笔试面试技巧,并穿插了大量名企的笔试面试题。相信必能帮助对应聘完全知的菜鸟们迅速成长为百战百胜的、羽翼丰满的雄鹰。

本书适用范围广,包含了各类语言的笔试、面试题,以及Java、C++、C#等。《软件测试工程师面试秘籍》专业实用性强,除了有一般程序员的基本知识和题目外,还另外针对测试这个岗位设计了一个章节,包含Web测试、移动App测试、游戏类测试等场景。

《Android高薪之路—Android程序员面试宝典》

李宁著

本书取材于各大IT公司面试真题,所给出的试题尽可能地覆盖了Android应用开发的各个方面,而且大多数试题都有解析部分,读者可以通过这部分更深入地理解试题中所包含的技术内容,希望真正做到由点成线,举一反三。

书中还将Android中涉及的各个常用技术问题进行筛选、分类。这样读者可以有的放矢,对自己还没有掌握的Android技术进行重点攻破,从而起到事半功倍的效果。除了对每道题目都有详细的解析和回答外,对相关知识点还有扩展说明。对面试中Android常见的题型和常用解答技巧进行了介绍,它不仅能帮助求职者快速复习相关知识点,也对现代职业人如何有效求职做了详细解说。

本书对于读者从求职就业到提升计算机专业知识都有显著的帮助,适合计算机相关专业应届毕业生阅读,也适合作为正在应聘软件行业的相关就业人员和计算机爱好者的参考书。

-END-

发布了556 篇原创文章 · 获赞 298 · 访问量 90万+

猜你喜欢

转载自blog.csdn.net/epubit17/article/details/104791409
今日推荐