英文 | https://medium.com/javascript-scene/how-to-learn-to-code-9f5803506bac
翻译 | web前端开发 (ID:web_qdkf)
软件开发是一项非常有价值的技能。它非常适合远程工作,无论你生活在世界哪个地方,只要你足够出色,就有资格获得年薪10万美元至20万美元/年以上的高薪工作。一些收入最高的JavaScript开发人员的年收入接近50万美元。但是你要想获得高薪,你必须无所不能。
即使你已经是专业的软件开发人员,也需要学习如何学习编码。选择软件开发职业是选择终身学习的道路。
在担任导师的过程中,我窥视了数百名开发人员的学习过程。最让我震惊的是,有些人的学习速度比其他人快得多。一些没有或几乎没有编码背景的人学习新概念的速度比其他可能具有10年以上经验的人快10倍以上。秘诀是,你也可以。
有一些学习秘诀可以使你精通,进步更快。
1、编程
学习编码的最好方法是编码。进入开发环境,并编写一些代码。如果你正在阅读一本书或博客文章,并且遇到一个代码示例,请在代码编辑器中将其键入并尝试使其正常工作。一旦工作,就可以玩。改变一切。尝试考虑其他方式来应用它,或使用相同技术可以执行的其他操作。
聪明的书本只会带你到现在为止。最好的学习将来自做事。
2、驱动力
做某事有很多的方法,但是最好方法就是去做。你需要有动力与决心去学习。激发动力的一种方法是让自己有时间和耐心来掌握一些东西。你无需立即成为专家,就像学习乐器一样。你不能坐在钢琴旁,马上成为下一个Debussy,但是你可以在初次练习时掌握C大调。
同样,你不会坐下来立即启动下一个Instagram,TikTok或Fortnite。
当你开始学习每节小课程时,你将意识到可以做到这一点。你可以擅长于此。你可以看到自己的目标开始实现,并且会更有动力朝着这个目标前进。
继续吧!
3、聚焦
我已经看到许多开发人员试图一次掌握所有内容,却一无所获。他们的前进速度减缓到令人难以置信的冰川爬行,而不是金牌冲刺。
如果你想快速学习一些东西,除了你需要的地方之外,你的注意力不会分散到任何地方。选择一种语言(以JavaScript开头),一种框架(以React开头),一本书,一门课程,一个主题,等等。无论你选择什么,都应专注于一件事,直到对它有足够的掌握,然后再继续学习其他的东西。
我一直在告诉人们,至少一年时间全神贯注于一种语言,然后再分支出去学习另一种语言。几十年前,过去通常是典型的软件开发人员在其职业生涯中实际上需要学习多种语言,才能在该领域保持竞争力。
学习一种以上的语言,还可以教给你不同看待事物的方式,甚至可以加深你对主要语言的理解,但如今,一种语言(JavaScript)可以帮助你度过大部分职业生涯。
招聘经理的提示:你专长的技能是你最有价值的技能。如果你致力于成为一门终生的通才,从一种语言到另一种语言,那么你将对你的精通和赚钱潜力设下人为的上限。
4、读书
软件开发人员可获得的许多有用的见解都来自书籍。在线上有很多不错的YouTube视频和课程,但是书籍是软件开发文化和知识的标准载体。
5、复习
如果你想将一个新概念从陌生到很熟悉,然后变成一种长期记忆,那么回顾主题就是你要做的工作。大多数学习者犯的错误是,他们很快阅读了一本书或一篇博客文章,然后迅速忘记了第二天阅读的内容。如果你读了一些想记住的有趣的东西,第二天请复习一下,测试自己,连续进行四天,你将学习知识变成长期记忆的机会就会大大增加。
6、培养多种能力
有些人通过阅读来学习,而有些人则通过观看视频来学习,但是如果你将它们混合在一起,一边观看视频,一边进行一些阅读,然后通过代码课程进行练习,那么你将从多个角度和多个示例重复这些概念。你自然会进行一些评论,并在练习时得到一些体验。
7、建设项目
学习概念并不意味着你会知道如何在真实的应用程序中使用它。经过数周的练习编码后,该构建就应该是自己的东西了。你可以尝试实现The Rejection App而不是无处不在的todo应用程序。
8、框架和语言的价值
框架和API的变化很快。软件设计原则是基础的。学习可以跨过语言的障碍。
例子:
- “需求的微小变化应该只会导致实施方面的微小变化。” (摘自“软件开发实用手册”)
- 做一件事情(DOT)-从道格·麦克罗伊(Doug McIlroy)的“做一件事情,做好事(DOTADIW)”中简化而来,一个功能应该只有一项工作。它不应获取数据和处理数据并绘制到屏幕上。它应该只获取数据。或仅处理数据。或仅绘制到屏幕上。(时间将你的React组件拆分成更小的部分!)
- “编程到接口,而不是实现。” —四人帮,“设计模式”
- “在类继承上的主要对象组成。” —四人帮,“设计模式”
- 避免共享可变状态。
- “过早的优化是万恶之源。” 〜唐纳德·努斯
- “你不需要它(YAGNI)” —不要为实际上不需要的东西编写代码。
9、分享,记录与指导
“博士 霍尼克尔曾经说过,任何不能向八岁的孩子解释自己在做什么的科学家都是骗子。〜Kurt Vonnegut- 猫的摇篮
学习如何编码只是其中的一部分。当你与其他开发人员合作时,您的代码将被其他人检查,有时他们会挑战你的选择。在尝试解释自己时,你可能会发现自己对自己的立场不够了解。在你的项目中练习向同事和其他协作者解释,记录和教导概念。
10、练习,练习,练习!
任何技能通过后天的学习与练习都可以得到,而练习是关键。但是要变得更好,你不仅可以练习已经知道的概念。你需要挑战自我,并超越熟悉的领域。如果你不断地在自己现有技能的边缘进行练习,那么你将脱颖而出。
专业知识的新科学,就是深入研究刻意练习,并提供了丰富的见解,你可以在你的日常生活中,在应用实践中得到更好的研究。我强烈建议你阅读它,以使你的练习时间和辅助项目更加高效。