2017年程序员需要掌握哪些技术?你会几个?

译文
云计算
我是非常支持程序员们抱着终身学习的态度的。尽管新型技术成果不断出现,但对于从业者而言,打好基础永远更为重要。因此如果大家对以下六项基本技术方案还不太熟悉,请在2017年到来之前做好准备。

【51CTO.com快译】我是非常支持程序员们抱着终身学习的态度的。尽管新型技术成果不断出现,但对于从业者而言,打好基础永远更为重要。因此如果大家对以下六项基本技术方案还不太熟悉,请在2017年到来之前做好准备。

(注:不管市场如何曲折,如HTML这类内功性质的技能是不可能很快消失。很多朋友可能会奇怪我为什么没有把JavaScript列入进来。事实上,如果列入JavaScript,那么React、jQuery等等,或者其他多种软件包或框架也都需要被列入进来,然而这些显然会在未来几年中逐步更新换代的。考虑到篇幅所限就不多叙述别的知识了。)

 

1.Go语言

今年10月的TIOBE编程语言人气榜上,Go语言得到了简单但有力的描述:“谷歌的Go语言几乎无可匹敌,而这主要是受到Docker等Go语言编写的容器应用方案的大力推动。”

2017年程序员需要掌握哪些技术?你会几个?

尽管Go语言最初的目的有实验性质,但Docker以及其它企业都把它作为自身基础设施的有力支柱,而理由则非常简单:它拥有迅如闪电的编译与执行速度,可以使用简单方法(Goroutines)支持并发机制,并且也为程序员们提供大量选项来构建并维护现有及新型技术。然而Go语言的好处需要到代码量达到一定量之后才能体会出来,比如当你遇见一个cpp文件一个小时都编译不完的时候,你就知道简化语法增加编译速度有多重要了。Go同样面向对象,但它不存在类型结构。

以下为Go语言中的“Hello World”编写方式:

package main import "fmt" func main() { fmt.Println("Hello, World") }

 

2.Rust

与火狐浏览器同宗同源的Rust是一类系统编程语言,它运行速度极快、不存在段错误并且可以保障安全。与Go不同,Rust并不具备垃圾回收机制(Go的垃圾回收机制速度很快),因此Rust编程适用于嵌入式系统。

2017年程序员需要掌握哪些技术?你会几个?

与Go类似,Rust依赖于代码分支结构——但Rust更为复杂。两种语言都是免费,并且它们都拥有自己的支持工具生态系统。Rust博客主页中的“稳定性即可交付性”口号正是Rust的理念所在; 其在RedMonkt及其它编程语言榜单上皆拥有不俗表现,其未来发展自然值得关注。

下面来看一段出色的Rust代码示例:

