当前位置: 首页 > news >正文

00编程学的是什么?

当你的朋友知道你会编程后,最可能会问到你的三个问题,

1、你会修电脑吗?

2、学编程是不是必须英语好?

3、学编程是不是必须数学好?

回答,

1、你每天用的电脑主要分为两个部分。一种是你看的见摸得着的,叫硬件,例如手机,主机,显示屏,键盘和鼠标。另一种是你电脑中运行的程序,叫软件,例如微信,Office,360和IE。

编程就是利用一种计算机语言开发出一种软件,帮助你解决问题。因此你的硬件坏了他不一定会修,不是他开发的软件出问题,他也无能为力。当然,大部分懂编程的人,利用google也能解决大部分电脑问题。

2、世界上有多种不同的编程语言,就像世界上有多种不同的人类语言,类似于英语、日语、韩语,这些人类语言的作用是进行人与人之间的交流,编程语言的作用就是进行人与计算机之间的交流。

学习一门编程言语就像是学习一门外语,你需要学习它的语法规则,记住他的单词(计算机术语叫关键字或者标识符)。编程语言需要记住的单词比人类语言的少很多,例如我使用时间最长的Java语言,总共只有50多个单词,而真正常用的只有十几个。

只是碰巧主要发明计算机和编程语言的大都不是中国人而是美国人,英文就成为他们最好的选择。与学习人类语言需要背几千个单词相比,学习编程语言需要背的单词可以忽略不计。但是英文好确实可以帮助你学习的更好,这个问题不光是学习编程,因为科技方面最新的资料大都是英文的。

3、这个问题就有点像是在问去超市做收银员是不是必须数学好。做超市的收银员你必须懂如何结账,但是不需要你自己拿着纸笔去计算。

那么,编程学的是什么?

编程学的,是一种解决问题的思考方式。

其中,最核心是两种思维方式。

第一,分解问题。

在你遇到一个解决不了的大问题时,可以将它分解成若干个小问题,如果这些小问题依旧无法解决,还可以继续分解成若干个更小的问题,直到不需要分解你就可以解决它。

这就好比一个人问你,如何将一头大象放进冰箱?

你可以把这个大问题分解成三个小问题,第一步,如何打开冰箱门?第二步,如何把大象装进去?第三步,如何关上冰箱门?第一步的小问题你还可以进一步考虑,是否冰箱门上有锁,如何打开锁?第二步的问题也可以进一步考虑,是用人抬进去还是用车拉进去?

第二,归纳总结。

在你解决问题的过程中,你会发现有很多问题的解决方式是一样的,这时你可以将它变成一个通用的方法,再遇到类似的问题,你就能拿来直接使用。

当你解决如何将大象放进冰箱之后,有人再问你如何将小狗放进笼子里,你同样可以利用放大象的三个步骤来完成,只是大象换成了小狗,冰箱换成了笼子。

除了解决问题的方式可以重复使用,问题中描述的对象也可以归纳成一个抽象的对象来重复使用。不同的问题对象,只是其中的某些属性和状态发生了改变。

例如,前面的两个问题可以归纳为,如何将一个动物装进一个物体中?当你再遇到一个新问题,如何将一个蛋糕装进一个盒子里?又可以将刚刚的问题归纳为,如何将一个物体装进另一个物体中?如果需要装的物体不再是一个,那又可以变成,如何将多个物体装进另一个物体中?

不管被装的是大象、小狗还是蛋糕,不管装他们的是冰箱、笼子还是盒子,不同的只是它们的大小、重量或者数量这些具体的属性和参数。

在编程中对上面说的归纳总结有一个专有名词,叫抽象,就是指从具体问题中,提取出具有共性的模式,再使用通用的解决方法加以处理。

听到这里,如果你是一个熟悉数学的人,一定会觉得学编程和学数学很相似,分解问题就像是解题步骤,归纳总结就像是抽象的数学公式。实际上,这两者学习的都是逻辑推理中的归纳演绎

除了相似,学编程和学数学有什么不同?

