对于很多人来说,找到一份工作不是问题,但找到一个合适而满意的工作,却不那么简单。谈到“合适”和“满意”,就必须从职业规划说起。
每个人的性格、经历和爱好截然不同,理想也不尽相同。理想无法用价值衡量,更无法权衡高低贵贱,每个个体的梦想都是值得尊敬并值得奋斗一生的。做一份工作,实际就是追寻梦想的过程,而为了完成梦想,必须有一个长期规划,从而指导我们选择工作。它是择业过程中最本质和最原始的参考借鉴。
为此,小编为你精选一份程序员面试书单,分为职业规划、编程技能两部分,适合刚毕业的大学生、正准备换工作的程序员们,涵盖算法工程师、Java工程师、测试、产品经理等多个领域。
方向篇
职业生涯规划
《软技能 代码之外的生存指南》
约翰 Z.森梅兹 著
这是一本真正从“人”(而非技术也非管理)的角度关注软件开发人员自身发展的书。书中论述的内容既涉及生活习惯,又包括思维方式,凸显技术中“人”的因素,全面讲解软件行业从业人员所需知道的所有“软技能”。
对大多数软件开发人员而言,编码才是有趣的,而如何与客户、同事以及经理们打交道,如何保证工作效率,如何保障财务安全,如何保持自己的体形,如何找到真爱……这些则统统被视为畏途。本书恰恰可以在这些方面帮到你!
《代码整洁之道》
马丁 著
细节之中自有天地,整洁成就卓越代码。尽管糟糕的代码也能运行,但如果代码不整洁,会使整个开发团队泥足深陷,写得不好的代码每年都要耗费难以计数的时间和资源。然而这种情况并非无法避免。。
这本书是软件工程大师马丁经典力作,由互联网产品与运营专家韩磊献译,本书荣获第13届Jolt大奖。
从《代码整洁之道》中可以学到:好代码和糟糕的代码之间的区别:如何编写好代码,如何将糟糕的代码转化为好代码:如何创建好名称、好函数、好对象和好类;如何格式化代码以实现其可读性的优化:如何在不妨碍代码逻辑的前提下充分实现错误处理;如何进行单元测试和测试驱动开发。
《代码整洁之道 程序员的职业素养》
罗伯特·C.马丁 著
成功的程序员在以往的工作和生活中都曾经历过大大小小的不确定性,承受过永无休止的压力。他们之所以能够成功,是因为拥有一个共同点,都深切关注创建软件所需的各项实践。他们将软件开发视为一种需要精雕细琢加以修炼的技艺,他们以专业人士的标准要求自己,他们具有职业素养。
软件开发大师Robert C. Martin在书中介绍了真实软件技艺中的各项原则、技术、工具和实践,展示了怎么以自豪、自尊和自信的心态进行软件开发,怎么取得卓越表现和丰硕成果,怎么做到有效沟通和确切估算,怎么以坦诚的心态面对困难,并引导读者认识到专业程序员肩负的责任重大,阐述了什么才是程序员的职业素养。
《编程珠玑(第2版 修订版)》
乔恩·本特利(Jon Bentley) 著
本书作者Jon Bentley,世界计算机科学家,被誉为影响算法发展的十位大师之一。
多年以来,当程序员们推选出心爱的计算机图书时,《编程珠玑》总是位于前列。正如自然界里珍珠出自细沙对牡蛎的磨砺,计算机科学大师JonBentley以其独有的洞察力和创造力,从磨砺程序员的实际问题中凝结出一篇篇不朽的编程“珠玑”,成为世界计算机界名刊《ACM通讯》历史上受欢迎的专栏,结集为两部不朽的计算机科学经典名著,影响和激励着一代又一代程序员和计算机科学工作者。本书为首卷,主要讨论计算机科学中本质的问题:如何正确选择和高效地实现算法。
在书中,作者选取许多具有典型意义的复杂编程和算法问题,生动描绘了历史上众大师们在探索解决方案中发生的轶事、走过的弯路和不断精益求精的历程,引导读者像真正的程序员和软件工程师那样富于创新性地思考,并透彻阐述和总结了许多独特而精妙的设计原则、思考和解决问题的方法以及实用程序设计技巧。
《编程珠玑(续 修订版)》
乔恩·本特利 著
本书是计算机科学方面的经典名著《编程珠玑》的姊妹篇,讲述了对于程序员有共性的知识。延续了《编程珠玑》的特色,通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行透彻而睿智的描述,为复杂的编程问题提供清晰而完备的解决思路。涵盖了程序员操纵程序的技术、程序员取舍的技巧、输入和输出设计以及算法示例,这些内容结合成一个有机的整体,如一串串珠玑展示给程序员。(Jon Bentley)
《重构 改善既有代码的设计》
马丁·福勒(Martin Fowler) 著
软件开发的不朽经典,生动阐述重构原理和具体做法,普通程序员进阶到编程高手必须修炼的秘笈。
重构,一言以蔽之,就是在不改变外部行为的前提下,有条不紊地改善代码。多年前,正是本书原版的出版,使重构终于从编程高手们的小圈子走出,成为众多普通程序员日常开发工作中不可或缺的一部分。本书也因此成为与《设计模式》齐名的经典著作,被译为中、德、俄、日等众多语言,在世界范围内畅销不衰。
本书凝聚了软件开发社区专家多年摸索而获得的宝贵经验,拥有不因时光流逝而磨灭的价值。今天,无论是重构本身,业界对重构的理解,还是开发工具对重构的支持力度,都与本书出版时不可同日而语,但书中所蕴涵的意味和精华,依然值得反复咀嚼,而且往往能够常读常新。
面试篇
技能开发
《程序员面试白皮书》
逸超, 董飞著
这是一本介绍程序员面试的参考书,通过一系列的实例介绍了数据结构、算法以及计算机专业的其他基础知识。同时,本书还在各章中及时回顾教材中的重点内容,书中的题目也很据参考价值,通过实例与知识点相结合的方式帮助读者掌握要领。除此之外,本书还将引导读者分析题目,帮助读者理清思路并最终解决问题。
《师兄教你找工作——100场面试 20个offer背后的求职秘密》
韩速(@美牙君)著
本书以应届毕业生的视角,对求职的整个过程进行了分享和描述。涉及职业规划、前期准备、简历、网申、邮件投递、内推、在线测评、笔试、电面、结构化面试、群面、压力面、谈offer、选offer以及签约注意事项等各个环节。既解答了同学们最关心的若干问题,也包括求职技巧分享。既帮助大家正确地审视自己,也帮助读者客观地面对企业。
《趣学算法》
陈小玉 著
本书从算法之美娓娓道来,没有高深的原理,也没有枯燥的公式,通过趣味故事引出算法问题,包含50多个实例及完美图解,结合学生提问,分析算法本质,并给出代码实现的详细过程和运行结果。
本书可作为程序员的学习用书,也适合从未有过编程经验但又对算法有强烈兴趣的初学者使用,同时也可作为高等院校计算机、数学及相关专业的师生用书和培训学校的教材。