let number = 13; println!("Tell me about {}", number); match number { // Match a single value 1 => println!("One!"), // Match several values 2 | 3 | 5 | 7 | 11 => println!("This is a prime"), // Match an inclusive range 13...19 => println!("A teen"), // Handle the rest of cases _ => println!("Ain't special"), } let boolean = true; // Match is an expression too let binary = match boolean { // The arms of a match must cover all the possible values false => 0, true => 1, }; println!("{} -> {}", boolean, binary); }

 

3.Git

时至今日,每个人都需要使用版本控制系统(简称VCS)。VCS实际上就是一套容纳代码及数据的存储库。它能够追踪变更,并使用开源meld等diff工具进行变更查看。

2017年程序员需要掌握哪些技术?你会几个?

 

各类VCS的工作原理大体相同。大家需要利用源代码文件建立一个项目,而后即可随时对其进行检查、编辑而后确认(提交)。

由Linux之父Linus Torvalds编写的Git是一套分布式VCS,因此其可供团队成员以远程方式使用各自的文件进行编辑,而后将变更的结果进行合并。如果存在冲突,也就是两位成员对同一文件提交了不同编辑结果,Git则会在合并时以高亮方式显示冲突部分。接着,大家必须手动编辑并修改这些内容。从人气角度讲,Git已然所向披靡。

 

4.HTML

在今天探讨的四种技术中,HTML显然最为简单。HTML是网页标记语言,是浏览器能够阅读的语言。只要你写的东西想要浏览器能正确显示出来,那就要懂HTML。其中的/代表着关闭标签,而且大多数HTML标签都利用这种开放标签加/关闭标签的形式起效。(对于以HTML起始的内容,标头可选且为文档中的不可见部分,而本体则容纳可见部分。)

[[179825]]

大多数其它HTML标签用于实现布局与文本格式; 其同样易于使用。尽管HTML的技术标准已经相当陈旧,但其仍然被广泛使用——如果大家尚不了解,请一定找点时间进行学习。

 

5.Python

如果,只能选择掌握一种编程语言,那么我的答案是Python。早在互联网诞生之前,Basic是每一位开发者所必须了解的语言选项; 如今Python就是新时代下的Basic。这是一种通用型编程语言,虽然没人会利用其编写那些“重量级”应用——例如游戏或者操作系统(这类应用仍然使用C++)。

2017年程序员需要掌握哪些技术?你会几个?

 

Python易于学习,且使用缩进而非大括号标记结构。以下代码来自Python维基词条:

parents, babies = (1, 1) while babies < 100: print 'This generation has {0} babies'.format(babies) parents, babies = (babies, parents + babies)

Python语言带有解释特性,因此大家可以在Python shell中尝试各种命令丈表达式。其速度很快,但相比优化型编译语言稍慢一点。它拥有规模庞大的资源库,且可通过多种方式实现进一步提速。大家可以使用pypy等替代性方案或者利用Cython将其编译为C; 如果大家了解C语言,也能够编写自己的C、Go或者Rust扩展。

Python在科学家群体中亦大受欢迎。最近推出的英特尔Python(免费)使得Python成为一种面向机器学习的可用语言,其适用场景包括大数据、神经网络以及其它相关技术。英特尔打造的这套发行版包含超过100套软件包(NumPy、SciPy等),且专门进行了优化以使用英特尔MKL及英特尔TBB库——二者内置于其中且可免费使用。大部分高强度任务都可由这些经过优化的英特尔库负责执行。

 

6.Linux

即使大家身为专业Windows用户及程序员,Linux同样值得加以关注,它能帮助您更快地学习,它还能使用多种技术方案。举例来说,Python、Go以及Rust就更适合在Linux平台上使用。(要在Windows上进行Rust程序编译,大家需要使用微软VC++或者MinGW——这是一套GNU编译器与工具集合,专门用于Windows平台上的开发与运行任务)。

2017年程序员需要掌握哪些技术?你会几个?

对于Windows用户,大家只需要下载免费VirtualBox并安装一套Linux发行版(我个人推荐Ubuntu 14.04 LTS或者16.04 LTS)即可开始Linux之旅。在此之后,大家即可学习Linux,安装各类编程语言,运行本地LAMP(Linux Apache MySQL PHP)Web服务器甚至尝试进行开发工作。

 

原文链接:

http://insights.dice.com/2016/12/20/5-tested-technologies-master-2017/

原文标题:5 Tested Technologies to Master in 2017

原文作者:David Bolton

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:关崇 来源: 51CTO
相关推荐

2018-02-02 16:41:01

程序员编程Web

2011-07-07 14:47:15

PHP

2015-05-27 09:45:59

程序员

2012-09-25 09:28:57

程序员

2009-06-19 14:38:20

Java程序员

2022-08-30 08:13:30

流程模板定期复盘数据

2015-07-29 09:39:00

高级程序员阶段

2018-03-14 09:50:10

阿里巴巴Java程序员

2020-09-14 08:47:46

缓存程序员存储

2009-05-21 15:58:12

程序员工作经验职场

2019-03-27 09:40:49

程序员技能开发者

2018-09-27 16:35:01

程序员编程语言Python

2015-07-28 10:39:34

程序员知识

2020-05-06 14:54:59

技术人工智能大数据

2011-06-11 20:59:12

程序员

2009-11-27 13:49:54

2015-04-10 19:37:34

程序员

2023-01-31 08:16:45

GitHub文件Markdown

2019-08-21 13:40:50

2021-09-30 16:22:34

程序员工具编程
点赞
收藏

51CTO技术栈公众号