此图中,排名前5的分别是:
JAVA、C、Python、C++和C#
占比分别为:
17.253%、16.086%、10.308%、6.196%、4.801%
什么语言其实并不重要
是的,你没有看错,学什么语言其实并不重要。原因有很多,但其中最主要的是众多编程语言的核心其实是非常相似的。也许他们语法不同,外观不同,甚至功能也完全不同,但是核心层面的相似程度远比你预料的高。几乎所有的编程语言都会有分支、 循环、调用方法或过程以及代码组织方式。有的甚至相似到你精通一门语言后就自然会了另一门语言,C# 和 Java 都是很好的例子。JavaScript也与他们十分相似。
学习第一门语言总是最难的,一旦你掌握了一门语言,第二门就会容易很多,当你学会了两门或者更多的语言,学习难度将呈指数级降低。如果你现在一门语言都不会,可能很难相信这些话,但是如果你已经学会了10门语言,我敢保证你会说前两门语言是最难的。
这意味着如果你已经学了一门语言,却发现这门语言并不适合你,或者找到另一份需要使用其他语言的工作,没有关系,你已经度过了最艰难的日子,再学一门语言对你来说不是大事。
你也可能会发现,很多岗位—特别是在微软和谷歌之类的大公司—是不需要你知道特定编程语言的。我也遇到过跟多这种情况,被要求使用最拿手的编程语言来解决某个特定的问题,没有限制,不需要知道某种特定的语言,思想比语言更重要。
选择编程语言需要考虑的问题
所以,我认为,首先学哪门语言并不重要。但是如果你仍然不知该如何选择,那么考虑下面几个问题。
就业前景和未来
多于你们大多数来说,最需要考虑的是,选择什么样的编程语言,能对我未来的工作有所帮助。现在,最流行的语言是能在相同时间内完成更多任务的语言。编程语言的人气也同明星一样,有升有降,如果你只关心工作的可用性,可能会虑主流的编程语言,在写这篇文章的时候,这些都是主流的语言:
C#
Java
Python
Ruby
JavaScript
C++
PHP
使用以上任何一种语言的职位都不在少数,这也就是说,如果你不愿意搬迁的话,选择哪种语言就取决于你所在的位置。例如,如果你住在阿肯色州的一个小镇上,小镇上只有一家软件公司,他们所有的业务都使用Java,我就建议你学习Java,这是从非常现实的角度来考虑问题。不过我想你们中的大多数或许都愿意外出闯荡,这种情况下你的选择就取决于你的目标公司和岗位了,这需要自己去调查。
如果你想成为一个自由职业者,那么我建议你学习偏门一点的,使用不是那么广泛的语言,这样你面临的竞争压力会小很多。当然,一开始还是要坚持从主流语言学起。
除了就业前景,另一个需要考虑的问题是编程语言的未来。例如Objective-C就不是一个很好的选择,因为大多数iOS开发者都已经切换到Swift,Swift才是苹果大力投资的方向。如果你现在就是在使用Objective-C工作,也不用担心,因为仍然有大量的遗留工作需要Objective-C来维护,只不过长远来看,Objective-C早晚会被Swift取代的。
当然了,我们都没有魔法球,能够准确地预测未来,哪些语言会受到欢迎,哪些会被抛弃。我曾经预测JavaScript的衰败,但那完全没有发生。如果想更全面的了解编程,可以来我这看看。
希望对您有所帮助!~
编程语言的受欢迎程度、学习的人群数量,以及由于人工智能的兴起,最热门的编程语言排行榜也发生了变化。
一、C/C++
C是迄今为止最常用的最古老的编程语言之一。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就适应的问题规模而论,大小由之。
二、Java
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
三、Python
Python是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
由于Python语言的简洁性、易读性、可扩展性,以及丰富和强大的库,使用率呈线性增长。另外,人工智能的兴起,Python语言排名大爆发,人生苦短,请用Python。