程序员可以学到最重要的技能
不,不,不,不,不。也没有。
一个大不。明确。
你所要做的是把这两个字母在一起,说这个词。
现在,让我们一起说。千万千万不要带!
良好的开端。
但是等一下。说不,当什么?
好吧,这是重要的,大部分的程序员(甚至老年人)容易混淆。
作为一个程序员,写代码是最大的你的工作的一部分。编程的一生中,你将不得不应对不同类型的代码请求。每个请求将迫使你做出艰难的决定。这一切都是好的。没有什么错。这是每个人都希望从你,作为一个程序员:编写代码。然而,这里有一个问题:你应该编写的所有代码,向你请求吗?
这个问题给我们带来了一个程序员最重要的技能可以学习:
不知道什么时候代码可能是程序员可以学到的最重要的技巧。- - - - - -可读代码的艺术
我完全同意。这是为什么呢?
编程是解决问题的艺术。所以很自然的,程序员解决问题。作为程序员,当我们有一个新的问题在我们面前可以解决或任何其他原因,需要从我们写的代码行,我们兴奋不已。
这是好的,因为我们是程序员。我们喜欢编写代码。
然而,过于兴奋编写代码让我们盲目的。它会导致我们忽略一些重要的事实会导致更大的问题在未来我们将会处理。
那么,这些重要的事实,我们倾向于忽视吗?
你写的每一行代码是:
- 代码已经被其他程序员阅读和理解
- 测试和调试代码
- 会增加你的软件缺陷的代码
- 代码,在未来可能会引入新的错误
Rich Skrenta写道,代码是我们的敌人:
代码是不好的。它腐烂。它需要定期保养。它需要发现的bug。新功能意味着旧代码必须适应。
代码越多,更多的地方有错误隐藏。语法检查或编译的时间越长。时间越长,需要一个新员工理解您的系统。如果你需要移动重构有更多的东西。
此外,更多的代码往往意味着更少的灵活性和功能。这是违反直觉的,但很多时候,一个简单的、优雅的解决方案是更快和更普遍的混乱和缓慢的代码由一个程序员的人才。
代码是由工程师。让更多的代码需要更多的工程师。工程师有n²沟通成本,所有这些代码添加到系统,同时扩大其功能,也会增加整个篮子的成本。
它是如此真实,不是吗?激发你的程序员的生产力和编码的心态是那些知道什么时候说不,什么时候不是代码。软件易于维护,持续时间长,使帮助他们的用户是不包含任何不必要的代码行。
最好的代码是没有代码,最有效的程序员的人知道什么时候不是代码。
你怎么能知道什么时候不代码?
很自然感到兴奋当你从事一个项目,考虑所有的功能你想实现降温。但是程序员倾向于高估他们的项目需要多少特性。许多功能未完成或未使用的或者仅仅是使应用程序过于复杂。你应该知道什么是必不可少的项目,避免犯这个错误。
理解您的软件和其核心定义的目的是知道什么时候不使用代码的第一步。
让我给你举个例子。假设你有软件,只有一个目的:管理电子邮件。发送和接收电子邮件,为此,项目是两个重要的特性。你不能指望软件来管理你的待办事项清单,可以吗?
所以你应该拒绝任何可能的特性请求,这个定义是无关紧要的。这个时刻你可以确定你知道什么时候不编写代码。
永远不要扩大软件的目的。
一旦你知道什么是必不可少的项目,你将会意识到下次当你评估可能的代码请求。你会知道你的要求编写代码。应该实现这功能吗?哪些代码值得写?你会质疑一切,因为你将知道不必要的代码如何杀死你的项目。
不知道什么时候代码让您的代码库。
只有两个或三个源文件当你开始你的项目。一切看起来那么简单。只需几秒钟来编译和运行代码。你知道在哪里可以找到你正在寻找什么。
然后,随着项目的发展,越来越多的源文件填满你的目录。每一个代码文件包含成百上千的代码行。组织它们,你很快就会需要多个目录。记住哪个函数调用其他函数更困难,需要更多的工作和跟踪bug。管理你的项目变得非常困难,你需要更多的程序员来帮助。通信开销随着程序员数量的增加而增加。你会越来越慢。
最后,这个项目变得巨大。添加新特性是痛苦的。甚至做一些小的改变需要时间。解决当前错误总是引入新的错误。你开始错过最后期限。
现在,生活是一种斗争。为什么?
因为你不知道不要代码时,你答应了所有可能的功能要求。你是盲目的。编码新事物使你忽视基本事实。
就像一个恐怖电影,对吧?
这是会发生什么,如果你一直对任何事说好。知道什么时候不编码。消除所有不必要的代码从你的项目。这将使您的生活更轻松,使您的软件持续时间更长。
我的一个最有效的天扔掉1000行代码。——Ken Thompson
我知道,知道什么时候不代码太难了。即使是高级程序员。也许我写的这篇文章难以理解的初级程序员,这是好的,可以理解的。
我知道你刚开始编程的旅程,你想写代码。你是如此兴奋。这是很好的。永远不要失去这个兴奋但也不要忽视重要的事实。我们知道他们犯自己的错误。你会犯错误,你可以从错误中学习。但至少你可以更有意识的如果你能从我们的经验中学习。
保持编码但知道何时说不编码。