作为工业4.0时代的程序员,你能学会多少技术

由于业务的缘故,与程序员交流颇多,交流的过程中,发现新一代的程序员开始接触到更多技术,比如Android也会点H5,甚至有人可以前端、后端一手包,向着全栈开发者的神话迈进。问他们为何学这么多技术,大概是H5正火啦,多一技傍身总归于好啦。对于这个快速发展的互联网行业,多一技固然是好,但我还是想说:习惯它吧!别想要无所不通!

诚然,相对其他领域来说,IT领域的技术进展可说是异常的快,想要成为程式设计者的条件之一,就是能不断学习新技术。随便上一个技术交流论坛,就会发现许多程序员在“下班是否还要学习相关技术”上纠结,这多半也反应出程序员也意识到得随时精进自我。这似乎与我的言论存在矛盾,只是在现今的技术洪流中,我们又能跟得上多少技术呢?

如今,与程序员加班压力相呼应的就是急速革新的各种新技术、新框架、新工具、新平 台、新程序包,一直善于学习、钻研的程序员很容易陷入或者沉迷于其中。前一阵子接触到一个不到两年工作经验的求职者,PHP、Java、Android、H5都略通,我想问他:这么多技术,你怎么学得完?是不是应该先选一门技术,朝这个方向深研下去,在开始学习另一门语言。现在浮躁的互联网圈,对于IOS、H5等这种急缺人才的岗位,就算一年的经验,企业也会争着溢价抢人。导致很多程序员也浮躁起来,我要不要报班学下IOS,要不H5? 漫无目的地学习,只会迷失方向,最后只会学了一堆,却不知道怎麼整合与应用。其实编程,就跟谱曲、写作、绘画一样,是一种创造性的活动,而不是一种技术工作 。

当然,对一种技术的不断练习很重要,但它并不会让你本质上变成一名更优秀的程序员,它只是让你能更熟练的使用工具。 而能让你成为更优秀的程序员的是学会如何思考问题,因为最终你是把脑子里思考出的逻辑转换成了一系列操作计算机的指令,让计算机遵照指令解决问题。而学习如何正确的思考——如何抽象归纳,如何组合,如何分析信息,如何自我反省——可以通过各种方式,远非只有编程一种。诚如Paul Graham在他的著作《黑客与画家》一书中所说:我发现那些最有价值的灵感的源泉都不是那些跟“计算机”这个词相关的领域,而是那些跟动手创造相关的领域。绘画就是一个比计算机理论能提供更丰富灵感的思想源泉。

前些日子就发生了Homebrew作者Max Howell 在面试Google时,因为没能在白板上反转二元树,而被Google拒绝的事。尽管各方对这件面试事件有各种不同的角度与看法,然而也表示了演算法、资料结构这类理论基础,对身为程式设计师来说,仍是件值得被重视的事,对了,也有不少人建议,写程式最好要懂数学! 另外在思考问题中要学会辨识问题,优秀的程序员遇上问题,往往能第一时间就知道根源在哪,有时第一时间虽不知道根源何在,基于过去的经验来推敲,也能找出并解决问题。这种“Debug的直觉”,这其实是因为过去面对过足够多的问题,并累积了多个解决问题的思路与方向,方能有这类Debug的直觉。 因此,辨识问题是一个很重要的能力,不少人应该都有这类经验,明明在你眼中显而易见的问题,为何有些程序员就是看不出问题。这可不是学的技术或理论越多,就能解决的。

编程是一个知识更新很快的行业,只有真正有热情并掌握了好的学习方法的人,才能走的长久。有句宣传语很好,“打印想法,而不是打印产品”,我们应该多思考,能时时承认“学不了所有的东西”,这样就能知道该学习的是辨识问题与面对失败,而不是学习所有的技术,无论是在IT业,或者是其他!

你可能感兴趣的:(作为工业4.0时代的程序员,你能学会多少技术)