全文共4373字,预计学习时长9分钟
技术在不断发展,因此你也不能停下学习的脚步。
无论是软件工程师、开发人员,还是建筑师,都必须时刻关注业内的最新进展。有时你会发现,几年前在大学所学的知识技能等到现在已经不适用了,因此如果不继续学习,就会失去竞争力。还有的时候,我们为了赶工期,而放弃了许多学习和自我提升的机会。
以上这些想法都只顾短期利益,却会导致长期的代价。
IT领域的发展日新月异,要想紧跟所有的趋势和变化几乎是不可能的。因此我们在学习时,需要选择一些比较感兴趣的领域(可以是和你目前工作相关的领域,也可以是你未来想要涉足的地方),然后再腾出时间进行学习和钻研。
阅读的艺术
书籍
多读书是非常重要的,因为它能加深我们对某一问题、某一事物的理解。针对某一技术领域的专业书籍很快就会过时。所以相比之下,以下这几类图书更好:
· 概念类书籍,即阐述新旧概念、范式或者惯例的书籍,比如行为驱动开发,面向对象的设计模式,以及建模等等。
· 行为类书籍,该类书籍涉及的话题包括项目运营、系统开发生命周期、软技能及领导力等等。
· 有影响力的书籍,这类书籍在技术交流活动中经常被提及或引用,因此是每一位开发者的必读书目,其中包括《人月神话》(The Mythical Man-Month)、《代码整洁之道》(Clean Code)、《设计模式》(Design Patterns: Elements of Reusable Object-Oriented Software)、《领域驱动设计》(Domain-Driven Design)以及《程序员修炼之道》(The Pragmatic Programmer)。
O' Reilly上的订阅非常物有所值,因为它能及时给我们提供大量的技术类书籍(包括其它的学习媒介,比如视频、会议以及专业教程等等)。快速浏览电子材料能够让学习变得更加便捷。
博客
阅读博客能让人们紧跟时代潮流。很多开发者同行愿意分享自己在测试某项技术时的个人经验、观点以及成功与否。其实在博客上,有许多优质教程都是由一些新手作者写的,用谷歌搜索可能要翻到最底下才能找得到。因此,可以使用一些书签软件(比如Pocket和OneNote)来把教程保存到个人收藏夹里面,在上下班时间或者会议间隙可以抽空再读一读。
只要我们时刻保持批判性思维,善于区分高质量博客和那些敷衍了事的文章(此类文章通常不够成熟,甚至极具误导性),那么博客就会成为非常好的学习资源,它能帮助我们在某些新领域获得独到的见解。
Medium就是一个非常好的平台,上面汇聚了大量关于专业技能类的博文。比如Towards Data Science,以及Coding Horror、The Seattle Data Guy 和DZone等其他同样优质的博客。
推特(Twitter)
要想跟紧科技发展的步伐,还可以通过社交媒体平台,多多关注那些在技术领域有影响力的人物。并且,向他们提问也是一种自我提升的重要方式。这些大人物之所以能够在业界保持一定的地位,主要还是因为他们乐于向求知者分享自己的资源和经验,并与他们共同学习和进步。
谁正在重塑整个科技行业?这个问题至关重要,但是几乎没有人能够准确回答。因此,在这里也不做任何推荐,因为每个人的兴趣不同,并且每个领域都有许多业界先锋可以学习。
图源:Anna Demianenko 来自 Unsplash
从读者到作者的转变
很多人都认为,只有专家那种独到的见解才可以写成博客,而自己的想法又不够好(骗子综合症,对吗?)。其实,写博客不过是一种记录方式,记录自己对某一流行话题的学习和探讨,你可以为自己而写。
因为教学的过程相当于二次学习。
毋庸置疑,线上交流是一种非常好的学习方式,能够增加自己对于某一领域的经验和热情。并且最重要的是,通过线上交流,能够从读者那里获得实时反馈。
你知道吗?基于学习金字塔理论,学习和摄取信息最高效的三种方法是:
1.将知识教授给别人:90%
2.动手实践:75%
3.小组讨论:50%
收听播客
收听播客(Podcast)也是学习秘诀之一。对于经常要同时处理多项任务的人来说,收听播客是一个绝佳选择(无论是做饭、熨衣服,还是走路都可以听),并且这种碎片化的内容也非常适合现在的生活节奏。
以下一些推荐经常涉及到网络技术新闻和IT动态:Herding Code, .NET Rocks!, Hanselminutes, Software Engineering Radio, Coding Blocks, This Week in Tech, Developer Tea, Software Engineering Daily。
线上课程
实践很重要,不过通过学习线上课程,我们能够完美地平衡理论与实践。做一名视觉型学习者真的非常高效。通过加快播放速度来观看网课,你能够在有限时间内学到尽可能多的知识,并且其中有些课程还能提供行业认证。
可供学习的线上课程资源非常丰富,以下列出一些经常使用的资源或平台:PluralSight, Coursera, Khan Academy, edX
图源:Christin Hume 来自 Unsplash
熟能生巧
概念验证(POC)
概念验证能够揭示现有技术的问题及优势,从而能够做进一步研究并且更好地作出预测(在这一过程中,看似简单的任务也有可能会花费很长时间)。由于时间和精力有限,你可以一次只专注于一个项目(比如数据科学、React.js及大数据等),并且只构建一个模型。
宠物项目
通过进行宠物项目,我们能够在一个相对安全的环境下执行、测试以及学习我们的小项目,然后再将其应用到真实项目中去。实际上,宠物项目也可以看作是一种没有压力的真实项目,因为它没有截止日期,没有技术限制,没有需求控制(主要还是预算控制),并且也没有模式快捷方式。所以在宠物项目中,我们拥有自主权,可以自己设定规则。
开源项目
发布开源项目是一种很好的实践方式,它可以有效提高你的公众形象。我们应该寻找自己感兴趣的项目,下载其源代码,然后检查代码库,从而确保其能够端对端运行,最后对代码进行调试,之后就可以安装运行。
开源项目有一个主要的优点,就是能够结识很多优秀的开发者;并且,动手编码本身就是学习的过程。
提示:你可以创建一个开源的宠物项目,这样就会取得双倍的效果了。
线上社区
此外,你还可以活跃在线上社区,比如在Stack Overflow网站上问问题或者回答别人的问题,这样不仅自己可以学习,同时还帮助了其他人学习。通过共享编码和知识,我们也能获得一种巨大的成就感。
Katas
Katas(
)是一款非常简单的编码练习工具,它理解起来几分钟就够了,但是又足够复杂,并不容易解决。Katas这一名字是由戴夫•托马斯(Dave Thomas)创造的,他在与别人合作的《程序员修炼之道》中引出了日本的柔道术语Kata这一概念。
如果你对Katas这类编码练习工具感兴趣,可以再了解一下其他类似平台,比如Code Chef, Coder Byte 和Hacker Rank。
黑客马拉松
黑客马拉松就像运动员跑马拉松一样,只不过运动员换成了开发人员和IT技术人员,他们会通过合作来完成软件项目,制作产品原型、应用程序特性或者应用程序接口。黑客马拉松的优点在这里就不一一赘述了,如果感兴趣可以在Quora上自行查询,上面介绍的非常详细。
充分利用同事关系网络
毋庸置疑,通过课本和网络进行学习确实有很多优点,但是仍然比不上我们与同事面对面的日常交流。
提问是最好的学习方式,这句话我们都听过,但是都不怎么重视。实际上,提问是大多数学习过程的基础,因为它能引出你们的话题。
为什么结对编程能够强化我们的学习呢?原因有很多,但其中最重要的一点是,结对编程能够迫使我们整理自己的思绪,透彻地了解自己的想法,然后再把自己的想法解释给别人听。
最后,通过代码评审可以获得直接的反馈,其实这也是学习的过程。代码评审并不是为了暴露我们代码的局限性,而是为了测试和证明我们想法的可行性。
温馨提示:如果你的朋友很擅长编码,你也因此非常羡慕他们,那么你完全可以向他们请教。
社交活动
积极参与行业相关的各种活动
时常出席各种会议和讲座益处颇多,因为这能让我们了解行业动向,并且知道其他的公司正在干什么、使用什么技术,以及使用这些技术后有怎样的成果等等。与其他开发者同事建立社交网络其实还有另一个好处,那就是通过与同事交换想法,我们能变得更加敏锐,也能扩展我们的学术圈。
确实,经常参加此类活动开销巨大,因此最好能得到公司的资助。即使没有也没关系,等到会议视频发布之后,你可以选择在网上观看录播视频。推荐一些YouTube频道:GOTO Conferences, O'Reilly, Thought Works。
领英网(LinkedIn)
通过在领英网上建立人脉,可以找到与自己志趣相投的专业人士,并且还能时刻了解到软件开发领域的最新动态。
加入专业组织
许多专业组织(比如英国计算机学会)都会定期提供培训课程,并且发布许多行业新闻、专业调查、职业信息、工作招聘,以及各种活动介绍等等(但是不会发布得那么频繁,所以注意及时查询)。
然而,加入各种专业组织所需要注意的是,一份付出一份收获。因此,作为某个专业组织的一员,要想得到最大化的利益,我们就必须投入足够的时间,积极参与组织活动。
加入本地用户组
现在的程序开发员已经不是当初的死肥宅了!通过加入本地用户组的技术社区,可以便捷地与其他开发者互相交流探讨。虽然各自的背景、领域和经验都千差万别,但是大家有一点是相同的,那就是对编程的热爱,并且每个人都乐于学习和分享自己的知识。
建立自己的关系网络
想要进一步扩展自己的人际网络吗?下面提供了一些实用技巧:
· 在组织内创建一个技术社群。
· 创建一个本地用户组。
· 自己做讲座,或者在会议上发言。
· 召开午餐研讨会或者圆桌会议来进行技术探讨。
现在正是开发者的黄金时代!
图源:Tim Mossholder 来自 Unsplash
为了不落伍,请提升自己!
我们经常无法理解的一点就是,其实我们的职业已不再是教育的最终目的,因为工作本身也是我们学习的过程。如果我们能保持终身学习的习惯,这不仅能够延长我们的寿命,还能提高我们的就业竞争力。
此外,另一个普遍存在的误区就是,很多无法保持学习习惯的人都拿没时间作为借口。实际上,我们都有时间,我们拥有的时间的量都是一样的,唯一的区别在于我们使用时间的方式。