谈谈编程语言的选择

简介: 常常有新人问我,我该学哪一门编程语言呢?编程语言太多了,我都不知道该选择哪一门编程语言来深入学习了!是的,我也曾被这个问题所困恼,当初学习软件编程时也经历了C/Java/C#这样的路线,后来我也接触并使用过C++/Visual Basic/JavaScript/PHP/Python等语言,并了解过一些冷门语言。

常常有新人问我,我该学哪一门编程语言呢?编程语言太多了,我都不知道该选择哪一门编程语言来深入学习了!是的,我也曾被这个问题所困恼,当初学习软件编程时也经历了C/Java/C#这样的路线,后来我也接触并使用过C++/Visual Basic/JavaScript/PHP/Python等语言,并了解过一些冷门语言。多年下来,我对编程语言的理解是每个编程语言的出现都有它出现的理由,每个编程语言也都有各自最适合的应用场景,没有一门语言能够包办所有。

我们先来看一下2016年3月份的世界编程语言排行榜:

这里写图片描述

这里列出了最流行的TOP20编程语言,我们先来分析一下上面一些常用的编程语言。

Java:应用开发领域的王者,JavaEE和Android的如日中天让Java稳居排行榜第一。
C:在操作系统内核、嵌入式开发等方面具有无可比拟的优势。
C++:适合服务端开发、游戏开发等对性能有一定要求的领域。
C#:Java的直接竞争对手,在应用开发领域有相当的份额,Unity3D的流行,也让C#扩充到了游戏开发领域。
Python:动态脚本语言,随着大数据相关技术的发展,份额不断上升。
PHP:LAMP几乎是网站开发的标配,各种框架模板都比较成熟。
JavaScript:动态脚本语言,网页前端开发的唯一选择,随着HTML5、Node.js等技术的发展,让其在Web端有大一统的趋势,在游戏开发、物联网开发等领域也有其一席之地。
Swift/Objective-C:iOS开发语言,Swift正在进化中。

上面我简要介绍了一下目前几个主流语言各自的应用领域。可以说没有哪个语言能够完全替代掉谁,但是也不能保证随着技术的不断发展,这些语言还能保持领先。

选择了一门语言,实际上就是选择了它背后的技术栈,所以我们应该围绕应用领域来选择语言。比如你要做操作系统内核、嵌入式开发,那你就去学C。你想开发游戏,那你可能要去学Cocos2d-x或者unity3d,分别对应了C++和C#,当然JavaScript也行。如果你想实现Web全栈开发,那么你可能需要精通JavaScript。没有一门编程语言能够包办所有。

但尽管如此,初学编程时,第一门语言的选择还是很重要的,会影响你的思维。我想初学编程时还是选择C语言比较好,C++虽然是C的“扩充”,但是规则过于复杂,概念过多,初学者会失去信心。有了C的基础,就可以学一下C++/Java/C#中的一种,这是目前应用开发领域最主流的语言。

近些年大数据的流行以及前端开发的兴起,使得Python和JavaScript两门动态脚本语言不断流行,与之相应的库和框架也不断进化。所以很多人又转向了这方面的开发。这就引出了我的一个观点:学习编程还有一种思想要不得,就是贪图大而全。一个人的精力和能力都是有限的,很难掌握所有。况且各个技术体系的技术还在不断升级。就是全栈工程师,那也是某个方面的全栈,比如web全栈或者app全栈。不是做不到web全栈+app全栈,而是很难每一块、每一个细节都能一样的达到较高水准。随着软件开发分工的越来越细,还是让更专业的人来做为好。你可以在有时间有精力的情况下,了解一下其它领域的技术,扩充知识面,但不要本末倒置。

最后我想说,不要把自己限死在一门编程语言上,根据市场的变化和自己的兴趣合理选择编程语言,让我们做一个真正的程序员。

目录
相关文章
|
6月前
|
自然语言处理 Java 编译器
程序语言基础知识
程序语言基础知识
43 0
|
7月前
|
Java Go 调度
Go语言并发编程原理与实践:面试经验与必备知识点解析
【4月更文挑战第12天】本文分享了Go语言并发编程在面试中的重要性,包括必备知识点和面试经验。核心知识点涵盖Goroutines、Channels、Select、Mutex、Sync包、Context和错误处理。面试策略强调结构化回答、代码示例及实战经历。同时,解析了Goroutine与线程的区别、Channel实现生产者消费者模式、避免死锁的方法以及Context包的作用和应用场景。通过理论与实践的结合,助你成功应对Go并发编程面试。
120 3
|
设计模式 Cloud Native Java
Go语言-让我印象深刻的13个特性
我们正在加速进入云原生时代,Go语言作为云原生的一块基石,确有它的独到之处。本文介绍Go语言的几个让我印象深刻的特性。
让我设计一门编程语言或开发一套解决框架
让我设计一门编程语言或开发一套解决框架
93 2
|
存储 自然语言处理 编译器
GO语言基础语法探究:简洁高效的编程之道 1
GO语言基础语法探究:简洁高效的编程之道
115 0
|
安全 Go C语言
GO语言基础语法探究:简洁高效的编程之道 3
GO语言基础语法探究:简洁高效的编程之道
113 0
|
存储 Java 编译器
GO语言基础语法探究:简洁高效的编程之道2
GO语言基础语法探究:简洁高效的编程之道
|
存储 开发框架 Cloud Native
【C#基础】初识编程语言C#
编程语言C#和.NET平台的介绍以及如何写出自己第一个C#程序。
115 0
|
架构师 Java 编译器
Java编程语言特性和优势
## 1 前言 Java是近 10 年来计算机软件发展过程中的传奇,其在众多开发者心中的地位可谓“爱不释手”,与其他一些计算机语言随着时间的流逝影响也逐渐减弱不同,Java 随着时间的推移反而变得更加强大。 从首次发布开始,Java 就跃到了 `Internet `编程的前沿。后续的每一个版本都进一步巩固了这一地位。如今,Java 依然是开发基于 Web 的应用程序的最佳选择。此外,Java 还是智能手机变革的推手,`Android`编程采用的就是 Java 语言。 ## 2 Java语言特性 Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多
323 0
Java编程语言特性和优势
|
Java 程序员 编译器
Yin 语言:学习设计和实现一门编程语言
大多数语言没能吸取历史教训 大多数语言受到宗教性的推崇,拥有一个过于狂热的社区,因此难以改正自己的错误 有些语言为程序员做得太少,有些语言为程序员做得太多 有些语言提供了太少的抽象,有些语言提供了太多的抽象 有些语言太不顾及可用性,游戏语言过于重视可用性而忽视了可用性之外的东西 有些语言从数学和逻辑那里学得太少,有些语言学得太多 有些语言太不顾及类型,有些语言对类型考虑过多
585 0
Yin 语言:学习设计和实现一门编程语言