转行编程语言该怎么选择?小扎给你安排上

news2024/9/23 11:12:51

编程语言的发展

​ 编程语言到目前为止,经历了三个发展阶段,机器语言,汇编语言、高级语言。在高级语言中,又可以分为面向过程语言以及目前最为广泛流传的面向对象语言。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zFR3IK38-1670306562480)(..\img\编程语言发展阶段.jpg)]

机器语言

​ 第一代计算机语言称为机器语言。机器语言就是 0/1 代码。计算机只能识别 0 和 1。在计算机内部,无论是一部电影还是一首歌曲或是一张图片,最终保存的都是 0/1 代码,因为 CPU 只能执行 0/1 代码。那么这是不是就意味着我们编程一定要用 0/1 代码呢?
首先这么编写肯定是可以的,但是这样太麻烦,而且很不好理解,所以后来就出现了汇编语言。

汇编语言

汇编语言就是将一串很枯燥无味的机器语言转化成一个英文单词。比如说:

add 1, 2;

add 就是一个英文单词,这样看起来就稍微有一些含义了,即 1 和 2 相加。这个就是汇编语言。
如果直接用机器语言编写的话,这几乎是无法实现的。因为用机器语言太难记忆了,也没人能看得懂。所以后来就设计出了第二种语言,即将 0/1 代码翻译为英文单词,这些英文单词直接对应着一串 0/1 指令。这个就是汇编语言。
通过专门的软件就可以将这些英文单词转化成 0/1 代码并由计算机执行,这种专门起翻译的作用的软件叫作编译器。
这些英文单词和与它们对应的 0/1 代码之间的对应关系,以及语言的语法,在编写这个软件的时候就已经写在里面了。我们只要通过编译器就可以将这些都转化成 0/1 代码。这样大大方便了我们对程序的编写。

但是汇编语言,学习成本太大了,我们举个例子,我们用汇编语言,跟这个世界打个招呼:

#hello.s 
.data            
        msg : .string "nihao,laotie!\\n"
        len = . - msg                
.text                   
.global _start        

_start:               
        movl $len, %edx  
        movl $msg, %ecx  
        movl $1, %ebx   
        movl $4, %eax    
        int  $0x80       

      
        movl $0,%ebx     
        movl $1,%eax      
        int  $0x80       

高级语言

​ 汇编语言之后又出现了第三代语言。第三代语言又叫“高级语言”。高级语言的发展分为两个阶段:

​ 以 1980 年为分界线,前一阶段属于结构化语言或者称为面向过程的语言,

​ 后一阶段属于面向对象的语言。

​ 什么叫面向过程,什么叫面向对象?这个非常的专业,我们可以举一个例子来简单说明。

​ 比如现在有一个需求:我要吃一个大饼卷大葱。

​ 如果用面向过程的语言实现:

​ 那么就需要自己和面,做大饼,洗葱,切葱,再用饼将葱卷起来。简单理解就是所有的步骤都需要自己实现。

​ 如果用面向对象的语言实现:

​ 我直接找一个能做大饼卷大葱的人,具体你怎么做的我不管,我找到你,你把东西给我就可以了。只注重结果。

​ 其中,面向过程语言中最经典、最重要的就是C语言。其他的Fortran、Basic 和 Pascal 语言基本上已经很少有人使用了。
从 20 世纪 80 年代开始又产生了另外一种“以面向对象”为思想的语言,其中最重要、最复杂的就是 C++。C++ 从易用性和安全性两个方面对C语言进行了升级。C++ 是一种较复杂、难学的语言,但是一旦学会了则非常有用。当C和C++都研究很透彻的话,一般都会成为业界大牛。
因为 C++ 太复杂,所以后来就对 C++ 进行了改装,产生了很多其他高级语言, Java,C#,python等。
到目前为止,Java 语言是现在最流行的语言之一。C# 则是微软公司看 Java 很流行而写的一个与 Java 语法相似的语言。而Pyhton语言,因为他语法非常简洁,开发周期短,也是现在越来越火的一门语言。

学编程又没基础最好的办法就是试试,基础是好学的,入门后才是难。既然知道自己没基础就要在开始接受自己的平庸,出错都是正常的,坚持练习才是王道。

