程序员最核心的竞争力是什么?

程序员最核心的竞争力——「学习力」

如果有人问我:你在面试程序员时,最看中的是什么能力?那我的答案一定是:学习力

 

互联网时代的技术来得快,去得更快。就像Flash这样曾经雄霸天下多年的技术,都有被人人唾弃的一天。如果没有足够强的学习能力,就无法跟上变化,被淘汰只是迟早的事。想想看,你苦心钻研多年引以为傲的技术,一夜之间就没有用武之地了,难免会有一种「身体被掏空」的感觉。

 

学习力强的程序员敢大胆地体验尝试新技术,他们的技术栈始终在保持不断地更新。他们能快速把握事物的本质,并判断出它能用来做什么,不能用来做什么。他们拥抱技术升级和革命,因为他们学习并掌握新技术的速度比其他人更快,所以他们永远不用担心失业。事实上,他们掌握的是驾驶」和「学习驾驶」的技术,而不是「驾驶XX牌汽车」的技术。

 

而学习力差的程序员呢?为了继续停留在旧技术的舒适区,他们往往会抵制新技术的推广,甚至百般阻挠。因为那会使他们过去的经验统统无效,只能和后来者站在同一起跑线上。抱死一个框架好几年,脱离了框架啥都干不了的程序员实在太多了。事实上,这样的人不能驾驭技术,反而是被技术给奴役了。

 

同样是自行车,为什么山地车比公路车更普及更流行?除了皮实耐用价格低外,主要是因为它的通过性好,什么泥地沙地都不在话下,上下马路牙子跟玩一样。而公路车呢?只能老老实实地跑在平路上。

程序员该怎么学习技术?

 

有的求职者觉得自己没学到技术,是因为公司不给机会,或者缺乏条件:

 

 

「上次的H5让小王做了,这次的微信小程序又给了小李……完全没我什么事啊!」

「公司最大一张表才10W数据,根本用不着分库分表啊!」

 

学习技术最有效的方式是阅读、实践和交流。公司没给你安排这方面的工作,那你自己都做了些什么呢?八小时之外的时间都用在哪了?有没有读源码?有没有看原版书?有没有泡技术社区?有没有尝试最新流行的技术?有没有尝试把它们用在公司的项目上?有没有主动去接触行业里使用这些技术的团队和大牛?

 

看文档」其实是最快的学习方法。对于自己工作中常用到的技术,抽时间把官方文档通读一遍(其实篇幅都不大),绝对收获满满。没事的时候多翻翻自己使用的框架/系统/平台的API,看看有哪些自己不知道或者没用过的功能,想想这个功能可以用来做什么,能不能解决现存的问题,或者优化当下的解决方案。

如果你是前端工程师,通读HTTP协议和ECMAScript标准,就能秒杀95%的同行,不开玩笑。

 

「读源码」是深入学习开源技术的唯一途径。只有理解了某个功能在底层是如何实现的,你才能真正把握它更适合用来做什么,不能用来做什么。正如不明显汽车的构造和原理,我们也能把车开好。而如果多少知道一点,开起来就会更得心应手。当车出现问题时,也不至于完全束手无策,只能蹲在路边等待救援。

你一个框架用了N年了,却连一行源码都没读过?如果它是你女朋友,估计早该分手了。

 

「折腾」是学习任何技术的必经之路。在有保护的环境下进行大量的试错,是最高效的学习方法。现在虚拟机技术已经那么成熟,VPS也很便宜,你为什么不分分钟弄一个,然后在上面花式作死呢?

听说过无数次 rm -rf / 的事故,可你居然一次都没试过?知道输出啥样子么?

 

公司给你提供的最有价值的东西,就是实战的机会。 你所学习的技术,最终需要通过工作来变现。你有机会接触到真实的数据,了解真实的用户,观察真实系统是怎样运转的,积累真实的经验……

 

然而,所谓的机会,只属于已经提前准备好的人。 不要等到工作都安排到你身上了再去学习。公司不是你的试验田,你也不该拿用户当小白鼠。公司不给你机会,那只说明你还没有准备好。

发布者:最高管理员   点击数:582   发布时间:2018-07-30   更新时间:2018-09-28