学习成长

前言

敏捷原则第九条:「持续追求优越的技术与优良的设计,以强化敏捷性。」这个持续追求,除了逐步在实作当中精练,主动学习也是重要的一环。

我在「冲刺之外的学习」提到学习冲刺的概念,利用 Scrum 冲刺的想法应用在学习上,善用团队力量来促进学习。学习是有很多样貌的,今天若单纯是个人想利用工作之余的时间学习,也是不错的选择,在我的经验中,表现亮眼的个人或团队都保有持续学习的习惯,今天一起来看看有什麽学习管道可以利用。

在学习之前

前几天用了一些篇幅讨论了个人与团队协作之间可能遇到的不如意,目的是让这些不顺遂,不至於产生过大的影响。会先有这个小节,是因为观察到人们在学习前 (特别是在工作上还要分时间出去学习),常冒出一些担忧,例如:学得会吗?有时间学吗?学这个有用吗?这个该学吗?

在工作当中的学习与过去学生时期是有些不同的,若是参加训练课程,有讲师督促,通常目的是作成即战力,课程会是密集的、速成的,我们必须在短时间内掌握一些大的知识点,往後再到工作当中持续打磨;若没有讲师,以自学习的方式进行,连续的时间更少、插断更多、少了专人督促,更要自己掌握节奏。

不同的学习方式相信会带来不同的压力,但大家仍然要记起学习的目的,是充实自己,为专业带来一些突破。一回生,两回熟,三回焦,要记得努力,但也不要努力过火,对学习抱持它是一个「重要的小事」来看待。

学习也要保持敏捷心态

学习的过程也是要随时检视与调整的,不是单一条路一路学下去,甚至该技术已经过时了还不自知。能够呈现在眼前的东西,包含任何知识,都有其生命周期,不要紧紧抓住不放,软件界更是如此,语言、框架、应用模式推陈出新,让自己保有接纳新知的态度是重要的。

此外,所有学习到、累积而来的知识与经验都不是坚固的,当我们体会到颠覆认知的事情时,也要保持开放的态度,不要让旧闻绊住自己。

那什麽时候可以来学习呢?

  1. 当自己认为工作一成不变时
  2. 当自己遇到瓶颈时
  3. 当自己对某个议题感兴趣时
  4. 当自己的队友邀请你一同学习时
  5. 当以上一切都还没发生时

对啦,就是现在!同时也不要把主题局限在专业技术上,人生哲理仍然有许多可以探访的。

学习来源

受惠於现代科技,要进行学习有太多的管道可以选择,以下是我个人尝试过的学习方式,与大家分享。

阅读书籍

若习惯以文字接收知识,阅读书籍可说是首选,无论是电子书还是纸本书。仅管现在的阅读风气日渐低落,但看书仍然是一个几乎不会亏本的生意,它是一种系统性的学习,经过作者的安排,建构一条学习主轴。它与软件开发人员的好夥伴 Stack Overflow 是不同的概念,一个单点击破,一个建立脉络,别让方便的科技成为不阅读的理由。

撰文时我随手拿起几本书,要知道这 100 ~ 500 页不等的书籍,是由作者们是花费多少心力构思、撰写与校稿,将经验浓缩堆叠成册,我们只需要花上几天的时间就可以读完,并且金钱负担通常不高,比起其他学习管道更是如此。

有些读者习惯纸本书籍,我个人倒是因为空间关系,电子书会是我的优先选择。电子书带来的另外好处是它的可搜寻性,能够查找内文对於日後调取知识时会有不少帮助。

研讨会

研讨会对我来说的价值有二:「现在」与「广度」。透过这类的活动我可以知道社群「现在」关注什麽、有什麽新的动态、新的产业知识,而「广度」则视研讨会主题而异,但即便在相同主题的场子内,透过不同讲者诠释出来的结果往往也是不同的,仍然可以吸收不同的观点。

此外,听完研讨会还有一个很棒的「副作用」,就是容易产生动手的动力,想去试试看讲者所分享的内容,试着改变自己、改变团队,我想这对於生活与工作而言是个不错的刺激。

