初学某项技术的朋友,通常会提出这样一个标准问题:我需要多长时间才能够掌握这项技术?
这个问题通常没有标准答案。但是我仍将试着通过本文来解答一下,因为在与学员沟通的过程中,我已经无数次被问到过这样的问题,尤其是前几天,与某位学员朋友再次聊到这个问题的时候,受到了一些启发(也可能是刺激?)——不妨以自己的职业经历为样本分享出来,就当作是一个公案或者MBA的实例,仁者见仁。再者,或许以后再被问到这类问题的时候,可以直接把这条链接奉上,省下许多口舌。
虽然你可能还是得不到终极量化的标准答案,但是如果你有时间的话,不妨听一听后面几个不一定对的观点。
就,先简单介绍一下我的职业经历。
2006年,距离HTC VIVE发布还有10年
2006年毕业,我加入了一家Flash游戏公司,在那里负责Flash开发方面的工作。具体工作内容是先下载没有被混淆过的Flash游戏,按照公司要求使用一款叫做硕思闪客精灵的工具进行反编译,生成公司的游戏然后上线供玩家消磨时间。我每天要看不同风格的代码,然后按照它们的风格去修改,每天至少上架3款小游戏。当时的编程语言是ActionScript 3,算是打下了面向对象编程的基础积累了少量的游戏开发理论。
2010年,距离HTC VIVE发布还有6年
后来公司出售给了另外一家公司,我没有跟随过去,而是加入了本地的联通公司(是的, 有软件开发部门,不卖卡)。工作日常是使用Asp.net开发网络应用。也就是在这期间,我接触到了Unity,版本是4.x。相对于每天面对SQL的增删改查,这么生动形象地去摆弄那些3D模型实在是要开心许多。一直以来的执念是在虚拟世界中还原真实的现实场景,按现在的话说叫数字孪生。所以在联通的最后一年,业余生活便是学习Unity。
随着时间的推移,越来越感觉到还是最喜欢虚拟的3D世界。我不能做着还不算讨厌的ASP.net去偷着学习更加喜欢的Unity。于是本着不做渣男的原则,2014年我选择了离开。
2014年,距离HTC VIVE发布还有2年
在这一年,我加入了一家创业公司。这家公司给甲方国家电网做多种外包服务,我参与开发了其中的几个三维仿真项目,用Unity。在这里,我夯实了这方面的基础。
2015年,我参加了在北京的Unite大会,在那里第一次体验到了Oculus Rift原型机。
虽然现在每天都要戴上VR头显进行开发测试,但是还会记得2015年春天那个下午4点体验到VR时的震撼——时空错位。那是一种感觉和情绪,语言和文字无法言说,你只要看一下2016~2017年那些魔幻的新闻就能感受到记者们对于怎样准确描述这种感觉有多么着急了。
从那以后,每天都会关注科技新闻,等待国内可以买到的VR产品上市,之后就等来了HTC VIVE的发布。
2016年,HTC VIVE 发布
俗称的VR元年到来了。虽然大家对于这一年究竟是不是行业元年还存在争论,投机失败者更是对其嗤之以鼻,但是对我来说,这的确是我进入这个行业的第一年,是我的元年。
由于公司没有在方面发展的计划,我又陷入了走还是留的抉择。这里要感谢我的老婆,没有她的支持,我下不了那个决心,裸辞。
从那时起,便开启了至今为止5年的VR学习之路……
之所以分享我的经历,是想分享一个样本来初步回答开篇的问题,即我用了十年。但是也不能说我用这十年就是为了这一天。只是当行业刚兴起的时候,我发现在漫长的职业生涯里积累的几块拼图恰好能够派上用场,至于最后一块入行的拼图,就是对VR软硬件的了解,而根据之前的基础(注意,这里已经有基础了),上手硬件及SDK相对来说容易了一些,因为都是相似的思维方式。
但是我也不想误导你去相信那句鸡汤话:机会总是留给有准备的人。我没有奔着这个目的去准备,只是做事和机缘。所以,可以反鸡汤地说,机会出现的时候,有条件的话可能会抓住,如果没有条件,创造一些条件,如果还抓不住,可以看看还有什么别的机会。总会找到命运安排的归宿,如果总是找不到归宿,那么漂泊就是宿命。
请回答,2021
所以,零基础需要多长时间才能够掌握VR开发技术?
这是一个典型的小马过河问题。因为掌握任何技术所需要的时间,会受多个变量影响,包括但不仅限于:主观能动性,比如只是从众还是想改变世界;压力,比如老板让我做,不做就滚;兴趣,比如前世是一个木匠,我就喜欢刨块木头;悟性,比如这个刚掌握的知识点是否还能用到一些不可描述的方向上;时间投入,比如单身还是恋爱,今天晚上是学习技术还是陪女朋友看电影;工具,比如电脑卡不卡,网速慢不慢,找个破解文件用了我一天我艹。如是种种。
如果有人能够给出一个确定的时间,那这个答案很有可能是培训机构给你的,再不就是小马过河里的老牛和松鼠给你的。
另外,这个问题还有两个不可量化的指标,即,没有绝对的零基础,更让人绝望的是,没有绝对的掌握。
先说零基础。
一个医学专业的学生要学习VR开发,看上去是零基础,但是他一边看教程一边结合自己所学的医术最后开发了一款VR医疗应用,我们不能认为他在开始的时候没有任何基础。
一个整天泡网吧翘课打游戏的浪子,如果他某一天终于回头,然后一边看教程一边开发自己想象中的VR游戏,我们也能够想象他对于游戏机制的设计思路要比一位计算机科班不玩游戏的女生理解得深刻。
再说掌握。
掌握任何技术,都没有一条认证掌握的金线。
一切都是过程,水平都是相对,我们只能说自己比昨天知道得多了一点。没有2021年度胡润技术大拿榜。
那位看官可能就说了,认证考试可以衡量。那么,拿驾驶技术来说,当拿到驾照的那一天,也并不能说明你就掌握了驾驶技术——敢不敢跑高速?侧方位能否一把入库?被后车强行加塞能否不起杀心?
所谓专家高手,也只是在80/100层台阶附近持续攀爬,不会停下来。而一旦停下来,台阶立马增长好几层,你只需要看看Unity每年要更新几个版本就知道了。
每天盯着结果去努力,是最慢最累的进取路径。
所以,关于零基础需要多长时间这样的问题,除了传递焦虑,无它。
另一个问题
我们讨论这个问题,不如谈一下如何学习某项技术。鉴于不同的技术有不同的道路,所以我只是基于自己的经历分享几条VR开发方面的学习心得:
一. 提高英文阅读能力。这并不是说老外就比国人要聪明多少,而是这样会得到更多可参考的答案。视频教程、开发文档、技术文献,除了中文,还有相当一部分是使用英文记录。对于面向实用的英文学习,多说一句。不要背单词,不要背单词,不要背单词。我的女儿在三岁的时候就能够用“中文”跟我们交流,但是我们现在还没有教她认识一个汉字——她只是听到熟悉的声音就知道我们传递给她的信息。
二. 善用搜索引擎。百分之九十的报错信息都可以粘贴到搜索引擎中得到解决。相信我,你永远不可能是第一个遇到某个特定问题的人,如果是,那么这个问题一定是两个及以上已解决问题的集合。学会拆解问题,选择直指问题核心的关键词,往往能够更快地解决问题。捎带吐槽一点,有些学员问我的问题那叫一个笼统,我需要再反问他几个问题像剥洋葱一样层层确认,才能发现他的问题所在。提出一个正确的问题,那么这个问题就解决了大半。
三. 可能的话,在某一款游戏引擎上做到斜杠青年,也就是往通才方向发展。脚本、材质、灯光、Shader都看看,不要把自己限定在文理科中的某一个舒适区里,文理的分界只能让它停留在高考结束的那一天。做模型的可以看看编程,程序员可以了解一下材质。多看看,多试试,说不定就发现真爱被掰弯了呢。
四. 官方文档就是高考前老师说的回归课本,怎么强调都不过分。
五. 如果用断舍离的标准留下几个必备的知识模块,那么是以下三个:面向对象思想及脚本编程、熟练使用一款游戏引擎、深入了解两款以上VR硬件及其对应的SDK。同时,注意顺序,不要本末倒置。
六. 理解某项技术里的100个概念,在第50个左右,你基本上就有了这项技术的全貌。
技术上最难的事情之一就是扰乱自己。
这句话可不是我说的,是伟大的WordPress创始人Matt Mullenweg说的。所以下面几条涉及到心理建设:
七. 不要有精神洁癖,不要等都弄懂了再开始,不要等把文档通读一遍再开始,不要把教程都看一遍再开始,不要把玩VR游戏当做研究的借口。先把手弄脏(get your hands dirty),以障碍为道路。
八. 相信大脑神经可重塑性与年龄无关。我在第三家公司的时候,除了技术上有长进以外,还有另外一个收获,来自一位老人。如前所述,我们的甲方是国家电网,所以经常需要去客户那边对接需求。在这期间,我认识了工区一位年近退休的老书记。看到他的时候总会让人想起工程院的那些老院士。称他为书记,也是他实际有一个相当于书记般位高权重的职位。他经常跟我们讨论当前的新技术和新设备,尝试与现有业务结合的机会。有一次,他对着跟我同去的同事说:“xx,你给我找些3ds max的学习资料,我学学看自己建一些模型行吗”……在此之前,我总是自嘲已经30岁“高龄”,总觉得再学点别的什么已经太晚了,年龄在这摆着,也后悔“年轻时”没有多学点东西。看到老书记的心态,想到年近60的老人尚且每天还在琢磨着学点什么,我辈怎能早早地放弃自己呢?从那时起,我从固定型思维切换到了成长型思维,在离职的时候,又学会了Blender和Substance。
九. 相信自己虽然笨点但是还能抢救一下。我并不会人工智能机器学习技术,但是从原理中我找到了拯救自己的希望,即,原来即使是死学也是能让自己变得更聪明一点的。什么是机器学习?是机器用最笨的办法不舍昼夜的学习,你学习的时候它在学习,中间不上厕所,你睡觉了它还在学习。所以,把自己打造成一个没有情绪的学习机器,不内耗,不着急,不要脸,把杂念转化为能量。
十. 那么有了情绪怎么办?焦虑的时候,意识往后退一步,认识到自己正在焦虑,焦虑就会化解。当被bug打败时,数数做了几个项目敲了几行代码,是不是还不如机器被训练的时间长?
以上。一个没有情节的故事,几条不一定对的建议,一个不太令人满意的答案。