2017 已经悄悄的走了,2018 也已经匆匆的来了,咱们在总结过去的同时,也要展望一下将来。俗话说一年之计在于春,虽然说距立春还有一个多月,我以为咱们若是想从小白升级到大牛,应该早作计划,规划一下今年要学哪些新的技能呢?咱们来一一探讨一下。
java
SpringBoot程序员
Spring Boot:是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员再也不须要定义样板化的配置。经过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。算法
Spring Boot 特色:数据库
建立独立的 Spring 应用程序;编程
嵌入的 Tomcat,无需部署 WAR 文件;api
简化 Maven 配置;数组
自动配置 Spring;安全
提供生产就绪型功能,如指标,健康检查和外部配置;服务器
绝对没有代码生成和对 XML 没有要求配置。网络
在此以前,咱们用 SSM 进行整合的时候,大量的 XML 配置,一个配置不对,或者版本对应不上,就会有各类坑,恶心到想吐。而后当咱们使用 SpringBoot 后,咱们只须要简单的 Properies 或 YML 配置便可搞定。并且咱们不再用手动下载 Tomcat 了,SpringBoot 帮咱们把它嵌入到了程序里,把程序打成 jar 包,只需简单用命令行运行 java -jar xxx.jar 便可完成一个 Web 项目的启动,so esay。
Spring Cloud
Spring Cloud:简单来讲就是一个微服务框架,是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,均可以用 Spring Boot 的开发风格作到一键启动和部署。
Spring Cloud 并无重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,经过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
Docker
Docker 可让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,而后发布到任何流行的 Linux 机器上,也能够实现虚拟化。
容器是彻底使用沙箱机制,相互之间不会有任何接口(相似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 的特性:
速度飞快以及优雅的隔离框架;
物美价廉;
CPU/内存的低消耗;
快速开/关机;
跨云计算基础构架。
有了 Docker,妈妈不再用担忧服务迁移作大量的配置工做了。
关于深度学习
PaddlePaddle
PaddlePaddle:并行分布式深度学习开源平台,它的前身是百度于 2013 年自主研发的深度学习平台,且一直为百度内部工程师研发使用。
全球各大科技巨头开源的深度学习平台都极具各自技术特色,对于百度,因为其自身在搜索、图像识别、语音语义识别理解、情感分析、机器翻译、用户画像推荐等多领域的业务和技术方向,PaddlePaddle 则表现更加全面,是一个相对全功能的深度学习框架。
PaddlePaddle 为深度学习研究人员提供了丰富的 API,能够轻松地完成神经网络配置,模型训练等任务。
百度成为继 Google、Facebook、IBM 后另外一个将人工智能技术开源的科技巨头,同时也是国内首个开源深度学习平台的科技公司。
“中国人要有本身的深度学习框架”,这句话好像是在参加百度 AI 大会的时候听到的,仍是很给力的。
TensorFlow
TensorFlow 是谷歌发布的第二代机器学习系统。是一个利用数据流图(Data Flow Graphs)进行数值计算的开源软件库:图中的节点(Nodes)表明数学运算操做,同时图中的边(Edges)表示节点之间相互流通的多维数组,即张量(Tensors)。
这种灵活的架构可让使用者在多样化的将计算部署在台式机、服务器或者移动设备的一个或多个 CPU 上,并且无需重写代码;同时任一基于梯度的机器学习算法都可够借鉴 TensorFlow 的自动分化(Auto-differentiation);此外经过灵活的 Python 接口,要在 TensorFlow 中表达想法也变得更为简单。
Scikit-Learn
Scikit-Learn 是用于机器学习的 Python 模块,它创建在 SciPy 之上。该项目由 David Cournapeau 于 2007 年创立,当时项目名为 Google Summer of Code,自此以后,众多志愿者都为此作出了贡献。
Scikit-Learn 主要特色:
操做简单、高效的数据挖掘和数据分析;
无访问限制,在任何状况下可从新使用;
创建在 NumPy、SciPy 和 matplotlib 基础上。
Caffe
Caffe 是由神经网络中的表达式、速度、及模块化产生的深度学习框架。后来它经过伯克利视觉与学习中心(BVLC)和社区参与者的贡献,得以发展造成了以一个伯克利主导,而后加之 Github 和 Caffe-users 邮件所组成的一个比较松散和自由的社区。
Caffe 的特色:
易用性:Caffe 的模型与相应优化都是以文本形式而非代码形式给出,Caffe 给出了模型的定义、最优化设置以及预训练的权重,方便快速使用;
速度快:可以运行最棒的模型与海量的数据;
Caffe 可与 cuDNN 结合使用,可用于测试 AlexNet 模型,在 K40 上处理一张图片只须要 1.17ms;
模块化:便于扩展到新的任务和设置上;
使用者可经过 Caffe 提供的各层类型来定义本身的模型。
关于深度学习的开源框架还有不少,不在此一一介绍,可以学会并熟练运用其中一个或两个,那你就是大牛了。
区块链
比特币想必你们已是如雷贯耳了,09 年刚诞生的时候单价也就几美分而已,17 年 12 月交易价格达已经到了 1 万七千美圆还多。约合人民币 11.3 万/枚。
区块链正是比特币的底层技术和基础架构,它是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不一样节点之间创建信任、获取权益的数学算法。
区块链本质上是一个去中心化的数据库,同时做为比特币的底层技术,区块链是一串使用密码学方法相关联产生的数据块,每个数据块中包含了一次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
狭义来说,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一 种链式数据结构, 并以密码学方式保证的不可篡改和不可伪造的分布式帐本。
广义来说,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操做数据的一种全新的分布式基础架构与计算范式。
听说研究这项技术的人的年薪 100w - 300w 不等,也许更多。
关于语言
Java
Java 已然得到了编程语言界的霸主地位,这是没有哪一个程序员会否定的,在当下的程序员总数量中,Java 程序员数量在 900 万左右,为世界编程语言程序员数量上第一,而且 JavaEE 程序员仍是全世界需求量最大的程序员。
Scala
在资深程序猿眼中,能替代 Java、而且能作得比它更好的只有 Scala。不能否认的是 Scala 在业内的口碑不错,做为一个后起之秀,它解决了 Java 广泛存在的许多问题,Scala 的性能比 Java 更增强大。
Go
Go 语言是谷歌推出的一种全新的编程语言,能够在不损失应用程序性能的状况降低低代码的复杂性。
Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或相似用途的巨型中央服务器的系统编程语言。
对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
前面提到的 Docker 就是 GO 语言开发的。
Python
Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。像 Perl 语言同样,Python 源代码一样遵循 GPL(GNU General Public License)协议。
Python 已然成为机器学习领域的标配,听说即将归入高考,虽未获得官方证明,但也是大势所趋。
Julia
Julia 语言(https://julialang.org/) 专门针对科学计算、机器学习、数据挖掘、大规模线性代数、分布式和并行计算,在 Julia 的使用者眼里,Python 不够快也不够方便。此消彼长,当它擅长某一项工做时,确定会忽略其余部分。
结束语
若是上述的技术,你正在学习或者已经在运用当中,若是你还不是大牛,那你必定是在成为大牛的路上。
其实能够成为大牛的姿式还有不少种,这里就不在一一列举了,只要你一如既往的坚持你认为是对的路,终有一天你将不会在意你是否是大牛。
最后祝你们 2018 年,新年快乐,心想事成。工资高高、Bug 少少、KPI 多多。欢迎在下方留言说说本身的 2018 年计划学习的新技术,给你们进行分享!