学会“偷懒”:优秀程序员是如何减少学习的?

云栖号资讯:【点击查看更多行业资讯
在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来!

image

很多人在不同领域的学习上都存在一个相同误区:为了变得更优秀更专业,我需要学习尽可能多的内容,于是拼命扩充自己的任务清单。但事实上,学习内容的多少与学习效果之间没有绝对的联系。

作为一个编程狂热学习者,我感兴趣的编程主题非常广泛,任务清单上的课程、教程和文章多达几十个。但最近,我开始思考哪些课程是真正值得我去花时间的。

T型陷阱

如果你正在努力发展自己的事业,可能会遇到T型人才这个概念,指的是一些人在某一领域是专家,且对其他领域也有一定涉猎。例如,你可以是一个精通后端开发的专业人员,同时对DevOps、产品管理和前端也有一定的了解。

image

作为员工来说,T型人才是无价之宝,他们丰富的知识有助于沟通并增强创造力。拥有广泛的兴趣是好事,我主张技能全面性将成为未来的核心竞争力。但要想成为T型人才,需要对一些学科有相当深入的了解。

学习一两个课程并不意味着你真正了解一个领域。相反,它可能会让你对自己的能力产生盲目的自信。学太多东西、分散精力对你的职业发展丝毫没有帮助。它只是让你在各个领域都浅尝辄止,但都没有做到深入了解。就像写了两篇博文并不能成为出名的作家一样,经过一个月的集训,你也无法成为一名称职的程序员。

仅仅在多个领域浅尝辄止的算不上T型人才,你必须仔细计划如何深入学习你的主要专业领域并发展次要技能。

为了成为更优秀的程序员,你需要确定基本能力和可能遇到的挑战,然后聚焦这些问题,删除所有不必要的课程。我将以我自己为例来说明如何做到这一点。

强化主要技能,挑选重要领域

我是一个专业的前端web开发人员,对多种语言的后端编程有一定了解,我已经使用React Native创建了一些移动应用程序。前端开发算是我的主要技能,现在要来选择我的其他必备技能了。

对我来说,专注于前端开发是有意义的——无论是在web还是移动设备上。要成为一个熟练的前端开发人员,我需要成为JavaScript方面的专家。因此,所有关于高级JavaScript的课程可能都很有用,那么我可以从待办事项列表中删除关于创造性编码的课程。

我主要研究React,我会关注它和它的生态系统。所以再见了,Angular和Vue,我会想你们的。我的关键技能是JavaScript和React,其他语言和框架也可以作为次要技能,但重点是明确的。

image

只学习你将来会用到的技能

JavaScript和React的生态系统是一个庞大的主题,我需要进一步缩小我的兴趣范围,最好的方法是选择你可以在实践中用到的课程。

我已经第三次学习Redux了。前两次,我是因为网上的每个人都说它很重要才开始学习它的。我完成了一个教程并阅读了文档,但我没有在任何项目中用到它,很快就忘完了。直到我出于必须使用的需要开始了第三次学习,学完课程后,我立即开始使用它解决问题,这才算是真正学会,现在我可以随时使用Redux了。

真正的学习发生在你专注于一个项目的时候。如果你没有在实践中使用你的知识,那么再多的教程也帮不了你,学习你不会在专业或个人项目上用到的东西是在浪费时间。

不要欺骗自己

除非你能向技术小白解释清楚你在干什么,否则永远不要认为你已经懂了。时刻注意你理解上的漏洞,提防虚假的自信。正如理查德·p·费曼所说:“首要原则是你不能欺骗自己——你是最容易被欺骗的人。”

如果深入挖掘的话,几乎所有的编程都是很复杂的。你知道如何管理React中的状态吗?可以通过组件传递道具或使用Context API,或者选择一个库(Redux或MobX),Facebook刚刚发布了一个名为Recoil的新的状态管理图书馆。

解决状态管理问题的办法有很多,这恰恰是因为状态管理很困难。或许你认为教程完全可以帮助你解决它,但事实上是很难做到。只有在遇到现实挑战之后,你才能理解为什么存在这些库,它们解决了什么问题,以及为什么它很复杂。

请记住,编程是非常困难的,你需要挑战自己。

选择一些次要技能

要成为一个真正的T型人才,次要技能也是必须的。在过去的几个月里,我开始学习但从未完成各种课程,从DevOps到Golang语言,再到机器学习。这很有趣,但显然无益于我的职业生涯。

image

学习第二技能的要点与主要兴趣领域的要点非常相似。你需要根据优先级和在现实生活中使用它们的机会来选择技能,光靠理论是不够的,所以请毫不留情地删除无关的课程。

为了进一步发展我的职业生涯,我需要把重点放在那些在长远看来对我有益的技能上,这些技能要与我的主要专业足够接近,这样我才可以从部分的知识重叠中获益。

我没有很强的数学背景,所以是时候跟机器学习和人工智能说再见了,看起来我不会成为数据科学家;至于一些流行的后端语言,在可预见的将来我不会在我的公司使用它们,所以这是浪费时间;DevOps很难,我可能没有机会在这方面工作,所以就跳过了。

因为我经常和设计师们一起工作,所以学习设计基础知识是个不错的主意;我很喜欢写编程方面的东西,所以这方面的书一定要列在我的待办事项清单上;我的项目管理能力没有我想要的那么好,所以发展这个领域必须成为我的优先事项。

再看到干货满满的教程文章和感兴趣的内容时,我还是会毫不犹豫地将其加入收藏夹中,但只会选择那些从长远来看对我的职业生涯有益的学会。想变得更优秀,你得学会做减法。

【云栖号在线课堂】每天都有产品技术专家分享!
课程地址:https://yqh.aliyun.com/live

立即加入社群,与专家面对面,及时了解课程最新动态!
【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

原文发布时间:2020-07-14
本文作者:读芯术
本文来自:“读芯术公众号”,了解相关信息可以关注“读芯术

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章