如何编程软件(编程序入门)
你在家过得怎么样?是不是每天穿衣服伸手张嘴的时候,当然经常伴随着妈妈的“不喜欢”和“唠叨”?哈哈~
文章来源:博学谷
接下来,雅姐给大家讲一个雅姐过年时发生的趣事:
小侄子:阿姨,你会编程吗?
我:是的。...
小侄子:那就请你教教我怎么成为网络上的黑客吧。你可以随时用电脑、黑匣子、打一堆莫名其妙的字符,从别人的账户里偷钱。
I:这违法吗?...
这时,二叔走过来说,不是少儿编程吗?我孙子正在学这个。
阿姨过来凑热闹说,哎,邻居家的孩子在学编程,一个月三四万块钱,不下雨不刮风。
我回答:编程是现在的趋势,国家已经开始鼓励青少年学习编程,培养编程思维。未来社会会越来越智能化,如果不懂这个东西,就会慢慢掉队。
阿姨:那就给我们讲讲,我们会从中学习的。...
我:好吧,好吧,让我们开始谈论一些…
另外,有些朋友通过一些视频和段落对编程有自己的理解。
所以他们会问我,程序员会掉头发吗?你会写机器人吗...不知不觉,编程似乎已经家喻户晓。
虽然每个人对【编程】的理解不同,但每个人都在或即将接受编程的相关知识(包括一些老年人和儿童)。那么,编程到底是什么?你确定你什么都知道吗?
接下来,雅姐将带你通过以下几个层次,对编程有一个全面正确的认识。
编程的第一关第一印象
1.1为什么会发生编程?
大家都说艺术来源于生活。你知道[编程]从何而来,为什么会产生[编程]吗?
当代大学生和打工仔每天都在纠结同一个事情,那就是吃什么?
我们不能自己做饭,因为工作的地方离家很远,早上的时间不够,或者宿舍根本不能着火,不想出门。于是,一种“生活需求”应运而生——外卖。
所以外卖来自我们的日常需求,点外卖是通过【编程】实现的。
另一个例子是超市收银员。
假设一个顾客买了100件商品。如果你用计算器把它们相加,那将是浪费时间,而且可能是错误的。但是如果用编程来完成一个软件,就不一样了。你应该看看超市收银台的设备。它的内部系统也是通过【编程】完成的。扫描代码得到价格,并使用程序自动添加,最后可以提示您更改金额。速度快也节省了人力物力。
另外,医院挂号系统,你每天使用的/支付宝等。都是编程的杰作。
原来【编程】是我们生活的需求,是为了让我们的生活更方便,我们每个人都直接或间接地参与了编程中的某个环节。
如果你还觉得有点困惑,我们再来看另一张图片:
图中的“思考”是我们需要的各种需求,也就是我们希望电脑为我们做什么。
图中的表达式是计算机能理解的指令0和1。
然而,如何表达我们的思想并让计算机执行它需要我们(程序员)来完成。
这是雅姐想说的第二个问题,编程的宏观定义。
1.2编程概念
用一句话解释[编程]就是写能让计算机执行某件事的代码。
更详细地说,就是把解决问题的步骤写成计算机能够理解的语言的指令,以便完成某个要求,这就是【编程】。
因此,我们可以看到编程中有几个部分:
1)要求——需要解决的问题或需要完成的任务;
2)把这个要求变成计算机可以读取的代码;
3)计算机执行代码以满足要求。
那么请你想一想:编程中最重要的[核心]是什么?
是的,这是我们上面提到的第二部分。如果这个问题解决了,就有80%的成功。
至于怎么解决,呵呵,放心吧,我们休息一会,喝点水,放松一下,进入下一关。
第二个层次是从生活的角度去理解编程
欢迎来到第二关。让我们继续讨论最后一关结束时留下的悬念。
也就是如何把【需求】一步一步写成计算机可以理解的代码,也就是【逻辑】。
其实在我们对编程领域了解不多的时候,并不需要看一些专业的科普文章,因为里面的技术术语会让你觉得晦涩难懂。
所以,亲爱的姐姐选择用我们生活中最常见的场景来给大家展示什么是逻辑?什么是[步骤]?什么是“过程”?
2.1计算机中的[步骤]和[逻辑]
场景一:假设今天早上想吃煎蛋,但是不知道怎么做。于是我找到了一个食谱,如下:
从食谱中我们可以看到,只要按照操作食谱的【步骤】去做,最终应该能得到一个煎蛋。
这个食谱也可以理解为,只要按照这个12345,你最终会完成相应的任务。
但是这个时候,肯定会有一些小锅友有疑问:不,这个煎蛋我没有做,反而成了黑菜...为什么呢?
哈哈,这个问题没错。因为我们不能只有【步骤】,我们还需要【逻辑】。
什么是逻辑?让我们一起看第二场。
场景二:记录我一整天做的事情。日记如下:
从日记中,我们可以看到有三种逻辑,即顺序、分支和循环。
序列结构:先做什么,再做什么。
比如早上起床,先刷牙,然后洗脸。
比如先打卡,去工作站,然后打开电脑写代码。
分支结构:判断条件和选择条件。
比如不下雨就不要带伞;如果下雨,带把伞。
比如遇到老板,跟领导打个招呼(谄媚的表情);当你遇到一个同事,说你是否吃过早餐(微笑)。
循环结构:反复做一系列操作。
例如,如果代码出现问题,调试,修改,调试,修改,调试,修改...直到问题解决。
然后,当使用[逻辑步骤]时,形成一个新的术语,称为[过程]。
所以,在煎鸡蛋的场景中,小锅友怀疑鸡蛋是不是煮不熟是对的。
因为我们还需要【逻辑判断】,比如,煎蛋是中号还是大号?适量酱油多少钱?如果每一步都加入逻辑,最终的程序就不会出错。
2.2计算机中的[进程]
好的,下面是如果电脑给你煎鸡蛋的过程。
你会发现过程非常严谨,不像我们看的菜单那么随意。
严谨性好吗?当然,如果你不严格,你可能会随意在你的银行账户上赔钱,然后你会哭~ ~
好了,这就是雅姐用两个生活场景给大家解释的——编程到底是为了什么。
我们再总结一下:编程其实就是把我们的需求一个一个地变成【流程】,写入计算机,让计算机帮我们执行。
最近怎么样?不是很受欢迎吗?想继续挑战吗?
程序员眼中的编程是什么?请看下一层。
第三个层次是从专业的角度去了解编程。
欢迎来到第三关。本官姐姐再来说说程序员眼中的编程,从专业的角度讲什么是编程。
小贴士:这个级别涉及的专业术语很多,不过不用担心,雅姐会一一给你讲解。...
3.1数据结构
离家更近的地方,有一本叫《算法数据结构=程序》的书,书名其实是编程的专业定义。
翻译成中文就是“算法数据结构=程序”,这里提到了两个专业术语“算法”和“数据结构”。
首先,我们来谈谈什么是数据结构。
数据结构实际上是数据存储的方式。所谓存储就是保存数据以防丢失。
下面我们不妨用几个生活中的例子来了解一下100站点线下:
火车站售票处排队
乘客排队等着买票。排队的第一个可以先买票。站在后面,终于可以买了。
如果我们把乘客看作数据,这种数据结构叫做队列。
特点:先进先出。
小时候用过的玩具枪
玩具枪可以一个一个装上圆形子弹。当把子弹装入弹匣时,它们被一颗一颗地按下。但是射击的时候,最后一颗压进去的子弹先出来,第一颗压进去的子弹最后出来。这种结构称为堆栈。
特点:先进先出。
计算机的文件夹
一个文件夹可以包含多个子文件夹和文件,一个子文件夹可以包含下一级的子文件夹和文件。
这种结构可以理解为树形结构。是文件树的“叶”节点,子文件夹可以是树的分支,也可以是“叶”。
特点:分支和层次关系。
这个时候,肯定又有一些小伙伴产生了怀疑。为什么需要这么多数据结构?有什么用?
答案是肯定的,因为不同的数据结构以不同的方式存储,这决定了要执行的任务的顺序和速度。如果使用适当的数据结构,程序的性能将得到优化。
3.2算法
现在,我们来谈谈[算法]。
算法是解决问题的方法。
这似乎有点抽象。举个例子吧。例如,我们要在人群中寻找“穿蓝色衣服和白色裤子的男人”。人太多了,我们一眼就找不到。那你是怎么找到的呢?
有很多方法。在这里,雅姐,只有两种方法:
第一种类型:
先找蓝色的那个。
然后从蓝色的衣服中寻找穿白色裤子的人。
判断是不是男人
第二种类型:
先解决掉所有的女人。
排除那些不是蓝色的。
排除那些不是白裤子的。
以上两种方法最终都能达到我们的目的,都是算法。那么它们的优缺点是什么呢?
这要看我们面对的是什么样的群体(数据):如果这个群体中女性较多,那么第二种方法优势明显。
因此,在编程中,我们一直在努力寻找解决问题的最佳算法。
说到这里,雅姐突然想起一个笑话,告诉了你。
一个程序员下班,妻子打电话说:“下班后去超市买十个苹果。如果你看到西瓜,就买一个。”」
结果,程序员回家时只有一个苹果,他悲惨的命运不得而知。但导致他犯错的思维逻辑是编程中的算法逻辑:“不看西瓜,买十个苹果;如果你看到西瓜,买一个苹果。」
一般来说,[算法]就是用逻辑解决问题。算法和数据结构的结合就是一个程序。程序的设计是编程。
这时,你可能又会想,编程是一门知识还是一种能力?
雅姐认为,“会编程”是计算机知识积累的结果,“会编程”是一种实践能力。
这类似于:有些人对汽车很了解,但不会开车上路。所以,理论要和实践相结合~
好了,真正了解了什么是编程之后,雅姐会继续给你一些你不知道的编程冷知识,标准会让你大开眼界~
第四层次科普编程知识
欢迎来到第四关,讲的是我们主要科普的一些常见编程知识,让大家对编程有更好的了解,饭后多聊聊~
常识1:编程是谁发明的,它是如何演变的?
这可能是一个很长的故事。听雅姐给你详细解释。
你猜怎么着很久以前,在电子计算机诞生之前,计算机的角色是由(女性)人扮演的。
因为大多数计算是由人类女性手工完成的,所以这些女性被统称为“计算机”。
然而后来发现,人类的计算是浪费时间,而且有误差,于是我们慢慢开发了一种叫做[true 空 tube]的东西。
这些真空管有一个有趣的特点:真空管两端节点的电流可以用三个引脚控制。这使得真空管在处理模拟信号上可行,真空管可以控制机器,传输模拟信号。
后来,数学家们意识到,如果我们能使用布尔运算,理论上我们可以创造机器来执行这些运算。因此,人们用这一理论建造了一些机械计算机,但机械计算机由于速度慢、成本高,没有真正的应用。
下图是【机械电脑】:
接下来,固态晶体管可以提供与true 空晶体管相同的功能,但它们更小、更便宜,并且可以使用更长时间。所以电脑变得越来越便宜,使用越来越广泛。
但由于操作人员(程序员)要坐在终端前开关,非常不方便,他后来发明了打孔打孔的方法,可以更轻松方便地开关。
下图为打孔纸孔。穿孔卡片上有许多扁平电缆,每根电缆都有可以穿孔的孔。这些电缆和开关相互匹配。
现在,人们不再每天操作那些无聊的开关了。相反,程序员打洞。每行代表不同的指令。有一些机器可以连接到计算机来阅读这些指令。
这样,我们就可以在穿孔卡片上写程序了。这样减少了大量的工作,写出了一张可以长期使用的卡片,避免了重复造轮的问题。
后来,才华横溢的姐姐格蕾丝·霍珀,后来被称为“计算机程序之母”,想出了一个好主意。
她建议可以设计一个程序,让人们用类似英语的语法写下自己想做的事情,然后用这个程序把英语翻译成机器语法,交给机器执行。
因此,她发明了世界上第一个[编译器],名字叫A-0。当时没有组合语言,也没有编程语言。所有程序员都要把[程序]翻译成[机器码]的形式,011010110,在纸上打孔,送到机器上阅读。
因为A-0编译器,语言迎来了曙光。虽然只是科技史上的一小步,但确实是革命性的。它改变了人们对编程的思考方式,创造了一种抽象的思维方式。这意味着人们可以在更高的层次上思考。也改变了人们对如何写程序的思考。
之后,它慢慢衍生出了今天的编程...
常识2:编程语言和编程是一个概念吗?
所谓编程语言,其实就是一种计算机可以理解的语言。它也有一个发展过程。你有兴趣吗?
坐在小板凳上,听雅姐好好跟你说。
第一个诞生的编程语言是机器语言。很简单。有多简单?
就像只用两位数“1”和“0”编程一样简单。
也很气人。你有多烦?
就像把盐和味精混合在一起,让你挑出一粒白糖拌进去。
虽然机器语言难学、难复制、编程复杂,但速度极快。但是人类通过机器语言和计算机对话,这就像外国人用中文和中国人对话一样。因此,对于人类来说,0.00001秒和0.00000001秒没有区别。因此,无论你的机器语言跑得多快,都无法赢得人类的心。
于是,汇编语言诞生了。
汇编语言,用助记符代替机器语言中的操作码,用地址符号或标签代替指令或操作数地址。大概相当于,这群学汉语的外国人开始学拼音了。
然而,汇编语言所做的只是编译机器语言。所以移植推广还是很困难的,理解代码的设计意图也有不小的障碍。
终于在1956年,一门高级编程语言诞生了,它受到了成千上万人的喜爱,吸引了无数程序员。
FORTRAN,一种注定会在无数人的脑海中闪耀的光荣语言,实际上是由不太喜欢编程的约翰·沃纳·巴克斯发明的。
作为高级编程语言家族的长子,虽然历经几代人的变迁,但在数值计算、科学和工程技术领域仍然占据着强大的主导地位。变老,但记住,你的叔叔永远是你的叔叔。
当然,编程语言并不意味着它越合格,就越受欢迎。根据Toibe在10月发布的编程语言列表。
70年的C语言,95年的Java并且依然稳稳占据前三的宝座,91年的Python如今更是蓄势待发并夺下第二名。
此外,在十大语言中:
70后C语言一枝独秀;
20世纪80年代后,名单上有三种语言,1983年正式命名的C语言排名第四。
90后有4种语言上榜,其中Java和Python最好,其次是PHP和JavaScr Baxter ipt。
00,名单上只有两种语言,即C#和。
我们有理由相信,未来会有更丰富、更便捷、更人性化的编程语言。也许有一天,我们可以直接把人类语言翻译成机器语言...
那么,还在等什么,还在犹豫学编程的朋友们?快点学。...
常识3:什么是编程思维?计算机思维呢?
首先,计算机思维和编程思维是一个概念,所以我们可以解释一个。什么是编程思维?
有个笑话说,学编程之前1000是整数,学编程之后是1024!
从学术上讲,编程思维是解决问题的算法加上代码实现过程的集合。思维有两个组成部分,一是算法设计,二是代码实现。
其实学习编程的关键不在于掌握编程的“语言”,而在于学会编程过程中使用的思维模式是“编程思维”。
编程中的思维核心不是编程语言、语法,甚至不是算法或数据结构本身,而是如何分解问题,从中发现规律,构建模型解决问题,并映射到合适的数据结构和算法,然后根据算法编写程序实现。
盖茨、扎克伯格、乔布斯等前辈都曾用经验告诉我们,有编程思维的人是成功的一半——不仅逻辑缜密,而且解决问题和管理的能力也不是一般人可比的。
好了,就这些了。不知道你收获了多少?
此外,对于我们大多数朋友来说,学习编程技术是最重要的!种一棵树最好的时间是十年前,其次是现在。对于准备学习编程的小伙伴,如果想更好的提升自己的编程核心能力(内功),不妨现在就开始吧!
分享编程学习书籍:
编程学习视频分享:
整理和分享(学习多年的源代码,项目实用视频,项目笔记,基础入门教程)