学会编程思维
学习编程思维对于当代以及后代人们提高技术与知识水平至关重要。随着计算机在日常生活中的广泛应用、网络互联互通的进一步加深,人们的生活越来越便捷。现在,我们需要拥有这些工具,掌握其使用技能,这样才能获得有效的服务。明白了这一点,我们就可以借助现有的编程语言,进行人机“对话”,享受智能服务。而妨碍我们学习编程的一个常见问题是,不知从何学起,甚至怀疑能否学会。其实,不必为此担心,学习编程的途径有很多。
把编程语言的过去、现在,也许还有未来,紧紧联系在一起的,其实是一整套核心概念。你会发现,这些核心概念都源于计算机科学、逻辑学和数学——这也正是我们将要探讨的相关内容。希望通过这些知识和概念帮助你学会编程思维,而且不需要事先接触一行实际的代码。现在科技发展的速度实在太快,要想准确预测未来几年我们会使用什么先进技术与产品都非常困难,更不必说要解码了。所以我们希望你通过这些核心概念的学习,获取一套可以终生受益的工具,把自己武装起来,迎接各种挑战。学习编程思维的过程,将帮助你培养批判性的思维方式,提升你的组织能力,增强你使用计算机的信心。这样,即便在以后的人生道路上遇到了编程术语的问题,也不会为之困扰。
在学习编程思维的过程中,不需要一台专用的计算机,也不需要什么专门的软件。一副骰子、一副扑克牌, 甚至一支铅笔、一张纸,有了这些简单的工具,就可以学起来啦!
编程所涉及的知识非常广泛,不仅包括计算机的工作原理和思维模式等基础知识,还包括计算机科学常见的概念如循环、条件语句、变量等,甚至还需要探索和分析编程世界和自然世界的异同。本指导手册将会帮助你更好地探索这新奇而又趣味无穷的编程世界。
过河谜题
过河谜题广为流传,有很长的历史,可追溯至9 世纪,流传至今的一个版本是这样的:
农夫带着恐龙、小妖怪和一箱金子站在河边,准备渡河。农夫要用船将恐龙、小妖怪和金子运过河,但是船不够大,农夫每次只能带一样东西。农夫不能将恐龙单独和小妖怪放在一起(恐龙会吃掉小妖怪),也不能将小妖怪单独和金子放在一起(小妖怪会啃食金子)。那么如何在保证金子、小妖怪和恐龙都完好无损的情况下,把它们都运过河呢?
思考一下,我们过一会儿再回头来看这道谜题。在这道谜题中,你可能会觉得受到了约束,为何不把农夫、小妖怪和金子都放在恐龙的背上,让恐龙游过去呢?为何不让农夫用金子买一艘大一点儿的船呢?谜题的要求约束了你,不允许你采用这样创造性的方法。
编程时,经常也会遇到约束条件。有些约束来自正使用的计算机,或是硬盘空间不够,或是系统剩余的内存有限,而你所编写程序占用的内存太大。
有些约束与时间有关,如编程项目可能需要在两天内完成,于是你就只有大约一天的时间编程,没有足够的时间考虑各种情况。这时候你可能会感到万分沮丧,这完全是可以理解的。不过你还是得找到解决问题的方法,想出最佳的解决方案。
解决方案:
我们再回到过河的谜题中来,你有答案了吗?以下就是解决方案。
• 农夫留下恐龙和金子,先将小妖怪运到河对岸。
• 农夫返回来,再将恐龙运到河对岸。
• 农夫再次返回时将小妖怪带回来,然后把金子运到河对岸。
• 最后农夫再返回来将小妖怪运过河,这样农夫、恐龙、小妖怪和金子就都到了河对岸。
你可能会考虑到谜题中出现的约束条件:农夫不能将恐龙单独和小妖怪放在一起,也不能将小妖怪单独和金子放在一起。但是你很快会意识到有一个没有约束的条件——一个根本没有告知的条件,那就是你可以往返多次,而且可以将已经运过去的东西再运回来。
从这个谜题中,我们可以得知,解决问题时要关注那些没有给出的条件和信息,因为答案有时就隐藏在看不见的地方。还有一点,做好接受意料之外的准备吧!






