第二:跟着视频学能学的更好,知识体系更全,一般视频教程的内容是很丰富的,从浅入深,难度也是递增的,老师知道怎么教学生,老师有更多的经验。有些书籍只是把知识点列举出来,并没有自己的实际经验。如果你是选择书籍,那么问题来了,你要选什么书籍,Java知识体系庞大,难道你要选Java从入门到精通吗?你知道那本书有多厚吗?很厚很厚,我敢保证你看不下去。
第三:如果你是初级程序员你跟着视频学老师可以告诉你在学习中可能遇到什么问题,或者老师会故意犯错,一起排查错误,能够帮你锻炼排查问题的能力,如果你看书是不具备的,如果你看书遇到问题了可能会找不出问题,或者会花很长的时间才能找到,遇到问题不能解决这是非常打击学习的积极性的。
第四:网上免费的视频成套成体系的有很多,而跟着书籍学你不知道你要学什么,选择什么书籍。
第五:一般网上的视频会附带着更多的资料,如源码、技术文档、讲解课件、安装工具等,这些资料不用自己在去网络上找了。
The Pragmatic Programmer:From Journeyman to Master
作者:[美]Andrew Hunt,David Thomas
内容简介:
《程序员修炼之道》之所以在全球范围内广泛传播,被一代代开发者奉为圭臬,是因为它可以创造出真正的价值:或编写出更好的软件,或探究出编程的本质,而所有收获均不依赖于特定语言、框架和方法。
“要把低级的知识放在代码中,它属于那里;把注释保留给其他的高级说明。”
—— 引自 第2章 务实的方法
Clean Code:A Handbook of Agile Software Craftsmanship
作者:[美]Robert C. Martin
内容简介:
干净的代码,既在质量上较为可靠,也为后期维护和升级奠定了良好基础。作为编程领域的佼佼者,本书作者给出了一系列行之有效的整洁代码操作实践,并辅以来自实际项目的正、反两面的范例。只要遵循这些规则,就能编写出干净的代码,从而有效提升代码质量。
“我们都曾经瞟一眼自己亲手造成的混乱,决定弃之不顾,走向新一天。 我们都曾经看到自己的烂代码居然能运行,然后断言能运行的烂程序总比没有强。 我们都曾经说过有朝一日再回头清理。当然,那些日子里,我们都没听过勒布朗( LeBlanc )法则:稍后等于永不( Later equals never.) 。”
——引自 第1章 1.2 糟糕的代码
Code Complete
作者:[美]Steve McConnell
内容简介:
本书被广泛认为是编程的最佳实用指南,其十多年来一直帮助开发人员编写更好的软件。
这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。
“有效地管理(需求)变更是实现高质量的一个关键。”
——引自 第20章 软件质量概述
Refactoring: Improving the Design of Existing Code
作者:[美]Martin Fowler
内容简介:
书中清晰揭示了重构的过程,解释了重构的原理和实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。
本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少开发过程中的风险。
“过去20年,《重构》一直是我案头必备的图书。每次重读,仍有感悟。对我而言,《重构》的意义不只在于指导代码重构,更在于让人从一开始就知道什么是好的代码,并且尽量写出没有'坏味道'的代码。Martin Fowler这次对本书进行的重构,体现了近年来编程领域的一些思潮变化。看来,既有设计,永远有改进空间。”
——韩磊,《代码整洁之道》译者
Head First Design Patterns
作者:[美]Eric Freeman,Bert Bates,Kathy Sierra,Elisabeth Freeman
内容简介:
本书向您展示了功能强大、优雅、可重用、灵活的设计模式,并利用认知科学和学习理论的最新研究来创造多感官的学习体验,采用视觉丰富的形式,专门为大脑的工作方式而设计,而不是使您沉入睡眠的繁琐的文本输入法形式。
“针对接口编程,而不是针对实现编程。”
——引自 影印版 第11页
The Mythical Man-Month:Essays on Software Engineering
作者:[美]Frederick P. Brooks Jr
内容简介:
本书内容源于作者Brooks在IBM公司任System/360计算机系列以及其庞大的软件系统OS/360项目经理时的实践经验。在本书中,Brooks为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践,为每个复杂项目的管理者给出了自己的真知灼见。
“简洁和直白来自概念的完整性。每个部分必须反映相同的原理、原则和一致的折衷机制。在语法上,每个部分应使用相同的技巧;在语义上,应具有同样的相似性。因此,易用性实际上需要设计的一致性和概念的完整性。”
——引自 章节 团队的性质
The Clean Coder:A Code of Conduct for Professional Programmers
作者:[美]Robert C. Martin
内容简介:
本书是编程大师 Bob 大叔 40 余年编程生涯的心得体会, 讲解成为真正专业的程序员需要什么样的态度、原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来人引路,助其职业生涯迈上更高台阶。
“软件行业的飞速改变,意味着软件开发人员必须坚持广泛学习才不至于落伍。”
——引自 第1章 专业主义
Working Effectively with Legacy Code
作者:[美]Michael Feathers
内容简介:
世界级计算机专家Michael C. Feathers的经典之作,软件开发大师Robert C. Martin作序倾情推荐,修改遗留代码的权威指南。深入剖析修改遗留代码的各种方法和策略,从理解遗留代码、为其编码测试、重构及增加特性等方面给出大量实用建议,是所有程序开发人员必读之作。
“封装是好事情,但可别对测试人员这么说,他们可不这样想。过分庞大的类往往隐藏了过多的东西。”
——引自 第20章 处理大类
Design Patterns
作者:[美]Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides
内容简介:
四位顶尖的设计师在面向对象软件的设计方面积累了丰富的经验,针对常见的设计问题提出了一系列简洁、明了的解决方案。这23种设计模式可让设计人员创建更加灵活,美观,可重用的设计,而无需自己再寻找解决方案。
“将系统分解成对象集合要考虑许多因素:封装、粒度、依赖关系、灵活性、性能、演化、复用等等,它们都影响着系统的分解,并且这些因素通常还是互相冲突的。”
——引自 第1章 1.5 组织编目
Cracking the Coding Interview
作者:[美]Gayle Laakmann McDowell
内容简介:
本书层层紧扣程序员面试的每一个环节,全面而详尽地介绍了程序员应当如何应对面试,才能在面试中脱颖而出。
内容主要涉及面试流程解析,面试官的幕后决策及可能提出的问题,面试前的准备工作,对面试结果的处理,以及出自微软、苹果、谷歌等多家知名公司的189道编程面试题及详细解决方案。
第6版修订了上一版中一些题目的解法,为各章新增了介绍性内容,加入了更多的算法策略,并增添了对所有题目的提示信息。
顺便在这里说一下,我目前是在职Java开发,如果在学习Java的过程当中有遇见任何关于学习方法,学习路线等方面的问题,你都可以 点击 Java技术讨论,这里面聚集了很多正在学习Java技术的初学者,也有不少从事Java开发岗的大佬,与Java相关的问题都可以随时发出来讨论。
“我不是招聘人员,我是软件工程师。因此,我知道要当场提出出色的算法,然后在白板上编写无瑕的代码是什么感觉。 作为候选人和面试官,我都经历过这个过程。”