不是 IT 的人,更具体地说是程序员,没有解决问题的好方法。他们根本不像我们这些有良好逻辑的程序员那样思考。我被问过太多次了,我会推荐他们什么来改进他们的逻辑,这最终将有助于解决日常的专业问题。我想到的事情是很好的谜题,数学问题等。
话虽如此,你会推荐什么,为什么?书籍、网站、文章?
codinghorror.com上的相关文章:
所有的编程教师都发现他们的结果呈现出“双峰”。就好像有两个群体:可以[编程] 和不能[编程] 的群体,每个群体都有自己独立的钟形曲线。几乎所有关于编程教与学的研究都集中在教学上:改变语言、改变应用领域、使用 IDE 和研究动机。它都不起作用,双峰持续存在。
从上面的摘录中快速得出结论:推测是,如果一个人一开始就不会编程,那么无论你做什么都是行不通的。
要编写一个计算机程序,你必须接受这一点,接受无论你想让程序表达什么意思,机器都会盲目地遵循它无意义的规则,得出一些无意义的结论。在测试中,一致性组表现出对这个事实的预先接受:他们能够从规则的角度看待数学计算问题,并且可以在任何可能导致的地方遵循这些规则。另一方面,不一致的组 在它不存在的地方寻找意义。空白组知道自己在看无意义,拒绝处理。
我提出的半开玩笑的解决方案:将它们转变为无神论/虚无主义。这样一来,他们就不会试图在不存在的地方寻找意义 [原文如此],然后也许会与二进制达成协议。
大多数不像极客那样思考的人也不想像极客一样思考。
但是解决问题的一部分是将其分解成更小的部分,每个部分都是一个容易解决的问题。如果他们能够学习如何将问题分解为可管理的部分,那么他们至少会在解决类似极客的问题的某些部分方面做得很好。
至于逻辑,请提醒他们不矛盾定律:A != !A。一个事物不可能同时是真的和假的。我们花费了太多时间,甚至没有努力思考。
I had flunked first semester programming about 3 times,then I tried an online course employing "programmed" learning methods in desperation.
It helped me get over the "hump" by helping me understand programming (I believe) by providing the context and motivations for some of the more common (really simple to you folks) programming logic constructs.
Hours of practice "running" toy programs on paper for different problems afterwards finally ended my absolute confusion on this subject matter.
The link to the free, CS intro course employing this programmed approach that I had used (while ditching my regular lecturer) is :
http://chortle.ccsu.edu/CS151/cs151java.html
Still stumped though by exam level problems using stacks and queues and recursion (we used C in our courses but I think it didn't really matter in the final analysis).
In the end, I didn't bother with a CS major as I would have taken forever (probably 2 to 3 yrs more) given my skill level.
I should have paid attention to those puzzle books when I was little. I was more of a LEGO geek then :)
CS instructors (those who only talk and talk) need to be a little more patient, some of us folks aren't good verbal learners.
Parting thought, we all can't be be great writers, but that doesn't stop one from learning (or teaching one) how to write well. I think the same goes for computer programming in the information age.
我向大多数非程序员推荐数独和像Brain Age这样的游戏。
人们总是可以通过实践来提高他们解决问题的能力,但(imo)只是在一定程度上。有些人永远不会那样想。他们只是从出生就不是这样的。我不认为我们对我们与生俱来的潜力有很多控制权,只是我们用它做什么。
我发现,如果你一直在思考并且总是试图以一种整洁、有趣、优化、巨大、小型、几乎任何方式来解决谜题,即使是愚蠢的小孩,那么你就会让自己保持敏锐。还阅读其他解决方案有助于指出您不会想到的事情,从长远来看,这些事情会为您提供可以应用于类似甚至不同情况的方法的“工具箱”。
我怀疑这种接线是遗传的,它更有可能在童年时期在大脑上留下社会印记。有些孩子会做谜题,有些孩子不会,那些做很多谜题的孩子会准备得更好,但正如蜥蜴比尔提到的,我认为任何人都可以重新训练他们的大脑来解决抽象的谜题。
我不太擅长逻辑,我曾经记得我遇到了一个问题,我想从数组中删除一些东西,有人来告诉我“你为什么不创建一个新的但不包括你想要删除的项目? " . 我真的很惭愧,我的意思是,这个解决方案是完美的,毕竟,每种方法都需要迭代每个元素,为什么不简单地这样做并将这些复制到一个新数组中,但排除不需要的数组呢?
但回到这个问题,我推荐的一些事情是:
另一个真正提高我的逻辑能力的练习是设置一个简单的编程任务,然后尝试用 3-5 种不同的方式解决它。