提高「程序员」的思维方式

2023-10-27

大家好,我是Tom哥。

人和动物的最大区别就是,人具有思维能力,能将大脑里的东西实现出来。而动物则更多停留在模仿阶段,如:鹦鹉学舌。当然,这也是一种进化能力。

这里着重提到了思维能力,人与人的思维能力也是有差异的。比如:

  • 一线程序员关心的这个项目涉及到多少个接口? 接口的代码要如何实现?其他哪些接口可能会受到影响,需要重点 review

  • 团队 TL 则关心的这个项目的复杂度有多少?预计多少工作量?能不能按时开发完成?整个系统的性能、稳定性、扩展性等方面有什么帮助?会不会增加整个系统的维护成本?如果挂了,对业务有什么影响。

  • 部门老板则关心这个项目要不要做?有没有什么风险?对业务和技术团队的价值在哪里?能带来多少用户量、GMV?优先级高不高?如何让业务方满意?

我们可以发现基层、中层、高层,不同的职级的人关心的内容也不太一样,屁股决定脑袋。

不管是处于哪一个层级,都是做工作。那么在面对一件任务,你是如何开展工作的?我理解大概分为三个阶段:

  • 第一阶段:靠「直觉」,不管是男人女人,当面对一件事情大脑一般都会有一个初步解决方案,区别在于这个方案的完备性。

  • 第二阶段:靠「项目经验」去解决问题。这个适合有一定工作年限的同学

  • 第三阶段:靠「思维能力」去解决。我们不可能所有的事情都经历过,当面对一个陌生的、棘手的任务,我们希望有一定的方法论、工具包可以指引我们, 使我们可以有条不紊的开展工作。

那么如何提高我们的思维能力?

1、无规矩不成方圆,首先要有流程意识

兵法有云,“兵马未动粮草先行”。要想提高思维能力,首先要有「流程意识」,无规矩不成方圆。

我们相信,这个世间任何事情都是有规律可循的。我们要善于思考、善于发现,总结规律,抽象成流程。其中「使用流程」是基础,「优化流程」是进阶,「制定流程」则是巅峰。

图片

作为研发人员,我们就以软件项目开发为例,从客户问题收集、市场调研,产品同学分析整理成需求文档,业务和技术侧的可行性分析,到开发编码,系统发布上线。

大厂裁员,我们该怎么办?

面对这多的环节,我们在设计流程时要注意哪些问题呢?

  • 首先,我们要确认流程包含的所有节点。并区分出核心节点和非核心节点,每个节点在流程中的作用、关键物料输出,以及是否可以缺失等等。核心节点,要投入更多的精力把控。

  • 其次,将这些节点串联起来,就需要了解他们的上下游关系,这个顺序还是很重要的,乱了辈分很容易影响整个流程的交付。

  • 最后,流程的细化补充。可以叫上相关同学,大家一起头脑风暴,看看是否有一些异常的场景需要补充进来,将整个流程更加完善。

流程模板的制定非常考验大家的思维能力,尤其是一个全新的陌生领域。刚开始,有点盲人摸象的感觉,我们不清楚边界在哪里?哪些是重要的?哪些非核心的?不过没关系,我们可以尝试着按照自己的理解,先动起来。随着对业务逐渐熟悉,再对流程的各个细节优化。

架构是一个逐步衍化的过程,流程模板也是一样的道理,没有什么生来就是完美的。

2、流程是模板,说话靠数据

“一图胜千言” ,除了图之前,人类对数字也是很敏感的。

比如你要买房,然后你去问中介,这套房子什么价?如果对方很高,那估计你要打人,不管有多高,你肯定是想听到一个具体的数字, 600万、1000万…

知不知道是一回事,买不买的起是另一回事。

数据是理性的,具有很强的客观性,2大于1 本身就无法挑战。

我们日常的工作汇报中,不论是 PPT 还是邮件,能用数字量化的尽量用数据来表达,比起苍白的语言,数据清爽又让人无法反驳,我们要学会用数据武装自己,增强自己的说服力。

3、定期复盘,促使自己螺旋式成长

论语有一句话 “吾日三省吾身”。

工作中你是否经常自我反省?一个项目结束,你是否会组织个复盘会,盘点哪些做的好的,哪些有待改进的?

复盘有点类似上面的流程事件的回顾,我们对各个环节的成果、失败背后的原因深度分析总结。抽取其中有价值的经验和方法。

复盘一定要确保相关的项目人员都要参与进来,保证信息能完整的还原,容易得到一个更佳的复盘效果。我们可以采用时间为主线,梳理各个时间点的重要事件,并对事件满意度评价,促使后续能做的更好。

可能有小伙伴会问了,复盘的重要性我也知道,但是我不知道怎么复盘?

教给你一招,你可以采用 “5W根因分析法”,每一个环节每一个事件,反问自己是否取得了最好的结果?如果没有,那有哪些可以改进的点?有哪些优化方案?哪些方案是通用性经验?哪些方案是针对具体项目的经验?

不要把复盘当成是一种追责,它能帮我们认清自己的不足,短暂的痛苦是为了以后更大的成长。“如果你感到痛苦,那是因为你在成长!”

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提高「程序员」的思维方式 的相关文章

