程序员的可迁移技能和经验

2017-03-07

  不少新手程序员怕转工作方向。毕业后,我们几个同学做的方向不一,工作一段时间后,都有转变一下方向的想法,转变或大或小。如从2D游戏转向3D游戏,从Web转向游戏服务端,我自己也从Web转向了图形学开发,大家所经受的难度以不尽相同。我见到了较大的转方向是在HDF时和我差不多时间入职的一个同事,以前是做嵌入式的,现在转来做Web开发。做的也是很好。到目前为止,我都没有见到工作五年以上再转换工作方向的人。五年,即使在一个方向上,也能做成一个小领导,对其他的方向有基本的掌握了。工作中负责的事情,不再是单纯的开发了。如果再转换方向,从基本工作做起,实在是不值得。
  我还记得,在刚毕业写简历时,一个如何写简历的教学视频讲述者就曾强调,应聘者,应该突出自己的核心竞争力和之前工作可迁移的经验,我对此印象非常深刻。比如说,做MFC能够做的很好的人,相信对于UI的各种机制会有深入的理解,如果去做Qt,做Android UI,iOS UI,相信都是没有问题,反而,如果尝试去做Web UI,那之前的经验基本上是没有帮助的比如做 Web后端的人,对于框架、缓存、数据库、分布式等有深入学习的人,就不会在意是否从PHP转到Java或者C#,会损失掉以前的经验积累了。故,问题的本质是,我们需要积累的是更为核心的知识和能力,而不是流于表面的那一层知识。
  哪些是核心的知识和技能呢?我就以我的工作所见的范围来说一说吧,或许,多年以后再次来总结一次。一些更加深层次的能力,如阅读,数学,英语,等基础能力就不说了。我们来说一下偏上层的知识和技能。
  1,编程语言理论和编译原理,对于这个基础知识熟悉,就不会对任何语言产生迷信,也不会惧于学习任何新的语言,他应该会很快上手。
  2,像《算法导论》这样的基础知识,了解操作系统、网络各种协议、系统软件的用法等 的基础能力,这是无论做哪一个方向,都是需要的,是基本素养,要掌握好。
  3,测试、debug能力,Web架构,App架构,
  4,建模、软件工程、项目管理。这些上层的东西偏虚,没有print("hello,world“)那样能偶直观分明。但是,也是能够通过不断总结来得出经验的。

  无论在哪个层次,“理论指导实践”这一点,我始终认为“理论”在职业前期更重要一些,因为它给明了能做什么,大概怎么样,做到什么程度,知道边界后,我们才能不断尝试探索边界。最近的华为34岁以上员工被裁事件,在圈子里引起了剧烈的影响。一时人人自危。都在讨论出路。华为这种做法的确是不地道,知乎用户说过美帝的企业也没有好到哪儿去。这就像当年的北方的国企下岗潮。本质上就是国家承诺的让你当螺丝钉,代价是不能自由的提升和发展,补助是帮你照顾好家庭和养老,突然一天上面违约了,让你自己想办法,这样坑人的事情一直都在发生。所以,我们需要未雨绸缪,利用好自己的时间。

  1. https://www.zhihu.com/question/21051140
  2. https://www.zhihu.com/question/55618811

 

 

 

 

如果有任何意见,欢迎留言讨论。


[ 主页 ]
COMMENTS
POST A COMMENT

(optional)



(optional)