为什么初学者都先学C语言?

news2024/11/27 18:35:02

不少高校选择C语言,主要C语言是一种相对底层的语言,学习它可以让学习者更好的理解计算机的基本原理和编程的基础概念,比如变量、函数、指针等。这些基础知识对于理解其他高级语言和解决复杂的编程问题都非常重要。

另外就是C语言对算法和数据结构的实现较为直接,学习者可以深入的理解和时间各种常用的算法和数据结构。——对于实际的编程能力提升很有帮助。

但是!非科班出身的宝子们,建议按照自己的兴趣或者是今后想工作的职业进行学习。至于学什么编程语言...

跟黑马程序员看一张图:

难易度逐级递减

机器语言>汇编语言>底层语言>高级语言>脚本语言;

底层语言通常更接近硬件,因此它们可以让程序员更直接地控制计算机资源。但是,这种控制也意味着编写和维护这些程序需要更多的技能和注意力。

高级语言旨在让程序员更容易地编写和维护程序,因为它们提供了更高级别的抽象。这些抽象使得程序员可以专注于解决问题,而不是关注底层的硬件细节。高级语言通常比底层语言更容易学习,因为它们的语法更简洁,编程范式更符合人类思维。

脚本语言是一种特殊类型的高级语言,它们通常用于编写简短的程序或脚本,以自动执行特定任务或操作。脚本语言的语法和编程范式通常更简单、更直观,使得它们对初学者更容易学习。脚本语言通常可以快速地学会并应用于实际项目,但它们可能在处理大型、复杂项目时不如其他高级语言那么强大。

再来看看编程语言可以做的事情

  • C/C++(较难):理论上是只要硬件驱动和API合适,C/C++就可以开发任何东西,效率也高。C的应用在服务应用,开发底层模块和嵌入式。C++适合复杂但是又要求高效率的内容,比如大型游戏等等;
  • Java(中等):有关于Java的特性在这里就不分享了,Java被应用于企业,安卓应用等;
  • JavaScript(简单):与Java毫无关系,应用在web前端,另外与Vue和Node结合还用于开发服务器端;
  • PHP(简单):开源脚本语言,语法吸收了C语言,还有Java和Perl的特点,适用于web开发领域。
  • C#(简单):是微软对这一问题的解决方案,应用领域为web应用、客户端应用、人工智能
  • Python(简单):自动化测试/运维,信息安全,物联网,大数据,桌面应用都可以用Python;
  • Go语言(中等偏简单):后端开发、系统开发、微服务、分布式

看到这里还是比较迷茫吧,大家也可以了解编程的各个方向,找到资讯类网站了解前后端、嵌入式、软件测试每个方向是做什么的,看看自己对什么方向更感兴趣,然后从方向收入选择编程语言

  • 前端:前端开发也就指的用户端看到的界面,前端的框架比较多,技术更新较快,主要用的是HTML+CSS+JS。很多计算机专业的女生会考虑毕业后选择前端相关工作。
  • 后端开发:不同后台有不同的语言,主要是选择开发语言(建议Java)+技术框架
  • 数据库:数据库也成为DBA,曾经阿里培养过一批很优秀的BDA,主要是维护数据库,针对数据库进行设计和开发。常用MySQL、Oracle、SqlServer等
  • 大数据:大数据是新一些的方向,小一点的爬虫到大一点的数据挖掘,都被称为大数据,大数据也就是后台技术加上数据库操作,还有海量数据。大数据选择Python
  • 嵌入式:有同学对于自动化驾驶或者是机器人有兴趣可以了解嵌入式开发,主要用C语言和C++
  • 机器学习:这都是人工智能方面的内容,普通本科毕业后还不能达到就业水平,主要是研究生的方向。机器学习方向Python更香
  • 自动化测试&自动化运维方向:Python比较适合。

一些观点

  • 程序是什么?— 计算机组成原理。
  • 程序怎么被翻译?—编译原理。
  • 程序怎么执行?— 操作系统的范畴
  • 怎么利用别人的成果来实现更好的数据组织?— 数据库相关
  • 怎么保证程序更容易维护和可读?— 这是设计模式和代码规范

所以计算机组成原理、数据结构与算法、操作系统和计算机网络非常重要!

