最后
分享一些资料给大家,我觉得这些都是很有用的东西,大家也可以跟着来学习,查漏补缺。
《Java高级面试》
《Java高级架构知识》
《算法知识》
-
学习写有用的测试,学着用 TDD(测试驱动开发)。TDD 是一种软件开发流程,它是对如下简短开发周期的重复:写测试;运行所有测试,查看新的测试是否运行;写代码;运行测试;重构代码;重复。
-
先解决问题再写代码。不要在一筹莫展的时候开始编程。
-
不要记代码,而是理解逻辑。
-
如果你复制粘贴 Stack Overflow 中的解决方案,请确保自己首先理解它。学习用恰当的方式使用 Stack Overflow。
-
想学习,先实践。创建示例,并使其运行,因为只通过阅读来学习远远不够。
-
研究他人的代码,也时不时让别人研究你的代码。结对编程并进行代码 review 是不错的想法。
-
不要重复造轮子。
-
代码是最好的文档。
-
了解如何搜索。你需要有经验,大量阅读,了解需要找什么。
-
你写的代码以后会由自己或别人进行维护,因此写的时候想着读者,不要把自己当做最聪明的人。写代码要像写故事一样。
-
用谷歌解决错误的最佳方式是复制粘贴。
-
不要放弃,问题总能得到解决的。糟糕的时刻总会过去。
-
好好休息。解决问题的最佳方式是先让大脑得到充分休息。
-
学习使用软件设计模式。设计模式是软件设计常见问题的解决方案。每个模式就像一个蓝图,你可以依据它进行自定义,进而解决自己代码中的常见设计问题(记住,不要重复造轮子)。
-
尽可能地使用集成工具和自动化方式。
-
练习编码套路(code kata):编码套路是一种编程练习,可以帮助程序员通过重复实践来提升技能。示例参见:https://codingdojo.org/kata/
-
编程并达到接口水平,而不是实现水准。依赖注入是必要的,参见 SOLID 原则。
-
重构——测试 - 重构。重构即对现有代码进行重建、改动,在不改变其内部行为的前提下提升内部结构。
-
必要的时候寻求帮助,不要浪费时间。
-
多实践,熟能生巧。
-
尽管有时候注释可以帮到你,但不要在这上面花费太多注意力。注释可能是过时的。
-
了解自己的开发环境,并建设足够强大的开发环境,如 IntelliJ。
-
重用组件。
-
在开发 web 应用时,思考移动端及其相关的电量和带宽限制。
惊喜
最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)
5ff00ff254613a03fab5e56a57acb)收录**