为初学者答效率的问题

简介:   本文来自读者对我博文的评论。遇到主动思考者,提出的主动思考过的问题,老贺是相当的兴奋。   完整的对话见《C语言及程序设计实践参考——n=a!+b!+c!》中二楼评论。    【问题】   老师,我尝试着%¥#&……%……,但程序变得更多了,这样还会提高效率吗? 【答复】   很高兴你能问出这样的问题,这种主动思考,在我的实体课学生中真也不多。这牵涉到我

  本文来自读者对我博文的评论。遇到主动思考者,提出的主动思考过的问题,老贺是相当的兴奋。
  完整的对话见《C语言及程序设计实践参考——n=a!+b!+c!》中二楼评论。
  
【问题】
  老师,我尝试着%¥#&……%……,但程序变得更多了,这样还会提高效率吗?
【答复】
  很高兴你能问出这样的问题,这种主动思考,在我的实体课学生中真也不多。这牵涉到我们对于效率的多维认识。
  多数情况下,效率指计算机的效率,要分时间效率(用时尽可能少)和空间效率(运行中少占用内存空间)。而注重时间效率的居多。于是,源代码的行数多少,并不是决定时间效率高的关键,只要最终目标代码,让计算机执行的操作少,时间角度自然就快。而另一维度的效率,我们也要认识到,那就是人的效率。计算机系统是由计算机和人综合起来的,实际上,人的效率更值钱,这在现在人力成本增加的情形下,对一些公司很关键的事。对于不算太复杂的问题,或者计算机效率低,但也足以满足需求的情况下,作为开发人员的“人”,不必为计算机的效率而花太多功夫。一个系统中最关键的环节,影响到系统性能的“瓶颈”部分,才值得去耗费大量的人力,以及绝顶聪明的脑袋,去追求计算机的效率。这也就是很多初级的程度员体会不到学算法的必要性的原因(尽管好的初级程序员,算法素养无时不刻在起作用)。你的解决方案,显然计算机的效率高了,人的效率低了。更要命的是,算法弄复杂了,出错的可能性更大了。任何的工程,遵循“简单即是美”的法则。
  回答这样的问题,高兴,就多说几句。
  当然,作为学习者,尤其是初学者,你的这种“人力低效率”,恰从学习角度是最高效率的,对训练思维的价值是相当大的。将这种思考和质疑继续下去!

目录
相关文章
|
3月前
|
数据挖掘 Python
🚀告别繁琐!Python I/O管理实战,文件读写效率飙升的秘密
在日常编程中,高效的文件I/O管理对提升程序性能至关重要。Python通过内置的`open`函数及丰富的库简化了文件读写操作。本文从基本的文件读写入手,介绍了使用`with`语句自动管理文件、批量读写以减少I/O次数、调整缓冲区大小、选择合适编码格式以及利用第三方库(如pandas和numpy)等技巧,帮助你显著提升文件处理效率,让编程工作更加高效便捷。
50 0
|
7月前
|
IDE Java 开发工具
C语言入门(前期准备工作)——超级详细的建议和教学,带你顺利跨越编程门槛
C语言入门(前期准备工作)——超级详细的建议和教学,带你顺利跨越编程门槛
|
算法 安全 程序员
分享刷题的个人经验!!!(特别高效)
分享刷题的个人经验!!!(特别高效)
95 0
|
C语言
这个小游戏你肯定玩过,但是如果你能用C语言自己写出来,那是不是体验感更好呢?看完我这篇文章,我保证你能写出来
这个小游戏你肯定玩过,但是如果你能用C语言自己写出来,那是不是体验感更好呢?看完我这篇文章,我保证你能写出来
|
测试技术 开发者
方便实用!软件测试面试题及答案这里面都有
软件测试属于技术类工种,因此,面试环节上也要比其他岗位的多上一个环节,分别是日常面试以及技术类问题面试,前者大家临场发挥就能搞定,而后者的话,由于技术性强,再加上很多人容易紧张,从而导致面试的通过率降低,所以,不少想在年后开始找工作的软件测试工程师们,就想要知道哪里有比较齐全的软件测试面试题及答案可以用作面试加持?
179 0
|
XML SQL JavaScript
当前在工作中使用到的高效的代码编写方法
当前在工作中使用到的高效的代码编写方法,让代码去生成重复性质的代码
136 0
|
架构师 测试技术 程序员
【号外】-一个高效程序员的45个习惯总结版-文末脑图
【号外】-一个高效程序员的45个习惯总结版-文末脑图
【号外】-一个高效程序员的45个习惯总结版-文末脑图
|
编译器 程序员
软件基本功:避免难度写法,代码简单易懂才是高手
软件基本功:避免难度写法,代码简单易懂才是高手
110 0
|
算法 安全 程序员
良好的程序员与优秀的程序员究竟有何差异?
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 如果写代码是一门科学,那么所有开发人员的表现几乎没有区别。 但事实并非如此。 如同一门艺术,在朝着同一结果努力时,两个开发人员不会有同样的思维或认知。
良好的程序员与优秀的程序员究竟有何差异?