文章来源:博学谷

接下来,丫姐跟你说一件丫姐在过年期间发生的故意思的事儿:

小侄子:姑姑,你会不会编程?

php图形计算机编程入门若何准确熟悉编程除了高薪我再告知你一些机密 CSS

我答:会啊...

小侄子:那你教教我呗,教我怎么成为网上说的那个黑客?用一台电脑,黑框框,敲一堆看不懂的字符,随时可以把别人账户里的钱偷走的。

我答:这犯法吧...

这时候二叔走过来说:不便是那个少儿编程嘛,我孙子就在学这个。

婶婶也来凑热闹说:啊,我邻居家孩子便是学编程的,一个月3、4万块呢,还风不吹雨不淋的。

我答:现在编程是潮流,国家也开始鼓励青少年学习编程,培养编程思维了。
今后社会会越来越面向智能化,不理解这个东西,逐步就后进了。

婶婶:那你也给我们讲讲吧,我们也学学...

我:吧啦吧啦开始讲一堆…

除此之外,还有一些朋友通过一些视频和段子,对编程有了自己的理解。

于是他们会问我程序员都脱发么? 能不能写个机器人出来...不知不觉中,编程彷佛已经家喻户晓。

虽然大家对【编程】理解的都不同,但是每一个人都正在或即将接管着编程的干系知识(包括一些老年人和孩子)。
那么,编程到底是个啥东西?你确定你都理解么?

接下来,丫姐就通过以下几个关卡,带你全面、精确的认识一下编程。

第一关 编程初印象

1.1 为什么会产生编程?

大家都说,艺术源于生活,那你知道【编程】来源于哪里么,为什么会产生【编程】?

当代大学生、打工仔每天都会纠结同一件事,那便是吃什么?

由于事情地点离家很远,早上韶光不充裕或寝室根本没法开火,不想出门等成分,我们不能自己做饭。
于是,一项“生活需求”应运而生--外卖。

以是,外卖便是源于我们在生活中的需求,而点外卖便是通过【编程】来实现的。

再比如,超市收银。

假设,顾客买了100件东西,如果利用打算器加来加去,既摧残浪费蹂躏韶光又有可能算错。
但如果利用编程完成一个软件那就不同了。
你该当看到过超市收银的那个设备吧,其内部的系统也是利用【编程】完成的。
扫码得到价格,并利用程序自动实行加法,末了还可以提示找零金额。
速率快还省人力物力。

此外,还有医院的登记系统,你每天利用的微信/支付宝等等,都是编程的精品。

原来,【编程】便是源于我们的生活需求,是为了使我们的生活更加便利,且我们每一个人都直接或间接地参与了编程中的某个环节。

如果你还是以为有些懵懵懂懂,那我们再来看一张图:

图中的【思维】,便是我们须要的各种需求,也便是想要打算机帮我们做什么事。

图中的【表达】,便是打算机能够看懂的指令 0和1。

而如何将思维表达出来,让打算机实行,就须要我们(程序员)来完成了。

这也便是丫姐要谈的第二个问题,编程的宏不雅观定义。

1.2 编程的观点

用一句话来阐明【编程】便是:编写出让打算机能够实行某件事的代码

再详细一点描述,便是为了完成某项需求,将办理问题的步骤,用打算机能够理解的措辞写成指令, 这便是【编程】。

以是,我们可以看出编程共有这么几个部分:

1)需求--想要办理的问题或想要完成的任务;

2)把这个需求变现成打算机能够读懂的代码;

3)打算机实行代码,实现需求。

那接下来请你思考:编程中最主要的【核心】是什么呢?

对,便是上述我们提到的第2个部分,办理了这个问题,也就成功了80%。

至于怎么办理嘛,嘿嘿,不要焦急,我们先来稍作安歇,喝喝水,放松一下精神,进入下一关。

第二关 从生活视角理解编程

欢迎来到第二关,本关我们连续来聊聊上一关卡末端留下的悬念。

那便是,如何将【需求】一步一步编写成打算机能够读懂的代码,也便是【逻辑】。

实在,在我们对编程领域的东西知之甚少的时候,大可不必去看一些专业性强的科普文章,由于里面的专业术语会让你以为晦涩难读,产生畏难感情。

以是,知心的丫姐选择利用我们生活中最常见的场景带你去体会一下,什么是【逻辑】?什么是【步骤】?什么是【流程】?

2.1 打算机中的【步骤】与【逻辑】

