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

相关文章

来自专栏牛客网

新鲜出炉的百度-春招-前端面经

1. 自我介绍 2. 项目经验,我说项目名说错了,然后又说了一遍,面试官不知道什么心态的鬼魅一下 3. Html5不同于以前版本的特点 4. Html5新增ap...

33611
来自专栏大数据钻研

CSS基础知识

1.认识CSS样式 CSS全称为“层叠样式表 (Cascading Style Sheets)”,它主要是用于定义HTML内容在浏览器内的显示样式,如文字大小、...

3473
来自专栏Coco的专栏

谈谈一些有趣的CSS题目(十三)-- 巧妙地制作背景色渐变动画!

1417
来自专栏小狼的世界

Silverlight学习笔记:布局之stackpanel

在用户界面设计方面的竞争多半是围绕着如何制作出有吸引力、实用、灵活的用户界面而展开的。在基于浏览器的应用中进行界面的设计则是一项更加需要技巧的工作,因为我们的客...

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

最让程序员感到崩溃的10种编程语言

很显然,软件开发领域中的程序员对编程语言最有发言权。一种语言可能是一些程序员的最爱,但它同时也是另一些程序员的噩梦。如果你在编程领域呆了一段时 间,你就迟早会发...

3655
来自专栏刘望舒

Flutter最佳入门方式:写一个计算器

工作以来,我在学习新知识的时候,常常与在应试教育阶段被传授的方法作斗争——把书本的内容100%复制到脑中才算学会吗?不会被使用或者不常用的知识,花费大量功夫去记...

752
来自专栏韩伟的专栏

面向对象的代码风格(上)

大家过年好呀!公众号从今天开始恢复更新,感谢大家不离不弃的关注。 今天的文末有投票,以助于我在新的一年里将公众号做得更好,踊跃参加一下吧! 本篇文章分两章发送,...

3618
来自专栏java一日一条

Jsoup代码解读之四-parser(上)

作为Java世界最好的HTML 解析库,Jsoup的parser实现非常具有代表性。这部分也是Jsoup最复杂的部分,需要一些数据结构、状态机乃至编译器的知识。...

611
来自专栏小李刀刀的专栏

[译]clearfix改良及overflow:hidden详解

原文:clearfix Reloaded + overflow:hidden Demystified clearfix 和 overflow:hidden 可算...

3488
来自专栏web前端教室

【投稿】记一次前端面试~James

今天发的文章是先行者计划成员-james的亲身经历,里面涉及很多前端开发及js的基础知识,相信对于新人面试会很有帮助。所以在取得原作者同意之后在公众号发出来,希...

762

扫码关注云+社区