编程的奥义
编程的意义,不在于熟练地掌握一门编程语言,不在于挑战高难度的算法,而在于“应用”。
一段程序,只有当被用于解决实际问题时,才接近编译的本质。
当遇到难题时,用一种程序的思想去解决问题,这就是程序员。程序员,亦是一个熟练掌握各种应用软件的电脑老鸟,但是在使用各类应用软件解决实际问题时,总有个效率的问题。解决问题的效率,是评判一个应用软件是否成功的关键。
通用的应用软件,意在解决大部分用户的应用难题,所以包含了各种各样的繁杂的功能,可供用户使用并解决各类应用难道,提高解决问题的效率,它好比是某个专业领域的专家,然而,正因为软件所以包含的功能至多,造成了在解决某些细节问题时,有一个效率降低的问题。
举个例子来说,做一个投票计数的记录器,当然可以用EXCEL来做,示例如下:
_____________________________________
| 参选人甲 | 参选人乙 | 参选人丙 |
------------------------------------------------------------------
| 0 票 | 1 票 | 2 票 |
-----------------------------------------------------------------
EXCEL这类的软件,我统称其为通用型应用软件,因为其设计理念是解决大部件用户的大部分应用难题,提高大部分难题的解决效率。
但是,上面一个例子在实际应用时,就出现效率的问题了。当参选人甲增加一票时,你如何修改“0 票”这个数据呢?首先,要选中相应的单元格,然后修改其中的内容,比如输入字符“1 票”将“0 票”这个数据覆盖。然后,当参选人丙增加一票时,用户要移动光标位置到相应的单元,再次输入相应的更新后的字符数据。但是,这样一来,操作的效率显示比较低,用户或者移动鼠标或者按键盘方向键,然后往键盘上打字输入更新后的字符数据;当更改其它单元数据时,重复此操作。
为了解决通用型应用软件在解决某方面问题时效率低下的问题,从程序员的角度出发,不是想方设法弄清楚EXCEL软件中是否有更好的更高效的处理方法,也不是墨守成规式地忽视效率问题被动地接受EXCEL软件在这个方面的处理短板。
为了解决通用型应用软件在解决某方面问题时效率低下的问题,从程序员的角度出发,应该是怎样呢?程序员的第一个想法,应该是——我要做一个软件,解决这个问题,提高问题的解决效率。是的,学习的目的不就是于“学以致用”吗?学了,懂了,就要会“用”,而且要“用”得好,“用”得对!
很多人学了多年程序,但是一直没有多大的成绩出来,纠其原因,我想大部分还是因为其不能将所学学以致用!
用VC编写的一个小软件,将单元格显示记录数据的方式,改为按钮方式,当数据增加时,用户只需要点击相应的投票按键,省去了打字更新数据的繁琐操作,而且采用图形可视界面代替表格界面,使数据更直观。附上软件的效果图,如下图所示:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述