初次看到软件程序的全部功能代码时,是否感到极度未受教育是正常的?

好吧,如果您没有计算机编程知识 ,是的,当然! 对于一个外行来说-程序代码块或多或少是完全废话-偶尔用/ *和* /包围适当的英语句子。

如果我看到一页用广东话写的书,几乎是一样的事情,因为我没有受过广东话的教育。 它几乎全都看起来像胡话-但其中有一些英语单词和一些数字。

如果您说您已经在学习一种编程语言-并且以为在第一次看到LARGE程序之前一直做得很好-那么也许您会感到比应有的更为艰巨。

我开发的软件具有超过一百万行的C ++代码-即使经过40年的研究,它仍然令人生畏!

但是,您将其分解为大的功能部分,然后将每个部分分解为类层次结构和相关函数组,然后将其分解为单个功能,然后很快便有了50行代码块,您可以坐下来并消化。

然后,诀窍是弄清楚如何只专注于您今天需要工作的细小部分……可能需要修复的错误所在的区域。 在正确的地方插入一些小的新功能。

当我开发了数百万个行程序时,通常只需要随时记住大概10,000行软件的思想摘要即可。

  • 初次看到软件程序的全部功能代码时,是否感到极度未受教育是正常的?

可能吧。

这可能不是“正常的”,但肯定不是不合理的反应。

函数式编程是程序员可以学习并做得最出色的事情之一。

它与那些最初教其他方法的通常方法不同。

我注意到的一件事-和许多其他问题一起在Internet上问到-是虽然我可以解决大多数问题,即使使用功能方法,但我的解决方案总是比专家更长或更复杂。

其中一些只是学习特定语言中可用的功能,而某些原因是尚未理解或内部化大多数功能语言中常见的功能习语。

好消息是,实践可以解决这一问题—甚至可以以名义上的“非功能性”语言改善您的代码。

自从研究Clojure,F#和Haskall之后,我的PowerShell和Perl确实得到了改善。

(而且我已经进行了很长时间的编程,并且大多数人认为我非常出色。)

事实是,功能程序员(从Lisp程序员开始)往往比普通程序员要好得多。

我看到的第一个功能齐全的软件是CMS平台Drupal。 我只是在学习PHP,并试图修改代码以更改布局。 更像是到处乱窜,我真的不知道自己在做什么。 我以为,也许我必须先从大学毕业,然后才能学习所有这些东西的工作原理-核心,“内核”或基准等。

然后我毕业了,意识到我的大学没有教给我。 我学习了设计模式,但是我无法理解它们,甚至无法区分它们。 我的第一份工作是做SAP。 想象一下,当我查看SAP的基本代码时,我感到震惊和敬畏。

我以为没有人能独自理解所有这些。 确实,这些企业软件已经存在了很长时间,并且必须投入数百万个工作日。 那时我才知道,在这个世界上有产品专家–真正的“顾问”,他们仅在该企业产品上就有10到20年的经验,并因此而取得了巨大的成就。

在企业界,重要的是要找到专长并专注于它,因为企业应用程序非常复杂。 他们没有办法在教室环境中教书,而学习它们的唯一方法就是成为实施项目的一部分,甚至是支持和维护。 在SAAS世界中,这可能完全是一场不同的比赛。 我不知道,因为我没有经验,但是原理可能是相同的。

因此,没有一个教室可以教会您所有有关软件的知识。 您必须在现实世界中积累经验。

“极度未受过教育”也许不是正确的用语,不知所措,即使在从事超过15年的行业工作之后,无论何时我开始从事由数十个我之前的人撰写的现有项目,一个人都会不知所措。 一旦开始使用该软件的各个部分,您就会越来越习惯它。