学神的秘密:10倍速学习编程的技巧

开发 前端
为什么有些几乎没有编码背景的人,学习新概念的速度要比其他具有10年以上经验的人快10倍以上?他们是怎么做到的?掌握下面这些秘诀,学习如同坐火箭,你也可以实现。

本文转载自公众号“读芯术”(ID:AI_Discovery)

为什么有的软件开发人员年薪能达到10万-20万美元以上,一些收入最高的JavaScript开发人员年收入接近50万美元?为什么有些几乎没有编码背景的人,学习新概念的速度要比其他具有10年以上经验的人快10倍以上?他们是怎么做到的?

掌握这些秘诀,学习如同坐火箭,你也可以实现。

[[326806]]

1. 编码

学习编码最好方法就是编码本身。直接进入开发环境,并编写一些代码。如果你正在读一本书或文章,遇到了一个代码示例,直接在代码编辑器中将其键入并尝试使其正常运行。

运行成功之后,就可以在此基础上随意发挥。改变一切,尝试其他应用方式,或使用相同技术执行其他操作,关键是要玩代码。

书本中的知识只会留在空中,最好的学习将来自实践。

2. 驱动力

做好某事的最佳方法就是充分地实践。你需要有动力并决心学习,激发动力的一种方法是让自己有时间和耐心来掌握一些东西。

无需马上成为专家。就像学习乐器一样,你不可能坐在钢琴旁就马上成为下一个德彪西,但你可以在初次练习时掌握C大调音阶。

同样,你不会坐下来立即开发出下一个Instagram,TikTok或Fortnite。

在开始学习每节小课程时,坚信自己一定能掌握并精通今天的内容。找到自己的目标并坚持下去,朝着这个目标不断前进。

3. 专注

我见过很多开发人员试图一次掌握所有内容,却一无所获。他们的进度令人难以置信,缓慢如冰川爬行,而不是百米冲刺。

如果想快速学习一些东西,除了基本知识外,更重要的是集中注意力。选择一种语言(最好以JavaScript开头),一种框架(最好以React开头),一本书,一门课程,一个主题,等等。无论你选择什么,专注于它,直到对它有足够的掌握为止,再去学习其他的东西。

在专心学习一种语言之前,至少要一年时间,然后再发展另一种语言。几十年前,软件开发人员在其职业生涯中实际上需要学习多种语言,才能在该领域保持竞争力。但如今,一种语言(JavaScript)可以助你度过大部分职业生涯。虽然学习多种语言确实可以提供看待事物的不同方式。

专长的技能就是最有价值的技能。如果你致力于成为通才,从一种语言到另一种语言,那么你很难要求自己的精通程度。

4. 框架和语言的价值原则

框架和API的变化很快。软件设计原则却是永恒的。要学习可以跨越语言障碍的原则。

例如:

  • “需求的微小变化应该只会导致结果的微小变化。” (摘自《软件开发实用手册》)
  • “过早的优化是万恶之源。” ——唐纳德·努斯(Donald Knuth)
  • “你不需要它(YAGNI)” —不要为不需要的东西编写代码。
  • 只做一件事情(DOT)——简化自道格·麦克罗伊的“只做一件事,并把它做好(DOTADIW)”,即一个函数应该完成一项工作。它不应获取数据、处理数据并绘制到屏幕上。它应该只获取数据,或仅处理数据,或仅将数据绘制到屏幕上。
  • “编写接口的程序,而不是继承的程序。” —《设计模式》
  • “优先考虑对象组成而不是类继承。” —《设计模式》
  • 避免共享的可变状态。

5. 阅读

尽管在线上有很多不错的YouTube视频和课程,但是书籍是软件开发文化和知识的标准载体。以下几本书尤其有价值:

  • 雄辩的JavaScript(Eloquent JavaScript)
  • 编写软件(Composing Software)
  • 代码整洁之道(Clean Code: A Handbook for Agile Software Craftsmanship)
  • 测试驱动开发(Test Driven Development By Example)
  • 代码大全(第2版)(Code Complete: 2nd Edition)
  • 重构:改进现有代码的设计(第2版)(Refactoring: Improving the Design of Existing Code 2nd Edition)

6. 回顾

温故很重要,若想将一个新概念从听起来很熟悉变为长期记忆,必须时常回顾。很多人犯的错误是,他们很快阅读了一本书或一篇博客文章,然后在第二天迅速忘记了阅读的内容。

如果阅读了一些想记住的有趣的东西,第二天回顾一下,考考自己然后在第二天、第三天再次测试。连续进行4天,将学习的内容转换为长期记忆的概率就大大增加了。

7. 混合媒介

有些人通过阅读来学习的效果最好,而其他人则是通过观看视频。但若将它们组合在一起:先观看视频,然后阅读一些内容,最后通过一些交互式代码课程进行练习,那么可以从多个角度和示例中重复这些概念。你自然会不断地复习,在此过程中还可以进行一些练习。

[[326807]]

图源:unsplash

8. 共享,记录和指导

尼克尔博士曾经说,任何无法向八岁的孩子解释自己在做什么的科学家都是骗子。

学习如何编码只是其中的一部分。当与其他开发人员合作时,代码将被其他人检查,有时他们会质疑你的选择。在尝试解释时,可能会发现对自己的立场不够了解。在构建项目时,练习向同事和其他协作者解释,记录和讲授概念。

9. 构建项目

学会概念并不意味着知道如何在实际应用中使用它。经过数周的编码练习后,就该构建自己的东西了。你可以尝试操作TheRejection App,而不是无处不在的todo应用程序。

10. 练习,练习,再练习!

任何学习过一项技能的人都知道,练习是关键。但是要想变得更好,不能仅练习已经知道的概念。还需要挑战自我,并超越熟悉的领域。如果不断地在自己现有技能的边界进行练习,就能够脱颖而出。

[[326808]]

图源:unsplash

软件开发是一项很有价值的工作,只要不断追求卓越,高薪离你并不遥远。

 

责任编辑:赵宁宁 来源: 读芯术
相关推荐

2020-07-22 01:21:26

软件开发开发代码

2015-05-06 10:22:39

802.11协议802.11ax

2020-06-19 14:58:13

腾讯云Serverless

2024-11-25 09:10:00

2013-05-27 13:59:39

铜缆布线技术综合布线技术网络综合布线

2012-10-30 14:08:59

Titan超级计算机NVIDIA

2023-11-23 13:24:38

2023-05-23 14:06:53

微软研究

2022-12-05 10:01:41

代码模型

2021-12-15 09:39:13

谷歌AI算法

2019-09-26 08:33:51

Nginx技术Java

2023-10-19 13:42:00

数据集MEG数据

2023-11-06 08:15:42

遍历列表Python

2018-05-21 09:55:09

Java编程技巧

2012-04-08 14:47:52

iPad

2023-12-01 15:54:44

2021-09-02 09:13:55

数字化

2020-05-25 20:55:55

游戏编程程序员

2011-08-23 13:27:46

Luaglobal变量
点赞
收藏

51CTO技术栈公众号