随机推荐

  • 运输层---概述

    目录 运输层主要内容 一 概述和传输层服务 1 1 概述 1 2 传输服务和协议 1 3 传输层 vs 网络层 1 4 Internet传输层协议 二 多路复用与多路分解 解复用 2 1 概述 2 2 无连接与面向连接的多路分解 解复用 2
  • 关于以太网没有有效的ip配置问题解决方法

    目录 错误提示 解决方法 一 检查IP地址是否为自动获取 二 重置网络环境 三 卸载以太网模块 重启电脑自动重新安装新的模块 四 重启网卡驱动程序 五 检查外部设备 错误提示 解决方法 一 检查IP地址是否为自动获取 1 首先右键任务栏右下
  • Vue.js 如何进行打包部署

    Vue js 中的打包部署 Vue js 是一款流行的前端框架 它提供了一种简单 灵活的方式来构建用户界面 在开发完成后 需要对 Vue js 应用程序进行打包部署 以便在生产环境中使用 本文将介绍 Vue js 中的打包部署以及如何进行打
  • C++11标准库(STL)使用总结

    STL定义了强大的 基于模板的 可复用的组件 实现了许多通用的数据结构及处理这些数据结构的算法 其中包含三个关键组件 容器 container 流行的模板数据结构 迭代器 iterator 和算法 algorithm 组件 描述 容器 容器
  • 初始操作系统(Operation System)

    目录 操作系统的概念和功能 操作系统的四大特征 操作系统给发展过程 操作系统的运行机制 操作系统的概念和功能 操作系统这个词语对我们既熟悉又陌生 生活中会接触到 但具体的实现我么不从得知 生活中直接接触的操作系统有 windows linu
  • hadoop 常用缺少包错误

    package wc import java io IOException import java util StringTokenizer import org apache hadoop conf Configuration impor
  • 说说你对 Object.defineProperty 的理解?

    说说你对 Object defineProperty 的理解 什么是 为什么能实现响应式 小结 什么是 Object defineProperty 方法会直接在一个对象上定义一个新属性 或者修改一个对象的现有属性 并返回此对象 为什么能实现
  • printf输出%f %lld区别

    https blog csdn net u011497904 article details 42454483 utm source blogxgwz2
  • shell中的for循环示例

    1 利用for循环打印 示例代码 bin bash for i 0 i lt 3 i do for j 0 j lt 5 j 每行打印5个 打印三行 do echo n done echo done 2 利用for循环计算1到100的和 示
  • python读取xlsx格式的excle

    python读取excle的xlsx和xls格式代码略有不同 import pandas as pd from pandas import DataFrame if name main 读取excle表中的数据 file path r D
  • 【华为OD机试】数字反转打印【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 小华是个很有对数字很敏感的小朋友 他觉得数字的不同排列方式有特殊美感 某天 小华突发奇想 如果数字多行排列 第一行1个数 第二行2个 第三行3个 即第n行有n个数字
  • Java高级开发必知必会——反射

    title Java高级开发必知必会 反射 author rocklei123 tags Java 反射 categories Java date 2018 09 16 08 20 57 1 目标与意义 反射是Java开发中一个非常重要的概
  • Linux 之 shell 比较运算符

    运算符 描述 示例 文件比较运算符 e filename 如果 filename 存在 则为真 e var log syslog d filename 如果 filename 为目录 则为真 d tmp mydir f filename 如
  • 日期子组件

    日期子组件 如图
  • MySQL忘记密码的处理方法(MySQL重置密码)

    1 关闭正在运行的MySQL服务 在任务管理器中找到MySQL对应的服务 然后将其停止 2 打开CMD命令行窗口 转到mysql bin目录 3 输入mysqld skip grant tables 回车 mysqld skip grant
  • 《Collaborative Filtering for Implicit...》论文阅读

    论文题目 Collaborative Filtering for Implicit Feedback Datasets 链接 link 1 Introduction 随着电商的快速发展 为用户提供商品的排序很重要 推荐系统就是为用户提供符合
  • Spring Cloud微服务:Loadbalancer 实战

    nacos维护一个列表 但是我们请求服务不可能一个服务所有的都请求一遍 比如我做一笔转账 我找到其中一个做一次转账就够了 而不是看到有多个转账服务 都去转一次 那这个就需要 选择 选择这个靠谁来做呢 其实就是客户端负载均衡组件 Spring
  • git命令添加多个仓库,同步各分支代码,删除仓库、分支

    某些开发场景中 可能会遇到一套代码提交到2套git仓库 此时如何添加一个新仓库呢 假设已有仓库origin 想行添加一个仓库地址 命名为origin test与原仓库区分 1 查看现有仓库名及仓库地址 git remote v 2 添加新远
  • Pandsa时间序列采样频率滑窗及重采样

    目录 Pandas时间序列采样频率滑窗 1 滑窗函数rolling 获取近7天的销售总量 2 shift 及 diff 重采样 resample pandas时间戳及时间差 pandas日期处理DT对象 Pandas时间序列采样频率滑窗 1
  • 提高「程序员」的思维方式

    大家好 我是Tom哥 人和动物的最大区别就是 人具有思维能力 能将大脑里的东西实现出来 而动物则更多停留在模仿阶段 如 鹦鹉学舌 当然 这也是一种进化能力 这里着重提到了思维能力 人与人的思维能力也是有差异的 比如 一线程序员关心的这个项目