精华内容
下载资源
问答
  • 程序员大致可以分为三类:码农、工程师、高级工程师 Level 1 - 码农 能做事,但缺乏思考,Coding只是体力活。 Level 2 - 工程师 不盲目,懂得思考与进步。...首先明确一点:解决问题 ≠ 解决复杂问题 问题 =

    程序员大致可以分为三类:码农、工程师、高级工程师

    • Level 1 - 码农
      能做事,但缺乏思考,Coding只是体力活。
    • Level 2 - 工程师
      不盲目,懂得思考与进步。
    • Level 3 - 高级工程师
      不止有足够的思考,还具备解决复杂问题的能力

    从码农到工程师并不难,只要懂得不盲从、主动思考、学习、改善就可以很容易进入工程师的行列,但是大多数就止步于工程师了,因为要从工程师成长到高级工程师,需要解决复杂问题的能力

    什么是复杂问题

    首先明确一点:
    解决问题解决复杂问题

    问题 = problem
    复杂问题 = ( complex + complication ) problem

    complex,说明问题是复合的,是多个领域复合在一起组成的问题
    可以是技术上的复合,比如
    数据结构 + 操作系统原理 + 网络 + 分布式 => 分布式数据库问题
    也可以是非纯技术的复合,比如
    产品思维 + 沟通能力 + 架构能力 + 代码能力 => 将业务需求落地

    complication,说明问题是复杂的,需要系统性思维、严谨的问题分析能力,抽丝剥茧才能找到问题的根源并解决。

    如何具备解决复杂问题的能力

    引用曾经高级Node.js,如今的初级Ruby/Rust/Go工程师兼SRE对我说过的一句话:

    未来最值钱的技能,第一个就是“解决复杂问题的能力”,
    技能表上是没有 Node.js,没有Go,没有MySQL,没有Web开发的。
    解决复杂问题的能力需要你有系统性思维,严谨的分析问题能力,沟通能力和组织管理能力。

    技术变化得太快,每段时间都会有新的技术、新的工具出现,大多数程序员都觉得疲于应付,每当有新的技术出现,大多数程序员的学习路径是这样的:

    看“Quick Start”/ 实操教程 => 跟着操作 => 好像会用了

    遇到问题后却不知道原因在哪里,如何解决,开始Google,然后一个个解决方案地尝试,尝试到第 Math.random().toInteger() 种的时候,终于解决问题,然后觉得自己真牛逼,又解决了一个问题。
    解决问题的路径是:

    搜索解决方案 => 从里面看到别人分析的原因 => 自己不一定看懂了分析,但是先用这个方案试试再说 => 薛定谔的解决

    其实这样并没有真的解决问题,因为他不知道原因在哪里,为什么采用这个方案,是否有其他方案,每个方案的优劣在哪里,下次再出现原因类似,但表现不同的问题,他就又不懂得该如何解决,甚至也同样找不到原因在哪里。
    解决问题的步骤应该是:

    分析问题 => 猜想 => 验证猜想 => 找到原因 => 构建解决方案 => 验证解决方案 => 解决

    这才是一条完整的“解决问题”的路径。

    很多人在第一步就失败了:分析问题,一头雾水不知道从哪里下手。

    要分析和解决问题首先要求你有足够的前置知识,对这个问题所涉及到的原理有足够的了解,分析问题是知识的反推,解决问题是知识的顺推
    只要提升相关知识的掌握程度,分析与解决问题的能力就能明显提高。

    1. 基础知识很重要(深)

    我们所使用的任何一门技术,都有一个漏斗状的知识体系,这门技术在漏斗最上层,而它基于它下层的所有基础知识构建,每一层都是基于下层构建,比如MySQL:

    漏斗状知识体系


    先问一个问题,数据库一个表中,频繁一起读取的数据,该怎么存,读取速度比较快?
    你可能说得出,要把它们主键相邻存在一起,但是你可能不知道,为什么要把它们主键相邻存在一起。
    因为主键相邻存在一起的数据会被写到连续的页(Page)中,相对连续的页,数据库会在磁盘上尽量分配连续、邻近的空间,可以将随机读变成顺序读,并且通过系统调用read(start, length)每次读出一页,每页中包括尽量多的结果,那么需要读取的总页数也会降低。如果不存在一起,那么随机读使得硬盘无法进行预读优化,如果是机械硬盘还需要增加额外的寻道时间,且需要读取的总页数也增加。
    数据库的一个小常识,竟然涉及到了硬件、操作系统、数据库原理,你以为常识就是常识,但是其实这个常识也是被推论出来的,不懂得底层的知识,常识只能靠死记硬背,遇到更复杂的问题,就不知道如何分析了,因为分析是层层递进的,如果你只懂一层,不懂下面的层次,就没法深入。
    程序员不学基础知识就像做医生不学解剖,不是需要上手术台的医生才需要学习解剖,了解人体的基本构造、各个生理组织间的协作关系是分析问题的基础要求,不了解这些基础,根本无法进行精确的诊断。

     

    由于每个技术的知识体系都是漏斗状,所以大量的顶层技术、工具都依赖着少量的、同质化的基础知识,只要学习有限的基础知识,就能对大量的顶层技术触类旁通、举一反三,可以降低未来的学习成本与学习难度以及加深理解的深度。

    2. 如何学习基础知识(由广及深)

    学东西,结合应用场景很重要。重要的话说三遍,结合应用场景结合应用场景结合应用场景
    相对于基础知识,现成的一些顶层技术、工具更容易让我们有兴趣去学习,原因就是顶层的技术能够马上被我们结合到相应的应用场景
    学Node.js,我们知道它是可以做服务端编程的,30分钟让我们搭出一个服务器。
    学MySQL,我们知道它是做数据存储的,几个SQL就满足应用的数据持久化。
    学k8s,我们知道它是做容器编排的,能够让我们简单地部署应用集群。

    但是学基础知识,就无法结合相应的应用场景:
    学计算机组成原理,我又不去装电脑,它对于我有什么帮助?
    学操作系统原理,我又不去开发操作系统,也不做什么基础开发,它对于我有什么帮助?
    学数据结构,我又不是搞算法,它对于我有什么帮助?

    这样一想,基础知识真的没有学习的动力…

    所以我们应该先挑一门自己想要了解的顶层技术,先通过优秀的资料了解这个技术,把自己能学懂的先学懂,不懂的可以仅仅浏览,有个印象,知道哪里不懂,知道自己学不懂是因为对什么问题不了解。
    然后总结这些自己不懂的点,是涉及到了哪些自己不了解的前置知识,所以学不懂。我们每次可能只能往下推一层,比如学习MySQL时,只能总结出自己遗漏的前置知识是数据库原理,而很难知道自己还应该补充操作系统的知识,这是很正常的,学习也是层层递进,越挖越深。当我们开始学习数据库原理的时候,又会在数据库原理学习的过程中发现自己有遗漏的前置知识,比如操作系统。这样学下来,不仅不会浪费时间学习无用的知识,且每个基础知识都是带着问题去学,带着问题往下挖,学到对应基础知识的时候,都能马上与上一层的应用场景相结合,更容易理解。

    寻找优秀资料 => 能学懂的就学懂,不能学懂的浏览即可,记住自己迷惑的点 => 根据自己迷惑的点思考是缺少哪些前置知识 => 进入下一个循环(寻找前置知识的优秀资料)

    3. 实践

    由广及深学习了相关基础知识后,应该只是到了理解的地步,还不算是吸收
    纸上得来终觉浅,绝知此事要躬行。
    只有将理论上的理解实践起来,试一试才知道自己的想法是否正确,在现实系统各种复杂的情况下,如何将理论与实践结合。
    第一步可以是自己试,随便搭一个环境尝试,但是这种情况有限制,就是这是“假”环境,过于简单了,也缺少真实数据填充与真实应用场景检验。
    现实工作中所面临的问题会更加复杂也会更加丰富,能更快吸收一个知识,所以更好的方式是找到能够运用自己所学的平台,进入一家团队精炼、业务量大、发展速度快、重视技术的公司。(这里顺便打个广告,AfterShip符合以上所有要求,并且正在招聘各种工程师,如果有兴趣,简历可以发到hjaurum@gmail.com

    4. 表达与沟通

    一个人的既有知识、技能、信息量都非常有限,工作中我们都是与他人配合才能做好一个业务。
    项目前期需要与产品经理、业务部门讨论需求、理解需求,
    项目中期需要与同事合作分工,如果是涉及多个系统的业务,还需要与其他技术团队的同事沟通技术实现,
    项目后期需要与SRE团队协作部署上线。
    其中涉及到人与人之间互相的信息传达,如果不能精确或者恰当地表达,对方可能无法理解我们的真实意思,导致无效或者失真的沟通,降低工作效率甚至无法获得预期结果。
    所以锻炼自己的表达与沟通能力,也是在间接提升工作效率,并且能够使团队运作更顺利,使得同一件事有更优的工作结果。
    写博客是锻炼表达能力的有效途径之一,将自己学会的东西、思考的东西以讲述给他人的角度写出来,思考怎么让读者理解自己要表达的意思,甚至思考怎么让读者更简单地理解自己要表达的意思。刚开始写博客可能不知道如何下笔,不知道刚怎么分配章节更合理,不知道怎么组织文章的逻辑使它更简洁、精炼、易懂,一篇博客可能要花上十几天才能完成,但是坚持写技术博客,会发现自己组织语言的能力也在提升,每过一年,再回头看以前的博客,会想:“我去,这竟然是我写的?这么烂?”,坏消息是,以前写的博客确实挺烂的,但好消息是,你现在一定进步了,所以看出了它有多烂。
    读书时学渣一枚,我的作文能力也是非常非常差,逼着自己坚持写一些技术博客,不止是总结所学的东西,更是提升自己的表达能力。
    自己学明白一个东西是最简单的,但怎么表达出来让别人也听懂,是非常非常难的,写博客是一件虽然困难但有收获还有成就感的事,值得坚持,等到写博客对我来说变得简单的那天,我一定很牛逼了。

    5. 健身

    有句古话:磨刀不误砍柴工
    还有句比较新的话:坚持做不紧急但重要的事
    深以为然。
    当你在技能、思维等所有软件层面都成为高级工程师的时候,还需要让你的硬件跟上步伐。
    “解决复杂问题的能力”就是说不止得有“能”,还得有“力”,身体健康非常重要,这不止是为了让自己过得开心,对自己的家人负责,更是让自己有精力和身体资本去应对各种压力。
    保持每2 ~ 3天健身一次,每次1 ~ 1.5小时,坚持下去,就能保证自己在未来20年都有充足的精力和健康的身体去学习、工作、应对压力。
    虽然健身暂时会占用你一些时间,但是它可以让你长跑下去,如果不健身,也许你每周可以多用几个小时工作、学习,但是这只是短时间的冲刺,冲刺的人能跑的距离还是不如长跑的人,人生几十年,是长跑不是冲刺。

    写在最后

    世界上有四类事,我们放眼整个人生来看一看:

    1. 重要且紧急:每天份内的工作、生存、生病了看医生
    2. 重要但不紧急:学习、健身,每一件长期坚持可以让未来变得更好的事
    3. 紧急但不重要:购买生活用品、食品
    4. 不紧急也不重要:刷淘宝、刷剧、睡懒觉

    时间四象限法则

    大多数人都只做了1、3、4,很少去做2,首先他们可能不清楚什么是重要但不紧急的事,其次是因为他们很难坚持长期做重要但不紧急的事。
    如果无法坚持做重要但不紧急的事,生活中就有出现各种紧急的事让你焦头烂额,比如不坚持健身,就容易生病需要请假看医生也没有精力做其他事,由于缺少精力,又会使得工作能力下降收入降低生活质量降低。
    坚持做重要但不紧急的事,会让未来稳步上升,只着眼于重要且紧急的事,那生活中只会有越来越多重要且紧急的事需要你处理应该用长远、发展的眼光去规划自己每段时间需要做的事

    磨刀不误砍柴工,非常有道理。

    (感谢原作者,读完很有收获)



    作者:AmazingBillions
    链接:https://www.jianshu.com/p/a546d2efb4e8
    来源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    展开全文
  • 沟通能力、对工作负责任的态度、对代码的追求,很大程度上由性格决定,Java开发工程师如何培养解决问题能力 1、培养兴趣,技术工作总是辛苦的,编程尤其如此。 假如你对此没有浓烈的兴趣,不能从编程本身找到...

    Java仍然是最流行、招聘供需量最大的技术语言。在此基础上,互联网行业针对 Java 开发的招聘需求,也是近年技术类岗位供需量最大,且变化最稳定的。企业对 Java 工程师发放的面邀数占比也远高于其他岗位,在100 offer平台上,Java工程师的需求占总需求的近60%,可以说,在当前各大公司“裁员”的背景下,Java工程师,尤其是资深Java工程师依旧是硬通货。
    在这里插入图片描述
    什么样的工程师才能被称为资深,又如何成为资深Java工程师呢?从工作时间来看,资深工程师一般具备3-5年工作经验,企业对有 3-5 年经验的 Java工程师,都会要求算法基础和编程能力扎实,有分布式、高并发经验优先,可独立负责一个模块的开发。在技术上一专多能,不仅限于写好 Java,还要触类旁通,对公司业务所需的新技术能快速学习运用,入行的程序员月薪是真实的,BAT和二线互联网公司的校园招聘的offer都是月薪过万的。
    在这里插入图片描述
    作为最受欢迎的编程语言,Java简直是IT领域的敲门砖,只要精通Java语言,找到好工作,进入大企业又多了一层保障。很多人都向往Java编程的广阔就业前景,却苦于不懂Java编程知识,后端开发者使用这些工具编写干净、可移植、具有良好文档支持的代码来创建或更新 Web 应用。但在写代码之前,他们需要与客户沟通,了解其实际需求并转化为技术目标,制定最有效且精简的方案来进行实现。
    一直以来,在不同类别软件开发人才的需求中,对于Java工程师的需求量一直居高不下,而且Java工程师的薪资水平相对较高,所以每年学习Java的人也越来越多。但由于每个人的基础、资质有所不同,学习成果也就大不相同,如果大家在学习JAVA当中遇到什么不懂的问题欢迎+我的JAVA扣扣裙【630 455 594】,有不懂的问题都可以在里面问。
    一个程序员的能力等于其解决问题的能力。怎么提高自己解决问题的能力?
    在这里插入图片描述
    沟通能力、对工作负责任的态度、对代码的追求,很大程度上由性格决定,Java开发工程师如何培养解决问题的能力

    1、培养兴趣,技术工作总是辛苦的,编程尤其如此。

    假如你对此没有浓烈的兴趣,不能从编程本身找到很多乐趣,那最好就不要奢求能成为一个好的程序员了。对编程的兴趣也是我一般招聘初级程序员时最大的要求。

    2、什么样的环境决定你有什么样的知识积累,决定了你的品味,决定了你会以什么方式来做事,这个除非有强大的意志力。

    3、不要停留在自己学习的舒适区,假如你的工作仅仅是以前工作的简单重复,你会工作的很轻松,同时也很难有提高。

    欢迎大家在评论区评论留言!

    展开全文
  • 如何培养解决复杂问题能力

    千次阅读 2018-03-10 00:00:00
    问题说起 最近在看容器的监控系统,监控系统无非就是需要几个方面的功能。 数据如何采集?是服务端主动到监控节点拉取信息?还是客户端主动上报相关的信息,从而划分为两种类型,一种是有专门的
        

    序言

        天气晴朗,蓝天无云。


        想躺在床上挣钱,转念一想,挣钱又不是目的,所以躺在哪里都无所谓了。。。

        

        日思夜想,时刻念叨,看书没意义,出门浪没意义,那么什么是有价值的事呢?


    从问题说起

        

        最近在看容器的监控系统,监控系统无非就是需要几个方面的功能。


        数据如何采集?是服务端主动到监控节点拉取信息?还是客户端主动上报相关的信息,从而划分为两种类型,一种是有专门的客户端,一种是使用主机自带的协议,例如snmp协议。在进行网络设备的监控的时候,好像只能用snmp协议了,因为。。。不能安装客户端,容器中可以使用cadvisor或者使用prometheus的各种exporters。专用的客户端。


        数据如何存储?数据存储在文件中?还是数据存储在数据库中?还是数据存储在分布式文件系统中?zabbix是存储在数据库中,那么需要考虑的问题是,如果存储在数据库中,保存多久的数据?一年还是更久,使用什么样的方式来定时清理数据?数据库influxdb不错,prometheus也还好。


        数据如何展现?使用图表来显示?使用表格来显示?柱状图?饼图?主要取决于你关心的数据而已,例如容器总量是多少个,容器停止状态的有几个,容器运行状态有几个,容器使用的内存,CPU等相关的性能数据。。。人嘛,总是喜欢花花绿绿的,这样才能吸引眼球,grafana还是很不错的。

        

        告警如何通知?使用短信通知?使用邮件通知?使用电话通知?是否支持这样的通知机制,使用prometheus这是一套解决方案。


        那么如果是我写一套监控系统我能怎么做


        语言使用python?我要使用docker模块?我怎么使用docker的方法?我如何远程监控?

        使用专用的客户端,那么就会有一个agent,在每个监控节点上运行,那么这个接口采用restful接口

        数据存储在mysql中,那么mysql如何来清理数据

        数据展现框架?flask?django?tornado

        数据通知机制,怎么设置阀值?怎么通知?邮件的模块?短信的模块?还是其他的模块


        那么问题来了,想做一件事需要考虑这么多东西,复杂的问题该怎么办???


    世间万物,均有联系


        每天各种杂事缠身,每天花费时间处理各种琐事,然而就是这些组成了你的一天。。。


        有的人躺在床上一天,有的人出去浪一天,有的人出去做头发一天。。。时间都是均衡的,每个人每天都是那么长的时间。。。


        有的人过一天是一天,第二天太阳一样升起,有的人过一天是新的一天,第二天能力提升一点。。。


        不好好对生活,生活就会好好怼你,投资多少,会回报多少。


        可曾分析了每一天时间的消耗?例如消耗在一件琐事上,下次如何更好的处理?下次更加有效率的处理?下次是否可以不处理?下次是否可以一句话解决?有没有想过更好的方法来处理。。。动脑总是头疼,因为脑子不见了么


        可曾想过一天的时间构成?每天浪了多久,怎么浪,如何浪的更加有意思?会更有创意?会更有想法?会想到更好玩的事情。。。。怎么改进也是需要动脑子的,但是你的脑子呢


        日积月累。。。那么怎么日积月累?


        在空闲时间,我写了一个restful接口,可曾分析过我以后怎么用?非要书到用时方恨少。。。


        在闲暇时间,我写了一个通信接口,使用http协议,可曾想过使用的场景?非要到用的时候才去看?


        在碎片化时间,我看了一个片段信息,可曾想过如果是你,你怎么去设计,你怎么去写,你怎么去考虑,在以后碰到了类似的问题,如何去解决?


    一阵妖风吹过


        一阵妖风吹过。。。。那么怎么解决复杂问题?积累。。。反思。。。应用。。。反馈、、、循环。。。


        看到容器的时候,就会想起来,容器的网络是什么样的,桥接?主机模式?ingress网络?


        看到容器的时候,就会思考到,容器的存储是什么样的,分布式存储?共享存储?volume存储?


        看到容器的时候,就会有念想,容器怎么做资源隔离?和vm一样资源隔离?和process一样做资源隔离?


        看到容器的时候,就会考虑到,容器怎么做成集群?服务怎么调度?服务怎么分布?和其他的分布式系统一样有区别?


        我想要的我都有!!!


        我要网络,啪,给你一个网络分布图,给你分配一个网络段;我要负载均衡,给我VIP;我要存储,分你几个bucket;我要我的脑子。。。那不可能。。。你本身就没有脑子!!!


        对于复杂问题,一个能力在于拆解,就像微服务一样,一个庞大的系统,拆拆拆,拆成一堆的积木;一个能力在于组合,将各种积木进行搭建,组建成功能强大的系统


        当没有基础的时候,多看看别人是怎么做的,去反思,去应用,去思考,去找脑子。。。多看,多问,多做。


        当有基础的时候,多改进,多优化。。。这也就是为什么面试的时候需要优化的技能,明知道用不上,为什么还要问。。。因为只有优化的时候,才会发现你动了脑子。。。


        

    总结


        对于复杂的东西,要进行拆解,拆解之后,有目的的进行强化练习,时刻不要忘记你做这种练习的目的是什么,是为了在以后的使用。


        对于简单的东西,要进行组合,联系过往,在哪个地方使用了,使用的场景是什么,为什么要那么做,做的动机是什么,达成了什么效果,怎么改进。


        关于价值的定义:改变生活,改变行为,改变思维,在以后的将来,我会用到



        

    640?wx_fmt=jpeg


        但是。。。我的脑子不见了。。。。


        如果你看了这个文章,有所思考,那说明。。。你还有点脑子。。。如果你能在生活中用上,那说明,你的脑子还在。。。


        准备。。。是为了将来能用上。。。如果用不上,那就没有价值。。。还不如躺在床上发呆,做白日梦。。。而我。。。此刻还在床上。。。哈哈。。。我在思考人生。。。天为什么这么蓝。。。

        

    640?wx_fmt=jpeg

        

        

    展开全文
  • 我认为是解决问题能力。能够独立、快速、有效的解决问题,是起码是一个优秀工程师必须具备的能力之一。具备解决问题能力的人自然拥有了一项自己的核心竞争力。他人解决不了的问题,你能解决;他人摆不平的事情,...

     

      我时常想为什么出现这种现象?工程师最重要的能力是什么?我认为是解决问题的能力。能够独立、快速、有效的解决问题,是起码是一个优秀工程师必须具备的能力之一。具备解决问题的能力的人自然拥有了一项自己的核心竞争力。他人解决不了的问题,你能解决;他人摆不平的事情,你能摆平;他人搞不定的麻烦,你能搞定。遇到加薪升职的事情,哪个老板不得想着你?想起一句话,越想越有道理:“搞定就是稳定,摆平就是水平”。

      如何培养解决问题的能力呢?这个话题可能有些大,我想到以下几点:

      1、首先要有责任心,把心态摆正,把这个问题当成自己要独立处理的问题,不要总觉得有靠山、有退路。我清楚得记得有个实施工程师,在现场给同事打电话,说设备的数据采集不上来。后来同事问了一下,原因是采集数据的软件没有安装。这真是让人哭笑不得。就像一个人买了辆汽车,给销售打电话说汽车怎么踩油门也不动,原因是汽车没有插入钥匙发动起来一样。稍微有一点知识,用脑筋想一想,就不用出现这种低级的笑话。如果总觉得这个事情即使你不做,也会有人做,来帮你做,那么,就容易出现懒惰现象,往床上一躺,打个电话,让他人解决,自己在那里睡觉。这种状态是不可能有任何解决问题的能力培养出来的。只有把事情当成自己的事情,自己要面对和解决的问题,才能踏下心来想怎么解决这个问题,才有可能自己独立解决这个问题,才有可能通过解决这个问题,积累类似的解决问题的经验和教训。否则,永远处于0的状态,不会有任何进步。

      2、需要储备一定的知识和技能。这是前提。老板也不会安排一个厨师去给客人理发。所有安排给你的任务,大概率是在你从事的相关技能领域内,至少能沾点边。一个工程师总得有一点是自己擅长的,熟悉的。这个技能或者特长,需要一定时间的积累,例如上大学所学的专业或者参加某个知识培训班而掌握的。学到了知识,掌握了技能,就具备了解决这个领域内的问题的基本前提。有了这个前提,一个工程师才有能力解决某个具体问题。如果你还不具备这个前提,可以现在就开始学习了。

      3、深耕你的技能。具备了一定的技能,是能够解决一些常见的问题了,但是想要解决更多更复杂的问题,则需要更高深的专业技能。这就是高手和牛人的要求了,想成为高手,必不可少的要花费更多的时间和精力去提升技能。"一万小时理论"阐述了一个人要想成为某方面的专家,就需要一万个小时的积累。这或许没有什么捷径可以走,但要掌握好解决问题的技能,总会有一些好的方法,能够加速掌握技能的时间。就像学生时代有的同学掌握了适合自己的学习方法,就达到了事半功倍的效果。好的方法是需要自己多思考多揣摩多实践,慢慢总结出来的一个套路,这就需要平时多学多练。总之,你得先付出,并且在付出努力的过程中,不断总结提炼,才能把你的技能练得炉火纯青。

      4、形成解决问题的思维和方法。具备了深厚的技术技能,由于一个人的精力有限,也往往是某一方面的。当问题的发生超出了一个人所熟知的技术领域时,就需要具备一定的解决问题的思维和方法,才能进一步解决问题。例如一个实施工程师如果只是对所实施的软件了如指掌,而对现场的计算机网络、数据库等一无所知的话,他还是解决不了最终的问题。所以,他需要一个全局性的视野,与问题相关的方方面面,他都要有所了解,才能综合分析出问题的根源所在,进而找到解决问题的方法。解决问题的思维包括解决问题的步骤,第一步做什么,第二步做什么,问题之间的关联,如果第一步怎么样了,那么第二步应该做什么。具备了解决问题的思维和方法,即使缺少相应的某一方面的技能,也能通过学习使其具备一定的临时性的技能,从而推进解决问题的进度。在解决问题时,注意最好多想一步,敢于突破自己的极限,要相信自己的潜力。

      5、善于总结,形成知识库。解决完一个问题后,要注意进行总结,最好记录下来。拿编程来说,经常遇到这样的情况,遇到一个bug,花了一定的时间和精力解决了,很高兴。过了十天半个月,可能又遇到了同样的bug,这时只是记得解决过这个bug,但具体怎么解决的,忘记了,还需要重新查找资料,又花费了不少时间来解决它。虽然最终还是解决了,但还是浪费了不少时间。如果在解决问题过后,及时记录下解决的方法和步骤,再次遇到同样的问题时,就能很快将其解决掉,这么一来,省下的时间都是自己的。这有点像学生时代的“错题本”,有时一道题做错了,下次遇到的时候,还可能犯错。因为这正是一个学生掌握不好的地方,知识薄弱的地方。有了“错题本”,针对错误的题目加深印象,学习时多关注一些,再遇到类似的题目时,就变成了熟悉的知识了,也就不容易错了。随着解决的问题越来越多,自己形成的知识库越来越庞大,工程师的能力自然越来越强。

      如何增强解决问题的能力,还有很多途径和方法,条条大路通罗马,只要认真对待问题,相信那句话:世上无难事,只怕有心人。

    展开全文
  • 相信大家都知道要想在某个方面有出色的成绩,除了努力外还需要会使用资源,网上的资源有千万,那可不是百度一下就能知道的,而且对于一些初步步入计算机行业的小白们,学着自己去解决问题还是十分有必要的,因为没有...
  • 如何培养孩子的社会能力》书中的精髓:如何用“我能解决问题”的训练方法来培养孩子的社会能力。 有了孩子之后,相信很多妈妈都有这样的经历,带着孩子出去玩,有别的小朋友拿出好玩的玩具,然后很多小朋友都想...
  • 近年来国内外教学领域已经形成共识,即计算机技术课程的核心价值就是培养学生的计算思维,培养学生用计算机解决问题能力,应该以计算思维为导向进行计算机技术课程的教学改革[1-4]。在共识基础上,如何将计算思维...
  • 首先理解一下独挡一面的能力,独挡一面能力不是简单的独立解决问题能力,而是极强的综合能力和资源协调能力。一个人的能力一定分为知识的广度和专业的深度,在一个分工细化的内部,独挡一面的能力往往偏重于专业...
  • 如何培养独挡一面的能力

    千次阅读 2011-11-22 17:37:44
    首先理解一下独挡一面的能力,独挡一面能力不是简单的独立解决问题能力,而是极强的综合能力和资源协调能力。一个人的能力一定分为知识的广度和专业的深度,在一个分工细化的内部,独挡一面的能力往往偏重于专业...
  • 下面笔者就结合多年的实践与思考浅谈在小学数学教学中如何培养学生的实践能力。 一、 创设问题情境,激发学生实践兴趣 小学生对周围的一切事物都充满着好奇和兴趣,是人生求知欲旺盛的黄金时间。针对学生这一心理...
  • 激发寻找问题答案的能力拓展游戏:智慧... 目的: 1、让队员观察别人如何解决问题。 2、展示如何激发创造性思想。 步骤: 1、首先选2名志愿者。 2、要求两位志愿者立刻离开游戏场地,他们不能听到你们说话,...
  • 如何培养领导力

    2020-06-23 14:01:35
    第三阶段:激发他人的热情,让他们产生解决问题的热情。 说服他人的更高境界,是让他们真正投身进来,自觉发挥自己的潜力,全力以赴解决需要解决的问题。好的领导和差的领导,区别就在于能否激励下
  • 第一阶段:熟悉自己的业务,...第三阶段:激发他人的热情,让他们产生解决问题的热情。 说服他人的更高境界,是让他们真正投身进来,自觉发挥自己的潜力,全力以赴解决需要解决的问题。好的领导和差的领导,区别就在于
  • 程序员能力培养

    2015-12-26 13:32:44
    从宏观上看,软件开发,简单来说,就是弄清楚客户的需求是什么,然后通过分析、设计、编码和测试等一系列活动解决如何将需求转换为代码的问题。从微观上看,开发人员的日常工作中也面临各式各样的问题。比如
  • ACM培养的是能力

    2011-10-05 13:38:06
    今天又去问了一个问题..最近问得比较多..出现了有问题就去问的情况.. 欧一哥说了一句发人深省的话..ACM培养的...应该说的是说如何自己去分析一个问题解决一个问题的额能力吧.. 看来问问题也有利弊啊...可以减少时
  • ”与其在重复的“增、删、改、查”中消耗能量,不如培养举一反三的能力。在不确定的社会中用尽可能小的消耗,找到最优解决途径,做尽可能多的事情,撬动尽可能大的资源。 今天,阿里技术公布一波阿里P8、P9技术大牛...
  • 让学生能够积极主动地展开学习,通过自我探索掌握问题的答案,通过亲身试验掌握问题解决的方法,最终具备一定的探究性能力。在小学劳动与技术课程中突出学生探究性能力培养,是适应教育发展...
  • 编者按:2018年8月以来,在经开区教科室的组织下,各校积极开展课堂教学微研究的...借助几何直观可以把复杂的数学问题变得简明、形象,有助于探索解决问题的思路,预测结果。几何直观是学生数学学习的一种重要的方式...
  • 1、培养宝宝的逻辑思维能力 当孩子遇到问题的时候,家长最好不要急于让他说答案,而是要求他多问几个为什么,多想几种解决的方案,多几次对自己的否定,然后在否定中寻找最佳答案。这种思维练习在日常生活中可随时...
  • Android 平台凭借着庞大的用户基础和开放...一名Andriod开发的技能体现在「实际量级下解决问题能力」,即高效的产出高质量代码,迅速解决开发中存在的BUG,对于需求提出合理的解决方案。 更重要的是,一枚优秀的And
  • 与其说是在解决问题,不如说使问题复杂化了,资料仅是增加了硬盘的空间,时间长了自己还有负罪感。以此文警示自己。遇到问题先自己独立解决,查看帮助文档、书籍、电子材料;而后请教独立借助网络,要找准关键词、...
  • 近几年中考数学出现了一些比较新颖的试题,这些试题一方面能很好考查考生的知识掌握程度,另一方面也能考查考生分析问题和解决问题能力。如方案设计类试题,通过动手操作来解决一些数学问题,特别是作图题的设计,...
  • 有德无能培养使用 我们都有不称职的同事。 倾向于编写错误代码,做出错误决定或只是不了解项目中某些概念的人。 处理这种情况绝非易事。 显然,最简单的解决方案是忽略它。 而且,如果您不是团队负责人(或类似的...
  • <技术领导之路)具体说明了这个问囊:如何培养成功的解决问题型领导所必需的素 质。这本书强调,我们身上都蕴藏有领导力,只是对不同的人来说,某方面的因素发展得比 其他方面的因素更好点。Weinberg写道: “只要...
  • 两者相比较,自然是后者会更适合一个不断发展不断扩充规模的企业,因为这样的团队每个人都拥有解决问题能力去应对增加的工作量。 想要培养员工的工作能力,首先要培养他们思考问题的能力。勤于思考才能真正
  • 锻炼孩子的能力,也都是对问题的理解,然后再自己去寻找解决的方案,找到那条路。这样的思维对任何问题都是有效的。那么机器人编程教育是如何塑造孩子的逻辑思维能力的?1分解思维塑造孩思维能力首先要将复杂、庞大...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 555
精华内容 222
关键字:

如何培养解决问题能力