当前位置:首页 > 国学 >

什么叫程序员(程序员入门)

来源:原点资讯(m.360kss.com)时间:2023-04-17 06:59:35作者:YD166手机阅读>>

关于编程本质那些事

鄙人大学电气自动化专业,非科班出身,对编程了解不深,但是,经过多年学习以及实践,对它又有了一番新的认识,在这里我想把它说一下。

可能适合刚入门或者即将入门的新人。

编程概述什么是编程

编程其实就是编写程序,让计算机解决某个问题并得到想要得到的结果。
重要的是只要运行起来,就可以离开人自动运行。

程序(计算机程序),一组指令,一组指示计算机或者其他具有消息处理能力装置每一步动作的指令,通常用某种程序语言编写,运行于某种目标体系结构上。

什么是编程语言

程序是由语言写出来的,语言分为高级和低级,应对离自然语言的远近,越自然化的语言,自然越高级。

编程的本质数据结构数据

数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。例如 各种类型,视频文本。

数据的元素 (类)

是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。

数据项(属性)

一个数据对象可以由若干个数据项组成,例如人,眼耳鼻舌身等属性。

数据对象(实体或集合实体)

是性质相同的数据元素的集合,是数据的子集。

数据结构

是相互之间存在一种或多种特定关系的数据元素的集合,分为逻辑结构和物理结构.

逻辑结构:集合,线性,树形,图形。

物理结构:线性,链式

算法

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。

所以,我认为就算是最简单的一个指令,也算是算法。

而大部分外人所说的算法,是高深的算法或者值钱的算法或者性能高的算法。

不要对算法想象的特别的高深,这样就不容易深入学习,其实计算机的计算单元只是一个加法计算器就实现了加减乘除。

算法的目的
  1. 能实现想要的结果,比如压缩算法,加密算法,首先得保证数据不失真。
  2. 高效,空间复杂度,时间复杂度较好(然后保证,使用的资源足够少,做的事儿足够多,速度足够快)
算法的依赖

数据结构是算法实现的基础,算法总是要依赖于某种数据结构来实现的。往往是在发展一种算法的时候,构建了适合于这种算法的数据结构。

算法的操作对象是数据结构。数据结构是算法设计的基础。

两者都是为最终解决问题服务的

何为编程的本质

所以,编程的本质就在于算法与数据结构的结合。

下面是我自己总结编程的要点。

  1. 程序 = 数据结构 算法
  2. 算法 = 控制 逻辑

如果将逻辑和控制有效的分开,那么,代码就变得容易改进和维护。

第一个表达式倾向于数据结构和算法,它是想把这两个拆分,早期都在走这条路。他们认为,如果数据结构设计得好,算法也会变得简单,而且一个好的通用的算法应该可以用在不同的数据结构上。

第二个表达式则想表达,数据结构不复杂,复杂的是算法,也就是我们的业务逻辑是复杂的。我们的算法由两个逻辑组成,一个是真正的业务逻辑,另外一种是控制逻辑。程序中有两种代码,一种是真正的业务逻辑代码,另一种代码是控制我们程序的代码,叫控制代码,这根本不是业务逻辑,业务逻辑不关心这个事情。

所以

程序 = 数据结构 控制 逻辑

代码始终软件

什么叫程序员,程序员入门(1)

实际上的执行描述应该是这样的。

大部分的语言都是基于操作系统的,当一个语言的程序执行了读取文件的操作,他就会先调用操作系统的读取文件的方法,这个方法由操作系统这个程序提前内置。

操作系统是由内核,文件系统,各种驱动,IO,寄存器,硬盘,网络等等组成,实现了对硬件资源的全面掌控或者说是管理。

而,大部分的软件也是基于对硬件或者对数据的管理。

硬件

什么叫程序员,程序员入门(2)

硬件为执行者

忠实的执行由软件生成的机器码,既机器指令,并有条不紊的执行。

对数据进行各种搬移,并发数据按需放到不定的指定位置。

软件硬件中间发生了什么

这个其实是我很早就好奇的一件事情,硬件何时与软件建立了沟通,软件如何与硬件进行了联系,又或,啥时候进入了所谓的Main方法。

什么叫程序员,程序员入门(3)

这个是嵌入式的汇编启动代码,中间的一部分,写的是,在启动的过程中,指定了要执行的__main函数。

__main函数代码是编译器自动生成的,你无法直接找到。

__main主要做这么两件事:初始化C/C 所需的资源,调用main函数

代码始终 总结

各种编程语言由编译器或者解释器,生成汇编,再然后生成与当前CPU相匹配的机器码(机器语言),然后由CPU解释为之执行,每一条机器语言对应一条指令集。

总而言之,汇编直接对应指令集。汇编是指令集的简写或者名称形式。

CPU忠实的执行了全部代码给的所有指令集合,并完成了工作。

这就是它的本质,很简单,但是,看书又很枯燥,也许不会有人告诉你,但是,知道了,又感觉那么的简单的事情。

了解和知道整体,才助于有系统化的知识。

碎片的知识是片面的,只有系统化的知识才是整体的,可以让你轻松看到问题的本质,更有效率的处理完事务,也容易让你思考。

操作系统

什么叫程序员,程序员入门(4)

我们必当写过一个“操作系统”。

就比如,操作系统里有一个内存管理,我们为了不局限于单体,就出现了Memcached,Redis,等基于内存和硬盘管理的业务型内存管理。

然后,从单体的操作系统,延伸到了,分布式,集群,共用多台计算机资源,分布或共同执行。

所以,操作系统也在从无到有,从单到集中再到分布,合而分之,分而合之。

常遇到的四个问题(当然只是举例)

我曾经面试过一些新人,每个人对问题都有不同的见解,但是,我还是希望有自己的见解,而不是听闻而已。