先来个各语言的简要概括:

Java,服务器端最好的编程语言
C++,最通用的编程语言
C,迄今为止,最值得信任的编程语言
Python,AI(人工智能)、机器学习方向最佳的编程语言
JavaScript,客户端最常用的脚本语言
C#,微软最强有力的面向对象编程语言
Swift,IOS 端最高效的编程语言
GO(Golang),可扩展的编程语言,谷歌出品
PHP,世界上最好的编程语言,不,最好用的 Web 编程语言
Ruby,数据科学方面最可靠的编程语言
技术本身无优劣,应当根据特定场景下适合不适合来选择和看待。打个比喻,产品和需求是脚,技术是鞋子。但,不可否认的是,不同的语言,在你择业时,薪水起点是不同的。

我们做事一定要有目的,先想清楚自己学编程是为了什么?

单纯出于好奇、感兴趣?为了搞钱?想多门手艺、提高工作效率?想开拓视野?想创业做自己的产品?还是只是碰巧选了计算机专业呢?…

说点实在的大多数朋友学编程还是为了找工作。别扯什么远大抱负,先填饱肚子才能做事情

这两个语言学哪个都行java、python。
如果有很多顾虑,想要学习周期短转行做开发的话,python在国外很火,月月上榜第一,易学度对于转行和非计算机专业的朋友算是比较友好的了,web开发、大数据开发、数据分析、自动化运维、游戏开发、桌面软件、爬虫,还有人工智能这个学历要求高些

标题往期干货文章:

2022年java学习路线,自学怎么才能脱颖而出?

大数据开发学习路线(非常详细)

怎么学习前端开发?求推荐学习路线?

2022年最新软件测试学习路线

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

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

相关文章

stm32cubemx hal学习记录:FreeRTOS中断管理

一、参数配置 1、配置RCC、USART1、时钟84M 2、配置SYS,将Timebase Source修改为除滴答定时器外的其他定时器。 3、初始化LED的两个引脚、两个按键引脚 4、开启FreeRTOS,v1与v2版本不同,一般选用v1即可 5、创建一个队列 6、创建两个线程…

正大国际期货:外盘黄金期货怎么做,需要注意什么?

无论你是刚入外盘黄金期货市场的新手小白,还是已经入黄金市场多年的老手,必须知道外盘黄金期货交易的技巧及规则,这样才可以在黄金期货市场中站稳脚跟,才能收获更多的利益。下面正大IxxxuanI就为大家准备了一些黄金交易技巧以供参…

