这个标题似乎有N多人已经写过并且讨论过了。为什么会有再议此命题的想法呢?
今天正巧有一位亲戚来问我好多计算机的技术问题,关于面试的好多问题,不怕笑话的说,我在公司里也算是有点小名气,好多人都叫我技术牛人。可是和那位亲戚聊过之后,发觉似乎我知道的一些基础,他也都知道了。并且有一小部分他比我还了解。
再次说明一下,他是某培训机构刚刚毕业的学生,而我是工作有4,5年的社会人了。这不禁就让我怀疑起我的个人能力了,是我智力不够吗?同样的学习,似乎别人在以几何级的速度在追赶,按照这个速度,不出半年我就会被超越了。
用武学来比喻的话,我感觉我的个人身体素质似乎就没那位仁兄强大,他是属于力量型的。这个问题就开始萦绕在我脑海了。我必须要用什么手段来抵御他的攻击呢?
从广义上来讲,我应该心胸放宽,总有人比我强,可能他的确有潜力呢?从狭义上来讲,我这不是很丢脸吗,学了做了这几年程序,结果到头来被一介小辈给超越了。也可能的确是自己才疏学浅吧。
回到主题,那么我该有什么样的核心竞争力来保证我和他是存在这几年的工作区别的呢?
根据我对他的几个小问题,我得出这么几个观点:
1. 算法和程序设计大范围的思想,是可以凌驾其之上的
虽然他有很多技术点已经深刻掌握了,但是当一问到算法问题时,一下就可以卡壳了。那就说明,这类问题是很难在短期内学会的。我曾经有过这么个理论,网上能找到的,都不叫技术,而真正的技术,是你BAIDU和GOOGLE之后都没有的。那么算法又衍生开来说,就是要有解决实际问题的算法,是为现实应用的算法,这个才是核心的算法。其余的还是都能学会的。
2. 外语和技术的交流能力
技术是需要交流的,而技术最好的还是出在国外,这点绝对不可否认,那么就是说,我们必须具备的是具有用外语(任意一种外语)来和外国人(不一定是欧美国家人)进行交流,交流的内容就是技术。那么我们才能掌握更多更先进的内容。
3. 数据库的洞察力
要学会从业务看出数据库,从数据库看出业务。这个也是一种核心本领。我观察发现,好多程序员对于数据库的设计能力是几乎没有的,而对MIS系统来说,核心的就是那些宝贵的信息。
4. 安全访问
MIS的未来一定是会着眼在安全访问上,越来越多的银行系统开始加强自己的安全防线,让黑客和CRACKER难以打破防线,不会让别人有机会可趁。因此这点也是绝对核心。
5. 服务器的部署能力
也许这点是对于WEB方向的人的一个核心能力。一个团队假设40人,那么真正掌握企业级服务器部署的,其实也就3,4个人。这个是我一直向往的方向。
6. 大型项目的把握能力
这点是对于PM资格的人来说的,技术不仅要有,那个只是个人的英雄主义,关键要看在大场面大项目的时候,能应付自如。这是很多程序员,或者高级程序员在进化的过程中所遇见的问题。
综上所述,这些就是决定我能否超越一般程序员的核心能力,也是能让我在一个团队中瞬间脱颖而出的本领。根本的能力就是,不会让一般的小程序员瞬间学会的能力。
我把以上的能力,综合统称为工作经验。
写了几个破字,希望对大家有帮助,对正在努力向上的高级程序员指一条明路。