场景1:如果,本日早上我想吃煎鸡蛋,但是我并不知道怎么做。
于是我找了一份菜谱,如下:

从菜谱中,可以看出,只要我们按照操作菜谱的【步骤】完成,末了就该当可以得到一份煎鸡蛋。

这个菜谱也可以理解为, 只须要按照这个12345来, 终极就会完成相应的任务。

但此时肯定会有小盆友有疑问:不对啊,我照着做了也没做好这个煎鸡蛋啊,反而成了阴郁收拾...为什么呢?

哈哈,这个疑问是精确的。
由于我们光有【步骤】还弗成,还须要有【逻辑】。

那什么是【逻辑】呢?我们一起来看场景2。

场景2:记录我的一天都做了什么。
日记如下:

从日记中,我们可以看出有三种逻辑,分别是顺序,分支和循环。

顺序构造:先做什么,再做什么。

比如,清晨起床,先刷牙,再洗脸。

比如,日常上班先打卡,到工位,再打开电脑,写代码。

分支构造:判断条件,选择条件。

比如,没有雨就不带雨伞,下雨了就带伞。

比如,碰到上司,就说领导早上好(谄媚表情);碰到同事,就说吃早饭了没(微笑)。

循环构造:反复做一系列的操作。

比如,代码出了问题,要调试,修正,再调试,再修正,再调试,再修正......直到问题办理。

那么当【逻辑+步骤】时,就组成了一个新的名词,叫【流程】。

以是,在煎鸡蛋的场景中,有小盆友迷惑鸡蛋做不成是对的。

由于我们还须要【逻辑判断】,比如,煎鸡蛋是中小火还是多大火?多少算是适量酱油?如果每一个步骤上都加上该有的逻辑,末了程序就不会出错。

2.2 打算机中的【流程】

好,下面便是如果让打算机帮你煎鸡蛋,会是什么样的流程。

你会创造流程十分严谨,它并不像我们看的菜谱一样随意。

严谨是好的吗?当然是,如果不严谨,你银行账户里就可能随便丢钱,到时候,你可是要哭鼻子的哦~~

好,以上便是丫姐用两个生活场景给你阐明了-- 编程都是做些什么。

我们再来总结一下:编程,实在便是将我们的需求化为一个个【流程】,写到打算机中,让打算机帮我们实行。

怎么样?是不是很普通?想不想连续寻衅一下?

在程序员的眼中,什么是编程呢?请看下一关卡。

第三关 从专业角度认识编程

欢迎来到第三关,本关丫姐会再说一说程序员眼中的编程,也就从专业角度看编程是什么。

温馨提示:本关卡涉及到的专业名词较多,不过不要担心,丫姐都会给你逐一阐明清楚...

3.1 数据构造

言归正传,有一本书的名字叫《Algorithms + Data Structures = Programs》,书名实在便是专业角度的编程定义。

翻译成中文便是《算法+数据构造=程序》,这里提到了两个专业名词,【算法】和【数据构造】。

首先,我们先来说说什么是【数据构造】。

数据构造实在便是数据存储的办法。
所谓 存储 便是将数据保存下来,以防丢失。

下面我们不妨用几个生活中的例子来理解一下:

火车站售票口排队的人群

乘客站成一队等待买票,排最前面的,先能买到票。
站在末了面的,末了能买到。

如果我们把乘客看作是数据,这种数据构培养是【行列步队】。

特点是:前辈先出。

小时候玩的玩具枪

玩具枪可以上一颗颗圆圆的子弹,向弹夹里装子弹的时候,是一颗一颗压下去的。
但是射击的时候,末了压进去的子弹最先出来,最先压进去的子弹末了才出来。
这种构培养是【栈】。

特点是:前辈后出。

电脑的文件夹

文件夹可以包含有多个子文件夹和文件,子文件夹又可以再包含下一层的子文件夹和文件。

这个构造可以理解为【树型构造】。
文件是树的“叶子“节点,子文件夹可以是树的分支,也可以是”叶子“。

特点是:分支和层级关系。

这时候,肯定有小伙伴又有疑问了,要这么多数据构造干什么?有什么用吗?

答案是肯定的,由于数据构造的存储办法不同,就决定了要实行任务的顺序以及速率不同。
如果利用得当的数据构造会让你的程序性能达到最优。

3.2 算法

现在,我们再来说说【算法】。

算法,便是能够办理问题的方法。

这样说彷佛有些抽象,我们举个例子来说,比如,我们要去人群里面找“穿蓝衣服、白裤子的男人“,人群人数很多,一眼找不到。
那么要若何找到呢?