太阳能发电与蓄电池研究(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🎉作者研究:🏅🏅🏅主要研究方向是电力系统和智能算法、机器学…

汇编语言程序设计入门

目录 基本概念 符号指令中的表达式 符号 数值常量 符号常量(用的很少) 数值表达式 标号(一般出现在代码段) 程序框架 ​编辑 标号的定义 变量(最重要) 变量的属性​编辑 变量存储区中数据的存放​编辑 变量…

最受欢迎的Python科学类库

作为一种免费的,跨平台的,通用的和高级的编程语言,Python已被科学界广泛采用。科学家重视Python的精确和有效的语法,相对平坦的学习曲线以及它与其他语言(例如C / C )很好地集成的事实。 由于这种流行&…

最近沉迷Redis网络模型,无法自拔!终于知道Redis为啥这么快了

1. 用户空间和内核态空间 1.1 为什么要区分用户和内核 服务器大多都采用 Linux 系统,这里我们以 Linux 为例来讲解: ubuntu 和 Centos 都是 Linux 的发行版,发行版可以看成对 linux 包了一层壳,任何 Linux 发行版,其系统内核都…

设计模式-day03

5,结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“…

项目管理(如何进行项目风险管理)

项目风险管理包括规划风险管理、识别风险、开展风险分析、规划风险应对、实施风险应对和监 督风险的各个过程。项目风险管理的目标在于提高正面风险的概率和(或)影响,降低负面风险的 概率和(或)影响,从而提高项目成功的可能性。 项目风险分类: 1、概率性风险(能识别并确…

【虹科】工业相机如何自动优化图像?

普通的消费网络相机操作简便,常常也会用于一些机器视觉应用。然而,我们很容易就可以意识到,与典型的工业相机相比,虽然网络相机价格诱人,但是在质量、耐用性和长期可用性方面存在显著劣势。和网络相机一样简单易用的工…

【正点原子FPGA连载】第三十一章DDR4读写测试实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第三十一章DDR4读…

Google Indexing API 推送 (避免踩坑)

https://developers.google.com/search/apis/indexing-api/v3/prereqs?hlen_GB 官方文档 1. 在创建服务账号部分需要注意的是: 第二步授权要把服务账号的邮箱地址加上2. 验证完网站站长之后需要注意的点 a. https://search.google.com/search-console/settings 进入…

Redis数据持久化机制(备份恢复)、缓存淘汰策略、主从同步原理、常见规范与优化详解

一. 数据持久化 1. 含义 Redis 提供了 RDB 和 AOF 两种持久化方式,默认开启的是RDB,如果需要AOF,需要手动修改配置文件进行开启。 RDB:是一种对Redis存在内存中的数据周期性的持久化机制,将内存中的数据以快照的形式硬…

电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)【6节点 9节点 14节点 26节点 30节点 57节点】(Matlab代码实现)

📋📋📋本文目录如下:⛳️⛳️⛳️​ 目录 1 概述 2 电力系统潮流计算概述 2.1 电力潮流发展进程 2.2牛顿拉夫逊法潮流计算 3 仿真结果 4 Matlab代码实现 1 概述 最初,电力系统潮流计算是通过人工手算的。后来为了适应…

热机蠕变疲劳在ANSYS Mechanical与nCode DesignLife仿真实现概述

导读:ANSYS nCode DesigenLife联合ANSYS Mechanical能够进行热机蠕变疲劳分析计算,由于分析过程的复杂性, ANSYS Workbench工作平台预定义7类nCode DesignLife疲劳分析模块并不包括对于热机蠕变疲劳的相关分析,需要间接完成。 本文…

你可以写出优质的个人简介,自媒体个人简介三要三不要,收藏学习

什么人会进你的主页看你的简介? 显而易见,更多的是新人,想了解你的新人。那么我们在简介里应该写些什么呢? 在我赢且力手小禾呈序里找了三天的内容,然后总结了自媒体写个人简介三要三不要,听我细细道来&a…

前端手写面试题合集

实现ES6的extends function B(name){this.name name; }; function A(name,age){//1.将A的原型指向BObject.setPrototypeOf(A,B);//2.用A的实例作为this调用B,得到继承B之后的实例,这一步相当于调用superObject.getPrototypeOf(A).call(this, name)//3.将A原有的属…

1小时点击量破千万,阿里巴巴首发:Java核心框架指导手册

来了,来了!他终于来了,阿里巴巴最新推出的Java核心框架指导手册,终于出来了。1小时的点击量就破了千万! 手册分为三个部分:第一部分:解读MyBatis框架中关于接口层和配置文件解析过程&#xff1b…

微机原理与接口技术:并行接口

文章目录1.8255A的内部结构与外部引脚1.1.三个数据端口A、B、C:1.2.A组控制和B组控制1.3.数据总线缓冲器1.4.读写控制逻辑1.5.8255A的外部引脚2.8255A的控制字2.1.方式选择控制字2.2.端口C按位置位/复位控制字3.8255A的工作方式3.1.方式0:基本输入输出方…

【视频+源码】登录鉴权的三种方式:token、jwt、session实战分享

前言 因为我既对接过session、cookie,也对接过JWT,今年因为工作需要也对接了gtoken的2个版本,对这方面的理解还算深入。 尤其是看到官方文档评论区又小伙伴表示看不懂,所以做了这期视频内容出来: 内容提要&#xff1…

【Centos】Docker停止容器服务后,磁盘I/O仍然迟迟不下降。(未解决)

记录前言问题复现,故障演练准备工作dcim-local演练过程系统日志message结论前言 安装了docker的服务器只运行了一个容器服务,停止容器服务后,磁盘I/O仍然迟迟不下降。对该现象进行问题复现,故障演练 问题复现,故障演…