7 月 22 日, 李彦宏刊登在人民日报的《推动新一代人工智能健康发展》一文中表述,"在移动互联网, 大数据, 超级计算等新理论新技术驱动下, 人工智能呈现新的特征, 将对经济发展, 社会进步, 国际政治经济格局等产生重大而深远的影响. 当今时代, 人工智能被认为是科技创新的下一个'超级风口', 世界各国越来越重视."
于是, 有很多人不禁发问: 程序员十年后的发展前景怎么样? 程序员的工作会不会都被 AI 替代了呢?
这个问题很像在十年前问, 诺基亚手机未来的发展前景如何?
十年前我们会认为, 诺基亚那么强大, 未来十年肯定会称霸全球的. 但是事实呢? 仅仅因为一步走错, 最终导致被合并收购.
789.jpg
互联网时代, 瞬息万变. 一个小小的走错, 就有可能落后于别人. 所以我们没办法去预测任何行业, 任何职业未来十年会怎么样, 因为未来谁都不能确定. 只能说只要有互联网存在, 程序员依然是个高薪热门行业. 只要跟随着时代的脚步, 学习新的知识. 程序员是不可能会消失的, 或者说不可能会没钱赚的.
我们经常可以听到很多人说, 程序员是一个吃青春饭的行当. 因为大多数人认为这是一个需要高强度脑力劳动的工种, 而 30 岁, 40 岁, 甚至 50 岁的程序员身体机能逐渐弱化, 家庭琐事缠身, 已经不能再进行这样高强度的工作了.
那么, 这样的说法是对的么?
其实有这种想法的人, 已经犯了一个根本性的错误, 就是把十年后的程序员工作效率等同于现在的程序员效率.
我们想想一个程序员工作了十年, 已经对这些业务熟悉的不能再熟悉, 还会是当年那个调试代码调试半天的年轻人吗? 如果你说是, 只能说明你这十年什么都没学到, 只是在浪费青春.
在程序员届一直流传着这样的传说:
有一个七十多岁的程序员, 一辈子是一名程序员, 却让比尔盖茨敬佩有加.
790.jpg
这个人叫做戴夫 • 卡特勒(Dave Cutler). 戴夫 • 卡特勒今年已经七十四岁了, 却依然是一名程序员. 他没有队伍, 不做经理, 但是他在公司的职位比大部分副总裁还要高. 据说有一次某一个队伍预测一项工程要数月完成, 他看不过去, 两天, 一个人就完成了...
所以你看, 程序员也不一定是青春饭, 更多的原因是自己懒. 只要对这个职业保持着热情. 根本没有什么青春饭的说法. 再老, 依旧能做得很好. 在十年的时间里, 很多程序员往往面临继续做技术还是转做管理的局面. 有人考虑转型, 当然也有人像戴夫. 卡特勒一样, 选择对这份职业矢志不渝.
791.jpg
那么一名优秀的程序员应当具备哪些技能呢?
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, 即可免费获取, 学习不怕从零开始, 就怕从不开始.
来源: http://www.jianshu.com/p/e1a778995c23