有很多种方法,这里丫姐大略来说两种:

第一种:

先找穿蓝衣的

再从蓝衣服中找穿白裤子的人

判断是不是男人

第二种:

先把女的都打消掉

不是蓝衣服的打消掉

不是白裤子的打消掉

以上两种方法,末了都能达到我们的目的,两种都是算法。
那么它们有什么利害之分吗?

这须要看我们的面对的群体(数据)是什么样的:如果这个群体中女人居多,那么第二种方法则上风明显。

以是,在编程中,我们一贯都在致力于探求办理问题的最优算法。

说到这里,丫姐溘然想起一个笑话,讲给你听。

一个程序员放工,他老婆打来电话说:「你放工后去超市买十个苹果回家,如果看到西瓜,就买一个。

结果,程序员回来的时候只带了一个苹果回家,他的可怜了局不可可知。
但导致他犯缺点的思考逻辑却正是编程中的算法逻辑:「若没看到西瓜,就买十个苹果;若看到西瓜,则买一个苹果。

总的来说,【算法】便是利用逻辑来办理问题。
而将算法和数据构造结合起来,便是程序。
而程序的设计,便是编程。

这个时候你可能又会想,那编程到底是一门知识,还是一种能力呢?

丫姐认为,【懂编程】是打算机知识积累的结果,但是【能编程】则是一种实践能力。

这就类似于:有些人汽车知识理解一大堆,但却不能开车上路。
以是理论还是要和实践相结合呦~

好,真正知道编程到底是个啥之后,下一关丫姐会连续给你科普一些关于编程,你不知道的冷知识,标准让你张大嘴巴~

第四关 科普编程知识

欢迎来到第四关,本关我们紧张科普一些编程知识,让你对编程理解的更透彻,也能拥有更多饭后谈资~

知识1:编程是谁发明的,如何演化的?

这个可就说来话长了,听丫姐细细给你道来。

你知道么?良久以前,在电子打算机出身之前,打算机这个角色是由(女)人来扮演的。

由于大多数打算都是由人类女性,手工完成的,以是这些女人被统称之为「computers」。

但后来大家创造人打算既摧残浪费蹂躏韶光,又存在偏差,于是逐步研究出一种东西,叫做【真空管】。

这些真空管有一个有趣的特性:用三个针脚可以掌握真空管两端节点的电流。
这使得真空管在处理仿照旗子暗记方面是可行的,真空管可以掌握机器和传输仿照旗子暗记。

后来,数学家意识到,如果能够利用布尔运算,理论上就可以创建实行这些运算的机器。
于是,人们利用这种理论构建了一些【机器式打算机】,但是由于机器打算机的速率太慢而且本钱高昂,以是没有真正的运用。

下图便是【机器式打算机】:

接下来,是【固态晶体管】,能供应与真空管相同的功能,但它们更小,更便宜并且能够持续更永劫光。
以是电脑开始变得越来越便宜,越来越广泛。

但由于操作员(程序员)不得不坐在终端前,打开闭合开关,非常未便利,所往后来又发明出了穿孔打卡的办法,能够更大略方便地切换开关。

下图便是打出来的纸孔。
打孔的卡上面有很多排线,每条线都有可以打的孔,这些线和开关相互匹配。

现在开始,人们不再每天操作那些乏味的开关了,改为程序员们去打孔了。
每一条线,都代表着不同的指令。
有个机器,可以连接到打算机读取这些指令。

就这样,我们就可以在【打孔卡】上面写程序啦。
这减少了相称多的事情,写出一个卡片能利用相称久,也避免了重复造轮子问题。

再后来,天才格雷斯·霍珀(Grace Hopper)姐姐,后被人们称为“打算机程序之母“,她想出了一个很棒的点子。

她提出可以设计一种程序,让人们可以用类似英文的语法,把想做的事写下来,然后用这个程序把英文翻译成机器的语法,交给机器去实行。

于是,她发明了天下上第一个【编译器】 (Compiler),名字叫做 A-0。
当时是没有任何组合措辞及程序措辞存在的,所有的程序设计职员都要把【程序】翻译成【机器码】,01101010110 这样的形式,在纸上打孔,再送到机器里去读。

编程措辞由于 A-0【编译器】而迎来了曙光。
虽然它只是科技史上的一小步,但是真的是革命性的,它改变了人类对付编程的思考办法,创造了抽象的思维办法。
这意味着人们可以在更高的层次上思考。
也改变了人们对如何编写程序的想法。

