最近公司有小伙伴向我反馈,说自己好像跟不上,感觉拖后腿了。希望我能够帮忙指点下迷津。他的问题是主管交给他的任务,他都能理解。但是就是自己动手写程序的时候,发现很多问题解决不了,很慢。
针对他这种情况,我指出了他的可能存在的一些问题。其中比较主要的一点,是思维能力还比较欠缺。当然思维能力是一个宽泛的概念,具体到某个行业,它的要求会不一样。但是,基本的规律还是有些通用的地方。
基础知识是思维能力的基础
不管如何,工作中涉及到的基本知识,是思维能力不可缺少的远程来。基础掌握的扎实程度,会影响到你的思考能力。这个基础知识包括基本的技术知识,一些开发经验。如果是项目,也包括对于项目需求的理解程度。
这些没有捷径,只能靠自己多学习。学习学习在学习。 不要幻想自己有天赋,不用学,不存在的。
养成多思考的习惯
所谓学而不思则罔,思而不学则殆。平时在工作中,需要养成多思考的习惯。而且要多多深入的思考,在工作、编程的过程中,对于需求、代码的简单架构、相关的技术做更多的思考。思考很多时候,是让人感觉没有成就的事情,相比之下写几行代码,更让人觉得有成效。但是,养成多思考的习惯,对于解决问题的能力有长足的推进作用。
另外在学习知识技能的时候,也需要多思考。不要知其然不知其所以然。最好的方式是多问几个为什么,并主动践行。慵懒的浅层面的学习没有任何价值。
复盘与反思
围棋大师们,都有复盘的习惯。就是在和人对弈的之后,不管输赢,都会把对弈的过程重新复演一遍,并思考总结哪些地方做的好,哪些地方做的不好,应该如何改进。复盘是一个很好的锻炼思维能力的方式。对于程序员来说,你可以把自己成功完成的代码进行复盘,思考哪些地方做的好哪些地方可以改进,都是一个很好的锻炼方式。而另外一种复盘,就是读别人代码,思考别人的思路。 特别重要的是,一个问题,如果你不知道如何解决;而你的主管或者其他同事解决了,这是你一个极好的锻炼思维的机会。你应该好好的复盘一下他人的解决方案,为什么用这种解决方案,技术支撑是啥。不仅仅要学习解决方案的本身,还要思考为什么自己没有思考到,而人家思考到了,自己需要如何改进自己的思考方式才能思考到,人家用了什么样的思考方式和思考方法,是我没有的,这些都值得好好总结下。
复盘的过程,其实就是反思的过程,没有反思就没有进步。
比如,有时候给小伙伴指导一些问题的时候,我会自己亲自上去在小伙伴的工位上写代码。在这个过程中,我就会把解决问题的思路,以及我是如何思考,如何调试、如何查找资料的思路告诉对方,并最终写出解决方案的代码。但是,最终我都会删除我自己写的代码。其实这个时候,我就是给小伙伴一个复盘的机会,好好思考下。
解决问题前先整理思路,分解问题
在遇到实际的问题的时候,可以先思考。而不是先动手。比如可以用思维导图(或者你喜欢的工具,文档也可以,用笔在纸上画也可以)先把思路整理出来。 庖丁解牛,把一个问题分解成很多个问题。这个过程,本身也会帮助你思考。同时,在你把思路整理清晰之后,做的东西也就比较清晰了。 比如我写代码的习惯,就是先把相关的类写好,然后把类里面的相关函数写好。然后就是开始一个一个的填写了。其实类和函数的整理,也是一种思路的整理。当你有了这种好的思路之后,你也方便和其他人交流和请教问题。这种情况下,你也很明白自己什么地方不懂,也方便别人了解你哪些地方不懂。
进行一些思维的练习
在网上会有一些思维训练的问题。可以自己多尝试练习。其中发散思维、逻辑思维和想象力是需要重点训练的。发散思维可以培养你的思维的开阔度,在遇到问题的时候,可以想到更多的方法。而逻辑思维可以增加你的判断力。
多读书
多读书刻意开阔自己的视野,并间接影响自己的思维能力。
写笔记
所谓 好记性不如烂笔头。我一直强调,要自己多总结,多写点笔记,记录下自己的一些训练,思考的东西。 这个记录的过程,也是整理你自己思路的过程。多写写,不会有坏处。
分享和讨论
同时,还可以把自己写的笔记分享出来,可以找人多讨论交流,碰撞思路。吸收更多人的想法和思维。
总结自己的方法体系
说说我学数学的经历。我小学,初中,高中,数学都是我的最好的一门学科。为什么特别好,就是自己对此很有兴趣。前面说到的一些方面:
- 比如深入思考,我会对于一个问题寻找多个解方法,并看这个问题是否可以引申,扩展,并寻找规律。 比如高中的时候我就发现了海伦公式的引申:圆内接四边形的求和公式和海伦公式及其类似。另外我还发现任意奇数阶幻方的快速填写规律。还有就是完全数的一个数学规律,具体啥规律我其实忘记了,当时的笔记本也丢了。(完全数是啥?完全数,又称完美数或完备数,是一些特殊的自然数:它所有的真因子(即除了自身以外的约数)的和,恰好等于它本身,比如6 = 3 + 2 + 1,28 = 14 + 7 + 4 + 2 + 1)。 另外,我自己把所有的三角形函数公式全部自己推导了一遍,而不是死记硬背。等等
当然我当时的性格属于比较封闭,这些东西并没有发表。 不然我想怎么着也可以上一个中学生数理化的杂志吧。 - 比如复盘,如果一道题我没有做出来,老师给了答案,我就一定要把这道题的解答想清楚。不只是想清楚这道题本身的解答方案,因为以我当时的数学能力,老师一提点,我基本就想清楚了解答方案。但是,我思考的是,为什么我没有想到,我欠缺了哪些东西,基础知识,还是思维角度等等。如果是思维角度的问题,我就会丰富自己的思维角度。
- 比如说总结归纳以及发散思维,其实在深入思考的部分,本身也是一个总结的过程,还涉及到就是把思考的东西笔记记录下来。另外也涉及到发散思维,因为没有发散,就没有延伸和规律的发现。
说这个,不是显得自己多厉害。其实主要是自己有兴趣去做这样的事情,自然就能够达到不错的效果。我不是有什么天赋,也算不上特别聪明。只是喜欢锻炼自己的思维能力。而在这个数学的学习过程中,我锻炼了自己的归纳,抽象,发散等等各方面的思维能力。
而且也形成了一套自己的方法体系:
比如数学归纳法,边界判断法,排除法,见微知著法,枚举法,差异法等等。
这些方法都是自己在不断学习 锤炼数学思维过程中总结出来的。可能现在想想那个时候学的数学,好像没有多少用。但是这种思维能力其实一直到现在对我都还有帮助。当然,当时数学学习锻炼的思维能力和总结的方法体系,对于我学习其他课程,也起到了积极作用。
解决问题的方法体系,其实是很有作用的。比如归纳法。我记得中学的时候一个同学有了一个诺基亚的手机,当时手机里面有一个游戏(现在知道:其实就是汉诺塔,但是当时是不知道的,具体细节不解释了,不知道的自己去搜索吧)。很多同学都玩不出来,我看了一下,几分钟完成了。其实并不是我多聪明,而正是运用了数学归纳法。另外一道题,我在大学刚毕业的时候,在武汉找工作,看到了一份医院杂志,全部都是 X科 和Y科的广告(你懂的)。最后一页,有一些智力题,其中一道题是这样的,我当时也是运用归纳法秒解出来。
有个岛上住着一群人,有一天来了个游客,定了一条奇怪的规矩:所有蓝眼睛的人都必须尽快离开这个岛。每晚8点会有一个航班离岛。每个人都看得见别人眼睛的颜色,但不知道自己的(别人也不可以告知)。此外,他们不知道岛上到底有多少人是蓝眼睛的,只知道至少有一个人的眼睛是蓝色的。所有蓝眼睛的人要花几天才能离开这个岛?假定所有人都很聪明,并且每个人都知道别人很聪明。
嘘,到公司面试过的人都知道,这是一道面试题。
所以,在工作过程中,如果你发现自己的思维能力不够,就需要运用各种方法来锤炼自己的思维,并总结自己的解决问题的方法体系,不断积累丰富自己解决问题的方法体系,当然有的人并没有刻意的总结,但是他们其实在不自觉间总结了,自己不知道而已。
最后还的说坚持。
提高思维能力这种事情,需要刻意练习,也是一个长期的过程。 但凡需要刻意练习的事情,一般都比较枯燥。就像跑步健身一样,谁都知道跑步有益身心健康,能坚持下来的没几个。由于是一个长期的过程,所以也并不能再短期获得好的成效,所以往往难坚持下去。
这其实和人脑喜欢及时回馈有关系。人脑喜欢让自己快乐的东西,不喜欢让自己痛苦的东西。而付出脑力和体力都不是人脑的喜欢。但是如果一定要付出,那么人脑喜欢及时回馈的东西。这其实是人的动物属性。就比如马戏团的猴子,完成动作后,就会马上有奖励。所以它总是愿意去做哪些动作。人在这方面其实不必动物高级多少。很多人终其一生也无法摆脱及时回馈的诱惑。
曾经看了一本书,书中讲了一个故事, 一些古巴比伦的一些人,哪怕最终会沦为奴隶,也要借债消费。其实就是一个短期诱惑战神长期痛苦的例子。
如何改变。方法就是改变自己的信仰,大脑认为什么是痛苦的,什么是快乐的,其实很大程度决定于你的信仰。
那么应该有什么样的信仰。 对于坚持这件事,虽然你暂时看不到成效,但是要相信老天在偷偷的给你积分。正所谓:
坚持的人,如春园之草,不见其长,但日有所增;懈怠之人,如磨刀之石,不见其损,日有所亏。
更多精彩内容,请关注公众号。

