分享

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

fc013 发表于 2015-11-28 17:18:17 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 2 11552

问题导读:

1.怎样成为程式设计者?
2.怎样成为优秀的程序员?
3.怎样掌握好的学习方法?




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

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

20151128145043905.jpg

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

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

20151128145453288.jpg

前些日子就发生了Homebrew作者Max Howell 在面试Google时,因为没能在白板上反转二元树,而被Google拒绝的事。尽管各方对这件面试事件有各种不同的角度与看法,然而也表示了演算法、资料结构这类理论基础,对身为程式设计师来说,仍是件值得被重视的事,对了,也有不少人建议,写程式最好要懂数学!

另外在思考问题中要学会辨识问题,优秀的程序员遇上问题,往往能第一时间就知道根源在哪,有时第一时间虽不知道根源何在,基于过去的经验来推敲,也能找出并解决问题。这种“Debug的直觉”,这其实是因为过去面对过足够多的问题,并累积了多个解决问题的思路与方向,方能有这类Debug的直觉。 因此,辨识问题是一个很重要的能力,不少人应该都有这类经验,明明在你眼中显而易见的问题,为何有些程序员就是看不出问题。这可不是学的技术或理论越多,就能解决的。

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

已有(2)人评论

跳转到指定楼层
杰仕人生 发表于 2015-11-28 22:11:08
瞎BB,你不学习  你原地踏步,老板照样给你加薪。自己不想学习新鲜知识还瞎误导别人。
回复

使用道具 举报

月如钩 发表于 2015-11-29 15:50:19
技术在跟随时代变化,有的淘汰了,有的湮灭了,有的在默默地咽着最后一口气,当然还有的正在茁壮的成长。一个技术不会永远的长久不衰,即便oracle这样的流行了有二三十年的RDB的领航者,在互联网的时代,在大数据开始亮剑的时代,也会逐渐的退去它的王者光环,阿里不是出了一个oceanBase的产品吗?但是,有一点,我们为什么学技术,人不过才活几十年,能过完百年的都是幸运的,就像技术,为了人生的目标,能在技术流行的当下,实现技术的价值,根据时代的步伐,利用当下的比较流行的技术实现利润,个人觉得,绝对不是错误。也许我们不可能将所有的技术一网打尽,但是多学点终归没坏处,尤其是跨时代的技术,比如c,比如java,比如oracle,比如hadoop。技术始终是为人服务的,技术也是推动时代进步社会发展的一项重要的因素。也许,我说的技术有些狭隘,楼主可能所言的为 广义的 技术 吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条