因为工作的关系,经常要快速学习各种新软件和硬件。运气好的时候,还可以和客户提提建议,提前做功课选择比较合适的设备;运气不好的时候,刚到公司人还蒙圈呢,老板把不知道哪里搞来的东西咔嚓一下放你桌子上,「我们要用这个」,那一瞬间是真抓瞎……
交代一下背景,关于我自己的工作,之前一直没有细说过。我现在在一家小公司,公司业务是解决方案和系统集成,自动驾驶相关。但是这个话题真心比较大,涉及到的领域非常多,而且没啥定数,今天做什么常常取决于公司来什么项目,所以经常会有老朋友问「你之前不是说做……,怎么变成……了?」。
我自己的工作是 项目经理 + 开发,可能最大的优点就是不存在开发人员和项目经理吵架的问题了,因为都是我自己 😂。不过缺点也比较明显,工作量和压力稍大,而且精力所限比较难在技术上实现尖端的突破。我给自己的理想定位就是——能解决问题,遇到麻烦知道应该请教谁。
好了说回快速学习的问题,分享一下我自己的学习方法,主要希望解决
资源和时间有限
的条件下实现快速学习。概括下来就是:
-
尽量不依赖外部资源,Google + 说明文档搞定一切;
-
快速入门,避免把时间浪费在系统学习上;
-
一边解决问题,一边继续学习;
-
完成项目,如有必要再考虑精进。
有限的资源和时间也是件好事
先说资源的限制,开始时我也比较不爽,因为公司小、资源少,经常要在没有任何额外资源的前提下快速学习各种新东西并解决问题。
不过后来联想到理财上的预算问题,我发现这其实也不是坏事。资源和时间上的限制反倒可以倒逼我们避免浪费,联想到学生时期写论文,时间充裕、资源丰富,最后反倒迷失在各种细节问题和复杂的背景中。
我现在的头号原则就是——最大化手头资源,免费搞定一切。会用上的工具基本就是 Google 和 说明文档,有时也会看 Mathworks 的相关文档,但是鉴于用 Matlab/Simulink 做开发的读者可能不多,这部分就不多说了。总之一句话,
把手头资源发挥出最大价值远胜于寻找新工具
。
另外,坚持免费资源对于快速学习还有一个额外的好处——间接屏蔽了过于系统的知识框架。
起步不要太系统
大家常说学习知识要系统,要有框架,对于一些要受用一生的领域确实是这样的。比如我写理财的时候,也是建议大家先系统的掌握一些东西,一切慢慢来。
但是在很多工作上的任务,这个逻辑通常并不适用,从一开始就知道要用一辈子的东西基本是没有的,而且公司和客户也不可能等你建立起全套知识框架再来开发,到时候全凉了。
在真正深入一项技术之前,我们对于未来长期使用实际上是没有预期的。而且在资源和时间有限的前提下,学了太多没有的知识也是一种浪费。因为我们工作的意义是解决问题,而不是堆砌一堆不知道什么时候才会用上的所谓的「知识」。
很多技术可能项目开发结束也就不用了,而且为了解决自己面临的问题,往往只需要一个或者几个功能仅此而已。
对于起步和入门,我觉得最高效的方法就是找两篇「Get started with ……」和几篇官方用例来读。
对于完全不熟悉的设备,到手就连上一顿尝试也是不可取的,效率低、浪费时间是一方面,搞坏了才是真头疼。有时候到手一些小众设备,通读说明文档的前面几个章节可能是最高效的选择。
遇到问题再找答案
了解入门以后,尽量别纠结在复杂的功能和信息里面,快速切换回要解决的问题。通常这个时候应该已经有个大概的方向了,虽然这个时候很多细节问题还完全不清楚。
过了入门阶段,最高效的学习方法就是边做边学了。很多问题和细节要在实际操作中才能体会到,往往是遇到问题再回头去找解决方案,并在这个过程中不断学习新方法。