而且随着工作就会发现,甚至每当参与一个新的项目,就要接触一门新的语言。当然有时候也是顺应而为,比如苹果在完全由 Objective-C 主导的 OS 中添加了 Swift 的支持,Google 在 Android 中添加 Kotlin 的原生支持。

如何选择编程语言

C++的学习曲线可能比Java和Python更陡峭,因为它涉及更多的底层概念,如内存管理和性能优化。同时,C++的语法相对复杂,可能需要更多的时间和努力来掌握。因此,在某种程度上,C++程序员的就业标准可能相对较高。

然而,这并不意味着Java和Python程序员的就业标准低。不同编程语言在不同领域和场景中有各自的优势和需求。Java和Python在诸如Web开发、移动应用开发、数据科学和人工智能等领域有着广泛的应用,这些领域也有很高的就业标准

如果通过上述分享,已经清楚自己要学什么编程语言,恭喜你!如果还在纠结,不如三个语言的基础课程都看看,通过更深入的了解选择自己喜欢的编程语言。

学习资源分享

前端:前端开发学习路线2023版-黑马程序员web前端开发自学路线

后端:Java程序员学习路线图_黑马程序员2023版java学习路线

数据相关:大数据学习路线2023版-黑马程序员大数据学习路线图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/615554.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

最小化微服务漏洞

最小化微服务漏洞 目录 本节实战 实战名称💘 案例:设置容器以普通用户运行-2023.5.29(测试成功)💘 案例:避免使用特权容器,选择使用capabilities-2023.5.30(测试成功)💘 案例:只读挂载容器文件…

Redis进阶:主从复制、集群搭建

Redis进阶 1. 主从复制机制1.1 复制原理1.2 配置“一主多从”试验主从复制1)为每个Redis进程提供配置文件2)分别在不同客户端启动Redis服务3)配置服务器成为某主机的下属从机 1.3 不同模式1.3.1 一主二仆1.3.2 薪火相传1.3.3 反客为主 1.4 哨…

在京东做外包的那些日子....

不知不觉已经在京东做了两年外包,最近收到不少朋友私信,说马上面临就业,在找工作的过程中,有不少软件测试的外包公司给我打电话让去面试,究竟要不要去?这篇文章给大家说说我这2年的外包经验,希望…

【Java基础学习打卡01】计算机概述

目录 引言一、计算机是什么?1.计算机vs计算器2.计算机定义 二、计算机发展简史三、计算机分类四、计算机基本工作原理1.冯诺依曼2.冯诺依曼原理 总结 引言 其实我们在学习Java编程之前应该要对计算机有所了解,这里的了解不是说我们日常接触电脑就算是了…

机器视觉初步2:机器视觉基础知识

本节概况 1.机器视觉的定义2.机器视觉系统的工作流程3.机器视觉的组成视场和最大像面 1.机器视觉的定义 什么是机器视觉,其中美国的一种定义为: “机器视觉是研究如何通过光学装置和非接触式传感器自动地接收、处理真实场景的图像,以获得所需…

前端使用tailwindcss 快速实现主题切换方案

使用Tailwind CSS在黑暗模式下为你的网站设计样式。 现在,黑暗模式是许多操作系统的第一流功能,为你的网站设计一个黑暗版本以配合默认设计,变得越来越普遍。 为了使这一点尽可能简单,Tailwind包括一个暗色变体,让你…

POWERBUILDER基础学习提纲

Chengg0769 2012年 版权信息保留: www.mis2erp.com http://blog.csdn.net/chengg0769 http://www.haojiaocheng.cc 这当时是给列给一位因伤休养的朋友。他有一段难捱的时间,想学习学习。这样复出之后也不至于工作无望或者浪费这段时间。 在SQL2000基础…

什么是API接口测试

什么是 API ? API 是“应用程序编程接口”的缩写,是一种允许不同应用程序之间相互通信和交换数据的接口。就好像在餐厅点餐一样,你只需要告诉服务员你想要的食物,而不需要了解厨房中的具体操作,服务员会把你的订单传递…

【PyQt5】(02)Qt Designer:快速设计GUI界面的利器

系列文章目录 【PyQt5】(01)PyQt的详细介绍 文章目录 系列文章目录前言一、安装Qt Designer二、Qt Designer的基本用法2.1 新建窗体2.2 添加部件2.3 编辑属性2.4 布局管理2.5 设置样式2.6 保存文件 三、将UI文件转化为Python代码并显示3.1 使用uic将UI文…