由於单一议程时长是有限的,讲者通常是进行概念性的介绍,因此会有更多需要自己去探究的细节,我会把它当作「起点」而非「最终解答」。

2020 至 2021 因为疫情关系,不少研讨会也改成线上举行,议程的安排有些也改成接力制,这比起多轨并行带来不少好处,只要我们有时间,就不会错过任何一场。也有不少研讨会改成免费参加,是非常难得的机会。

课程

参加课程也是一个非常好的学习方式,虽然成本通常较高,但有位货真价实的老师在眼前,透过即时互动的方式厘清问题。课程强在互动性,并且有专人逼迫学习 (即便老师可能无此意),对於容易拖拉的人来说可能是必要的。

另一种课程是自助式的,通常透过线上进行,以我自己的经验而言 CourseraUdemy 体验是不错的,并且各有强项,也都有免费的课程可以学习。Coursera 通常比较严谨,用来建立完整的知识体系,学习难度较高、时间较长、付费课程较贵(但部分有提供助学金);Udemy 属於即战力,课程品质较有起伏,但选择多样、价格较便宜,对於最时间要产生即战力可以尝试。

Side Projects

我在「时间挤一下就有了,我们挤了没?」与「再谈 Side project」介绍过 Side Project 的好处,以学习的观点而言它也是相当称职的,可以说是一种自由的做中学。

Code Review 与阅读程序码

我长时间作为团队 Code Reviewer 的一员,这是一个双向的学习,我们可以看到不同的解决方案,并透过讨论来针贬哪一种方案才是目前的最佳选择,由於 Reviewer 必须考量到种种情况,无形之间做了强力的学习。

若自己不是 Reviewer 也没有关系,先假装自己是吧!看看同伴写的程序,若团队程序码是共有的,这点不难做到。在阅读的过程中思考,如果是自己应该会怎麽写?为什麽他这样写?还有什麽写法?

在程序码阅读上,除了内部的程序,外部的公开专案也是个不错的学习方向,例如想要了解某个框架的运作原理,进而提升效率,并解决各种开发依赖上的超自然现象。

Podcasts

若想运用通勤时间,听听学习类的 Podcasts 也是个选择,不过我个人比较少使用,这边就不详细列出各平台与推荐的主题了,主要原因有:

  1. 受限於媒体介面,少了视觉元素会让特定学习无法在此发挥。
  2. 通常处於一心多用,即便是通勤,也无法完全专心。
  3. 虽然可以利用零碎时间,但不希望生活随时被塞满需要认真的事情。

当然,读者若把 Podcasts 放在一段专属时间,用心聆听也会是个不错的方法。

记得分享

在知识管理(KM)的领域中,有一条着名的公式 “K = (P + I) * S”。它表达着,「知识 = (人 + 资讯) * 分享」,透过此公式明示我们,分享让知识整体产生大量累积。

分享有时也会成为学习的助力,例如:撰写 Blog 文章、在团队内发起读书会或 Workshop、在讨论上冷不防的丢出冷知识等。

当然了,铁人赛也是一个很好的分享机会,一边撰文也一边成长,还有赛制鼓励大家持续输出。什麽?赶稿?那只是一个学习过程啦 ~


<<:  【Day 27】C String - Practice 2

>>:  #24 数据中中的特徵相关性(3)

予焦啦!一梦终须醒......

佳作之後 承蒙评审给予肯定,最直接的感谢方式就是狗尾续貂一番。 沈淀了一个多月,我时常咀嚼结语中故作...

【Day11】表单:非受控元件 Uncontrolled Component

受控 vs. 非受控元件 受控元件:value 值由 React component 使用 stat...

Day24-Vuex核心概念与结构(part2)

接续前面的内容,还有几个东西没有研究到... 3. mutations 前面是学到的向仓库取资料的办...

Dialog 关闭後更新 Grid 资料 / 显示储存的图档 - day20

目标 承前篇 当学生资料修改或上传图档後,能够在 Grid 即时更新修正後的资料,并於点选学生展开显...

[DAY 4] Spring Framework

在说明Spring Boot之前,先来了解整个框架的基础 - Spring Framework的原理...