零基础学编程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 条评论
登录 后参与评论

相关文章

来自专栏Python小屋

Python+tkinter实现任意多层级关系的组合框

正好自己要用,就想了个简单思路实现了一下,假设现在需要一个组合框来显示多个层级关系的单位名称供用户选择,如果只有固定的两级关系当然可以使用两个组合框联动来实现,...

3365
来自专栏Java学习网

你的代码糟粕比精华要多得多

你的代码糟粕比精华要多得多 新的研究发现,一个程序的核心功能仅在于一小部分封装的代码。 如果你是一个软件开发人员,有人问你,你写的代码中有多少是真正在实现实际...

2565
来自专栏斑斓

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

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

1373
来自专栏程序员互动联盟

为什么这么多人学不会C语言?

很多人觉得用C语言作为入门语言觉得太难了,里面还有指针,回调,递归之类的操作太难了。为什么这么多人觉得C语言难?笔者根据从业十几年的经验尝试着分析一下。 ? 第...

3706
来自专栏木宛城主

敏捷团队的规范与准则

1.序言 打造一个金诚所至的敏捷团队,需要大家自发的来遵守以及完善相应的规范。大家在自我约束的前提下,彼此之间互相影响,由下而上推动团队的建设。所以规矩、准则...

2389
来自专栏二进制文集

《代码整洁之道》

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

1412
来自专栏Java架构师进阶

从内到外的实现JVM

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

873
来自专栏Java3y

购物车案例【简单版】

前言 为了巩固MVC的开发模式,下面就写一个购物车的小案例.. ①构建开发环境 导入需要用到的开发包 ? 建立程序开发包 ? ---- ②设计实体 书籍实体 ...

3946
来自专栏Crossin的编程教室

【Python 第35课】 continue

break是彻底地跳出循环,而continue只是略过本次循环的余下内容,直接进入下一次循环。 在我们前面写的那个统计分数的程序里,如果发现有成绩不足60分,...

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

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

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

2966

扫码关注云+社区