热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

学妹深夜语音:那么多编程语言,我该选什么?

先看一下2021年5月份的编程语言排行榜。现在主流编程语言就是,C,Java,Python和C等,几十种编程语言,这么多编程语言该怎么选呢

先看一下2021年5月份的编程语言排行榜。

现在主流编程语言就是, C, Java, Python 和C++等,几十种编程语言,这么多编程语言该怎么选呢,作为一个编程小白,往往很纠结语言该怎么选!

  我们时常听别人说,Java最流行,php是最好的语言,入门应该从C开始,满满的小纠结,这么大一堆语言无从入手,初期选择的时候难以决定,到底那个工资高,那个比较好找工作,那个比较好学等等问题困扰在选择期的小白,想学又好纠结。


1.各类编程语言的特点



1.1 C语言

C语言也是许多人极力推荐的入门语言,除了经典和应用广泛以外,相比Python,学习C语言可以充分了解计算机相关知识。并且C语言更适合写程序。

C语言能用来做什么?

C是多用途的、重要的计算机程序语言,支持结构化编程、词法变量范围和递归。是开发固件或移动应用的理想语言。通常被用于编写系统软件。

像Linux内核,驱动程序都是用C语言写的。在嵌入式领域用的非常广泛。我大学的时候就是自学的嵌入式,后来在一个机缘下转到了计算机视觉。

C语言优点?


  • 可移动性:C是高度可移动的。你在不做改动或仅做很小改动的情况下可以升发运行在不同平台的软件。
  • C很小:C完全基于变量。宏命令、函数和架构不是特别多。因此,C可以嵌入几乎所有现代微型处理器,从冰箱到闹钟。
  • 学会C方便学其他语言:很多编程语言都由C实现,学会就能使你方便的学会其他语言。

C语言缺点?


  • 不支持面向对象编程:这就是为什么创造C++原因之一,这也导致难以开发大型应用软件。
  • 学习有难度:不是最好学的编程语言也不是最难的,如果想学一学难点的C语言程序,可以去看看Linux内核源码。

就业情况和钱景?

C语言主要是嵌入式方向,安防行业,物联网行业,底层开发(如华为海思芯片的固件程序开发)。以下是工资分布图。关于薪资这块可能因人而异,请大家不要介意。


2.2 C++语言

C++也是在C语言的基础上开发的一种面向对象编程语言,应用非常广泛。常用于系统开发,引擎开发等应用领域,支持类、封装、继承、多态等特性。C++语言灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点。

C++语言能用来做什么?

软件开发,游戏开发,音视频开发和AI开发。

C++语言优点?


  • 可扩展性强
  • 高效 简洁 快速
  • 可移植性
  • 面向对象的特性
  • 强大而灵活的表达能力和不输于C的效率
  • 支持硬件开发

C++语言缺点?


  • 学习难度较高
  • 体量太大,并且不是安全性语言

就业情况和钱景?

c++在算法方向应用比较多,像我们做的CV算法。在游戏开发和音视频开发都很不错。以下是工资分布图。视觉方向还是比较推荐的,薪资这块还可以。


2.3 Python语言

Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。

Python语言能用来做什么?

网页开发,视频游戏开发,应用软件等等用途很广泛。

Python语言优点?


  • 简单易学
  • 免费开源
  • 可移植性

Python语言缺点?


  • 运行速度慢,因为是解释型语言
  • 代码不能加密,发布你的Python程序,实际上就是发布源代码

就业情况和钱景?

就业方向有全栈开发,运维开发,大数据,机器学习,数据分析。以下是工资分布图。


2.4 Java语言

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。

Java语言能用来做什么?

安卓移动开发,服务器开发,软件开发,网页开发。

Java语言优点?


  • 纯面向对象的语言
  • 具有很好的可移植性
  • 提供了很多内置的类库
  • 具有较好的安全性和健壮性

Java语言缺点?


  • 使用大量的内存。靠虚拟机运行,运行速度相对较慢。
  • 不能和底层打交道,不支持底层操作。
  • 启动时间慢。
  • 因为Java删除了指针,所以不如C/C++等语言灵活。

就业情况和钱景?

就业方向有Web开发,Android开发,客户端开发。以下是工资分布图。


2.5 PHP语言

PHP即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。

PHP语言能用来做什么?

服务端脚本,命令行脚本,桌面应用程序。

PHP语言优点?


  • 跨平台,性能优越
  • 语法简单,很容易上手
  • 有很多成熟的框架
  • 有强大的社区

PHP语言缺点?


  • 对多线程支持不太好,大多数时候我们只能简单的模拟去实现的。
  • 语法不太严谨
  • PHP的解释运行机制

就业情况和钱景?

PHP主要用来做网站开发,许多小型网站都用PHP开发,PHP是开源的,这是使得PHP经久不衰的原因。在电商、社区等方面,PHP具备非常成熟的开源代码和模板,因此使得PHP应用极为广泛。以下是工资分布图。


2.6 C#语言

C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言、运行于.NET Framework和.NET Core之上的高级程序设计语言

C#语言能用来做什么?

主要用来做桌面应用程序。

C#语言优点?


  • 全面集成.Net 库,提供出色的功能与完美的库访问能力。
  •  较简单的语言特性

PHP语言缺点?


  • 跨平台能力太差
  • 不合适做时间性能非常高(快速算法)或空间性能非常灵活(内存马上释放)的程序
  • C#底层方面比不过C,C++,在上层方面比不过Java

就业情况和钱景?

主要是做软件开发,可以应用在各行各业。以下是工资分布图。


2.适合最重要


很多人总是想知道哪个语言更好,其实编程语言都有自己的适用场景,适合才是最重要的。

编程语言只是一个工具,用来生产产品。与其选语言,不如选要从事什么样的产品生产。所以我们在选择语言的时候更应该先选择行业和方向,行业和方向才更重要。不同的行业和方向,他们的发展和薪资都不同。

先想想自己学习编程为了什么,以后想开发什么,你要学那个方向。至于学那个语言,根据自己的想法去确认,比如你以后想往安卓的方向去开发,那你的入门语言可以从Java开始,如果你想搞网站开发,那你可以从HTML学起,当然很多小伙伴对游戏开发感兴趣,那你要想一想你是要开发的游戏的类型,然后随便找个接近的语言开始学。说白了,找个和自己目标接近的语言,挖个坑跳进去,先满满学,不管那个方向,要学的不仅仅是一门,两门语言的事情,路还很长,不要太过于纠结选择什么语言。

学妹听完后,恍然大悟,决定先选方向,然后努力向前。

 

 

 

 

 


推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了使用Python解析C语言结构体的方法,包括定义基本类型和结构体类型的字典,并提供了一个示例代码,展示了如何解析C语言结构体。 ... [详细]
  • 如何使用代理服务器进行网页抓取?
    本文介绍了如何使用代理服务器进行网页抓取,并探讨了数据驱动对竞争优势的重要性。通过网页抓取,企业可以快速获取并分析大量与需求相关的数据,从而制定营销战略。同时,网页抓取还可以帮助电子商务公司在竞争对手的网站上下载数百页的有用数据,提高销售增长和毛利率。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
author-avatar
王者灬旋律
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有