相关推荐
【猿编程电脑版2.2.2】是专为青少年设计的一款编程学习软件,它将编程教育与趣味性结合,旨在培养孩子们的逻辑思维能力和创新意识。这款软件以简洁明了的界面和易于理解的功能,降低了编程学习的门槛,使得初学者也...
这个训练集包含了各种类型的算法题目,旨在帮助学习者巩固基础知识,提高解决实际问题的能力。 一、基础算法 1. 数组操作:数组是算法处理数据的基本结构,题目可能涉及排序(冒泡、插入、选择、快速、归并等)、...
这些题目通常涉及逻辑推理、编程题、系统设计等,旨在评估候选人的逻辑思维能力和实际编程能力。例如,书中可能会提供一些经典的编程题,如LeetCode上的热门题目,以及如何高效解题的策略。 面试技巧也是本书的一大...
Scratch的学习不仅能够提升逻辑思维能力,还能激发创新精神和问题解决能力,因此在电子学会青少年编程等级考试中占据重要地位。 电子学会青少年编程等级考试是针对青少年编程技能的一种评估标准,旨在检验学生对...
数学建模是将实际问题抽象为数学模型,通过数学方法来解决实际问题的一种重要技能,对于提高学生的逻辑思维能力和解决实际问题的能力有着重要作用。2022年的真题则提供了具体的案例,让学生了解和练习如何进行数学...
“返家乡”小程序项目专门针对高校学生设计,与传统的社会实践项目相比,它通过微信小程序的形式,提供了一个全新的参与社会实践活动的方式。学生可以通过这个小程序进行活动报名、查阅活动信息、参与互动交流等,极...
而计算机程序设计竞赛(CSP)作为一种检验和提高学生编程能力的方式,吸引了无数计算机科学爱好者参与。CSP竞赛的历年真题,不仅是参赛者必备的练习资料,也是编程学习者的重要参考。这份资料集包含了历年来CSP竞赛...
3. 解决问题:针对餐饮酒店行业特点,解决实际管理问题,培养了学生的创新思维和问题解决能力。 4. 团队协作:可能涉及团队合作,锻炼沟通协调和项目管理能力。 四、源代码学习 源代码是学习和理解系统设计思想的...
通过整理和分享这些大公司的C语言编程笔试题,可以帮助更多的求职者有针对性地准备面试,提高通过面试的几率。同时,这也是一个交流和学习的过程,可以通过讨论和解答这些笔试题,不断提升自己的编程水平和解决问题...
在架构师面试过程中,数据结构与算法的重要性不言而喻,它们不仅是评价一个候选人技术能力的重要标准,也是考察其逻辑思维和问题解决能力的关键指标。本资料集合了60道面试中频繁出现的题目,涵盖了从基础到进阶的...
对于算法和编程能力的考查,阿里笔试题通常会设置各种编程难题,需要应聘者不仅掌握基本的编程知识,还要具备较强的逻辑思维和问题解决能力。在实际的面试过程中,应聘者可能会遇到动态规划、图算法、字符串处理、...
1. **在线学习平台**:如Coursera、Khan Academy和中国本土的猿辅导、作业帮等,它们提供了丰富的数学课程资源,让学生在家也能自主学习。 2. **数字化教材**:PDF格式的试卷正是数字化教材的一种形式,便于电子...
数学作为考试科目之一,对考生的逻辑思维能力和问题解决技巧有着较高的要求。 这套全真模拟试题集的亮点在于其真实反映了河北专接本数学一科目的考试难度和题型结构。每份模拟试题通常包括选择题、填空题和解答题等...
通过论文,学生可以了解如何进行需求分析、系统设计、技术选型,以及如何撰写科研文档,这对提升学术写作能力和逻辑思维能力非常有帮助。 4. **开题报告**:开题报告通常在项目开始阶段完成,包含项目的研究意义、...
“精选毕设项目-写笔记带后端”作为一款针对毕设项目的软件应用,显然是一项涵盖了前端和后端开发的综合实践。它不仅要求开发者具备前端界面设计的能力,还要求能够搭建和管理后端服务,这样的项目无疑是对学生综合...
通过作业参考答案,学生可以检验自己对电路分析和设计技巧的掌握程度,提高逻辑思维能力。 第三章内容可能涵盖时序逻辑电路,这是数字系统中的重要组成部分。时序电路包括寄存器、触发器等,它们能存储信息并根据...
这类竞赛不仅考验参赛者的算法和编程能力,同时也是对逻辑思维和问题解决能力的一次重要挑战。竞赛中的题目往往涉及数据结构、图论、搜索算法等计算机科学的核心知识。 本压缩包文件中包含的是与信息学奥赛相关的...
通过设计具有逻辑性的推理游戏,团队成员需在游戏过程中进行信息的收集、分析和推理,这不仅能够锻炼他们的逻辑思维能力,同时也在合作与竞争中加深团队间的默契。 综上所述,ChatGPT凭借其智能化的交互能力以及对...
通过这种方式,学习者不仅能加深对JavaScript语法的理解,还能培养编程习惯和逻辑思维能力。练习题的难度可能覆盖了从基础到中高级的不同层次,例如变量的声明和使用、条件判断、循环结构、函数定义、数组和对象的...