技术学习选择的困难

xg48 10年前

文/Tim Yang

大部分国内教育体系下面成长起来,尤其是仍然在做技术背景工作的工程师,在家庭、学校以及五千年儒家文化的影响下,一个根深蒂固的想法是,如果某段时间没有学习目标(尤其是书本知识),就会有一种来自内心的虚度年华焦虑。

但学习的选择始终是个大问题。在学校阶段,除了填大学志愿时候会有短暂的专业选择困惑外,其他时间对于学习的目标基本不存在选择的困惑,所有目标已经被学校、家长及环境圈定了。但有一天走入社会之时,由于没有经过实际的选择历练,面对技术圈的花花世界,就会出现学习上选择的困难,包括进一步的在选择无用投入上时间的消耗。

以技术领域为例,就来主业来说,就会有很多选择,有编程语言选择的困惑,比如 PHP 与 Go 最好的语言要选哪个?技术框架、操作系统、工具与平台(OpenStack 和 Docker 都不懂是不是都要学?)等一系列的都需要选择性的突破。每一个领域,由于都是该领域里面的精英设计与完成,大量的代码(究竟应该去看 Redis 源码还是 docker?)、使用方法、使用经验值得学习。技术领域由于分工的垂直与细化,以及 IT 工业的繁荣,每个领域都有业界长年的积累,因此一旦选择需要投入大量时间了解整个体系。技术的学习除了看书本与资料,通常还需要投入大量时间进行该领域的实践,因此任何一个兴趣的选择都伴随大量时间的消耗。

从一大堆细分领域里面挑出一个适合自己的本来就很困难,选择后如果没有强的驱动力往往会半途而废。有大量环境的因素会影响我们已有的选择(“你还在学 Objective-C,我们已经用 Swift 了”),见异思迁会导致前期大量投入时间的损失。另外一方面,跟随热点也会疲于奔命,当圈内在讨论热点领域时,需要临时停下手中的事情,并投入大量时间进行该领域的实践与学习。移动开发成功的案例时候,我们就会花一个月时间来写一个 app;当了解机器学习很有前景时,我们又会花一个月的时间去深入学习算法。业界不会缺少热点,简单追随热点会让你到一年到底除了了炫耀一些新的词汇外,不会留下可称之为积累的东西。

由于互联网创业潮的涌起,IT 的职场也是非常热,为了让自己获得更多的职场机会,各种算法题目不能不做。面试官通常还对是否参与开源项目感兴趣,但拥有一个拿得出手的小工具放在 github 上通常是工程师们一直被拖延的计划。面试时候,面试官通常会给你评价表达能力或者逻辑思维能力欠佳,学校的老师未曾关心及培养你这些软素质,导致你又需要重新去锻炼这些能力。

你很羡慕哪些看美剧不用看字幕的人,也在和朋友讨论时候发现有不少电影及 TV 剧没看而导致插不上嘴,因此周末时候最好把这些恶补回来。朋友圈里面似乎朋友都在满世界跑,因此,只要有便宜机票或旅行团,你一定不会放过这些在露脸的机会。

当你工作的项目很忙时候,你会抱怨没有时间充电而不能跟上时代的步伐;当工作项目不紧时,你又会抱怨新学的技能没有使用需求及使用场景而不能深入。

这就是很多工程师典型的年复一年的日子,他们很希望学点东西,也一直在学习,但往往最后未曾有效学到一些若干年后还能留下来的东西。
来自: timyang.net