零基础学编程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达人

软件构建中的设计

设计中的挑战 1、设计是一个险恶的问题:只有通过解决或部分解决才能被明确的问题 (Tacoma Narrows大桥,空气动力学) ? 2、设计是一个了无...

1847
来自专栏斑斓

一个完整的TDD演练案例(一)

实现猜数字的游戏。游戏有四个格子,每个格子有一个0到9的数字,任意两个格子的数字都不一样。你有6次猜测的机会,如果猜对则获胜,否则失败。每次猜测时需依序输入4个...

1273
来自专栏LiveEdu在线科技教育平台

Java 8五大主要功能为开发者提供了哪些便利?

两年前当Java 8发布后,立即受到了业界的欢迎,因为它大大提高了Java的性能。它独特的卖点是,顾及了编程语言的每一个方面,包括JVM(Java虚拟机)和编译...

26913
来自专栏二进制文集

《代码整洁之道》

写整洁代码,需要遵循大量的小技巧,贯彻刻苦习得的“整洁感”。这种“代码感”就是关键所在。有些人生而有之。有些人费点劲才能得到。它不仅让我们看到代码的优劣,还予我...

1002
来自专栏Java架构师进阶

从内到外的实现JVM

在社会化分工、软件行业细分专业化的趋势下,会真的参与到底层系统实现的人肯定是越来越少(比例上说)。真的会参与到JVM实现的人肯定是少数。

803
来自专栏web前端教室

偶遇--《坑新人--前端专用面试题》

在网上乱逛查资料,偶然看到下面这个js面试题, alert(a) a(); var a=3; function a(){ alert(10) } ...

2056
来自专栏程序员八阿哥

自学Python去面试,月薪为何仅3K?面试官问题解析!

很多人认为Python语言简单(实际真的那么简单吗?语法简洁不代表容易学),都去自学Python编程语言,然后寻思出去找一份好的工作,其中学生居多。所以这套面试...

560
来自专栏C语言C++游戏编程

零基础究竟怎样才可以学好C语言?多年开发老司机告诉你答案!

看到这,你也许有疑问:C语言功能强大,运行这么简单的一个程序就算入门了,没这么简单吧?

780
来自专栏机器学习算法与Python学习

Python高居顶级编程语言交互排行榜第一,你要做些什么呢?

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第二 【Python】:排名第三 【算法】:排名第四 IEEE Spectrum 发布了2...

2866
来自专栏phodal

五个简单的原则,带你写出整洁代码

每个人都有自己对于代码的看法,有自己的偏好。对于我来说,也是如此。作为一个实用主义者,我遵循的东西,比较少,也比较简单。多了,记不住,也不实用。

531

扫码关注云+社区