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