学习软件开发时我面临的两大挑战 - Kinyanjui Wangonya


我在学校学习计算机科学。专门从事软件方面的工作。毕业后,我觉得我知道的很多。我在课堂上做了几个项目,还有一些副项目,所以编码对我来说并不是什么新鲜事。现在我可以付钱编写软件,对吗?错误。
我不知道的是,除了编写有效的代码之外,软件开发还有很多。还有很多我需要学习的东西。我的意思是很多。

OOP
我讨厌学校里的Java和C ++。你问为什么?类,对象,方法。我从来不理解他们,也不关心。为什么要使代码复杂化?只需编写一个能够满足您需求的功能。你还需要别的东西吗?写另一个功能。这可能是因为我的第一语言是C语言,但用传统的自上而下的结构化编程方法编写代码对我来说很有用。我在C之后坚持使用Javascript因为我知道我可以坚持使用函数。

长话短说,我无法忍受它很长时间。采用OOP方式有很多好处。理论上我知道这一点,但在使用Python开发api的bootcamp项目时,它确实让我感到震惊。我意识到我的代码中有太多的重复。文件变得非常庞大,事情变得无法控制。我想,必须有更好的方法来做到这一点。类。方法。遗产。我必须学习OOP。

让我的脑筋转弯并不容易,但自从我做到了,编程从未如此愉快。我觉得我对代码库有了更好的理解,而且所有东西都很好地融合在一起。这让我接下来的事情:

TDD
是的,我在学校学到了测试。黑盒测试。白盒测试。所有的理论。但我从没想过在测试驱动开发方面进行测试。我认为测试是针对用户的。只需编写软件,看它是否有效。如果是,请将其发布并稍后进行改进。如果有人说它不起作用,那么......

我再次听说从头开始学习。这是非常忙碌的,因为它对我来说是全新的。我只是无法遵循这个过程:编写检测失败的测试,编写代码以使测试通过,重构。我更喜欢自己的方式:编写代码,编写测试让其通过,重构。但是我发现,我的测试即使输出错误也能通过时 ,就不淡定了,存在是有原因的。

我已经了解到,首先编写测试确实让我对手头的任务进行了全面的概述,这有点像我必须用我编写的代码实现的目标。这有助于我的工作效率,因为我必须一次专注于一件事,使我的代码更清洁。

结论…
我不断学习的东西越来越多,但我说我学到的最重要的事情是,如果你从来没有让自己去学习新事物,你永远不会知道你不知道什么。如果我从不推动自己参与比我过去参与的更大的项目,我永远不会看到OOP的重要性。如果我没有推动自己进入专业发展,我从未见过测试的重要性。可以坐下来认为你知道事情是如何运作的,但总有更多,你可能不知道的更多。如果你觉得自己有一段时间没有学到新东西,那么你可能会陷入平庸之中。永不安定下来 持续增长。