0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

学习编程语言是在学什么

C语言编程学习基地 来源:博客园 作者:锅叔 2022-04-28 11:18 次阅读

“想入门编程,应该学那种语言?” 这类问题在五湖四海,世界各地,应当都是比较常见的。给出的回答呢。

有的会直接告诉你去学Python

有的呢会给一些比喻,说编程语言就像画家手里的笔,有毛笔,钢笔……;

有的会给出一个技术栈的图表,告诉你如果你要做XXX,那就学XXX,如果做XXX就学XXXX;

感觉呢这些建议,也都不错,但是通常都比较简略,结果明确,但缘由一般不会展开太多解释。纯新手可能似懂非懂,将信将疑。

自上而下,由整体到具体的理解一个事物,效率往往比从具体到整体要高,更容易明白自己所处的位置, 更容易入门。

可惜,对于程序员在开发领域归纳总结,融汇贯通来说, 可能是十几,二十年后的事情了。所以在分析编程语言优劣,或者选一个语言写具体的Hello World之前, 我们最好对“编程语言”有一个更整体全面的了解。

一、学习编程语言是在学什么

百度百科——编程语言(programming language)可以简单的理解为一种计算机和人都能识别的语言。一种计算机语言让程序员能够准确地定义计算机所需要使用的数据,并精确地定义在不同情况下所应当采取的行动。

维基百科——编程语言是一种规则, 这种规则,可以把文字, 或者图形元素(可视化编程语言)转化为机器码。编程语言是一种计算机语言,用于在计算机上实现各种算法

百度的定义显然说了啥但好像又啥都没说。-_-|| 。维基百科的则准确了很多。编程其实就是把你写的一段文字(代码)按照特定的规则,

转换成机器码(机器能够运行的指令),用于在计算机上实现算法(如显示2个输入数字中最大的)。你要学习的其实就是这种规则,比如当我需要在屏幕上显示

Hellow World时。按照不同语言的规则,我需要这样写出这样的文字。

c语言:printf(" hello world!");

php语言:echo"hello world!";

java语言:System.out.println("Hello World!");

看上去有些差别,但又有些相似。实际上目前主流的高级语言如Java ,C#,javascript,Python他们的基础语法规则是非常近似的。无论先学哪个入门,后面的切换成本,基本是几小时搞定。当你学会一门语言,除了学会了具体关键字,语法之外,更主要的是你会沉淀下来一种对编程语言模式的理解。当你理解了一种语言中的 变量,函数,控制结构(顺序,分支,循环),迁移其他语言时,你会发现在其他语言中,这些概念也是存在且完全适用的。

伪代码是一种脱离具体语言的,体现编程思维的描述方式, 相同层次的语言,编程思维是共通的。如显示2个输入数字中最大的问题的编程思路。

变量A等于输入的第一个数字

变量B等于收入的第二个数字

如果 变量A大于 变量B

屏幕显示变量A

否则

屏幕显示变量B

上面的算法思想, 在各种语言中都是可以实现的。仅仅变量定义的方式,判断分支的书写方式略有差别。所以,对于入门来说,学习一门编程语言,通常都狭义的指编程语言本身(基本不涉及第三方类库框架等), 你所学到的语法细节切换成本是很低的,各个语言差不太多,而真正沉淀的是你在编写过程中逐渐熟悉领会的,编程思路。即组合使用,变量,函数,控制结构(如果/那么/循环)等要素,解决具体的算法问题的能力。

二、IDE与编译原理

在纠结良久终于选定了学哪一门语言之后,可能开始接触到的第一个东西是IDE,例如学Python可能是用PyCharm,我之前学Basic用的是Visual Basic。IDE的含义是“集成开发环境”, 名字虽然很准确,但当时还是小白的我其实是非常困惑的,压根搞不清楚IDE与编程语言之间的关系。也搞不清楚,写完代码后在IDE中一点那个绿色的小三角(运行)过程中到底发生了什么。IDE可以方便程序的开发,但是对于新手会影响他对编程语言的理解认识,很难理解IDE的确实含义,“集成开发环境”到底集成了什么。

5832c6de-bef0-11ec-9e50-dac502259ad0.png

——上面是Python的 Hello World。IDE为PyCharm

IDE大概集成这样几种东西。

1.文本编辑器是一个用于编写文本的工具,像上图写print Hello World 的地方。编程其实就是在编写一段文字,保存成一个文件。常见的简单文本编辑器比如windows中的记事本,也是一个文本编辑器。理论上记事本完全可以用来编程,但IDE中的文本编辑器会提供很多额外功能,如文本着色,智能提示(敲pr会自动提示 print),这些快捷功能是语言相关的。当然也会提供文本编辑器的常见功能, 保存,查找,替换等。

