我一直觉得,无论做什么,学点编程是有用的,单纯编程的思想也能让很多时候对事情的分析和统筹安排更有条理,更何况,方方面面的,其实都会用到。
但是么,大家都挺忙的,挺累的,挺拖延症的,反正学习这件事情,何必着急呢。所以啊,老鼠就努力思考,怎么才能让这件事情变得简单点,虽然简单就意味着舍弃很多内容,但是,先能学进去吧,连开始都没有,那再全面的教程也没有意义。
三分钟行么?我讲一分钟,你再努力坚持思考两分钟。我说的是一节内容,反正也没几节……
就,试试?
一、如果
如果米饭熟了,就切换到保温状态。
一看就懂,最老式儿的电饭煲煮饭就是这个样式儿的。
如果你懂了,那很好,你已经入门编程了。当然,你不相信。那我再说一个:
如果过去了十五分钟,就断电。
洗衣机定时器的工作逻辑(如果你的定时是 15 分钟的话)。
你先别关网页。一个著名的工具 IFTTT 就是做这件事情的:
If This Then That
如果这样,就那样。如果达成前面的条件,就做后面的事情。
如果无限分解编程中的逻辑,到最后就是这样一个个的——“如果……就……”。
如果你感兴趣,就去观察生活中的每一件事情,然后用“如果……就……”造句,渐渐地就开始理解其中的工作逻辑了。
如果指纹识别通过,手机就被解锁了。
就像这样。
有什么用呢?有这个概念之后,你就会发现很多工具似乎也都是这个逻辑,比如上面讲的 IFTTT,也比如手机中的一些辅助工具等。
如果 QQ 消息的内容里有 [红包],就嗷嗷提示我!
抢红包辅助工具的逻辑。
二、否则
如果晴天,就出去玩,否则就在家里看书。
如果成立,就做前面的,不成立就做后面的。一点也不复杂,而且这个其实也可以用单纯的如果表达,来两次就醒了:
- 如果晴天,就出去玩
- 如果不是晴天,就在家里看书
好了,还是观察,造句,养成一种习惯,喂,这种练习不费时间的吧,上班路上胡思乱想的时候就能琢磨出好多了。
习惯把一些问题这样分解之后,你会发现很多辅助工具很简单的。比如 Android 下面的 Tasker,Fooview(自定义任务),iOS 上的快捷指令……
甚至,渐渐的,你发现我们做每件事情的逻辑也可以这样分解,这不就开始变得逻辑清晰了。
三、重复
如果碗里还有饭饭,就吃一口
如果碗里还有饭饭,就吃一口
如果碗里还有饭饭,就吃一口
……
逻辑没错,描述起来好累。你在做上面练习……喂,你做练习了吗?骗我可以,你要是连自己都骗,那你可太把我当朋友了,一点不见外,咱俩一个待遇……你应该也遇到过类似的情况。
我们换个方式描述:
如果碗里还有饭饭,就不断地做“吃一口”这件事儿,直到碗里没有饭饭(就是前面的如果不成立了)。
抽象出来:条件成立就重复做后面的事情,直到这个条件不成立。这叫做循环。
就比如我们数钱(现在都是手机上付款,是不是好久没数钱了呢?):
如果没数完,就不断地翻一张,加上对应的金额,直到数完。
四、够了
前三节光学造句了,嘿嘿嘿,你要是没练习,嘿嘿嘿,还不如幼儿园的小朋友乖哦。
够啦,真的够啦,懂这些逻辑已经能解决好多问题了。对,就是你现在很强了,只是你自己不知道,你去试试看,就发现好像很多工具也蛮简单。甚至自家那面板复杂的微波炉也变得……好用了点。
本来就是,编程日常用到的基本逻辑也就这点,剩下就是反复用,反复用……你就觉得,哇,好复杂呀。就像砖头不起眼,盖成房子就有是一种……买不起的感觉。
非常认真:这些简单的思想用来指导一些工具的设置和操作,能顺畅好多的。
如果还想更强,多去运用就是了。
五、代数
用字母代表数,就是代数(粗略)。用单词行不行,用中文行不行……都行,反正就是取个名字呗。就像老师讲课,有个数字是 1928766352,老师不能每次提及都把这个数字念一遍,于是说:这个数,或者说这个值。就是用来代称嘛。
你说这数字有点像电话号码,对,咱俩聊天的时候提及你的电话号码,会每次都读一遍吗?当然不会,只会说你的电话号怎样怎样。代称嘛~
只能代称数字吗?你跟快递聊:我这地址到得了吗?这地址就指代了你指着的只一大串内容。
所以扩展一下——用一个名称代称一些内容。这个方法我们日常经常使用,当然,就不能叫代数了。编程里叫“变量”,反正也差不多。
那位数学学得好的立刻就想起来了,对应的还有一个常量!嗯,可以被改变的是变量,不可以被改变的是常量。
这个都不用去留意,生活中到处都是应用,比如刚才说的“这个”,就指代了前面讲的内容,显然这是可以被改变的指代(下次说“这个”代表的不一定是什么内容了),所以是变量。
六、数字
嘛,我说的就是数字。
七、文字
嘛,我说的就是文字。
123 这是数字,“123” 这是文字。诶,这概念很矫情?!就是看侧重,侧重它代表一些数值,数字;侧重这是由一个个文字组成的,就是文字。
对了,编程里管这叫字符串,就是一串字符组成的东东。
那如果没有字符呢?空字符串。对,是一个字符串,但是是空的。是个羊肉串,但是被吃没了(就剩下竹签子了)。就和小学数学老师很爱反复矫情的概念一样:这里有东西吗?有;有多少?0 个!(要不是打不过,我是真想打他呀
八、是否
前面说条件成立吗,这里必然是两个结果之一:成立,或者不成立。是或者否。真或者假。对或者错,True 或者 False ……
就好像有些节目里裁判举牌(按灯),就俩结果:对号或者叉号。
这个在编程里叫做:布尔型。哎,你懂了就行,名字不重要,万一记住了可以假装自己很懂的样子。
如果看这个你想起了真值表,那很好,这个有用。没想起来?也没事儿,总有变通的方法。
九、这在讲啥
严格讲是数据类型,但我一点也不想讲概念。你看明白了就 OK,多看两遍就再好不过了。用得上的时候你自然会用起来,用不到的时候,这点学习量也没啥负担不是,就是听我胡扯两句而已。
十、扑克
这里有个盒子,里面有一沓扑克,我和你说:拿出来其中的第三张,对,从这边开始数。你肯定能拿对。我也可以说:帮我挑出来黑桃A,你还是能拿对。
当然,也有可能这沓牌就两张,或者没有黑桃 A,那你告诉我没有。总之,结果是明确的。
好了,这一沓扑克,算是一组东西,这组东西都没有名字,但是有序号,第几张;我们可以描述它们的内容,比如:黑桃A。差不多就是这样的,就叫做数组,就是一组数据。
十一、工具箱
又是一个盒子,是个工具箱,我干活,你帮忙。我说:把钳子递给我,你拿出钳子;我说把扳手递给我,你给我扳手。
这也是一组东西,但是它们都有名字,但没啥顺序,你知道的,工具箱里边的工具可能就散乱的放在一起。这种叫做……嘿嘿嘿,对象(脸红)。
十二、就到这儿吧
我说的看懂就行了,不用深入理解。日常看到什么如果能尝试往里面套用一下就算很勤奋了。看起来就是一堆废话,但当你遇到相关问题的时候,这些应该会给你一些助力。
如果你都理解了,再学编程,好多地方会觉得似曾相识。毕竟这是骨头的骨头版教程。
其实,这些概念如果再搭配一些基础的正则表达式,已经可以完成很多以前你想做但觉得距离自己很遥远的事情了。比如……算了,范围太广,反倒不好举例。真的学到了,用到了的可以在下面讲一下自己的实际应用。
正则表达式,哪天心血来潮再写一篇吧。
以上,两千六百多字,应该有人能读完吧。读完发个电?—— 老鼠爱发电