之后也就逐步衍生出本日的编程来...

知识2:编程措辞和编程是一个观点吗?

所谓编程措辞,实在便是某一种打算机可以读懂的措辞,它也是有发展进程的,你感不感兴趣?

坐好小板凳,听丫姐好好给你讲。

最先出生的编程措辞是 机器措辞。
它非常大略。
有多大略呢?

大略到只用“1”和“0”两个数字就可以进行编程。

它也非常让人恼火。
有多恼火呢?

就像把盐粒和味精稠浊到一起,让你挑出来混进去的一粒白砂糖。

只管机器措辞难学难懂、不可复制、编程繁杂,但速率极快。
但人类通过机器措辞跟打算机对话,类似于外国人用中文和中国人讲话。
以是对人类而言,0.00001秒和0.00000000001秒并没有什么差别。
以是,哪怕你机器措辞跑得再快,也不能得到人类芳心。

于是,汇编措辞 出身了。

汇编措辞,用助记符代替了机器措辞中的操作码,用地址符号或标号代替了指令或操作数地址。
大概就相称于,这帮学中文的外国人开始学拼音了。

不过,汇编措辞所做的事情只是将机器措辞做了大略的编译。
以是,移植和推广依然很困难,读懂代码的设计意图也存在不小的障碍。

终于在1956年,集万千宠爱于一身、引无数程序员光头秃的 高等编程措辞 出身了。

FORTRAN,这个出生就注定了将环绕着无数锃光瓦亮头顶的荣光措辞,居然是被一个并不怎么喜好编程的约翰·巴克斯(John Warner Backus)发明出来的。

作为高等编程措辞家族中宗子,虽然经由了几代更迭,但依然在数值打算、科学和工程技能领域霸占着强大的上风地位。
老归老,但是要记住,你大爷永久都是你大爷。

当然,编程措辞这东西倒也不是说越有资历就越受青睐。
根据TOIBE 2019年10月发布的程序措辞排行榜来看。

70年的C措辞95年的Java 和 依然稳稳霸占着前三的宝座,91年的Python如今势头正猛,坐上了第二的位置。

此外,排名前十的措辞中:

70后C措辞一枝独秀;

80后有3种措辞上榜,表现最好的是83年被正式命名的C++,位列第四;

90后则有4种措辞上榜,个中Java和Python表现最优,PHP与JavaScript紧随其后;

00后只有两种措辞上榜,分别是C#与VisualBasic.NET。

我们有情由相信,未来将会有更丰富、更方便、更人性化的编程措辞涌现。
大概某天,可以把人类措辞直接翻译成机器措辞也说不定……

以是,正在犹豫要不要学编程的小伙伴,还在等什么?赶紧学起来...

知识3:编程思维是什么?打算机思维呢?

首先,打算机思维和编程思维是一个观点,以是我们阐明一个就可以了,那什么是编程思维呢?

有这么一句笑话,说学编程以前,1000是整数,学编程往后凑个整都是1024!

学术上讲,编程思维便是办理问题的算法加代码实现过程的凑集。
编程思维有两个组成部分,一部分是算法设计,另一部分是代码实现。

学习编程,实在最关键的不是要节制编程的“措辞”,而是要学会编程过程所用到的思考办法便是“编程思维”。

编程思维的核心,不是编程措辞,也不是语法,乃至不是算法或数据构造本身,而是如何分解问题,从中创造规律,建立办理问题的模型,并映射到得当的数据构造和算法上,然后才能根据算法写程序实现。

比尔盖茨、扎克伯格、乔布斯等前辈都用履历见告我们,拥有编程思维的人,就相称于成功了一半——不但逻辑清晰心思严密,而且办理问题能力、管理能力也非一样平常人可比。

好啦,以上便是本次的全部内容了,不知道你有多大的收成呢?

其余,对现在我们的大多数朋友来说还是学编程技能最主要!
栽一棵树最好的韶光是十年前,其次是现在。
对付准备学习编程的小伙伴,如果你想更好的提升你的编程核心能力(内功)不妨从现在开始!

编程学习书天职享:

编程学习视频分享:

整理分享(多年学习的源码、项目实战视频、项目条记,根本入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习发展比自己琢磨更快哦!

对付C/C++感兴趣可以关注小编在后台私信我:【编程互换】一起来学习哦!
可以领取一些C/C++的项目学习视频资料哦!
已经设置好了关键词自动回答,自动领取就好了!