请问一下java在线编程的网站有哪一些?

前言 下面为大家整合了一些Java在线编程的的网站,个人认为都是挺好用的,整合不易,希望大家能顺手留下点赞和收藏! 废话少说,我们直接进入正题: 1、菜鸟工具 菜鸟工具的这个在线编程工具页面很为简洁&…

linux查看/修改某个进程运行的CPU核

1.ps -eF #查看fwd进程运行在哪个cpu核上 [rootCENTOS57 rpm]# ps -eF | grep fwd 2.top命令 (1)top (2)按f键可以选择下面配置选项 P Last Used Cpu (SMP) (3)Esc 退回到top界面可以看到多了一列进程所在cpu信息 3.pidstat命令 查看进程使用cpu情况,如果绑定了多…

CH32V3xx RT-Thread下的ethernet调试及问题记录

目录 1、CH32V3xx 以太网模块简介2、TCP Client 程序2.1 WCHNET库2.1.1 添加WCHNET2.1.2 以太网配置2.2 TCP Client代码2.3 测试结果3、调试过程中的一些问题1、CH32V3xx 以太网模块简介 CH32V3xx MCU的以太网收发器是微控制器的一个重要高速高速通讯外设,集成了千兆的MAC(媒体…

堆积如山:探索数据结构中的堆

前言 欢迎来到小K的数据结构专栏的第十一小节,本节将为大家带来堆的详解并带来堆题目的讲解(✨当然也为大家准备了完整的源码 )~希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🐾 目录…

排查一次nacos动态配置不生效

一、问题描述 新需求需要使用到nacos动态配置,但是开发完成之后联调过程中发现动态配置没有生效。 二、问题排查 首先在本地测试,发现启动服务后修改nacos配置确实不生效,在查看启动日志时发现服务启动时打印了下面这样的日志。这里是在配…

Blender3.2使用python脚本命令的三种方式, 以及源码示例

本文环境系统OS(Win10) 方式一,在Script(脚本)功能里面的Console(控制台输入python代码)。 如下图: 对应的三句代码是: print("Hi, blender.")import bpybpy.ops.mesh.primitive_cube_add(enter_editmodeFalse, alignWORLD, location(0,0, …

ModBus通信详解

Modbus协议包括ASCII、RTU、TCP等,并没有规定物理层。此协议定义了控制器能够认识和使用的消息结构,而不管它们是经过何种网络进行通信的。标准的Modicon控制器使用RS232C实现串行的Modbus。Modbus的ASCII、RTU协议规定了消息、数据的结构、命令和就答的…

python通过远程连接mysql数据库进行操作

文章目录 前言一、开启远程访问权限1、开启远程访问端口2、命令行登录mysql 二、Navicat 建库1、新建连接2、建库建表 三、python对数据库进行远程操作三、总结四、参考资料 前言 环境: 1、mysql 5.7 2、pycharm 22.3.1 Professional 3、navicat 一、开启远程访问权…

数字孪生与物流园区:优化布局规划的关键

随着全球贸易的增长和物流行业的发展,物流园区作为重要的物流枢纽和供应链管理中心,扮演着至关重要的角色。而数字孪生技术的出现为物流园区的运营和管理带来了革命性的变化。数字孪生技术是一种将实体物体与其数字化模型相结合的创新技术,通…

微信小程序| 基于ChatGPT+明基屏幕挂灯实现超智能家居物联网小程序

一、需求背景 在尝试了这么多次的ChatGPT在纯软方向的应用开发后,深感LLM(大语言模型)的能力之强大。俗话说得好:心有多大舞台就有多大!基于AI大模型,可以尝试的方面实在是数不胜数!轻轻松松就可以突破在移动互联网时…

1. Qt小游戏 --- 推箱子

1. 说明 这个小游戏主要使用Qt中的绘制事件函数**paintEvent()**在画布上面不停的绘制图形,并使用定时器做时间上的触发处理,这个小游戏只是做了简单的逻辑处理,具体复杂的功能读者可自行发挥,效果展示如下: Qt制作推箱子小游戏 2. 相关代码 《推箱子》小游戏项目文件中…