原文:What is Coding Used For,作者:Dionysia Lemonaki
你是否意识到你每天使用的应用和设备背后数以亿计的代码。
代码可以用来做很多事情——超乎你的想象。
在这篇文章中,我会先讲解“编写代码”这个术语到底是什么意思,然后我会简单地解释代码是如何运作的。
我还会解释为什么你需要考虑是否应该学习代码,日常生活的哪些方面受到了代码的影响。
下面是全文概览:
什么是编写代码?写给初学者的计算机编码简明定义
编码是人类和计算机或者其他机器交流的方式。
编码指的人类给计算机或者其他机器下指令或者命令的过程,指令或者命名通常非常具体、有逻辑并且分步骤。
从本质上来说,告诉计算机要做什么是一门艺术。你需要告诉计算机你希望它执行具体什么,甚至不执行什么行为。
编写和组织到文本文件中的指令被称为计算机程序。
计算机或者机器在收到指令后,可以读取、处理、解析并执行指令,解决特定的问题。
计算机和机器能够以相当快的速度来处理数据、读取和执行命令,比人类极限还要快得多。
代码是如何运行的?
电是计算机和机器的动力来源。电只有两种状态:开或者关。
在计算机和机器内部,有成千上万个被称为晶体管的微型开关,用于控制电流的涨落。它们要么打开电源,要么关闭电源。
晶体管接受指令来控制电流开关。这些指令的形式是二进制代码,二进制代码是所有机器的原生语言。
二进制是一种基数为二的数学系统,仅由两个数字组成:0
和1
。这和电只有两个状态的事实吻合。
所以二进制代码是一种机器语言,它包含不同组合的 0
(代表 关
)和 1
(代表开
)。
在计算早期,计算机科学家们编写二进制代码,但编写过程让人困惑、复杂且费时,并且特别容易出错。
虽然如今二进制仍应用于电子设备、电脑硬件以及操作系统设计,但是程序员使用高级编程语言来写代码。
什么是编程语言?
编程语言分为两种类型:
- 低级编程语言
- 高级编程语言
使用低级编程语言来编写代码需要给机器内部每一个单独的处理器编写对应的指令,指令是特定于某个机器,面向机器,并且依赖于机器的,指令控制每一个单独的晶体管。
机器语言(二进制的另一个名称)和汇编语言是低级编程语言。
高级编程语言从机器层面的细节和指令中抽离出来,提供更高层次的抽象。
高级编程语言独立于机器,意味着它们不需要考虑机器内部是如何运作的,高级编程语言是抽离的。
高级编程语言更人性化,因为它们更接近于人类的自然语言。
它们的语法类似于英语,所以更方便读取、编写、理解、调试和学习。
这些特质使得高级编程语言成为人和计算机之间的桥梁,两者间的交流更加容易达成。
计算机世界里有许许多多高级编程语言。
虽然每一种语言都服务于不同的目的,并且由其独特的用例,但是它们具备相同的编写逻辑和运行方式,这些共同之处可以被称作为编程范式。
一些流行的高级编程语言和它们的用例包括:
- Python 是一种用于处理、操作和分析大型复杂数据的语言。它也是执行网页抓取的首选语言。网页抓取是用来收集原始用户数据的一种技术。
- Ruby 是用来创建自动化工具和脚本的语言。借助Rails框架(一种构建在Ruby之上的web框架),你可以创建各种动态web应用。
- JavaScript 是万维网的三种语言之一(其他两种是HTML和CSS标记语言),JavaScript是创建交互式web应用的首选语言。
- Java 不能和JavaScript混淆——它们完全不同。Java经常被用于编写手机应用、桌面软件和嵌入式系统。
- Swift 是用于创建iOS手机应用的语言。
- C# 用于创建桌面应用、企业软件和游戏开发。
同时也有必要提一下高级编程语言通常分为两类:
- 前端(或者客户端)语言。用来负责和创造所有和用户交互相关的部分。
- 后端(或者服务器端)语言。 负责执行背后的逻辑,后端负责创建用户直接交互以外的部分,或许用户没有感知到这些部分,包括存储用户数据到数据库,确保用户能够登陆和登出等。总之,后端给前端赋能,确保程序能够流畅运行。
感兴趣的话,你可以阅读这篇关于前后端语言区别的文章。
为什么编码是对未来有益的技能?
即便你不希望成为专业的程序员,你也可以学习代码。这可以帮助你优化、提高并且自动化你当前工作或者行业中那些重复并且费时的部分。
如果你想要成为专业程序员,拥有这方面的技能,能够帮助解决人类正在面临的一些问题。
接下来我会列举一些理由,告诉你为什么现在应该学习代码,以及你可以考虑学习代码:
代码教你如何思考
苹果曾经的联合创始人、董事会主席以及CEO乔布斯曾经说过:
“我认为这个国家(美国)的每一个人都应高学习如何编写计算机程序,学习一种计算机语言,因为它指导你如何思考。这就像去读法学院一样。我不认为每一个人都应该成为一名律师,但是去读法学院十分有帮助,因为它能够帮助你建立思考方法。所以我认为计算机科学实际上隶属于文科,每一个人都应该学习。
代码教你将复杂、大型的问题拆分成一个个小问题。
代码教你识别重复的模式,并且辨别系统或者过程中什么失效了,你可以如何改进。
你可以充分利用计算机的能力优势和潜力来补充你已有的技能,解决问题。
你可以将代码视为解决问题或者寻求解决方法的思维工具。
编写代码也培养并且提高想象力、创造力和创新精神——代码也是一种艺术。
在解决问题的过程中,你不得不跳出既定框架思考,构思出新的想法和方式来处理事情。代码迫使你从另外的角度来看待问题。
代码帮助你实现想法
你是否有想要实现的想法?
你可能想要创业,成立一个非盈利组织,或者是慈善机构。
你可以使用代码给你的社区提供帮助、工具和资源。
那么有一个网站就非常有必要,你可以在网站推广你所提供的服务和产品。
与其雇人来搭建你的想法,不如你自己来,还省钱。
即便你依旧决定雇人,了解软件编程可以帮助你做更好的用人决定,以及更好地和技术人员交流。
学习代码免费
没有比现在更适合学习代码了。
由于互联网的流行和技术的进步,学习和检索信息变得越来越便捷,只需要点击鼠标就行。
和我们上一辈相比,现在获取高质量的教学资源的门槛降低了。
不论身处在哪里,越来越多的人可以通过学习必要的技能,来获得薪酬更好的技术工作,提升生活质量。
freeCodeCamp的使命就是帮助人们完全免费学习代码。
freeCodeCamp搭建了经过深思熟虑、结构完善的互动教程,包含响应式网页设计、关系数据库、SQL、Python等课程。
freeCodeCamp YouTube频道也包含数千小时的内容,你可以浏览并且找到各种技术话题的完整教学视频。
如果你想更深入了解某个话题,可以浏览freeCodeCamp专栏。这里有超过8000篇文章,包括代码技术话题的完全手册。
代码将提高你的数字素养
我们搜索信息,和他人通过数字设备交流合作。
学习如何编写代码可以让你更加了解甚至欣赏技术是如何工作的,了解你日常使用的电子设备和应用是如何工作的。
在学习的过程中你将收获解决问题的技巧和批判性思维,帮助你在数字环境中更有效和自信地搜索、定位、导航、评估、过滤、存储信息。
代码可以用来做什么?现实生活中代码的应用
即便代码并不出现在我们生活的方方面面,但由于我们处在数字世界,代码也存在我们生活的大部分地方。
你使用得最频繁的物品,其实是由人通过编写合适的函数实现的。
代码和技术即便没有没有时时刻刻出现出现在我们的生活之中,但是它们出现的频率在增加。
代码取代了过时的技术。
一方面,代码使得一些工作更加安全,减少了密集人力劳动,降低了发生事故和受伤的风险。
另一方面,所有的产业都在逐步自动化。
我将列举一些代码出现在我们每日活动的情况:
电子设备
代码给工作和娱乐的电子设备赋能。
这些由代码驱动的电子设备包括:
- 手机
- 平板
- 笔记本电脑
- 台式电脑
- 智能电视
- MP3播放器或者iPods
- 用来记录和检测心率和跑步时间的智能手环和计步器。你也可以通过它们连接手机来获取通知,甚至可以连MP3播放器来听音乐。
- 计算机
- 数码相机
- 逐渐取代纸质签名方式的数字签字板
数字服务和应用
所有你喜欢的网站和手机应用都是由代码编写的。
包括:
- 社交媒体网站
- 个人博客
- 即时消息平台
- 视频会议平台
- 你每天和家人、朋友、远距离的同事保持联系的通讯工具
- 你用来听音乐和博客的音乐流媒体平台
- 实现线上付款、检查信用卡账单或者转账的数字银行和电子服务
- 用来文档的文字处理器
- 电子表格程序
- 用来记笔记、提升效率、做计划清单、记录项目进展和目标进展的应用
交通
交通工具背后也有代码,如:
- 驾车的时候,小轿车内的控制系统来控制更高效地使用汽油、调节功率以及空调。
- 交通信号灯内置了微处理器,能够根据道路交通流量来变化信号灯。
- 电子停车咪表和停车场售票机。
- 地铁或者火车的售票机以及条形码扫码机器。它们读取车票上的条形码,就能够得知你从哪里来,你在车上待了多久,还可以计算你的票还剩多少时间,车票什么时候过期。
- GPS定位系统确保你在不熟悉的地方也不会迷路。
- 公共场所、主干道和购物中心的CCTV(闭路电视)摄像头确保监管和安全。
- 垂直电梯里微处理器,确保停靠在你通过按钮选择的楼层,传感器来检查是否有物品挡住了电梯门。
家居用品
许多家居和厨房用品也需要代码来驱动,如:
- 电子报警器
- 使用微处理器远程调节、控制水温的淋浴加热器
- 吸尘器
- 智能泡茶器和咖啡机,它们可以控制出多少杯茶或者咖啡
- 微波炉
- 可以控制转圈和转速的洗碗机和洗盘机
- 空调
- 冰箱和冰柜
- 你可能还拥有虚拟数字助理或通过语音激活软件和语音识别设备。例如你提出问题或告诉它们向联系人列表中的某人发送电子邮件。它们执行你通过语音设置的任务
- 将你所有设备连接到网络的WiFi路由
总结
希望现在你已经了解什么是编码,以及为什么你的日常生活中代码无处不在。
迈出学习代码的第一步,可以使用freeCodeCamp教程。
从第一个证书——响应式网页设计开始,然后按照你自己的节奏来。
感谢你阅读本文!