7月22日,李彦宏刊登在人民日报的《推动新一代人工智能健康发展》一文中表述,“在移动互联网、大数据、超级计算等新理论新技术驱动下,人工智能呈现新的特征,将对经济发展、社会进步、国际政治经济格局等产生重大而深远的影响。当今时代,人工智能被认为是科技创新的下一个’超级风口’,世界各国越来越重视。”
于是,有很多人不禁发问:程序员十年后的发展前景怎么样?程序员的工作会不会都被AI替代了呢?
这个问题很像在十年前问,诺基亚手机未来的发展前景如何?
十年前我们会认为,诺基亚那么强大,未来十年肯定会称霸全球的。但是事实呢?仅仅因为一步走错,最终导致被合并收购。
789.jpg
互联网时代,瞬息万变。一个小小的走错,就有可能落后于别人。所以我们没办法去预测任何行业、任何职业未来十年会怎么样,因为未来谁都不能确定。只能说只要有互联网存在,程序员依然是个高薪热门行业。只要跟随着时代的脚步,学习新的知识。程序员是不可能会消失的,或者说不可能会没钱赚的。
我们经常可以听到很多人说,程序员是一个吃青春饭的行当。因为大多数人认为这是一个需要高强度脑力劳动的工种,而30岁、40岁,甚至50岁的程序员身体机能逐渐弱化,家庭琐事缠身,已经不能再进行这样高强度的工作了。
那么,这样的说法是对的么?
其实有这种想法的人,已经犯了一个根本性的错误,就是把十年后的程序员工作效率等同于现在的程序员效率。
我们想想一个程序员工作了十年,已经对这些业务熟悉的不能再熟悉,还会是当年那个调试代码调试半天的年轻人吗?如果你说是,只能说明你这十年什么都没学到,只是在浪费青春。
在程序员届一直流传着这样的传说:
有一个七十多岁的程序员,一辈子是一名程序员,却让比尔盖茨敬佩有加。
790.jpg这个人叫做戴夫•卡特勒(Dave Cutler)。戴夫•卡特勒今年已经七十四岁了,却依然是一名程序员。他没有队伍,不做经理,但是他在公司的职位比大部分副总裁还要高。据说有一次某一个队伍预测一项工程要数月完成,他看不过去,两天,一个人就完成了...
所以你看,程序员也不一定是青春饭,更多的原因是自己懒。只要对这个职业保持着热情。根本没有什么青春饭的说法。再老,依旧能做得很好。在十年的时间里,很多程序员往往面临继续做技术还是转做管理的局面。有人考虑转型,当然也有人像戴夫·卡特勒一样,选择对这份职业矢志不渝。
那么一名优秀的程序员应当具备哪些技能呢?
1.编程语言能力
作为合格的计算机程序员,精通一门语言是必须的。这种精通,不是说看了一本编程宝典,抄了几个程序就能说精通的,要靠长时间的积累。
2.编码能力
遵守编码规范,是一个程序员最基本的要求。另外一个就是注释,要注意不是为了注释而注释。对类,以说明职责为主;对方法,以说明意图为主;对方法体,以说明实现思路为主。对于大段大段的代码,要分段,使用空行隔开,并使用行内注释进行说明。
3.面向对象思维能力
多数编程语言都是面向对象的编程语言。而这些面向对象编程语言的共同精髓就是面向对象的思想。掌握这些比面向对象语言本身更重要,比如对继承,多态,重载的理解。对面向对象基本原则的理解,比如开闭原则,接口隔离原则,单一职责原则等。在此基础上,应该掌握常用的设计模式,比如工厂模式,策略模式,观察者模式,模板方法模式,命令模式等等。
4.利用工具能力
编程序,要选择一个很好的IDE,工具是为目的服务的,好用,提高效率就行,形式无所谓。
5. 英语能力
新的技术资料都是英文的。学英语,首先是有信心,其次就是花时间。多阅读英文资料,贵在坚持。
6.学习能力
在IT业工作不容易,整个环境进化的太快,你不学习,就等于落后了。学习要有针对性,不要今天学ruby,明天学Python,后天PHP的。首先要认清自己的目标,自己短期目标是什么,1年后,3年后,5年后的目标是什么。结合这些目标,确定自己的学习计划,人的精力毕竟是有限的。当然,多掌握几门编程语言也是好的,可以扩充自己的知识面,重要的是为自己的目标服务。当然,不能只学习技术,要经常练习自己的软技能,比如沟通能力,表达能力。
7.文档能力
其实写代码也相当于写文档,只不过用的是编程语言。同样,写文档,用自然语言,也相当于写程序,简单明了,清晰易懂,这样的“程序”谁看谁舒服。同样,对于想进阶到设计师或者需求分析员角色的程序员,文档能力更是非常重要。
8.代码评审能力
代码评审和单元测试是保证代码质量的两种常用手段之一。代码评审能力,说明了你的审美标准,知道什么是好的,什么是不好的,什么是优雅的代码,什么是糟糕的代码,你才能让自己做的更好。
9.单元测试能力
单元测试还可以作为回归测试,在修改代码时,起到警戒线标志的作用。是否具有单元测试的意识是区分程序员是否合格的重要标准。写不写单元测试是区分平庸程序员和优秀程序员的重要标杆。
10.DRY
DRY是一种原则,就是Don”t Repeat Yourself.这条原则可以用到很多地方,比如你经常要编译,打包,部署应用程序,供集成测试用。每次你都在重复你自己,写一个自动化脚本(比如用ant,批处理命令)来将这些工作自动化,以提高效率。
十年说长也长,说短也短,什么事都有可能会发生。而你只要选择好自己喜欢的路,坚持走下去。就一定会有回报哒!
多年编程经验,今年1月整理了一批2019年最新WEB前端教学视频,不论是零基础想要学习前端还是学完在工作想要提升自己,这些资料都会给你带来帮助,从HTML到各种框架,帮助所有想要学好前端的同学,学习规划、学习路线、学习资料、问题解答。只要加入WEB前端学习交流qun:296,212,562,即可免费获取,学习不怕从零开始,就怕从不开始。
网友评论