我不打算在本书中详细介绍如何正确构建代码 - 就像我说的 - 我已经为您提供了一个很好的资源,但 您应该努力学习如何从一开始就编写好的,干净的代码 而不是事后学习这个技能。
我可以保证,即使你是初学者,如果你能写出好的,干净的,简洁的,可理解的代码,在结构本身中表达它的意义,那么任何看到你的代码的浏览者都会 认为你是经验丰富的专业。
在某种程度上,你将会,或者至少在未来的道路上,因为你将把编码视为一种职业,而不仅仅是一份工作
书籍和文章推荐:
<<Head First设计模式>>
面向对象设计
这个是有争议的,特别是如果你正在学习一种非面向对象(OO)的程序语言,但是 足够的软件开发世界会考虑OO设计,所以你需要确保你理解它。
面向对象设计 是一种设计复杂程序的方法,这些程序将它们分解为单个类或对象(类的实例化),它们封装了功能并具有特定的角色和职责。
在软件开发中, 我们总是试图管理复杂性。
根据对象进行思考有助于我们这样做,因为它允许我们从一堆交互组件中定义和设计一个复杂的系统,而不是试图从整体上解决整个复杂性。
今天有很多函数式编程语言,但是 在软件开发中你会发现的最流行的语言和模式仍然会受到面向对象设计和分析的影响。。
您应该很好地理解类是什么,不同类型的继承是什么 - 以及何时使用它们 - 以及理解多态 和封装等术语 。
算法和数据结构如果您参加传统的大学或大学计划获得计算机科学学位,这将是您将要学习或将要学到的内容的很大一部分。
算法是解决各种计算机科学/编程问题的常用方法。
例如,有几种算法通常用于以编程方式对事物列表进行排序。这些排序算法中的每一种都有一组不同的属性,包括速度,内存大小要求以及它所处理的理想数据类型。
在计算机科学领域有许多这样的算法,理解如何编写 这些算法的自己变体 以解决在解决实际编程问题时可能遇到的棘手问题也 很重要。
通常,熟悉算法可以让一个开发人员在一小时内解决问题,这可能需要另一个开发人员几天才能弄明白。
除非你熟悉并且熟悉算法,否则你 甚至不知道已经存在一个优雅的解决方案。所以,仅仅因为这个原因,我认为这是一项有价值的技能。
数据结构属于类似的类别, 并与算法结合使用。
所有软件开发人员都应该熟悉几种数据结构,包括:
数组或向量
链接列表
堆栈
队列
树
哈希
集
通过很好地掌握数据结构和算法,您可以轻松而优雅地解决许多困难的编程问题。
当我第一次开始编程时,我在数据结构和算法上非常糟糕,因为我主要是自学成才。
很快,很明显这些技能在真正的编程世界中是多么有用,因为我遇到了以前不知道如何解决的问题,现在这些问题非常容易和有趣。
事实上, 我认为这是软件开发中最有趣的领域之一。通过解决一个棘手的问题并利用数据结构和算法来开发一个干净,优雅的解决方案非常有效。