当你在学习数学的过程中,除了学习逻辑推理能力,还有另外一种能力占据了你学习的绝大部分时间,那就是学习计算能力

从小学的个位数加减法、九九乘法口诀表,到大学的矩阵运算、微积分,你需要花大量的时间来练习如何计算,随着计算难度的增加,计算的精准度必然会降低,时间会变长。

这就像是,你为了毕业之后能比别人走的更远跑的更快,每天不断练习跑步,短跑长跑接力跑,获得各种比赛的奖牌。到了毕业那天,当你走出校园突然发现,原来外面没有人在跑步,所有人都是在开车。

那应该如何去解决计算问题?

答案是使用计算机,因为计算机最初就是一种为了弥补人计算能力差而发明的工具,作用类似于中国古代的算盘,不过速度更快,精确度更高。你学会使用计算机,也就是学会使用工具,通过工具再来帮助自己解决遇到的问题。

可当你遇到的问题没有现成的工具时,你应该怎么办?

答案是,通过编程来自己创造工具,这也是学习编程和学习数学另一个最大的区别。编程不仅仅是一种学习逻辑思维的方式,还是一种创造工具,表达自我的方式。

另外,还有一种非常好的能够帮助你梳理问题的工具,思维导图。通过思维导图梳理出的逻辑步骤,就相当于编程过程中所写的伪代码。

学编程的过程中,除了可以学习上面说的两种思维方式之外,还会学到另外一种重要的能力,错误调试(Debug)

在你真正去解决一个问题时,无论你自认为自己的解决方案有多完美,99%的可能性都会出现预料之外的情况。可以说,编程的过程基本就是错误调试的过程,你通过不断运行程序得到反馈,再一点一点修正它,直到最终的结果完全符合自己的预期。

错误调试就像是费曼学习法,既简单又高效,通过不管输出,来发现自己的认知不足,从而不断的改进自己。这也像是生物进化的过程,遗传和试错。

http://www.cnnetsun.cn/news/88862.html

相关文章:

  • HunyuanVideo-Foley部署:本地与云端GPU实战
  • LangChain工具使用:简化AI函数调用
  • Docker 镜像打包为 tar 并在其他环境加载运行(离线部署实战指南)
  • Docker 镜像体积优化实战:从 1GB 到 100MB
  • LobeChat能否分配任务?团队协作智能调度
  • LobeChat能否拒绝不当请求?安全护栏实践
  • 基于Docker安装的TensorRT镜像实现高并发推理
  • LobeChat能否支持WebRTC?实时音视频通话功能展望
  • 基于STM32单片机双轴追光系统光照自动向日寻光蓝牙无线APP/WiFi无线APP/摄像头视频监控/云平台设计S344
  • Linly-Talker容器化构建与部署指南
  • Plotly Dash多页面仪表盘的构建框架
  • 数据可视化中色彩运用的核心指南
  • 通过“回馈行动“支持美国退伍军人掌握数据技术
  • 智能网页工作便签备忘录HTML源码
  • Deep Learning for Person Re-identification:A Survey and Outlook阅读笔记
  • 国内口碑好的牦牛绒混纺纱线供应商推荐,含 90%羊毛+10%
  • 测试左移与右移的实施方法
  • 【Maven安装配置】
  • 从原理到实战:STM8S103F3最小系统原理图绘制与PCB设计全攻略
  • 本地部署 Excalidraw 手绘白板教程
  • int32 - int32MAX 出现异常
  • Qwen-Image微调实战:让模型认识新车
  • 路由策略与策略路由
  • 软件测试面试题及答案,2026春招必看版
  • 基于飞桨实现图像分类:从LeNet到ResNet
  • 基于单片机的智能窗帘控制系统设计(光照+遥控)【附代码】
  • LobeChat插件系统开发指南:拓展你的AI应用边界
  • 基于单片机的智能燃气泄漏报警与关闭系统设计【附代码】
  • 基于单片机的智能水位控制系统设计(水箱+自动补水)【附代码】
  • LobeChat本地安装详细步骤指南