在学习 OOP 时,您必须了解相当复杂的概念。
纯理论问题:
新手程序员应该对理论了解多深?
很明显,他必须知道基本原理。
继承、封装、多态。
必须了解基本的编程概念。
类、对象、动态成员、静态成员、抽象、接口......
但接下来是什么?
他需要多少 UML 知识、不同编程语言之间的差异以及其他细微之处?
您认为对于新手程序员开始制作真正有用的东西绝对必要的知识是什么?
如果您对问题不感兴趣,那么您将无法进一步阅读。
我不得不为我的团队招募程序员。
学生之间的理论知识传播有时会有很大差异。
好吧,很明显,我们立即淘汰了那些完全疏忽大意的人,他们无法区分静态方法和动态方法。
但更进一步......根据我的经验,学生在开始实际工作之前必须学习的额外特定知识量相当大。而这绝不是“组合”、“聚合”或“关联”。在我 30 多年的编程实践中,这些概念的知识只派上了用场几次!也许我只是在错误的办公室工作需要...
在这个论坛和其他地方,我经常看到一些连基础都不懂的学生问的很清楚,却爬进了丛林,这在生活中一点用处都没有。在实践中,通常需要的是学科领域的知识,而不是一些理论知识,即理论上哪个元素被称为。很明显,需要知道存在一种或另一种交互方法的一般概念。但专门研究和尝试在真空中研究球形马,大多数情况下,它是完全没用的。
未来,如果你已经有相当扎实的编程经验,你已经可以开始深入了解不同术语的本质了……尤其是如果任务是设计一个相当复杂的系统。为了能够说出别人的本质......
也许我错了。因此,我问一个问题。
在我看来(也是 30 年的实践),编程是一个如此多样化的领域,以至于这里不可能有通用的食谱。是的,如果我们考虑一切应该如何理想化,那么新手程序员必须学习很多东西才能开始做某事:数据结构、算法、OOP、良好代码设计的规则、学习如何有效地使用开发环境、快速搜索对于互联网上的问题的答案,......是的,你仍然可以在这里输入很多东西。但实际上这不会发生。他们总是从很少的理论开始编程,在这个过程中逐渐扩展知识。此外,不同的编程领域需要不同程度的理论背景。写一个大型项目是一回事,有很多人参与,没有深厚的知识是不可能做到的,让整个事情起飞。另一件事是一些简单的站点,您无需任何特殊知识即可在其中收集一些 Java Script 内容。还有更多来自其他编程领域的中间选项和选项。
因此,在我看来,有必要为您的特定项目和特定职位制定对程序员的要求。当人们被雇用时,通常会发生这种情况。有一定的要求 - 要知道这个和那个,候选人会被搜索并测试这些东西的知识。这里没有通用的食谱,也不可能。我们需要不同的程序员。项目中的某个人需要强大的通才,他们几乎什么都知道,什么都能写,而且他有钱给他们。并且有人需要“数量更多,价格更便宜”的纯编码器,以便他们“从这里挖到栅栏”,铆接简单的网站,或者我不知道他们还做了什么简单的事,主要是“拿得更多,扔得更远”,究竟是什么 - 项目经理会解释。
这里根本没有通用的食谱。生活是复杂多变的。:)