2.编译器连接器 对于非脚本语言(最终生成独立的可执行程序)如C,编写好的程序文件是无法被运行的。例如在windows中,系统层次,典型的可执行文件扩展名为EXE,这是一种特定的文件格式PE文件格式。编译器与连接器的作用是,将编写好的程序文件最终转化为EXE文件。编译器针对不同的CPU将程序文件,编译为对应的CPU指令。链接器是平台相关的,将编译后的中间文件组装成约定格式,如 Windows ExE。

3.解释器对于脚本语言,解释器能够直接执行,文编编辑器编写完成的程序文件。如点击上图的运行。实际是运行了python ./a.py其中的 python 可以理解为解释器。

4.调试器为你提供了一个可视化的调试器,你可以直接点击按钮,进行调试操作,而不是在黑洞洞的命令行上敲命令。

5849f7e6-bef0-11ec-9e50-dac502259ad0.png

——gdb 调试界面

5.其他工具插件通常会具有集成其他插件的能力,如集成版本管理。可以直接把你的代码上传云端,进行版本控制。或者统计分析,写了多少代码,是否编写规范等。

通过以上对IDE 的介绍可以看出, 编程语言是一种规则,准确的说是一种规范。举例来说其中可能存在一条,

当你写了一行printf(hello),之后就在屏幕上显示hello。所以规则是稳定不变的。而你过程中要到的工具,IDE的各个组成部分都是可以替换的。只要编译器符合语言的标准规范即可,因此会有多种编译器存在,其性能特点可能会有一些差异。

三、广义的编程语言

想入行的同学经常会说,我想学Java 该怎么学, 我想学Python该怎么学。这其实通常来说不太准确。狭义来说,你只需要花几天,老手可能是几小时几十分钟,去看下这个语言的语法规则,如何定义变量,如何写判断,循环,如何调用方法。然后做一些算法问题练习,比如对10个数字排排序。写个猜数字的游戏,基本就算学会了。但这可能跟你的期望不一致,你说的学Java 可能是觉得你学会了Java 就可以写出一个像WOW那样的游戏 :-),或者像QQ那样的聊天工具,或者像淘宝那样的网站,而学会了语言之后你仍然会觉得无从下手,只会在命令行控制台中做点简单的输入输出。那么这中间的gap究竟在哪里呢?是因为:

5861d154-bef0-11ec-9e50-dac502259ad0.png

——图片来源于知乎回答“互联网”技术栈

就是说,要规范专业的做一个能支持一定访问量的互联网站点(如淘宝),会涉及上面大部分的技术内容。这远超“编程语言”定义的范围。其中很大一部分是语言无关的,例如运维,工具,中间件中的分支内容。其中后端中的语言分支之下是语言相关的,而前端中如果不考虑移动端Android Ios, 对于Web来说其实只有HTML,CSS,Javascript三种语言,angularjs以及VUE,属于属于Javasciprt语言中的不同框架,但差异较大。

综合以上涉及的语言类型主要分为以下几类

命令式

关注步骤细节, 如查询一堆数字中最大的一个, 需要写循环、判断、 定义变量进行比较,最终得到结果。计算机的算法过程完全由你定义。通常学习的Java javascrfipt PHP C都可以理解为这一类语言。

结构化查询——声明式

多用于结构化数据库查询(“数据库”是为了解决程序存储,查询数据问题,想象一个图书管理程序),SQL语言。取得最大数字如下, 你并不需要关心它的具体算法。

SELECTmax(num)FROMtable

标记语言

HTML,XML,CSS等属于标记语言,用于定义布局,没有逻辑。严格来说不属于编程语言。如HTML标记语言规定

表示一个表格 ,其中的表示表格的一行,编写人按照HTML的标准编写,浏览器按照HTML的标准处理渲染, 最终就会在屏幕上显示一个表格。

回到写一个淘宝上,淘宝需要有web页面,所以你要学习HTMLCSS,JS,需要有数据库存储商品, 所以需要学习数据库工具如MYSQL,并能够编程使用他,能够增删改查数据。需要有后台服务器,用于给页面提供动态内容, 动态的生成HTML,所以需要学习Web服务器如何编写,可以选择的语言有很多, 如果选择了一种如Java, 也不需要从头造轮子, 那就要接着学习Java 的Web框架,如Spring。如果你选择用PHP语言写Web服务器, 那就无法使用Java 的Spring框架了。对应的PHP也会有自己的Web框架。所以特定语言第三方框架的学习成本才是切换语言的最主要成本。

总结

如果你是想入门学一门语言,那具体学哪种其实真的不算是个重大抉择,主要是为了建立编程思想。

如果你是想进行特定领域的开发, 那你一定要首先搞清楚技术栈, 在该领域中使用的主流语言,工具。然后针对性的学习。如果你志向于开发游戏客户端,那学习互联网的技术栈,就是南辕北辙了。

先到这里, 希望对初入门的同学能有所帮助!

原文标题:想入门编程,应该学那种语言?

