零基础学编程026:学什么编程语言最有前途?

(封面图来自于网络)

想学习编程的朋友可能一直纠结于到底学哪一种编程语言最有前途,我google了一下,在维基百科的下面这个页面里大概有500多种编程语言,这些相对来说还是比较知名的编程语言,不包括一些语言的方言以及一些标记性的语言。

https://en.wikipedia.org/wiki/List_of_programming_languages

市场上哪种程序员最抢手?我也google了一下,发现了2016年和2017年的两篇贴子:

http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2016

http://www.codingdojo.com/blog/9-most-in-demand-programming-languages-of-2017

先看2016年的语言热度排名,SQL、JAVA、JavaScript占据前三位,后面分别是C#、Python、C++、PHP、iOS、Ruby。

再来看看2017年的情况,SQL、Java、Python占据前三位,实际上JavaScript与Python差不太多。

另外有一个网站几乎每个季度都会公布一次编程语言排名,它是著名的TIOBE,它的排名算法大概也是根据网上相关文章多少、搜索关键词的频度等计算出来的。2017年2月公布的最新结果是Java、C、C++、C#、Python位居前五。

而关于“哪种语言最好?”这种问题一直在各种论坛上争吵不休,这种问题实际上是一个伪命题,何为最好?写的代码行最少?执行效率最高?可以并行执行?维护最方便?可以处理海量数据?最接近于自然语言?用不同的评价指标会得出完全不同的结果。

停止纠结

与其在多种编程语言中纠结和争吵,不如从排名前10的语言中挑一种快速入手,所有的主流编程语言基本上都是相通的。编程的基本原理是相同的,背后的算法没有变,数据结构也类似,只是语法稍有不同而已。

明白了编程的基本原理,换成另外一种语言相对来说比较容易,只是换一种语法结构去重写而已(当然背后还有庞大的类库要熟悉,这些都需要时间去熟悉)。对于某种特定的功能,有些语言写起来啰嗦一些,有些语言写起来简捷许多;有些语言执行效率高,有些语言运行稍微慢一点;有些语言可直接适用于多核CPU并行,有些语言的并行化需要做大量工作。

我学过N种编程语言,现在看来语法是最容易学的部分,最麻烦的部分在于要去熟悉大量的模块或类的使用方法,还要学会正确的使用方法。我们以四种基本的流程结构来看看几种语言的语法有何不同吧,一个程序的执行流程大致可以分为这四种:顺序分支循环函数调用

1)顺序

这种结构太简单了,所有的语言都是从上至下的执行,没什么可说的。

2)分支

Python

if(i % 7 == 0) :
    stamp()
else :
    forward(1)

JAVA、C#、C

if(i % 7 == 0) {
    stamp();
} else {
    forward(1);
}

3)循环

Python

for i in range(1,366) :
    print( "hello world" )

JAVA、C#

for(int i=1; i<=365; i++) {
    打印语句;
}

C

int i;
for(i=1; i<=365; i++) {
    打印语句;
}

4)函数调用(实际上函数定义的语法差别稍大些)

Python

func( para1, para2 )

JAVA、C#、C

func( para1, para2 );

可以看出,这些不同语言的基本语法是非常相似的。相比语法,更重要的是理解计算机原理、数据结构和算法。如果你真是零基础,那就选Python吧,这语言写起来比较简练,上手相对容易些。

公众号后台发消息:python,跳转到“零基础学编程”的所有文章目录。

--- END ---

原文发布于微信公众号 - 申龙斌的程序人生(slbGTD)

原文发表时间:2017-02-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

如何掌握所有的程序语言

很多编程初学者至今还在给我写信请教,问我该学习什么程序语言,怎么学习。由于我知道标题问题的答案,所以总感觉这个问题是如此“低级”,一直没来得及回复 : P 可是...

330
来自专栏小二的折腾日记

不知道怎么开的船?

最近开始再一次准备看数据结构和算法,再一次,是不能再跟闹着玩的一次了。看着实验室最近找工作的师兄师姐,一边心疼他们,一边更心疼明年的自己。所以我也想到了也许很好...

833
来自专栏精讲JAVA

5 本最佳的 Java 面向对象理论和设计模式的书籍

对于Java程序员来说,掌握面向对象的设计理论和一些设计模式是必备技能。就像我在另一篇博客Java程序员应该知道的10个面向对象理论中提到的,不学理论就开始编程...

1234
来自专栏北京马哥教育

快速掌握一个语言最常用的50%

现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把...

2659
来自专栏顶级程序员

帮你提升 Python 的 27 种编程语言

编译:开源中国 www.oschina.net/translate/languages-to-improve-your-python 原文:http://...

3496
来自专栏数据科学与人工智能

【Python环境】为什么要选择Python语言实现机器学习算法?

基于以下三个原因,我们选择Python作为实现机器学习算法的编程语言:(1) Python的语法清晰;(2) 易于操作纯文本文件;(3) 使用广泛,存在大量的开...

1878
来自专栏CDA数据分析师

帮你提升 Python 的 27 种编程语言

27 种语言 过程型编程语言: C, Rust, Cython 面向对象数据建模语言: Java, C#, Eiffel C 的面向对象衍生语言: C++, D...

1718
来自专栏企鹅号快讯

如何在短时间迅速提升Python功力?Python应该怎样去学习呢?

最近有一段时间没有看后台的留言,。昨天我打开后台一看有很多同学给我留言,其中有5条是问我关于如何快一点提高Python功力的相关问题~~ 确实当你学了Pytho...

1959
来自专栏PPV课数据科学社区

5种最流行的AI编程语言

导读:有没有兴趣来了解更多与AI开发有关的内容? 本文将介绍创建AI程序时可以使用的5种最佳语言。 Python ? Python语法简单,功能多样,是开发人...

3468
来自专栏编程

在编程中为所欲为圣诞版

众所周知,在Java中final String中的值是一成不变的。大家都知道String的+(拼接)运算会丢弃内存引用并在内存中重新开拓地址,事实上也确实如此。...

1846

扫描关注云+社区