上学时就知道人生往哪里走,这技术难度是多少?
这个问题是,如何达到这种“少小知天命”的境界?
前几天,突然在微信上向高中老同学发问。
在我看来,周围没有人能够给出一个“实践出真知”的答案,除了他。
这个问题是,如何达到这种“少小知天命”的境界?
要论这个问题,还得从老同学的故事说起。
老同学现居美国,已成家,于微软公司上班(对,就是你们经常打交道的那个Microsoft),在自己热爱的编程领域使劲地玩,可谓事业爱情双丰收。
这几天,我才惊讶地发现,工作之余,他还在“知乎”上助人求知,是“知乎”编程界红人,答题数为10648题,粉丝为282863人,被喻为知乎“温赵轮”之一。(知乎是一个真实的网络问答社区,连接各行各业的精英。他们分享着彼此的专业知识、经验和见解,为中文互联网源源不断地提供高质量的信息。)
这事他平时未曾讲起,一如当年高中时早已深谙编程之道的低调状。
遥想高中当年,大多数稚嫩的我们成天化身精卫盘旋于题海之上,而老同学可以满脑子装的全是编程知识。那种开口Visual Basic,闭口C++的状态,还有那些我叫不出名的程序语言,让大家都挺懵的:那些密密麻麻给计算机读懂的语言,到底有什么吸引力。
印象中,老同学别无他好,唯编程是最爱。他的学习历程也说明这一切----
初二接触编程,开始时是使用 VB ,搞图形学,然后开始做游戏。
上了高中开始接触 NOI,期间学习了 Delphi,花了八个月时间,写了一个 RPG 游戏,代码量一万两千行。
在高三时,用 Delphi 写了一个 Pascal 的脚本引擎。
上大学后,学习了 Delphi 的内部实现细节。
大一实现了一个叫 JoveScript 的脚本引擎。
大三开发出一门叫 FreeScript 的动态语言。
.......
从历程可以看出,10来岁年纪轻轻时,就恋上了编程,至今无变心。最后如愿地将爱好变成了职业。
这是我特别好奇的一点。
要知道,许多人终其一生可能还在迷茫,迷茫着不知道自己应该往哪个方向深造。
而老同学在初中时代就清楚地知道自己要往哪里去,并且坚定不移地迈开步伐,似乎命中注定了“为编程而生”。如果说其父母是编程界顶尖人士就另当别论,偏偏不是。
年纪轻轻时,就知道使命所在。达到这种境界的技术难度相当大,难在于三:
第一,要有想力。
试问,当你还在各种教科书的包围下时,如果非本能所驱,你会想起其他对分数毫无陴益的课外事吗?
老同学在初一业余时间就想要“学编程”,我称之为“想力”。
这种“想力”分为两方面,一是“能想到”,二是“敢于想”。
“能想到”,是一大飞跃。
你说,想得到啊,玩游戏,当吃货,逛淘宝。
拜托!上面这些是本能驱使,不需要你太费劲,大脑自动就会去干的。
当你在学校里和回到家里时,周围人都念叨“分分分,学生的命根;考考考,老师的法宝”这般暗语时,你会想到其他需要从现在开始播下种子的事吗?
很多学生都被束缚了想法,巴不得把教科书里的知识赶紧搞定,然后可以歇歇玩玩,干点轻松的事,歇完就继续学习,如此反复。
谁会在这时候,想到读完教科书,还去啃一本烧脑的编程书呢?乍一想,都会觉得,这不是纯粹要把自己搞垮的技法。
偏偏正是“能想到“开了一个好局,起了一个好头。对未来想象多远,决定了你能走多远。
光是“能想到”不够,还要“敢于想”。
也许有的人也会在某一瞬间心血来潮说“我想学编程”。
但是,转念又想到,自己目前能力不匹配,资源没跟上,第二天他意念迷糊了,第三天就意志消退了,第四天索性告诉自己一个合理的解释:“这目标太难了,趁早滚吧!”或“ 这是痴人说梦,不可能的!”,然后没了下文。
第二,要有愿力。
试问,在你还未阅尽世界大美时,甘心让自己关注圈缩小在一个点上吗?
很多人都不甘心呀。
世界这么大,外面如此美,我们都不愿意早早地给自己做“减”法,总会好奇地做“加”法,探出头来,看看这个真好玩,看看那个太有趣。
这种感觉, 像去玉米地里摘玉米,没有多走几步路,不确信自己摘的就是最大的那个; 也像去相亲,不见多几个人吧,总说不清自己喜欢哪一款,所以不敢随便定下终身大事。
所以,很多人会今天喜欢这个东西,明天又觉得另外一些玩意挺好奇,到处都挖浅浅的洞,但很难轻易地死心塌地说:“我就在这个洞深挖了”。
老同学认准了“编程”这个点后,就产生了“愿力”,愿意开始和它死嗑,一起白头偕老。
周围的世界充满诱惑,正是这种“愿力”帮助他如痴如醉地浸润在编程世界,业余时间都投放在那儿。周末休息时,也是泡在小城的书店里找相关的书籍。即使是高三那种紧张的气氛下,也是星期一到星期五只学习,星期六和星期天只编程。
第三,要有定力。
试问,如果当下没有太多现成的价值回馈,你还能沉下心来,坐住冷板凳,找到有效的练习方法,不断精进吗?
人的天性是比较习惯于关注当下,看重此时此刻能不能立竿见影,能有好处在手;往往懒得以“投资的眼光”做长远的打算,眺望更远的格局。
倘若是当下没有立即显现好处的事,我想,大多数人想都不想,会选择挥挥手转身离开,不带走一片云彩。
老同学在读书时选择学习编程,在当时来看,是没有现成价值回馈的。
于“少年维特之烦恼”来讲,女孩子都会比较关注那种会唱情歌,跳街舞,即兴演讲,弹吉它这种显性才艺的男生,编程如此隐蔽的技能,自不容易入法眼。
于当年学生“被看重”的考试来说,编程只会占用“正科”的学习时间,做好了也没给分数加筹码,老师也不会因此而频频给你写好评。
于与社会互动而言,编程这件事也没有让他直接做出一个极致的作品,能立刻到市场上换取收入,买自己喜欢的东西。
没有这些立竿见影的“世俗”回馈,一开始给老同学力量的,或许是那股好玩的念头:父亲不同意他玩游戏,他索性想着学编程去设计几个游戏,以获取父亲的首肯。
后来我一问,才知道,原来当年老同学的父母是不支持他“玩”编程的!
若没有一股“定力”,在学习编程时遇到学不懂的地方,遇到周围人反对声音层出不穷时,真的很容易会犹犹豫豫,怀疑自己,乃至坚持不下去。
正是因为这股“定力”,在学习编程时,在当年资料尚且匮乏之时,在经验尚未丰富之时,他找到行之有效的精进路径——“做中学”(操练学习法),一是写作式学习,用文字总结学习的效果和经验,二是游戏式学习,在学习中给自己设置适度难度与挑战,三是设计式学习,通过不断设计产品来提升编程知识整合能力。
老同学的这段奇特生涯之旅,让同龄人竖起大拇指,让我看到了“想力”、“愿力”、“定力”。
或许“想力”、“愿力”、“定力”只是追寻梦想中很常见的要素,但要是你想想,这些是在他心智未成熟的少年时代就获取的法宝,免不了心生敬意。在心智未成熟之时,能够站在自己的人生罗盘前,稳稳地抓好方向,排除万难,矢志不渝,非极大的控制力不可。
当我抛出开头那个疑问,期待着一个多么宏伟的答案降临时,老同学的回答却很朴素,一如编程语言的简明利落:“运气!”
运气,是一种无形的力量。他所谓的“运气”,真的有“运气”这么简单吗?
假如没有“想力”,奋斗则没有定向,像开枪乱扫打不准。
假如没有“愿力”,目标则无法落地,徒有空中楼阁。
假如没有“定力”,勇气则难以持续,马拉松变成短程跑。
我相信,机会给有准备的人,运气也会给有准备的人。
别人的运气难以Ctrl+C,别人的经验却可以Ctrl+V,用来反观自我,促进思考,改变生活。
与你分享老同学的故事,也谈谈我的看法。这种探究,出于我对个人管理与生涯规划的关注,也出于我对培养儿童兴趣的好奇。
你为何会成为现在的你,如果你想在某一个领域成为大牛,你的想力、愿力、定力都在哪里,找到没?
如果你期待让你的宝贝成为有价值的人,你能激发他的想力、愿力、定力吗?
这两个问题,都可以成为听完这个励志故事后,我们给自己布置的作业。