当前位置: 首页 > 科技观察

提升“程序员”的思维方式,你学会了几个?

时间:2023-03-22 11:29:52 科技观察

大家好,我是汤姆哥。人与动物最大的区别在于,人具有用大脑思考和实现事物的能力。而动物则更多停留在模仿阶段,如:鹦鹉学舌。当然,这也是一种进化能力。这里强调的是思维能力,人的思维能力也是不一样的。比如:这个项目涉及到多少接口是一线程序员关心的?接口的代码如何实现?哪些其他接口可能会受到影响,这个项目的复杂性是什么需要审查团队TL关注?预计工作量是多少?能否如期开发?它对整个系统的性能、稳定性和可扩展性有什么帮助?会不会增加整个系统的维护成本?如果失败了,对业务会有什么影响。部门老大关心这个项目要不要做?有什么风险吗?对业务和技术团队的价值在哪里?能带来多少用户和GMV?它是高优先级吗?如何满足业务方?我们可以发现,基层、中层、高层关心的事情是不一样的。屁股决定头。不管你处于什么水平,你都在做工作。那么面对任务时,你是如何开展工作的呢?我的理解大致分为三个阶段:第一阶段:依靠“直觉”,不管是男人还是女人,面对一件事情,大脑一般都会有一个初步的解决方案,区别在于是否完备这个解决方案。第二阶段:依靠“项目经验”解决问题。这适合有一定工作年限的同学。第三阶段:靠“思维能力”解决。我们不可能经历一切。当面对一个陌生而艰巨的任务时,我们希望有一定的方法论和工具包来指导我们,使我们能够有条不紊地工作。那么如何提高我们的思维能力呢?1、没有规矩就没有规矩。首先,要有过程感。兵法中有“兵马未动,粮草先行”之说。要想提高思维能力,首先要有“过程意识”,没有规矩就没有规矩。我们相信世间万物皆有规律可循。要善于思考,善于发现、总结规律,并抽象成过程。其中,“使用过程”是基础,“优化过程”是进阶,“开发过程”是巅峰。作为研发人员,我们以软件项目开发为例,从客户问题收集、市场调研、产品同学分析编写需求文档、业务和技术可行性分析,到开发编码、系统发布上线。面对如此多的环节,我们在流程设计时应该注意哪些问题呢?首先,我们需要确认流程中包含的所有节点。并且区分核心节点和非核心节点,每个节点在流程中的作用,关键材料的输出,是否可以缺失等,核心节点需要投入更多的精力去控制它们。其次,串联这些节点,需要了解它们的上下游关系。这个顺序还是很重要的,如果生成乱了很容易影响整个流程的交付。最后补充了流程的细化。可以召集相关的同学一起头脑风暴一下,看看有没有什么不寻常的场景需要加进去,来完善整个流程。流程模板的制定非常考验大家的思维能力,尤其是在一个全新的、陌生的领域。一开始,感觉就像瞎子摸象。我们不知道边界在哪里?哪些重要?哪些是非核心?不过没关系,我们可以根据自己的理解先尝试着走。随着您对业务的熟悉,优化流程的细节。架构是一个渐进演化的过程,流程模板也是如此。没有什么是天生完美的。2、流程是模板,文字靠数据。“一张图片胜过千言万语。”除了图片,人类对数字也非常敏感。比如你要买房子,然后你问中介,这套房子的价格是多少?如果对方个子高,那你估计是想打人。再高大上,也肯定想听到一个具体的数字,600万、1000万……你知不知道是一回事,买不买是另外一回事。数据合理,客观性强。如果2大于1,则无法挑战。在我们日常的工作汇报中,无论是PPT还是邮件,都尽量用数据来表达可以数字化量化的东西。与苍白的语言相比,数据令人耳目一新,无可辩驳。我们要学会用数据武装自己,增强说服力。3、定期回顾行情,鼓励自己螺旋式增长。论语中有句话叫“吾日三省吾身”。你在工作中经常反省自己吗?当一个项目结束的时候,你会不会组织一次回顾会议,盘点哪些地方做得好,哪些地方需要改进?回顾有点类似于上面的过程事件的回顾。我们对每个环节的结果和失败的原因进行了深入的分析和总结。提炼有价值的经验和方法。需要保证项目相关人员参与审核,才能保证信息能够完整还原,容易获得较好的审核效果。我们可以以时间为主线,对每个时间点的重要事件进行梳理,并对事件的满意度进行评价,从而促成更好的后续跟进。有的朋友可能会问,我也知道复习的重要性,但是不知道怎么复习?教你一招,你可以用“5W根因分析法”,问问自己是否在每一个环节、每一个事件中都做到了最好的结果?如果不是,可以改进什么?有哪些优化选项?哪些程序是通用体验?哪些项目是项目特定的体验?不要把复习当成一种问责,它可以帮助我们认清自己的不足,短暂的痛苦是为了未来更大的成长。“如果你在受苦,那是因为你在成长!”