就比如,windows安全还是linux安全?

对于变化是应该避免还是拥抱

稳定的事物必然是趋向于降低变化的,但是,发展,拓展,扩展,都是需要外扩,发展才是硬道理,针对业务的发展,不得不拥抱变化,甚至要主动积极的引入变化,但是,为了保证整体的稳定,又要避免对稳定部分的引入变化,引起整体的震荡。

这种矛盾的局面下,形成了两个极端,一方面要让业务活起来,流动起来,一方面又想让其他核心业务稳定起来,不要影响现有业务。

而这种极端的环境结果,是必然的。

只能针对两种不同的极端情况,对其采纳即可,保持一种平衡。

对于编程语言的选择,我选最火的还是自己用的舒服的

优秀的语言很多,用的广泛的语言也很多,市场占有率高的语言也有很多,工资高的语言也有很多,但是,真到具体选择的时候,发现还是让人纠结。

入门语言,尽量选择交集,这样,都占有一定的好处,入门之后,还是不要太在意语言本身了,把它当成一种工具,这样,工具多少其实无碍。

毕竟,工具好坏都不太影响你真正成果的产出。

对于别人所说的这个好还是不好

每个人对于一些定论都有各自的见解,但是,我还是希望得有自己的深度思考,就比如,windows安全还是linux安全?,如果尽信网上说的,那就是linux安全,毕竟linux漏洞少。

尽信书,不如无书。

哪个能力更加的重要?沟通还是自学

如果我刚毕业,可能会说某某能力很重要,咋的咋的,但是,自己工作多年,所以,也不太好说哪个能力重要,但是,扬长避短,才能让你发展起来。

很多人都会说自己不会啥不会啥,而不会说自己会啥会啥,我想选择另外一边会有不同的人生结果。

对于未来编程语言我的畅想

按照自然发展规律,以后用汉语(自然语言)来编程指日可待。

这样,各种的AI智能,都是先从理解人类所说的话语的语义开始的,自然语言分析也是一门学科。

总结

勿忘初心,方得始终

为什么人一定要有梦想或者理想,因为如果你想都不想,放到你面前也不会属于你自己。

梦想是一定要有的,万一实现了呢?

栏目热文

程序员的寿命一般多久(为什么不建议当程序员)

程序员的寿命一般多久(为什么不建议当程序员)

现如今,市场环境不景气,行业内卷愈发严重,又有疫情影响,向来代表着高新、热门的程序开发行业,竞争压力也是越来越大,很多工...

2023-04-17 06:43:17查看全文 >>

哪些人不适合学计算机(学计算机哪个方面最有前途)

哪些人不适合学计算机(学计算机哪个方面最有前途)

考研是一件充满挑战的事情,除了自己出色的个人能力之外,能否顺利上岸其实还受很多外界因素,比如复试环节。同学们最后进行的面...

2023-04-17 06:32:29查看全文 >>

计算机编程就业前景及工资待遇(大专最无用的三个专业)

计算机编程就业前景及工资待遇(大专最无用的三个专业)

提起程序员,你的印象是什么?修电脑?写代码?电脑骇客?宅?不修边幅??低开销?咳咳,下面认真的说一下程序猿的确切描述。...

2023-04-17 06:49:45查看全文 >>

电脑突然很卡反应很慢重启就好了(电脑用着突然很卡重启就没事了)

电脑突然很卡反应很慢重启就好了(电脑用着突然很卡重启就没事了)

在我日常工作时,总会遇到电脑死机或卡顿的情况!无论是重新启动软件,还是减少后台软件,都只能暂时缓解电脑卡顿,不能彻底“根...

2023-04-17 06:20:44查看全文 >>

电脑突然很卡反应很慢cpu占用过高(cpu占用过高电脑很卡怎么解决)

电脑突然很卡反应很慢cpu占用过高(cpu占用过高电脑很卡怎么解决)

当内存和CPU都达到了较大的占用率时,很可能会导致系统崩溃。该如何解决这一问题?本期视频将指导大家:如何有效减少内存和C...

2023-04-17 06:35:04查看全文 >>

计算机科学与技术专业就业前景(男孩学什么技术最吃香)

计算机科学与技术专业就业前景(男孩学什么技术最吃香)

这几年对计算机专业的报考可以说是特别火爆,致使计算机专业领域的从事者、从业者也都是比较多,不但有本来就报考计算机专业的一...

2023-04-17 06:26:26查看全文 >>

java什么意思(编程必背50个代码)

java什么意思(编程必背50个代码)

许多人或多或少都和我一样,当偶然在电视上看到程序员对着电脑飞快敲下一串代码,不禁为他们发出惊叹,想象着有一天自己也能这样...

2023-04-17 06:56:41查看全文 >>

学计算机编程有什么用(敲代码一个月多少工资)

学计算机编程有什么用(敲代码一个月多少工资)

编程可以训练很多不同的能力,以下是其中一些:逻辑思维能力:编程需要逻辑思考和问题解决能力,因为编程就是将复杂的问题分解为...

2023-04-17 06:56:16查看全文 >>

计算机编程一般要学多久(程序员有前途吗)

计算机编程一般要学多久(程序员有前途吗)

刚刚看到有同学提出这个问题,作为一位具有22年开发经验的老程序员,作为一名曾经的软件开发工程师培训学校校长,我来说几点自...

2023-04-17 06:41:00查看全文 >>

怎样在微信调出微信运动(怎样在微信上打开微信运动)

怎样在微信调出微信运动(怎样在微信上打开微信运动)

微信运动是很多用户都会玩的一个计步功能,开启后可能看到自己和好友每天走了多少步。最近,有粉丝留言询问云鹏:“微信运动怎么...

2023-04-17 06:37:22查看全文 >>

文档排行