IT工程师如何控制学习成本?

posted in: 技术, 新知 | 0 | (1210)次浏览

互联网时代,信息爆炸式增长,IT工程师作为站在互联网风口的人,多少受到这种快节奏的影响,其中对工程师影响最深的当属互联网技术的飞速更迭。早期互联网应用大多依靠几台服务器就能提供比较稳定的服务,但是现在随着用户的增多,业务更加庞大,一些应用都面临着海量数据和高并发的问题,这样就不得不提高服务器相关的技术。就搜索引擎应用来说,没有成百上千台服务器(或者高性能的服务器集群)是不可能提供高质量的搜索服务的。

对于一个企业来说,从一个技术迁移到另一种技术的成本应该是很高的,京东从.NET迁移到JAVA应该花费了不少人力物力。对于IT工程师来说,学会使用一门新的技术,成本也并不低。但是目前的互联网行业,新技术往往代表着更好的鲁棒性,更高的性能,更低的成本,所以无论是企业还是个人,都不得不“随波逐流”,趋利避害,使用新的技术。

对于IT工程师来说,一门新技术的成本根据技术的类别不同大致分为三个层次:

  • 系统框架层:学习使用新的OS(如Centos),在新的框架(如Swift)下开发应用,学习新的语言(如Python)等;
  • 应用软件层:学习使用非关系型数据库(如MongoDB),学会用PS进行简单的切图,学习用Axure设计原型等;
  • 知识碎片层:学习使用一种设计模式(如单例模式),理解HTTP协议的基本原理,理解RESTFul设计风格等;

对这个层次来说,学习成本是逐渐下降的,但是我们并不能总是自由进行哪个层次的学习。人在江湖,身不由己。就像产品经理经常会要你改需求一下,有时候由不得你。所以有必要对每个层次的学习做一个不同的学习计划,辅以不同的学习策略。

系统框架层

对于系统框架层来说,这个学习成本最高,战线最长,难度最大。IT培训主要帮助学习者学习这个层次的知识,但是并不是说个人不能自学。如果自学的话,学习者最好为自己建立一个合理的规划和反馈评价机制。如为每一阶段制定一个学习路线图,然后进行阶段性的小结,循序渐渐,切不可直接去做“上层建筑”。如学习编写网站的时候,上来就去看源代码,然后通过简单的修改达到自己的效果依次认为自己掌握了。系统框架层的学习应该从底层开始,当学习者学会了这个层次的知识后,将会对个人有很大的益处。因为在这个时候,你可以从系统层看到应用层的程序状态变化,但是如果你没有学习底层系统原理的话,你只是知其然而不知所以然。所以系统框架层的学习很关键,这对以后学习应用软件层和知识碎片层很有帮助。

应用软件层

对于应用软件层来说,这个学习成本较高,战线较长,难度较大。对于IT工程师来说,这个层次的学习带来的收益是最直接的,最有效的。比如你所在的公司由于业务扩展,某个项目中需要使用CDN技术来提高网站的响应的速度,你是这个项目的负责人。这时你得赶紧自学,你快速理解了CDN的概念,学习了怎么使用。2天之后你成功地将你学到的技术应用到项目中,获得了领导的肯定。但是数周之后,网站出现了一个问题,最后检测到是CDN引起的问题。这时你就得重新学习CDN,而不是简单的学会使用,这将重新产生学习成本。所以对这个层次的学习来说,容易产生一个问题,就是学习者通过简单的套用达到效果但是解决不了更深层的问题,这是由于学习者知其然不知其所以然造成的。这个层次的学习应该和系统框架层次的学习一样,必要的时候需要稳扎稳打。

知识碎片层

对于知识碎片层来说,这个学习成本一般,战线不长,难度不大。对于IT工程师来说,就像在沙滩上捡贝壳,一颗一颗,看起来收获满满。比如学习HTTP协议,通过查看维基百科的词条可以很容易地理解协议的内容。学习者会觉得HTTP协议很容易,但是在实际的使用中却从来没有注意。在编写网站应用的时候,某处需要用户提交表单到后台的时候,你通过GET方法将表单内容提交到后台,但是遇到一个bug,就是当内容过长时数据提交失败,这是因为GET方法限制了提交数据的大小。和应用软件层类似,这个层次的学习也要兼顾到底层,HTTP协议是计算机网络的内容,有精力的话最好学习计算机网络相关的知识。

对每一层的学习来说都有一些共同的方法,可以帮助减少学习成本:

  • 横向迁移:即当你学会使用windows的cmd后,也能帮助你理解linux的shell;
  • 纵向迁移:即当你理解异步加载时,能通过操作系统进程管理中的并发机制去理解;

最后,学习需要稳扎稳打,祝学习愉快!

 

(完)