真实世界的软件开发-三-

53 阅读6分钟

真实世界的软件开发(三)

原文:zh.annas-archive.org/md5/9fe6488c1d46ccf6de3ab02ce7d234fc

译者:飞龙

协议:CC BY-NC-SA 4.0

第八章:结论

如果你一直读到这里,希望你已经喜欢这本书了。我们写作的过程也很愉快。在这个结尾章节中,你将了解到如何在你的编程生涯中下一步怎么走。我们将提供一些建议,帮助你如何发展你的技能,并在作为开发者的职业生涯中推动自己进入下一个级别。

基于项目的结构

本书的项目结构旨在帮助你更轻松地理解软件开发的概念。我们在软件项目内讨论的话题旨在帮助你理解软件工程决策的背景。在软件工程中,上下文至关重要——在一个上下文中正确的决策在另一个上下文中可能并不适用。许多开发者由于误解继承是代码复用的机制而过度使用和滥用子类化。希望我们已经在第四章中让你对这个想法有所警觉。

但是你不能简单地希望通过阅读一本书就神奇地成为一名专业的软件开发者。这需要练习、经验和耐心。这本书只是帮助优化和改进这个过程的工具。这就是为什么我们在每一章节中都添加了一个“关于你的迭代”部分——它们提供了关于如何进一步利用本书内容并提高你理解的建议。

关于你的迭代

作为一名软件开发者,你可能经常以迭代的方式处理项目。也就是说,将最高优先级的一两周工作项划分出来,实施它们,然后利用反馈决定下一组工作项。我们发现,经常评估自己技能的进展是非常值得的。

定期对自己进行回顾可以帮助你在需要时获得焦点和方向。敏捷软件开发通常涉及每周的回顾,但你个人不需要那么频繁地做。每季度或每半年进行一次回顾会非常有帮助。我们发现一个有用的主题是评估哪些技能将有助于你当前或未来的工作。为了确保这些技能得到提升,设定下一个季度的目标是很有帮助的。这可以是学习或改进的事项。这个目标不需要像学习全新的编程语言那样宏大;可以是像掌握一个新的测试框架或几种设计模式这样简单的事情。

当涉及到技能时,我们听到一些开发者的反对意见。一个经常被问到的问题是“我怎么能不断地学习新技术、实践和原则呢?”这并不容易,每个人都很忙碌。关键在于不要试图在技术行业学习所有东西。那是一条通向疯狂的捷径!找到一些关键技能,这些技能会随着时间的推移为你服务,并建立在你现有的技能基础之上,这才是帮助你成为一名优秀开发者的关键。关键是不断地改进自己,对自己进行迭代。

刻意练习

尽管本书涵盖了许多成为优秀开发者所需的关键概念和技能,但实践是至关重要的。仅仅阅读是不够的——实践可以帮助你内化这些技能并自己应用它们。在日常工作中寻找适合应用不同技术的情境会有所帮助。因为本书描述的每种模式都有适用和不适用的地方,所以考虑那些不适合使用技术的情形也是很有帮助的。

我们常常认为自然天赋和智力是成功的关键因素,但大量研究已经证明,实践和工作才是真正的成功关键。例如,Geoff Colvin 的《天才是被高估的》(Portfolio, 2008)和 Malcolm Gladwell 的《异类:成功之道》(Penguin, 2009)评估了成功生活的许多关键因素,而刻意练习是其中最有效的一个。

刻意练习是一种有目的且系统化的练习形式。刻意练习的目标是试图提高表现,需要专注和注意力。通常,当人们练习他们的技能以提高它们时,他们只是在重复。一遍又一遍地做同样的事情,期望在它上面变得更好,这并不是做事情的最有效方式。

一个很好的例子是当我们在探索和学习Eclipse Collections 库时。为了系统地理解和学习该库,我们按顺序完成了附带的一套出色的代码 Kata。为了确保我们真正理解透彻,我们重复进行了三次 Kata。每次都是从头开始,然后将我们之前的解决方案与当前的进行比较,找到更清晰、更好和更快的方法。

问题在于,重复个人行为意味着它们变得自动化。所以,如果你在职业生涯中养成了坏习惯,你可能会通过在工作中实践来教给自己。经验加强习惯。刻意练习是打破这一循环的方法。刻意练习可能包括系统地从书籍中练习新方法。它可能包括多次采用不同方法解决您以前解决过的小问题。它可能包括参加旨在进行练习设计的培训课程。无论选择哪条路,刻意练习都是随着时间磨练技能并超越本书所涵盖内容的关键。

下一步和额外资源

好了,希望你现在相信这本书不是学习的终点,但接下来应该看什么呢?

参与开源是学习更多关于软件并拓展视野的好方法。许多最受欢迎的 Java 开源项目,如 JUnit 和 Spring,都托管在GitHub上。有些项目可能比其他项目更友好,但通常开源维护者工作繁忙,需要在他们的项目上获得帮助。你可以查看 Bug 追踪器,看看是否有什么可以做的。

正式的培训课程和在线学习是提升技能的另一种实用和流行方式。在线培训课程越来越受欢迎,PluralsightO'Reilly 学习平台都有大量优秀的 Java 培训课程可供选择。

开发者获取信息的另一个绝佳来源是博客和推特。理查德拉乌尔都在推特上,并经常发布关于软件开发的链接。编程 Reddit经常作为一个强大的链接聚合器,就像Hacker News一样。最后,本书作者运营的培训公司(Iteratr Learning)还提供一系列免费的文章,供任何人阅读。

感谢您阅读本书。我们感谢您的想法和反馈,并祝愿您作为 Java 开发者的旅程一切顺利。