作为程序员,在日常的 Coding 中,你遇到过哪些坑?又有什么样的心得与体会。 作者 | Alec Jones 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 以下为译文: 大家好,我名叫Alec,今年17岁,我从12岁起就开始学习网络开发了。我远非优秀的开发人员,但我学到了一些普通开发人员应该知晓的经验教训。 以下是我学到的一些经验教训,我认为每个开发人员,特别是新手,都应该了解这些经验教训。 没有人无所不知 没有开发人员知道一切,所以你也不需要知道一切。 作为一名开发人员,你需要用心学习知识,例如在PHP 5.6版本中操作数组的方法,除此之外还有很多重要的技能需要掌握。是否知道这些小知识点无关紧要,即便忘了也可以上网搜索。 作为开发人员,很多技能远胜于学习这些微不足道的知识,例如:
成为开发人员的一个好处是你不需要知道一切。你只需要知道解决问题的方法。 Bug有助于学习 相信你们都听过《五只小猴子》的童谣,下面是bug版的童谣: 99个Bug在代码里闹, 99个Bug在代码里闹, 打个补丁,把1个改掉。 127个bug在代码里闹…… 如果你在编程的过程中没有遇到任何Bug,那么就意味着你什么都没学到。 没有遇到Bug并不意味着你是一位伟大的开发人员,你太聪明了,压根不会犯错。这只能说明类似的东西你开发过很多次,你已经知道如何避免这些Bug。 遇到Bug说明你成长了。开发中存在无穷无尽的Bug,因此你必须学会处理这些Bug,越快越好。 没有必要接受正规的教育 17岁的我非常纠结这个问题。我应该上大学攻读计算机科学学位吗? 这对我来说是一个棘手的问题。但是,大多数读这篇文章的人可能不是17岁,可能你们大多数人已经工作了。 如果你大学毕业,那么绝对没必要再回去攻读计算机科学学位。你也不需要参加编程培训班。 GitHub中一些有趣的项目可以为你代言。如果你能够证明自己拥有编程的能力,那么你的背景并不重要。 这只是一个如何通过最佳方式学习的问题。 我没得选,只能在周末学习编程,因为我不能在高中期间请6个星期的假去参加培训班。 如果你想回到大学攻读计算机科学学位,或参加为期8周的培训班,那尽管去吧。但这没有必要。 上网搜索也是一门技术 如果你想成为一名出色的开发人员,那么就需要加强上网搜索的能力。能够找到你所需要的解决方案和代码至关重要。 你需要频繁地上网搜索,尤其是在学习一种全新的技术的时候。 有时,你需要将一些不明的东西添加到代码中。有时,你需要找到一个不太理解的问题的解决方案。但好消息是,网上都有答案。 勤思考 在编写代码的时候,你需要思考:“如何才能用最好的方式编写这段代码?” 这方面我做的并不好,所以经常写出水平很次的解决方案。通常,一旦脑海中涌现某个解决方案,我就会立即动手写出来。大多数时候,问题的第一个解决方案并不是最好的。 写代码无需花费太多时间。任何人都可以快速地编写代码,但结果往往很草率。你需要花时间想出一个优秀、稳定的解决方案。 测试驱动可能很无聊,但是它能够极大地推动你勤思考,因为你必须考虑清楚期望的功能以及实现方式。如果你提前做计划,就无法动手写代码了。 当然,凡事都有例外。我并不是说你应该安静地坐下来仔细考虑每一行代码。 然而,勤思考能够为你省却重构和改bug的时间。 当心网上的教程 刚开始学习编程时,可以从网上找一些教程,但我认为你应该利用的资源远不止这些教程。 当你按照教程学习编程时,实际上可能什么都学不到。虽然你可能学到了一些知识,但你并没有真正明白自己编写的代码以及这样做的原因。 此外,这些教程还可能会漏掉一些重要的代码。初学者更喜欢直接从教程中复制和粘贴代码,而不会认真思考问题。 一种更好的学习编程的方式是构建自己的项目。找到一小段代码,然后自己编写代码、解决bug、阅读文章和帖子。 最有效的学习方法是东拼西凑出一个能够运行的程序。 制表符比空格好 读这篇文章的时候,你肯定在想:“很明显,这个小孩肯定喜欢使用空格。”非也,每个人都应该在编程的时候,使用制表符。 我明白,每台计算机上的制表符可能不尽相同。但是,你只需要轻轻敲下制表符就好,而无需哐当哐当地敲打空格键。努力成为喜欢制表符的人吧! |
|