文章出处:【微信公众号:C语言编程学习基地】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • IDE
    IDE
    +关注

    关注

    0

    文章

    338

    浏览量

    46740
  • 编程语言
    +关注

    关注

    10

    文章

    1942

    浏览量

    34707
  • python
    +关注

    关注

    56

    文章

    4792

    浏览量

    84628

原文标题:想入门编程,应该学那种语言?

文章出处:【微信号:cyuyanxuexi,微信公众号:C语言编程学习基地】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何选择适合自己的编程语言

    。 1. 确定目标和兴趣 在选择编程语言之前,首先要明确自己的目标和兴趣。这包括你想要开发什么类型的项目,以及你对哪些技术领域感兴趣。例如,如果你对网页开发感兴趣,那么学习HTML、CSS和JavaScript可能是一个不错的选
    的头像 发表于 11-15 09:37 291次阅读

    编程语言的误区与常见问题

    : 选择编程语言时,应考虑项目需求、个人兴趣以及语言的适用性。例如,如果你对Web开发感兴趣,那么学习JavaScript可能是一个好选择。 认识到没有一种
    的头像 发表于 11-15 09:35 270次阅读

    NPU支持的编程语言有哪些

    NPU(Neural Processing Unit)是一种专门为深度学习和人工智能应用设计的处理器。NPU支持的编程语言通常与它所集成的平台或框架紧密相关。以下是一些常见的编程
    的头像 发表于 11-15 09:21 606次阅读

    在学习go语言的过程踩过的坑

    作为一个5年的phper,这两年公司和个人都在顺应技术趋势,新项目慢慢从php转向了go语言,从2021年到现在,笔者手上也先后开发了两个go项目。在学习go语言的过程中也学习并总结了
    的头像 发表于 11-11 09:22 159次阅读

    MCU编程语言和开发环境介绍

    微控制器单元(Microcontroller Unit,简称MCU)是嵌入式系统的核心,广泛应用于各种电子产品中。随着技术的发展,MCU编程语言和开发环境也在不断进步,以适应不同的应用需求。 1.
    的头像 发表于 11-01 11:51 670次阅读

    C语言与其他编程语言的比较

    C语言作为一种历史悠久的编程语言,自其诞生以来,一直在软件开发领域扮演着重要角色。它以其高效、灵活和可移植性强的特点,成为了系统级编程的首选语言
    的头像 发表于 10-29 17:30 263次阅读

    Orin芯片的编程语言支持

    语言支持 Orin芯片支持多种编程语言,以满足不同开发者的需求。其中,C/C++和Python是两种广泛应用的编程语言。C/C++以其高效和
    的头像 发表于 10-27 16:45 269次阅读

    plc编程语言编程相关技巧有哪些

    PLC(可编程逻辑控制器)编程语言及相关编程技巧是工业自动化领域中不可或缺的知识。 一、PLC编程语言
    的头像 发表于 10-21 16:56 320次阅读

    plc编程st语言怎么编

    PLC(可编程逻辑控制器)编程中的ST(Structured Text)语言是一种高级编程语言,它类似于Pascal或C
    的头像 发表于 08-25 10:05 1122次阅读

    仓颉语言书籍申请

    这两个语言一些性能优缺点之后,我发现仓颉语言是未来的趋势,仓颉语言的高效编程、轻松并发、全场景应用开发的特点我特别感兴趣。 作为华为自主研发的语言
    发表于 08-06 08:37

    按照这样学习C语言,成为卷王不是梦!

    在计算机编程领域,C语言被誉为一种强大而灵活的编程语言,掌握好C语言不仅可以让你轻松驾驭各种编程
    的头像 发表于 07-06 08:04 313次阅读
    按照这样<b class='flag-5'>学习</b>C<b class='flag-5'>语言</b>,成为卷王不是梦!

    PLC的编程方式及编程语言

    在工业自动化领域,PLC(Programmable Logic Controller,可编程逻辑控制器)因其强大的控制功能和灵活的编程方式而得到了广泛应用。PLC的编程方式和编程
    的头像 发表于 06-27 14:08 707次阅读

    abb工业机器人的编程语言是什么

    ABB工业机器人的编程语言主要是RAPID(Robot Application Programming Interface for Development),它是一种高级编程语言,专门
    的头像 发表于 06-16 16:49 2504次阅读

    PLC编程语言和C语言的区别

    在工业自动化和计算机编程领域中,PLC(可编程逻辑控制器)编程语言和C语言各自扮演着重要的角色。尽管两者都是
    的头像 发表于 06-14 17:11 2782次阅读

    PLC常用编程语言有哪些

    在工业自动化领域,PLC(Programmable Logic Controller,可编程逻辑控制器)作为一种核心控制设备,其编程语言的选择对于控制系统的设计、开发和维护具有重要影响。PLC的
    的头像 发表于 06-14 16:58 1414次阅读