软件工程师,在接下来的5-10年内应该掌握的技术
2016-07-28 15:11
302 查看
这是一个发布在 Quora 上的问题,提问者问到:“作为一个软件工程师,想要生存下去,在未来的5-10年内有哪些必须掌握的技能呢?例如人工智能?高等数学?”
下面是一位曾经在Facebook和Google工作过,目前在Uber就职的程序员 Pedram Keyani 的分享,目前已获得3500+的赞:
如果你的目标是成为一名通用软件工程师,那么未来5-10年需要掌握的技能与过去5-10年并没有什么太多的差别。
通用技能:
深刻理解计算机科学的基本原理
数据库
网络技术
编译器
数据结构
算法
操作系统设计
分析能力
能够把大问题分解为小的问题
顺序和需要完成的工作的优先级
与团队的合作(有意义的工作是以团队为单位进行)
专业技能:
如果你想适应行业发展趋势或者认为现实世界需要计算机技术,那么你可以专注于机器学习、计算机视觉、移动开发或分布式系统(物联网)。
对于机器学习我有一点警告。大多数人认为这是一个热门的领域(它确实是),但是机器学习实际的应用需要依赖于强大的操作系统设计,即有效的利用内存、IO、以及不驻留在机器分类上的提取功能。大多数研究课程都集中在底层的分类,但真正神奇的是如何将它们应用于现实世界的问题。
下面是一位曾经在Facebook和Google工作过,目前在Uber就职的程序员 Pedram Keyani 的分享,目前已获得3500+的赞:
如果你的目标是成为一名通用软件工程师,那么未来5-10年需要掌握的技能与过去5-10年并没有什么太多的差别。
通用技能:
深刻理解计算机科学的基本原理
数据库
网络技术
编译器
数据结构
算法
操作系统设计
分析能力
能够把大问题分解为小的问题
顺序和需要完成的工作的优先级
与团队的合作(有意义的工作是以团队为单位进行)
专业技能:
如果你想适应行业发展趋势或者认为现实世界需要计算机技术,那么你可以专注于机器学习、计算机视觉、移动开发或分布式系统(物联网)。
对于机器学习我有一点警告。大多数人认为这是一个热门的领域(它确实是),但是机器学习实际的应用需要依赖于强大的操作系统设计,即有效的利用内存、IO、以及不驻留在机器分类上的提取功能。大多数研究课程都集中在底层的分类,但真正神奇的是如何将它们应用于现实世界的问题。
相关文章推荐
- 快速Android开发系列网络篇之Android-Async-Http
- Java优先队列(PriorityQueue)示例
- python 列表推导
- [网络通信]使用fork的TCP通信服务端重起bind问题
- Oracle在登陆时被告知用户被锁,如何解决?
- Spring注解事务诡异提交全面解析
- Linux python <tab>自动补全
- ES6学习笔记 (let、const)
- mxnet代码解析之computation graph
- Umeng 统计集成
- 判断网络
- 选择排序
- 查看表空间
- 详解UIView的frame、bounds、center属性
- Android开发之经典游戏贪吃蛇
- 分布式事务之两阶段提交(2pc)
- flsah的分类
- Eclipse背景颜色,字体大小,自定义格式等...
- html 绘图渐变和图片填充
- hdu 2853