《英语不好能学编程吗?“编程需要大量的数学知识吗?”/英语是学习编程的先决条件吗?我觉得这个问题有点像个子不高能不能打篮球。虽然对于职业篮球运动员来说,身高是一个非常关键的因素,但是对于普通的篮球迷,甚至是篮球相关的从业者来说,这并不是一个必要条件。说到编程,数学和英语是很重要的,但是:在入门阶段,你根本不需要关心这些,跟着一个教程,模仿就可以了。对于大部分的日常开发,中学水平的数学和英语就已经可以应付了。与身高的先天条件不同,英语和数学是可以通过学习来提高的。哪里有不足,哪里就弥补。“以大多数人的低水平努力,不可能争夺人才。”如果能长期坚持背单词和看书,足以提升自己。老是说XX不好,恐怕更多的是给自己找借口。但是,有一种能力,在学习编程的初期,确实需要给予足够的重视。但是很多教程并没有特别强调这一点,相关书籍往往假设你已经掌握了,以至于很多学习者没有意识到自己在这方面的薄弱环节,给以后的学习留下了隐患。我想说的是:从某种角度来看,逻辑可以部分地算作数学,高中数学课本上也有相关内容。这部分内容也恰好是我们学习编程最需要了解的基础。1、布尔代数由真(1)和假(0)两种状态,以及与(and)、或(or)、非(not)三种基本运算组成。布尔代数看似简单,却对应着数字电路中的通断状态,是计算机的逻辑基础。你可能听说过,计算机上的一切在内部都是由0和1来表示的。换句话说,计算机的所有行为本质上都是由布尔逻辑实现的。在编程语言中,布尔类型(bool)也是极其重要的。没有它,我们就无法进行条件判断,也就无法控制程序的执行。Python的if和while语句必须依赖boolean类型作为判断条件。因此,即使您不想深入研究逻辑,布尔代数的基本规则也是必须了解的。简单来说,就是下面的“真值表”:这些基本规则会结合更复杂的逻辑,比如:not(porq)等价于(notp)and(notq)(例如:"不是管理员oramember”等同于“不是管理员也不是会员”)实际开发中面临的逻辑判断是复杂多样的,但归根结底都会转化为最基本的规则。思考题一:如何用逻辑语言表达“通过活动注册的新用户或充值100元以上的老用户,内部人员除外”命题。比如“1+1=2”是原子命题,“所有的猫都是白的”是原子命题(假命题),“有外星人”也是原子命题(虽然不能判断真假或false,但结果必须是唯一的)。命题和逻辑运算的结合可以产生更复杂的逻辑。比如充分必要条件。如果命题p必然导致命题q,则p是q的充分条件,q是p的必要条件,记为p→q。比如“山无棱,天地合一,敢与君断”这句诗,用逻辑语言怎么表达呢?(山无边天地同)→从来没有和你在一起?想一想,有什么不对吗?按照语义,“山无边”、“天地合一”是“与你合一”的必要条件。但不一定。所以正确的逻辑是:巨绝与钧→(山无棱天地合)又如三段论。①不掌握基本的逻辑知识是学不好编程的。②Python是一种编程语言。因此,要学好Python,需要掌握基本的逻辑知识。一个大前提加上一个小前提可以得出一个结论。这是最常用的论证形式。看似简单,但总有人对此感到困惑。举个错误的例子:①有钱人用iPhoneXSMax②我用iPhoneXSMax,所以,我有钱。这些逻辑关系和推导过程与程序中的逻辑结构密切相关。如果你不能对此保持清醒的头脑,你写出的代码很可能与你期望的不一样,或者在某些特殊情况下会出现bug。思考题2:一个每天签到领奖励的小功能,每天11-13点和18-20点开放。普通用户每天可领取一次,会员用户每个时间段可领取一次。如何实现这个程序的逻辑结构?(我经常用这个做面试题,很多人短时间内不能给出正确答案)3.归纳有时候,我们不能通过逻辑推导出必然的结论,但是我们还是可以利用一系列的经验和以前的经验来做一个结论,找出基本遵循的规律。例如:①TeamX一直为所有成员配备戴尔笔记本电脑作为工作电脑;②C老师最近刚加入X队。通过这两点,我们可以推断出C老师使用戴尔笔记本电脑的可能性很大。但是你要清楚,归纳的结论不一定正确。如果遇到逻辑推理不可避免的反例,即使不符合常识,归纳的结论也会被推翻。例如,除了以上两点,我们还知道:③女士。C已与苹果签约代言④苹果代言人不得使用其他品牌的手机和笔记本。那么,上述“C女士使用的是戴尔笔记本电脑”的结论是不成立的。虽然归纳不是必需的,但在解决问题时仍然很重要。尤其是当你在开发中遇到错误,需要调试(debugging)的时候,并不是所有的错误都可以直接从错误信息中看出(比如Python开发中经常出现的乱码问题),这个时候,如果你经验丰富而且归纳能力强,效率会大大提高。这也是高级程序员和初级程序员差距的重要体现。现在网上的编程教程很多,但是大家都喜欢写如何编写一个爬虫程序来抓取图片和数据,却很少有文章愿意讲背后的思考过程。读者写完就不想看了,因为看不到任何效果,调几个函数就出结果,真是爽啊。以至于你发现你可以按照例子写同样的代码,但是一旦报错或者没有预期的结果,你就彻底瞎了。只能从东到西改参数,反复运行,希望能出现某种奇迹。.以后换个新问题,还是不知道从何下手。这是因为不了解程序背后的逻辑。我经常在问答群里说:遇到程序错误不要乱猜!需要做出假设,然后通过输出来验证假设,最终定位问题。文字只是介绍,你不可能理解其中的逻辑。但是上面说到的逻辑基础,在任何一《 离散数学 》或《 逻辑学 》一本书中都可以找到,只有开头的一小部分很有用。找一个看一看。真的很想学好编程,不要只看网上的教程,这些都是别人嚼着喂到嘴里的。如果你只能接受这种二次加工的知识而不去自己咀嚼,那你的学习牙就永远不会掉。了解逻辑和逻辑思考并不完全等同。有的人没学过逻辑,一言一行也同样合乎逻辑,而有的人学过逻辑,只是把它当作数学公式背下来。整天讲“逻辑思维”,不代表他们做事讲逻辑。在网上,经常可以看到一些逻辑谬误。下面是几个常见的例子:概括:你说你遇到了X产品的Y问题。有人反驳说我也用X产品,我身边的人也用X产品,没问题,那你肯定是故意黑的。因果关系:某地区的人喜欢喝生奶,该地区人的平均寿命高于周边地区,喝生奶可以延年益寿。黑与白:某产品因窃听用户聊天被网络诟病,之前有发送垃圾广告的历史。你说窃听在技术上是不现实的,目前没有明确的证据。那么有人认为,不一起喷就是水手、洗地工、舔狗的人。...类似的不合逻辑充斥着互联网。这两天网上很多人说“不买华为就是不爱国”。任正非明确回应:“不要煽动民族情绪,不能简单地将买华为等同于爱国。”其实不用任总说话。这句话本身在逻辑上是错误的。不买华为→不爱国,这个命题在逻辑上应该等同于它的逆命题:爱国→买华为,也就是说,爱国的人一定会买华为。拿着小米、OPPO、VIVO的爱国同胞,你是多么的丢人啊。显然,爱不爱国,不是网友们定义的。只要有一个爱国但没有买华为的人,这句话在逻辑上是无效的。我们身边有很多偏见和歧视的观念,也有很多喜欢争辩的“桶精”。归根结底,你会发现这些人都有一个共同的特点:逻辑混乱。例如,所有的人都有性别歧视和地域歧视,因为他们是根据一些特殊情况对整体进行推断。反之,如果有些人没有被公司录用,将其歧视归咎于性别或籍贯,则是另一种错误的逻辑。而窃取概念、颠倒因果、揣测动机,都是恶霸喜欢滥用的逻辑谬误。为什么有些人在谈论观点时总是不合逻辑?假设一个人要么理解逻辑,要么不理解。如果他懂逻辑但不讲逻辑,说明他有一定的目的,故意这样做;但是如果他不懂逻辑,他还要和别人争论,这说明他缺乏认知能力,不知道。所以,那些不讲逻辑却还硬着头皮的人要么是__要么是__。(欢迎查座)不仅是编程,如果我们多关注逻辑,这个世界的矛盾就会少很多。即使没有经过专门的学习和训练,只要保持谦虚,学会倾听,包容地对待不同的声音,多站在对方的角度思考问题,从不同的角度看问题,你的逻辑就会更加完整。否则,当你发现网上满是不合逻辑的言论时,你也不想发表任何意见。----PS:留个作业:这是《知乎》和《王者荣耀》的百度指数。来知乎怎么样?【手动狗头】
