原文: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版本中操作数组的方法,除此之外还有很多重要的技能需要掌握。是否知道这些小知识点无关紧要,即便忘了也可以上网搜索。

作为开发人员,很多技能远胜于学习这些微不足道的知识,例如:

  1. 提高解决问题的能力

  2. 提高团队合作和沟通技巧

  3. 增加对编程概念和语言的了解

  4. 创建优秀的项目来展示你的工作

  5. 专注于编写整洁高效的代码

成为开发人员的一个好处是你不需要知道一切。你只需要知道解决问题的方法。

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、制表符比空格好

读这篇文章的时候,你肯定在想:“很明显,这个小孩肯定喜欢使用空格。”非也,每个人都应该在编程的时候,使用制表符。

我明白,每台计算机上的制表符可能不尽相同。但是,你只需要轻轻敲下制表符就好,而无需哐当哐当地敲打空格键。努力成为喜欢制表符的人吧!

感谢你阅读本文中介绍的简单而重要的经验教训。如果你有不同的看法,请在下方留言。

12 岁开始学编程,17 岁总结了 7 个重要教训!相关推荐

  1. 众筹倒闭始末:他8岁学编程14岁开公司,40岁败在智能硬件

    众筹倒闭始末:他8岁学编程14岁开公司,40岁败在智能硬件 投递人 itwriter 发布于 2016-02-05 15:57 评论(2) 有186人阅读 原文链接 [收藏] « » 一万多名众筹支持 ...

  2. 编程猫用的是什么计算机语言,几岁开始学编程 编程猫说8岁就行 编程猫用法介绍...

    去百度一下几岁开始学编程这个问题,发现关键词大部分都是30岁开始学编程.40岁开始学编程,虽然说只要开始就不算晚,但是今天我发现了一个8岁就开始学编程的好东西,而且会让孩子越玩越上瘾的好东西--编程猫 ...

  3. 30岁开始学编程,学什么语言比较好?建议你这么学

    已经写了十年代码了,在感叹青春不在的同时,程序员作为一个技术原则上年龄越大经验越是丰富,其实所谓的年龄大了精力跟不上之类的话,更多的是自我放松导致的结果,心态的积极向上才是永葆青春的关键,有多少程序员 ...

  4. 30岁开始学编程,什么编程语言容易学习?

    已经写了7-8年代码,也是老程序员一枚了,在感叹青春不在的同时,程序员作为一个技术原则上年龄越大经验越是丰富,其实所谓的年龄大了精力跟不上之类的话,更多的是自我放松导致的结果,心态的积极向上才是永葆青 ...

  5. 26岁学计算机晚了么,26岁转行学编程,晚么?

    原标题:26岁转行学编程,晚么? 最近在逛知乎时,我发现了这样一个问题:26岁开始学编程晚了吗? 在这个问题下面,很多答主都从技术和自身学习经验的角度给出了非常优质的回答. 但其中一条,虽只有寥寥几字 ...

  6. 十二岁孩子学编程用c语言好吗,太原12岁学编程

    导语概要 太原12岁学编程 ?小编推荐童程童美,童程童美是知名品牌,名师执教.通俗易懂.深受广大学员所欢迎.下面是小编整理的太原12岁学编程 的一些资料,仅供参考. 学习少儿编程好处 1.更好的适应未 ...

  7. 编程 26 岁开始学编程晚了吗?

    先旁敲侧击: 纽约时报上前些时间有一篇文章,题为<年龄只是一种心理作用吗?>,大意说的是一个心理学实验:把一群六七十岁的老年人接到一个疗养所,并且制造出60年代的场景,老人们返老还童了. ...

  8. 30岁学python编程_朋友问我,你都30岁了学编程来得及吗

    导语:"种一颗树最好的时间是十年前,其次是现在". 去年,A君看我跟一堆代码较劲的时候,忍不住问我:你都30岁了,学编程来得及吗? 我想了半天,最后用了一句知乎上面看到的话来回答: ...

  9. 一个50岁大叔学编程的真实故事——任何时候学习都不晚

    一个50岁大叔学习编程的真实故事 50岁大叔,半截身子入土的人了,现在想转行,出去还能做什么? 学编程. 什么??? 这人有毛病吧.. 我心里也是这样想的,当时我正在教室里给学生讲课,咨询老师(就是销 ...

最新文章

  1. [深入React] 2.综述
  2. 什么事情是你当了老板才知道的?
  3. 微信小程序 时间选择
  4. ReactJS学习笔记八:动画
  5. Ajax — 第六天
  6. java单例模式的七种写法_Java设计模式之单例模式的七种写法
  7. vc2017 linux printf,C/C++中自定义信息输出——printf与宏的配合使用
  8. 4562亿元教育经费收从哪里花向何处
  9. RTX移植到STM32F103
  10. 5000个收货地址_欠薪老赖和法院玩4年“躲猫猫”,双十一更新收货地址后被抓...
  11. 推销自己的前端技术书籍
  12. [Ext JS]5.9 嵌套Grid的实现及注意事项
  13. java设计模式之组合设计模式
  14. PHP - 使用file_get_contents下载远程文件到本地
  15. 看表空间大小,查询表空间名的表空间文件存放位置,矿展表空间,查看表空间名称...
  16. kaggle上面的E-Commerce Data数据集练习(可视化与部分特征工程)
  17. 利用python生成微信h5_Python的h5文件的创建与读取
  18. vim 配置及插件安装管理(超级详细)
  19. 【转载】如何学习统计学,或我的学习之路——初学者写给初学者
  20. DLL注入_远程线程注入

热门文章

  1. stylus 在静态页面上的使用经验
  2. golang Reflect包
  3. 使用Python控制1602液晶屏实时显示时间(附PyCharm远程调试)
  4. 第十七篇:获取 / 修改进程资源限制
  5. 【原创】sql:慎用【数字字段1 - 数字字段2】这样的sql(10-null = null)mysql
  6. Cisco2620路由器的密码恢复和灾难性恢复
  7. 利用MATLAB实现移动目标的TDOA/FDOA定位算法
  8. linux内存管理——kmalloc和vmalloc
  9. TCP三次握手在linux内核中的实现
  10. 制定规则者与打破规则者