精华内容
下载资源
问答
  • C语言程序设计中计算思维思考

    千次阅读 2021-05-20 01:25:24
    针对计算思维的特点,提出了C语言程序设计课程教授过程中提高计算思维的方法,有益于学生借助计算思维进行编程思维训练,对所学知识进行融会贯通,同时提高了课程教学改革的效果。关键词:C语言程序设计 计算思维...

    王鑫 李万军

    dfb33cf07ffc041aa455bb43325f5026.png

    摘   要:计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。本文归纳了计算思维在C语言程序设计中的体现,可归纳为抽象计算思维、自动化计算思维和并行计算思维三种。针对计算思维的特点,提出了C语言程序设计课程教授过程中提高计算思维的方法,有益于学生借助计算思维进行编程思维训练,对所学知识进行融会贯通,同时提高了课程教学改革的效果。

    关键词:C语言程序设计  计算思维  教学改革

    中图分类号:TP311                                 文献标识码:A                        文章编号:1674-098X(2019)09(a)-0077-02

    全球范围内的趋势是,编程能力被视为未来社会的通用底层能力,是“新的素养”,甚至被称为“新读写能力”(The new literacy),人人必须具备。现在小学、中学生开始已经开展适合的编程课程。

    学编程的本质是掌握计算思维。这是一种面向未来的核心认知能力。2006年3月,时任美国卡内基·梅隆大学(CMU)计算机科学系主任、现任美国基金会(MSP)計算机和信息科学与工程部(CISE)主任的周以真(Jeannette M.Wing)教授,在美国计算机权威刊物《Communications of the ACM》上,首次提出了计算思维(Computational Thinking)的概念:“计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动[1]。”

    陈国良院士与李廉教授通过整合得出了3种较为典型的科学思维:也就是用观察和整理为特性的实证思维、用推演为特性的逻辑思维、再者就是抽象与自动化的计算思维。在这3种方式中,计算思维属于计算机类课程所主修的思维方式。

    C语言作为当今常用编程语言,在程序设计过程中注重培养逻辑,算法,数据,系统,解决问题,出错调试,以及新的计算机技术等能力。

    1  计算思维

    计算思维的体现可归纳为抽象计算思维、自动化计算思维和并行计算思维三种。

    1.1 抽象计算思维

    抽象计算思维是计算思维的关键,主要体现在实际需求到程序语言的设计过程。是自己对于问题的抽象能力的练习,即从抽象问题到实际进行编码或者设计程序解决问题的一个能力。面对一个问题,经过思考后,最后将解决这个问题的思路用计算机能理解的方式表达出来,其中“问题”、“思考”以及“表达”是编程最关键的地方。

    1.2 自动化计算思维

    C语言程序设计中三大基本结构,顺序、条件和循环三种结构支撑了所有程序。依托三个基本结构可以实现所有程序自动化设计。三个结构像盖房子的砖块,互相叠加累积完成整个程序。自动化程序设计过程中的逻辑训练,算法实现也是学生着重需要提高的部分。

    1.3 并行计算思维

    cpu间断性的并行执行多个任务,在并行的情况下效率才能保证。多个任务并行执行的优势在于:降低资源消耗,提高相应速度,提高任务的可管理性。学生往往习惯于顺序程序执行,当复杂编程要求多线程设计时,在理解、设计及代码实现上都存在很大困难。

    2  提高计算思维的方法

    2.1 驱动式方法提高计算思维能力

    学生表现出的上课听懂教材看懂,只是表面上比较肤浅的理解,老师在进行教学开始之初,有目的的引导学生学习编程。将C语言课程教授内容中与专业课程及后续课程关联很大的部分提前做好充分的课程准备,针对计算思维加强对学生的锻炼。在教学过程中围绕提前准备的教学问题,积极引导学生在C语言程序设计中合理应用计算思维[2]。

    2.2 应用性方法提高计算思维能力

    任何教学过程是教师与学生互动的过程,教学过程中任何环节都会影响教学质量[3]。教师可以根据本校本专业的特色,结合学生的接受能力选择合适的教材。教师在教授过程中使用与实际应用关联较大的例题,使用适合学生的教学方法,并且在课程进行过程中,根据接受程度,对教学方法进行动态改变,以实例展示的方式将计算思维融入其中,让学生当场学会应用计算思维。

    2.3 以项目为核心提高计算思维能力

    教师引导学生完成课程实践教学时,要以项目为中心,将课程教学中计算思维的提升作为教学的重要目标。项目的选择很重要,实际项目从难度及复杂度上一般不适合直接使用,教师需要对实际项目重新编排,组合,去繁,整合成适合学生的教学项目,但这个新项目又是很有实践性的,使学生更感兴趣[4]。使用计算思维设计C语言程序设计,课上及课下注重实际编程能力、应用能力和创新能力。借助算法的构建和程序流程图的使用,在应用层进行综合应用训练。通过“任务驱动”,使所学的知识融会贯通,锻炼学生分析和解决问题的能力,帮助学生提升工程实践能力[5]。

    3  教学实例

    例题1:计算1!+2!+3!+...+20!

    本例题有两种解决方法,可以用两层循环来完成,学习函数调用后,可以用函数递归方法解决,循环及递归思想是计算思维的重要一方面。教师应该善于启发引导学生从多角度、多维度思考问题的解决方法。

    例题2:设计一个学生成绩管理系统,学生信息的输入部分程序设计。

    随着学习的深入,保存学生输入信息的变量由普通多个浮点型数据到一维数组,到二维数组,最终设计成结构体数组,逐渐增加难度,但也为问题的解决提供了更合理、更丰富的方案。学生输入信息的变量改变在表1中。

    4  结语

    综上所述,针对归纳总结的计算思维的特点,提出了C语言程序设计课程教授过程中提高计算思维的方法。在C语言程序设计过程中教师引导、学生逐步深入借助计算思维进行编程思维训练,对本课程以及其他课程的学习是非常有益的。

    参考文献

    [1] Jeannette M Wing.Computational Thinking[J].Communications of the ACM,2006,49(3):33-35.

    [2] 范兴亮.C语言程序设计课程中的计算思维探析[J].无线互联科技,2017,4(8):67-68.

    [3] 赵桃林,杨民力,王育华.功能材料专业《化学电源》课程教学方法探讨[J].河北理科教学研究,2017(1):47-49.

    [4] 顾丽红,丁淑妍等.面向计算思维的蒙特卡罗C语言程序设计案例探究[J].计算机教育,2018(1):105-111.

    [5] 叶建龙.任务驱动法在C语言教学中的应用[J].廊坊师范学院学报:自然科学版,2010,10(3):132-136.

    展开全文
  • 计算思维是人类求解问题的一条途径,但决非要使人类像计算机那样地思考。计算机枯燥且沉闷,人类聪颖且富有想象力。是人类赋予计算机激情。配置了计算设备,我们就能用自己的智慧去解决那些在计算时代之前不敢尝试的...

    1、计算思维是人的,不是计算机的思维方式。

    计算思维是人类求解问题的一条途径,但决非要使人类像计算机那样地思考。计算机枯燥且沉闷,人类聪颖且富有想象力。是人类赋予计算机激情。配置了计算设备,我们就能用自己的智慧去解决那些在计算时代之前不敢尝试的问题,实现“只有想不到,没有做不到”的境界。

    2、计算思维是概念化,不是程序化。

    计算机科学不是计算机编程。像计算机科学家那样去思维意味着远不止能为计算机编程,还要求能够在抽象的多个层次上思维。

    3、计算思维是思想,不是人造物。

    不只是我们生产的软件硬件等人造物将以物理形式到处呈现并时时刻刻触及我们的生活,更重要的是还将有我们用以接近和求解问题、管理日常生活、与他人交流和互动的计算概念。

    而且,面向所有的人,所有地方。当计算思维真正融入人类活动的整体以致不再表现为一种显式之哲学的时候,它就将成为一种现实。

    4、计算思维是根本的,不是刻板的技能。

    根本技能是每一个人为了在现代社会中发挥职能所必须掌握的。刻板技能意味着机械的重复。具有讽刺意味的是,当计算机像人类一样思考之后,思维可就真的变成机械的了。

    c383f881c7779a199d89f7bd4d7cdf24.png

    扩展资料:

    优点内容:

    计算思维吸取了问题解决所采用的一般数学思维方法,现实世界中巨大复杂系统的设计与评估的一般工程思维方法,以及复杂性、智能、心理、人类行为的理解等的一般科学思维方法。

    1、优点

    计算思维建立在计算过程的能力和限制之上,由人由机器执行。计算方法和模型使我们敢于去处理那些原本无法由个人独立完成的问题求解和系统设计。

    2、内容

    计算思维中的抽象完全超越物理的时空观,并完全用符号来表示,其中,数字抽象只是一类特例。

    与数学和物理科学相比,计算思维中的抽象显得更为丰富,也更为复杂。数学抽象的最大特点是抛开现实事物的物理、化学和生物学等特性,而仅保留其量的关系和空间的形式,而计算思维中的抽象却不仅仅如此。

    参考资料来源:百度百科-计算思维

    展开全文
  • 二、从计算机硬件的角度证明计算机不能象人的大脑那样...因为,“主体性”的产生是一种极其复杂的自组织过程。要制造出一种具有高度自组织过程的计算机,似乎也是不可能的。1、人类难以制造出象大脑神经细胞那样复杂...

    二、从计算机硬件的角度证明计算机不能象人的大脑那样工作

    既然我们不能让没有主体的计算机使用具有思想的语言,那么,我们是否可以在不久的将来制造出某种具有主体的计算机,使其能够使用某种具有思想的语言,象我们的大脑那样工作呢?从逻辑上来说,这似乎也是不可能的。因为,“主体性”的产生是一种极其复杂的自组织过程。要制造出一种具有高度自组织过程的计算机,似乎也是不可能的。

    1、人类难以制造出象大脑神经细胞那样复杂的计算机“元件”

    如果我们要制造出一台具有高度“自组织“过程的计算机,首先就必须使这种计算机的“元件”具有某种“独立性”。目前人类的制造技术虽然达到了极其高级的水平,但是,要制造出象大脑神经细胞那样的“元件”还是非常困难的公务员之家。尽管目前的神经网络计算机或生物技术似乎有了一些“起色”,但与人类神经细胞相比,差距还是十分大的。人类大脑的神经细胞是生命进化几十万年甚至几百万年的产物。到目前为止,人类还只是了解到其运行机制的极其有限的内容。

    2、人类没有能力将类似于大脑神经细胞的“元件”装配在一起

    即使人类能够制造出象大脑神经细胞那样复杂的元件,人类有没有技术将其“装配”得象大脑神经网络那样工作。目前的计算机能够这样快速地工作,其根本原因是因为计算机的集成电路中的各种各样的“开关”的连结没有人的大脑神经细胞之间通过神经末梢连结那样复杂。如果计算机技术发展的程度达到了能够把现在的一个个的“开关”变成象人的大脑中的一个个的“神经细胞”一样的机制,人类也可无法将这些神经细胞连结在一起有效地工作。因为,这些“神经细胞”有了某种“独立性”,其“行为”也就具有了相当程度的“任意性”,计算机科学家也就再也无法让它们象现在的集成电路中的“开关”那样按“规律”活动了。人类神经细胞连结成神经网络,是人类生命进化几十万年甚至几百万年的结果。在这个进化过程之中,神经细胞通过其神经末梢的电子跃迁、离子藕合的过程经过了长期的环境适应和内部调适。这个过程是极其复杂的,并且仍然还在进化。就目前人类的知识和技术,以及人类智力的有限性,要想人工制造出象人类大脑神经网络这样的“造化之物”是极其困难的。

    3、计算机科学家没有办法将上述“装配”方法说出来

    即使个别的计算机科学家碰巧想出了某种能够将这些复杂的元件连结在一起的方法,这个计算机科学家也难以将这种方法“说”出来。现代科学技术能够产生巨大的作用,关键的愿意是因为科学家具有“科学”这种共同语言。科学家能够通过学习和使用这种共同的语言进行合作。某个计算机科学家或许能够通过自己的反复操作、或偶然的机遇将某些类似于大脑神经细胞的“元件”连结在一起,使其正常“工作”。但是,如果这个科学不能使用共同语言将这种方法表述出来,其他的科学家也就难以学习这种方法。这就如同中国古代的“小人”们创造出无数世界领先的技术,但由于中国古代的文字语言只供“君子”论“道”而不论“器”,中国古代也就没有一种有效的语言将这些技术转化为人类可能普遍享用的科学。

    4、计算机科学家没有能够进行共同操作的形式化语言

    即使个别的计算机科学家“发明”了能够说出这种方法的“私人语言”,计算机科学家也难以用其作为交流的工具。科学技术的发展依赖于共同的语言,但是,这种语言还必须高度形式化的语言。如果某个科学家能够用自己的“私人语言”表述这个过程,其他的科学家或许能在一定的程度上理解某个科学家

    所说的,但是,这种语言并没有高度的形式化,科学家难以用这种语言进行某些可重复性的操作,科学家也同样难以使用这种方法。现代计算机的研究和制造是在无数的计算机专家分工合作的基础上进行的。这种分工合作的基础,从硬件的角度来说,就是计算机专家能够合作标准的计算机机器语言---实际上就是数字电子线路语言。从软件的角度来说,就是可以共同使用的高级程序语言。如果没有这两种高度形式化的语言,计算机的研究和制造、计算机的推广和使用都是不可能的。

    通过上面的说明,我们可以知道:第一,人类难以制造出象大脑神经细胞那样复杂的计算机“元件”;第二,即使制造出这样复杂的元件,人类难以将其有效地“装配”在一起,让它们正常的“工作”;第三,即使某些科学家能够在经验上想出某些办法让将这些元件装配在一起“正常”的工作,但这些科学家无法将这种方法“说”出来,第四,即使这些科学家用“私人语言”将这种方法“说”了出来,但由于这种语言不可能形式化,其他的科学家也难以理解。由于这四个方面的原因,要从计算机硬件的方面来制造出“象人的大脑那样思维”的计算机似乎也是不可能的。

    三、计算机不能象人的大脑那样工作

    通过上面从计算机语言和计算机硬件两个角度的论证,我们知道,要使计算机能够象人类大脑那样思维,必须具备如下条件。

    第一,必须制造出具有“主体”的计算机。

    第二,必须创造出具有“思想”的语言。

    第三,必须使这种具有“主体”的计算机接受这种有“思想”的语言。

    要满足第一个条件,就必须制造出具有一定“独立性”和“任意性”的计算机“元件”。人类要制造出这种具有一定“独立性”和“任意性”的“元件”的可能性是非常之小的。因为人类大脑神经细胞是生命进化的产物,其复杂程度是现在的集成电路仅仅用“开关”来控制电子流动难以比拟的,也是人类难以在实验室内控制生产的。并且,即使制造出具有某种“独立性”和“任意性”的元件,人类就不可能让它们按人类的“意志”装配在一起。因为使用语言包括人类自然语言和科学语言说明复杂系统具有如下困境:仅仅描述单个“元件”的行为,并不能说明整体的行为;描述整体的行为,就只能是极为近似的。用这种极其近似的语言描述这种新的类似于神经网络的整体状况还勉强,要用这种语言制造计算机,则几乎是不可能的。这样,人类制造出某种具有“主体”的计算机的希望是非常眇茫的。制造计算机是一个复杂的合作过程,在这个合作的过程,没有形式化的共同语言,合作就无法进行。

    前面我们已经说明,在现有的计算机技术条件下,仅仅使用软件的方法即依靠计算机语言的发展是不可能计算机象人类大脑那样思维的。这样,即使我们的计算机技术发展到了能够满足上述第一个条件的水平,我们也难以为这些计算机“创造”出一种有思想的语言。

    即使我们同时满足了制造出了一部有主体的计算机,创造出了一种有思想的语言,我们也不可能将作为硬件的计算机和作为软件的语言有效地结合在一起。如果这些机器具有了“主体性”,他们自己就会“创造”自己的语言,它们怎么还会接受人类为它安排的语言呢?

    这样,我们可以说,就人类的智力和技术水平,要使计算机能够象人类大脑那样工作虽然难以说是不可能的,但确实是极其困难的。

    四、计算机思维的神话产生的逻辑原因

    很多计算机科学家之所以相信计算机能够思维,是因为他们犯了如下的逻辑错误:一是把思维等同于语言思维,二是把计算机语言等同于人类自然语言。由于这两个等同,计算机科学家自然就会产生第三个等同:把计算机信息处理的过程等同于大脑思维过程。

    我们要对某些超越了人类认知能力的事物作出解释,一般采用的是用某种神秘的“实在”来解释它。由于我们对自然和社会运转的规律所知甚少,我们就用“上帝”、“天道”之类的东西解释自然和社会所发生的一切。由于我们对我们的“精神”所知甚少,我们用“灵魂”解释我们的“精神”。由于我们对我们的历史还所知甚少,我们就用“文明”或“文化”来解释我们的历史。虽然计算机是由人按照一定的自然规律制造出来的,但由于其内部工作过程的复杂性和层次性,普通人要了解计算机的工作原理也是非常困难的。计算机科学家可以用专业术语将计算机的工作原理和工作过程解释得清清楚楚,但是,这些解释对普通人来说,无异于“天书”。这样,科学家和专业技术人员就必须用“拟人化”的方法和语言解释计算机的工作过程。然而,面对一个由人按照一定的规律制造出来的计算机,计算机科学家不可能再用“灵魂”、“精灵”之类的话语来予以说明:计算机科学家不可能说计算机之所以工作是因为其内部有一个“小精灵”。在这种情况下,选用什么样的话语来解释计算机的工作过程呢?“思维”就是一个最恰当的术语。如果我们说计算机能够思维,任何人都会“理解”这个工作过程,尽管普通人几乎没有对“思维”做过什么研究,但任何人都时时刻刻在思维。使用“思维”这个术语解释计算机的工作过程,科学家和普通人之间就有了“共同语言”。从使用“思维”这个术语解释计算机的工作过程开始,计算机能够思维的神话也就开始产生了。或者说,当计算机科学家开始用“思维”这个术语解释计算机的工作过程,相当一部分计算机科学家也就开始相信计算机能够思维,计算机科学家也就开始制造“计算机能够思维”的神话。

    对于计算机科学家,什么是思维呢?计算机科学家一想到思维,自然就会想到语言。无论谁都知道,我们的有意识的思维是利用语言进行的。一想到语言,马上就把计算机程序语言与人类自然语言等同起来。这样,如下的结论就会自然产生:思维就是语言思维,计算机使用语言处理信息,人使用语言进行思维,计算机也就能够象人一样思维。

    很多计算机科学家之所以产生相信“计算机能够思维”,其重要原因之一是通过计算机工作过程和大脑工作过程的“形式上的”对比,发现了某种共同的东西。这种共同的东西就是所谓的“信息处理”。计算机能够“接受”信息,“储存”信息、处理信息、输出信息。而我们人则同样可以接受信息---听、看、阅读等,储存信息---记忆,处理信息---思考,输出信息---说、选择性地看、作出反应、阅读等。这也就是说,大脑工作过程与计算机工作过程有着某种形式上的可比性。本来,类比是人类把握外部世界的一种重要方式,形式化的类比更人类思维的一种最重要的方式。利用大脑工作与计算机工作的类比,得出某种形式上的一致性,并用这种一致性做为探索大脑奥秘的某种手段,这一切都无可非议。但是,仅仅因为计算机处理信息的方式和人对外部世界的感受和反应的方式具有某种形式上的可比性就把计算机信息处理的过程和大脑的思维过程看作相同的东西,首先就犯了一个逻辑上的重大错误。

    前面我们已经说明了人类自然语言与计算机语言的差别。我们说语言是思维的工具,并不是说语言就是思维。而我们之所以经常产生语言就是思维的错误结论,正是因为前面所说的语言的“三位一体”性---即我们的思维过程中的思维、方法、对象都融合在语言之中。然而,在计算机语言中,这种三位一体性得到了严格的分离。这样,计算机就不可能象人类大脑那样思维。同时,这也是计算机能够在“计算”方面比人类大脑迅速准确得多的原因。

    计算机能够思维的神话就依靠如下的逻辑得以产生:人能够思维,思维就是语言思维---任何能够使用语言的事物也就能够思维;计算机能够使用计算机语言,计算机也能够思维;计算机的工作过程就是信息处理的过程,大脑思维的过程也同样是信息处理的过程,计算机能够进行信息处理---计算机能够象人的大脑那样工作---计算机能够思维。

    我们的大脑还是一个十分神秘的东西。正是由于这种神秘,我们在进行科学研究的过程中,就必须时刻留心这种神秘性带来的不利作用。因为,稍不留神,我们就会得出荒谬的结论。把思维等同于语言、把计算机语言等同于人类自然语言、再把计算机信息处理等同于大脑思维,这就自然会得出计算机能够思维的结论。当我们把思维与语言区别开来,了解了计算机语言与人类自然语言的巨大差异,了解到计算机信息处理与大脑思维之间的巨大差异,我们就不会盲目信从“计算机能够思维”这个神话了。

    看过“计算机思维的分析”的人还看了:

    展开全文
  • 一 产品思维是什么?作为一线的开发人员,大家是不是都经历过和产品吵得不可开交的经历,甚至最后谁也无法说服谁,只能将问题上升。最后由老板出面解决,而大多数情况下老板还真能够以某种方法去解决...

    一  产品思维是什么?

    作为一线的开发人员,大家是不是都经历过和产品吵得不可开交的经历,甚至最后谁也无法说服谁,只能将问题上升。最后由老板出面解决,而大多数情况下老板还真能够以某种方法去解决,并且是一个双方都能接受的方案。这个时候可能大部分同学会认为是老板的权威,地位导致了这一结果。其实这很不准确(可能有一部分原因但绝对不是主要原因)其实更多的是各个老板们有比一线开发更强的产品力,能够听懂对方的诉求和抓住矛盾点并且给出解决方案。同时其中的表达方式更容易让彼此接受,才导致了最终你看到的老板出马,问题解决,好像自己的观点继续保持了,同时对方也留有余地。那这里这项重要的能力来源于什么呢?其实我认为更是一种产品思维的方式。

    从这里可以看到产品思维是通过科学方法论来持续获取最大化价值的思维方式、但这样说或许有点空洞、在基于日常产品技术的产品迭代、更想说产品思维以下这几种形式。

     

    二  为什么技术人员要具备产品思维?


    1  技术视角的局限性

    1. 觉得产品提的这个需求没有意义、对业务没有任何帮助、是一种鸡肋需求;

    2. 疑问产品的需求为什么每天改来改去?十分降低工作效率;

    3. 觉得产品的想法天马行空、不专业。完全没有考虑系统的可行性、基本无法落地实施;

    4. 觉得产品的方案一点都不周全、这么明显的逻辑漏洞都没有考虑到;

    5. .......

    在日常的工作当中、作为程序员的你是不是经常听过如上的吐槽、其实抛开有一小部分产品可能确实由于经验导致方案不成熟、但更多的有没有想过是由于产品思维和工程师思维的碰撞、导致了大家对同一件事情的认知不一样、从各自的角度出发的时候会觉得难以理解。首先我们来看一组产品思维和技术思维的对比。

    举个例子:之前盒马仓储产品评审过一个活鲜仓按箱出库的需求、大致意识呢就是针对活鲜类商品(例如鱼、螃蟹之类)直接以箱为单位进行出入库管理。但这里如果从工程师思维出发会出现几个不可避免的问题:

    1、箱入箱出这种场景在之前盒马的仓储系统中是不存在的、具不具备可实施性未知(HOW、技术至上);

    2、全链路要适配这种改造、改造点会非常大、难以实现(关注细节、解决方案);

    3、针对少货或者多货的场景、涉及上下游链路库存对账会非常麻烦、且极端场景下压根无法对齐(完美情节);

    针对这几个问题、研发侧进行了需求的打回、并协议产品业务对齐方案和风险后再次进行评审。但从产品的角度来看角度完全是另一种场景:

    1、箱入箱出以前不存在、不代表现在以及将来不会有。这是线下真实需要的业务场景、盒马的仓储需要扩展这类能力(WHY、用户价值);

    2、全链路改造工期大、可以梳理工期进行正常排期迭代(迭代思维);

    3、异常场景是小概率事件、不能因为小概率事件影响整个项目的超前推进。真正少量异常数据由业务自己兜底。(全局观、完成比完美重要);

    在这里由于产品和技术出发的角度不一样、则会带来天然的冲突、在情绪带入之后会很难理解对方的诉求和问题点在哪里、以及是否有综合2者之后相对靠谱的解决方案。在这里技术人员如果转换一下视角用产品思维去应对这个需求、这样去沟通是不是会更合适一些呢?

    1、认可箱入箱出是一种新的能力、让产品确定业务价值之后去扩展此类能力。也是对现有仓储系统库存能力的一种补充。

    2、告知产品具备心理预期、全链路改造方案成本会比较高、耗时会比较长。看是否能够接受、如果不能接受去尝试中间方案。

    3、技术侧如果投入大量成本去改造链路、则需要产品和业务认可此事的技术价值和投入产出比。

    当采用这种方式去沟通之后会明确告诉产品技术侧的问题点以及担忧的问题、这样当双方都认可此需求的价值和必要性之后再一起同步携手往前走。回到这个例子、其实就是程序员如果具备产品思维,你就能站在产品角度去思考问题、就容易和产品团队沟通协作培养更加融洽的工作关系、更有利于提升工作效率。

    2  技术人员提升产品力后的优势

    我们再来看如果技术具备产品思维之后除了更加便于沟通还能给技术人员带来哪些工作上的优势呢?

    抽象能力相信大家做技术的都或多或少有一些、平时写代码中也经常用到。但是根据已有的内容去抽象、和面向未来去抽象是2种完全不一样的能力。当技术人员具备产品视角之后,会更容易发现抽象的角度、也更容易表达出来抽象的概念。例如最近接到一个针对大仓加工智能秤称重的产品诉求(将加工过程中的原料重量通过系统记录下来)如果简单的抽象可能是称重任务可以称原料、称成品。如果和产品交流过后具备产品思维就会问这个称重主要解决什么问题?是在实操作业哪一步的动作?这个时候可能结合MES系统你想到的是工序、会进行一个工序任务的抽象。但是这里再考虑表达、是否要更加让大家明白工序是什么意识?这里就会自然的类比精修、贴膜、贴标等等实操环节是否都可以通过工序去表达、再结合他应用的场景这样一个面向未来的工序模型就可以逐步沉淀下来、也便于未来扩展(有兴趣的同学也可以去了解下仓内的精华装载单元是如何面对过去进行统一归纳沉淀、面向未来是如何抽象扩展的、这是一个十分经典的抽象例子)。

    修炼思考力,提升角度,更容易看问题本质。大家想一下具备产品思维去形象表达事物的根本属性的时候是不是大多从这三个角度出发:

    1、给出清晰的定义;

    2、做出准确的简单类比;

    3、打出精妙的比方;

    你在工作中一直具备如此的习惯、在你遇见困难的时候、会把思考攥在自己手中、而不是交给别人。这是一件当下比较累、但对未来很爽的事情、保持一定的好奇心和想象力去思考、会让自己收获更多的成长。电影《教父》里有一句经典的台词:“花半秒钟就看透事物本质的人,和花一辈子都看不清事物本质的人,注定是截然不同的命运”。

    更好的全局视角、这里针对技术人员更好的全局视角意味着什么呢?

    1、首先当然是提高系统熟练度、不仅仅是针对当前你所负责的模块、更是你所负责系统的上下游链路也具备相当的了解。这样会给你更多的机会去承担更大的职责。

    2、明确的知道做这个需求、这个项目的价值、知道为什么去做、而不是简单的执行机器。会去从需求合理性、投入产出比等问题上去思考需求的必要性。

    3、更容易知道如何去体现价值、知道这个项目的重点是什么?知道如何去沉淀数据、从系统的角度来阐述和达到目标。

    4、更好的通过技术创造业务增值、技术同学如果具备产品力会更容易发现产品当中的优化点、并创造不小的业务价值。举个例子:之前优选网格仓针对中心仓发货容器进行二次分拨到站点、技术侧发现这里可以针对容器内货品进行分配关系的打乱(总体分配关系不变)从而减少分拨次数。仅这一个技术小点、就减少了网格仓现场12%的分拨次数。再举个例子:之前B2C大仓边拣边播、是拣完一个SKU进入一次巷道,如果巷道中有多个SKU需要折返多次;技术侧具备产品思考之后通过细微的改动给了更好的产品体验、对总拣和分拨这俩个动作进行抽象归类。统一进行总拣,再进行分拨的方式,避免总拣分拨交叉使用的方式下拣货人员往返多次的问题,提升现场14%的拣货人效。

    三  如何提升产品力

    1  思维的转变

    在不同的思考阶段、我们看待问题的角度一定要有进步。能够针对具体表现层的变化、去抽象底层的概念和能力来以不变应万变(举个例子、仓储系统复杂演进的过程更多的就是围绕产能 & 人效 & 成本 & 数字化的不断演进)要不断锻炼自己的思维习惯、这样才能去提升思考力的边界。最近笔者在看一本关于产品法的书并做了部分笔记、这里面关于思维方式我认为以下几点是值得我们技术人员去注意并且不断学习和提升的

    • 本质思维:第一性原理从头算起,只采用最基本的事实作为依据,然后再层层推导,得出结论。抛开别人怎么做,过去怎么做得到不一样的视角(拒绝被同类产品的设计影响和压根不懂同类产品的设计是俩回事 )连环追问法是一种手段,理清过往思路和关键环节,帮助快速判断并且产生新的idea。

    • 相对思维:日光与阴影,让东西明亮不一定是加强它的亮度,可以通过调低周边的环境。这是一种逆向思维。成功与失败,优势与劣势都是暂时,相对的概念。看问题很重要的俩个角度:关系和时间

    • 抽象思维:白痴与上帝,高级抽象视角看问题和用户本能层级看问题会有冲突。如果看不同局部可以切换是比较重要的能力。具体与抽象像飞机腾空时一个个点被不断缩小的过程。多考虑新元素(能力)而不是新功能,元素可以搭建功能。

    • 系统思维:反馈的地位。反馈系统模型是基础的抽象模型,本质上都是在设计反馈。思维误区所有极端和异常的路径是小概率现象。

    • 演化思维:自下而上的设计。极简是演化的基础,好的框架重点突出并且能够收放自如。

    2  现实中的一小步

    看到这里大家可能会问、上面说了这么多软思维、方法论相关的观点。如果从落地的角度看、在平时的工作中怎么去提升呢?怎么去潜移默化的改变自己的思维呢?

    • 普适的套路:多看书籍、培养自己的知识储备;多做总结、将自己所学到的尽量系统化的表达出来、这也是进一步巩固自己的知识成果;多做分享、如果一个知识点你不光能够自己懂、还能够让大家都听懂你讲了什么你的思考是什么这样会进一步提升你的结构化思考 & 表达能力;

    • 保持好奇心:这一点我更想表达在平时的工作中不要局限于自己的边界、不要仅仅满足于分配给你的工作、要多探寻分配你工作之外的部分扩大自己的领域能力。基础的要求:列如一个项目你负责其中的某一个模块之后、你是否能cover住你上下游的问题、线上出现问题时你是否能及时定位到原因并且协助解决;另外就是保持对周边领域的探寻,对比下周边同学的工作内容和思考看看自己还欠缺哪部分能力、能做哪些针对性的提高。例如工作时可能某个同学负责仓储的拣货实操部分:

    • 那是否有了解过拣货单生成部分的主流程?

    • 是否了解打包部分的设计?

    • 是否知道装笼发运的几种主要方式和约束?

    • 又是否知道仓储系统之外单据的交互节点和主要数据?

    再放大一些到除开工作之外、是否平时会关心他人的生活经验?是否对于大到国际新闻小到周边内网八卦一概充耳不闻?这样会让自己处于信息的闭塞状态、久而久之会导致思维的僵化。所以一定要保持自己的好奇心、保证自己知识储备的宽度、让自己的思维处于活跃的状态。

    • 多去思考产品需求的本质、至少先做到在PRD评审上多换位思考、多理解产品设计背后的原因。举个例子如果有个用户减肥的需求你会联想到什么?普通人可能想到的就是减肥、但产品思维下的思考应该想到的是、可能是他想要更优美的外貌?可能他需要寻找伴侣?可能想要提升社交地位?

    • 多保持联想、锻炼想象力、平时接到产品的需求之后是否能够联想到系统的现有能力、是否能够结合现有系统来达到需求的最优解?在这里举个仓储系统拣货的例子:之前盒马加工中心有过一个按商品拣货的需求、大意是当拣货员看到库位的商品之后可以自己主动选择商品去拣货、按商品拣货这个需求从产品侧来说是一个比较简单的诉求。这里一般会怎样联想呢?

    a. 第一反应接到这个需求一般是直接根据商品选择拣货单返回给用户、再让用户做选择即可(同时需要更改拣货单相关索引);

    b. 联想到全局、如果深层次想一下结合B2C仓内拣货任务作业的实时调度、就可以想到这里用任务调度实现是否更符合仓内实操全局调度的规划?

    c. 再联想到现有系统的瓶颈和优化点、现在的调度根据分区&任务能力选择队列拉取任务、本质是一种“实时排序”、只能够基于配置优先拉取。其实我们也应该扩宽任务调度的"选择能力"、例如这次的按商品索取、其实是一种队列内部的选择能力。在获取任务时除了L1级别的选择不同队列的能力、我们在队列内部应该要具有L2级别的选择能力、来丰富我们的任务调度中心在实操侧的另一种调度方式(和排序平级的能力);

    d. 最后结合过去和可能的未来、除了按商品拣货、之前的DPS拣货 & 标签拣货走任务队列时通过工具去拉取完临时过滤的方式不应该是一种长期的方式。包括后续可能存在的按位置拣货(分区内部的巷道库位、根据人力位置实时获取最优拣货单)、按销售订单拣货(哪个订单要超时了紧急提高优先级)等等可能存在的场景、本质都是根据实时的实操动作去具备L2维度的选择能力、是否可以借本次需求来搭建基础实现能力;

    e. 最终给出一些抽象归纳的建议、拣货实操时的变动、具备人的因素、去动态选择。生成任务的时候照正常生产、实操的时候具备动态能力(插入的选择能力根据人的因素去抉择)如果不配置那就默认使用原有队列的排序能力。

    当然这里只是一个联想的例子、可能最终决策还要考虑投入产出比等各方面的因素。保持想象力无论是对程序员还是产品经理都是一个提升思考深度比较不错的方式。我们要做的就是培养习惯、让自己的思考伴随着自己的想象力去得到成长。

    技术交流群

    最近有很多人问,有没有读者交流群,想知道怎么加入。

    最近我创建了一些群,大家可以加入。交流群都是免费的,只需要大家加入之后不要随便发广告,多多交流技术就好了。

    目前创建了多个交流群,全国交流群、北上广杭深等各地区交流群、面试交流群、资源共享群等。

    有兴趣入群的同学,可长按扫描下方二维码,一定要备注:全国 Or 城市 Or 面试 Or 资源,根据格式备注,可更快被通过且邀请进群。

    ▲长按扫描

    
    往期推荐
    

    10个人有9个答错,另外1个只对一半:数据库的锁,到底锁的是什么?


    终于把公司的底裤扒了!


    李国庆:建议被降级降薪员工主动辞职……网友炸了!

    如果你喜欢本文,

    请长按二维码,关注 Hollis.

    转发至朋友圈,是对我最大的支持。

    点个 在看 

    喜欢是一种感觉

    在看是一种支持

    ↘↘↘

    展开全文
  • 类比,就是思考之源和思维之火。 我们的大脑是如何工作的? 所谓的类比到底是什么? 我们是怎么在截然不同的情景间建立起联系的? 类比在学习的过程中发挥着怎样的作用? 在爱因斯坦发现相对论的过程中,类比又扮演着...
  • 计算机专业本科生创新思维培养及其哲学思考创新是社会进步的重要动力,创新思维是人类思维的本质特征之一。在创新活动过程中,创新思维起着先导性作用,创新思维在知识转化为智力的过程中发挥着巨大的作用。从某种意义...
  • No.1破坏性思维解释所谓破坏性思维,是指逢事"往坏处想"的思维方式和习惯。具体而言,就是对周围的事物持排斥、抵制、否定的态度和心态,让人看到的是眼前一团漆黑,对事物的前途难抱希望。No.2软件测试中破坏性测试...
  • 《本质思考 · 从底层思维构建解决问题的支点》这本书由日本庆应义塾大学研究生院教授、全球咨询巨头埃森哲原董事总经理——米泽创一所著,它聚焦人人都应规避的9大思考陷阱,教你更快、更深、更持久地解决问题。...
  • 《六顶思考帽》书中的精髓:通过在同一时间只使用一顶思考帽的方法,可以解决思维混乱等问题,从而提升思考效率。...这样就能将思维过程梳理清晰,并保持每个参与者思考的一致性。这大大提升了会议讨论和个
  • 1程序设计是描述计算的过程对于英语和数学来说,有一些里程碑式的课程帮助学生将学习的重点从有用的技能培养转化到这些学科的学术研究上,在英语中,文学分析的课程为学生批判性地阅读和理论上的认知铺平道路,在...
  • 对计算思维能力养成与大学计算机基础课程改革的思考期次:第1913期计算思维,这个颇具时代特征的名词,正在被越来越多的人们所熟悉与关注。可以说,它已经成为当代大学生一种必备的能力。今秋开学初,校教学督导委员...
  • 什么是计算思维

    千次阅读 2021-06-18 08:00:59
    原标题:什么是计算思维?计算思维(Computational Thinking)不是数学计算的能力,也不是运用计算机的能力。2006年美国卡内基梅隆大学的周以真教授在ACM会刊首次提出,计算思维(Computational Thinking)是运用计算机...
  • 书中分享的30种高品质思维模型,可以帮助我们构建一个多元思考的复式框架,让我们也能像查理·芒格一样聪明地思考,科学地决策。 附上MindMaster导图社区创作者@随心学社 整理的全书思维导图▼ 《思维模型:建立高...
  • 数据说·思维季不要担心自己比别人走得慢,不停下脚步,最终能抵达终点。前言我们上篇内容,梳理和分享数据分析之战略层面的思维—PEST分析思维,从各个方面比较好的把握外部宏观环境的现状及变化的...
  • 在现实生活中,编程已经渗透于我们生活的方方面面,很多时候我们在解决问题的过程中都会不知不觉用到编程思维。编程程思维也可以称为“计算思维”,是一种将复杂的原理通过简单的按键操作来实现同样的功能,解决同样...
  • 走进计算思维

    千次阅读 2021-07-16 07:37:55
    本文从周以真教授提出的计算思维概念为起点,从分析思维模式角度出发,探讨计算思维的内涵与外延,并分析其两个基本特质,即抽象和自动化,以促进人们更加全面的了解计算思维,接受计算思维。关键词:思维模式 计算...
  • 产品思维思考

    2021-05-23 22:10:26
    关于产品思维的论述,我会从以下几个方面总结归纳下,如有不足,请各位指正!感谢! 什么是产品思维。 具体的怎么应用产品思维解决问题。 怎么锻炼产品思维。 1、 什么是产品思维呢。 思维是一个很难用语言描述...
  • 计算思维的定义和特征是什么

    千次阅读 2021-06-27 00:38:28
    什么是计算思维?周以真于2006年3月首次提出的计算思维有着怎样的定义?下面是学习啦小编整理的计算思维的定义相关资料,一起来看看吧!计算思维的定义2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真...
  • 在你思考过程中,慢慢逻辑思维能力就有了,学java可以训练逻辑思维,这是反复迭代的过程。其实担心编程学不会,归根结底不是逻辑思维差的问题,只是因为刚开始学习不熟练,就像我们刚开始学习英语,刚开始说话肯定...
  • “数学思维”和“编程思维”如何培养孩子思考力?学数学到底学什么?如果只是为了刷题和考试,那就大错特错了。学习数学目的是为了让孩子掌握数学的思想方法和精神实质,并以此去解决实际问题。在已然到来的AI时代,...
  • 信息技术已然成为人们日常生活、学习和工作中不可或缺的工具,我们习惯利用计算机来解决各式各样的问题,可以说,“程序驱动”的数字化工具不仅改变了我们的生活与学习方式,而且改变着我们的认知结构与思维品质。...
  • 研究方法是指分析论证课题时的思维方法,它属于认识论范畴。没有正确的研究方法,就不能深入认识事物的本质,揭示其客观规律。没有正确的研究方法,就不能有所发现、有所发明、有所前进、有所创新,自然也就不能获取...
  • 计算机思维论文

    2021-06-16 05:55:31
    导读:本文关于计算机思维论文范文,可以做为相关论文参考文献,与写作提纲思路参考。(吉林电子信息职业技术学院)摘 要:本文首先阐述了计算思维的含义及基本特征,然后分析了计算机方法与计算机方法之间的关系,最后着重...
  • 阅读下面的文字,完成小题。20世纪30年代,图灵提出计算机能够思维的观点,主张凡是能够...如果将思维定义为计算过程,那么计算机当然能够思维。这就是著名的“计算机隐喻”,即人是计算机,思维就是计算——这是计...
  • 架构思维第一篇

    2021-05-26 10:22:59
    系统的可扩展性可以遵循标准、识别、注册、运行总的法则去演化不同的具体的实现,可以根据实际的场景选择合适的方法,不再是 SPI,思维就会打开很多。如 Spring 通过 PostProcessor 开放了用户自定..
  •  人工智能以模拟人的全部思维活动为目标,但又必须以具体思维活动为过程,一城一池地进行攻克。作为颠覆式技术,人工智能也需要通过对不同思维领域的征服,来证明知识的每个领域都可以精确描述
  • 论计算机思维培养的论文篇二《计算思维在大学计算机基础教学中的应用》【摘要】文章首先介绍了大学计算机基础课程的重要性,分析了当今计算机基础教学中存在的大众化问题以及由此而带来的危害。然后从科学、科学思维...
  • 辩证思维思考工具

    2021-08-01 21:28:08
    目的是帮助自己拓展思考的维度,看到事物的正反两面,以及客观地处理事物 人的认知 描述人的属性,态度,情绪,性格 正 与 反 光明 与 黑暗 积极 与 消极 乐观 与 悲观 坚定 与 动摇 善良 与 邪恶 事物认知 状态...
  • l计算机思维的逻辑基础计算机思维是指人们操作计算机时计算机执行某些功能的方式.逻辑基础是指支持事物运行的基本规律.因此,计算机思维的逻辑基础可以理解为计算机在执行特定功能(即“分离”)时运行方式的定律.与...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 131,234
精华内容 52,493
关键字:

思维是思考的过程吗