成长的印记

570 阅读8分钟

作为一名互联网从业者、世界第一人称观察员,我对于这个行业最大的感触就是:不能停止学习。每时每刻都在世界某个角落里上演着技术变革和更新,默无声息,或者来势汹汹。

印象最为深刻的是,在毕业生校园招聘的过程中,面试官问到的问题是 “兼容 IE 6/7/8 的 CSS 样式 Hack 写法是什么?”,“什么是标签语义化,语义化的标签有什么作用?”… 现在回想起来,这些问题都非常的有年代感,而且也极具农业时代气息。那时候大家通过 RSS 来关注行业的更新,一提到前端,多数人脑海里面的概念就是 Div + CSS ,IE 是大家最主要的战场, CSS3 和 HTML5 仍然是非常乌托邦的词语。

这些年来前端技术栈层出不穷,前端的范围也越来越广泛,需要掌握的技能也越来越多。整个行业技术的迭代,我们是见证者,也是受益者。我们学习新的技术,创造出富有想象力的产品,并且为行业带来更新的技术,不断在这样的过程中充实和提高自己,并且也推动着行业不断向前。

怎么定义成长?

成长向来都不是一件容易的事情。

在学校的时候,学校会制定每学期的课程计划,每堂课后都有对应的作业和练习,在学期结束的时候通过测试来检查学习的成果,用成绩单上的 S/A/B/C 量化知识和技能掌握的程度。

等到进入公司或者团队工作之后,似乎发生了很大的变化:没有统一的学习计划,没有定期的作业和练习,也没有人督促学习,更没有考试来检验。

随着工龄的增长,时间不知不觉地流逝,一切都毫无原因,也没有停下来的意思。

我曾经跟年轻的同事们一起聊进入公司后的状态,当我问到:“你觉得你在公司的这几年里面,你成长了吗?”,曾经有人像突然被一阵惶恐击中,陷入一种惊愕的回忆。

“我也不知道,我每天都在做项目的需求。回想起来,好像也没学到什么厉害的新技术,也没有做出什么特别的贡献。反正,每天就是在做需求,但需求里面的东西,都是很平常很简单的。”

进入工作的新人貌似总有一些会陷入这样的困惑,似乎每天的工作都被需求安排的满满当当,也少有专门的时间去学习什么,所以一回忆起来心慌地发现,好像真的没怎么成长。但我觉得这应该是对成长概念的误解,那到底怎么才算是成长了呢?

成长是析出结晶的过程,这些结晶就是知识。

知识是对某一个事物、方法或者形态系统化的认识,这些认识是通过不断地学习和使用、深入思考和对比之后总结出来的。朋友圈、微博 Timeline 中出现的不是知识,只能算是信息。因为它们是片面的、碎片化的、不成体系的,只有把很多同一类相关的信息系统地整理出来,并且能为特定的目的而使用,才能变成知识。

看书、上课是最系统地学习知识的方式,总结、运用和思考是产生知识必经的过程。

我们每天的工作看似重复并且没有难度,本身就是对工作所用的技能熟练的结果。对所掌握的技能如此熟练的根本,是我们对这些技能有清晰的了解和灵活的运用,当我们把这些内容以结构化的形式思考和总结,便是成长最重要的一步。

(如果手上的工作真的一直处于没有难度的状态,应当尽快跟上级沟通和反馈,寻找更加有挑战的工作)

成长的途径

在我看来,成长的途径就是知识累积和创造的过程。

累积:向世界学习,并且举一反三

第一类知识是现在世界上本身就有的,我们只管学习就够,各门已经存在的科学:经济学、建筑学、医学、管理学等等,它们已经非常非常的系统,并且被不断优化到目前最合理的状态。

我们生活在迄今为止最为辉煌的时代,几千年人类文明的结晶留下成千上万的学科和领域(尽管有很多很多是最近这些年才出现的),我们有最为便捷的互联网和其他知识传播方式,所有的知识都触手可及。

学习最系统的方法是按照一个架构从浅入深地完整认识一项事物。随便翻开一本书的目录,目录反映了它的知识体系,从此可以了解它的结构是怎样的,由哪些部分组成,这些部分又是如何关联在一起的。对整个知识体系有简单的概念之后,开始学习,并且边学习边思考。

对这类现有的知识,仅仅“学习了”是远远不够的,最重要的环节是思考和运用,并且能够举一反三。

“纸上谈兵”绝对适用任何的学科,互联网行业的知识和技术更加强调的是实践。对于知识的敬意体现在日常的工作中,能把学习的成果在最合适的地方最恰当的时机展示出来,不仅能给工作效率和质量带来提升,而且能将学习的内容得以巩固。

创造:对自己总结,然后系统化提炼

另一类知识可能是在我们了解到的世界中并没有形成的,这样的场景很多。世界万物太复杂了,我们所说到的“学科”都是相当粗略的分类,实际上在每个学科下面都有很多细分的场景。比如 “计算机科学” 这个大的学科中有 “软件工程“ 、“网络工程”、“计算机硬件”等,而在 “软件工程” 中有 “前端开发”、“后台开发”, 在 “前端开发” 中包含 “Web 前端开发”、“Mac 前端开发”等…

单单 “Web 前端开发” 下的知识体系就足够庞大了,而每一个具体的场景和技巧可能不够撑起一门学科,但是仍然能够用一个结构化的框架来描述和传播。比如说 “Web前端开发” 中一个常见的场景 “编写代码的规范”,它无时无刻不体现在每个人的工作里。但是如果不把整个关于代码规范的技巧结构化,他们仍然是分散的碎片化的在每个人的习惯中,无法交流,也无法传播。当尝试着这么去做之后,便可以看到“编码规范”的知识体系,比如:

  • HTML 规范
  • CSS 规范
  • JavaScript 规范
  • 文件架构规范

这就是析出结晶的过程,尽管这个结果不一定完全正确,但是只有经过系统化提炼的经验,才是可以互相交流和学习的。在总结提炼过程中,必须对以往的工作进行系统的回顾和深度的思考,这也非常有效地避免做了很多的需求之后什么也没留下的问题。

平日的工作看似简单重复,但可以深度总结的场景很多,比如可以试着从下面的角度来思考:

  • 重复的事情
    • 重复背后的原因
    • 重复带来的经验
    • 解决重复工作的途径
  • 困难的事情
    • 问题是什么
    • 怎么解决的
    • 解决的效果
  • 新鲜的事情
    • 什么场景下用到的
    • 新技术的特点和用法
    • 与其他技术的对比

比如,在和设计师对于经常修改字号、颜色、间距等琐碎重复的事情中,

a). 找到重复的经验:使用更加高效的页面组件和样式架构

b). 思考重复的原因:设计师在对整体系统设计方案的实施中缺少统一的准则和规范

c). 解决重复的途径:与设计师协商制定符合项目标准的设计规范,统一前端和设计的通用设计语言,在项目中推行 Design System。

对于重复的工作,一方面要总结重复带来的经验,而另一方面还要保持警惕是否在重复上浪费了过多的时间。

无论是重复的工作还是困难的工作,都蕴含着成长所需要的材料,总结和思考,并将这些经历结构化和系统化地提炼,才是析出结晶的唯一方式。(就像碳原子必须以完美的正八面体结构聚集在一起,才能变成珍贵的钻石)

保持学习和思考

在全球人类智慧的共同努力下,作为这个世界最为新鲜和热情的行业,互联网的发展速度愈来愈快,保持学习和思考,用最系统的方式去学习知识,并且用自己的实践和思考产出新的观点,不断学习,不断析出,和这个世界一起成长。