《程序员职场工具库》 工具导论

工具的“多级”定义

工具,原指工作时所需用的器具。比如医生需要听诊器、手术刀,木工需要电锯,屠夫需要杀猪刀等等。

当然,这篇文章肯定不是跟大家讨论程序员的工具是电脑这么低能的。

那么,我们可以在这个定义的基础上,更进一步:帮助我们更加高效工作所需要的器具

有人会说,这句好像也是废话,大家都懂。诚然,这句话全(程序员)世界都知道,以至于所有希望提升个人工作效率的程序员都会第一时间寻求让自己工作更加高效的工具,然后他们从网上、从别人推荐中找到了几个经过实践的“高效”工具,愉快地添加到自己的工作工具链中,但经过一段时间的实践后,他们失望地发现,他们的工作效率并没有提高。那请问,这些工具符合我们的定义吗?

最后,还有那么些工具,它们的定义是:能够帮助程序员的职场更加高效的器具。这些工具我觉得会更加有用,也是我后续的关注范围和分享目标,希望可以有更多的机会跟大家讨论。

可以看到,工具是个非常宽泛的词语,我这里讨论的工具,更希望是处在后面2级定义上的工具,毕竟,我们不能仅仅满足于完成工作,而是要更好地完成工作,这样才能创造价值。

我把工具分为 3 大类

第 1 类:自动化工具类

这类工具几乎所有程序员都知道,也都在这方面不断努力挖掘和优化的。这类工具的关键核心是自动化,简单地说,就是能够代替程序员做一些重复性的工作

举几个栗子,我们的 IDE 就是非常重要的自动化工具,可以集成很多有用的工具,比如代码提示,自动补全等等;还有脚手架这种自动生成预制代码的工具;还有构建工具、编译工具,做代码的自动转义和处理;往更大的层面看,整个 CI/CD 流水线上的各种工具和系统,每个环节都充斥了非常多的高效自动化工具,帮程序员自动化处理大量的重复性工作,程序员只需要输入几行命令,或者触发一些动作,整个系统就会自动运行,最终得到我们想要的产物;还有低代码系统,也可以归为此类。

自动化工具是程序员的生命线,是程序员工作的基础,非常核心,不管是个人还是团队,都花费了非常多的精力来深入挖掘这块的可能性,并持之以恒。不过,我的内容的重点不在这一类工具身上,而是放在后面两类工具上面,它们同样很重要,但是对比第1类工具,它们更容易被程序员所忽视,鄙视,甚至敌视。

看到这里,如果你在想,除了自动化工具,还有什么工具是程序员需要关心的吗?那我觉得你的程序员职业道路一定不会很顺利。不过没关系,接着看下去,你一定会有收获,如果你肯花时间在其它两类工具身上,你一定会有所改变。

第 2 类:沟通表达类

这类工具是辅助程序员沟通和表达的,这对程序员来说,非常关键,为什么?因为沟通表达一直都是大部分程序员的弱项,原因大概能总结出以下几项:

  • 内敛、闷骚、社恐、宅男......程序员代名词太多了,大家都懂,就不继续列了。
  • 程序员偏理科,理科思维严重,跟文科生那种出口成章,字字珠玑,“词词成语”,句句顺口溜的,是根本没法比的,甚至有点相形见绌,久而久之,变得不敢说话了。
  • 程序员的沟通频道太多了,很多时候对不上,鸡同鸭讲,讲不通,搞得大家都感觉对方很难沟通。我跟你讲架构图,你跟我讲数据流向图,我跟你讲时序图,你跟我讲逻辑图,大家都知道什么后果。
  • 程序员是一个需要想象力的职业,不太喜欢一直做一件单调重复的事情,总喜欢搞事情。大家可以想象一下,好不容易跟对方调好频了,突然对方跳脱了,废了九牛二虎之力拉回来,过一会又跳脱了,你怎么想?
  • ...

有非常多的工具是帮助我们来进行沟通和表达的,主要是看我们能不能使用好它们。举一些大家耳熟能详的例子:windows 三剑客:word/excel/ppt,还有 UML 图等。这类工具可以帮助程序员更好地把自己的想法正确表达出来,也可以帮助程序员更好地展现自己产出的成果,这点非常重要。最后,一些优秀的广为人知的工具本身就是一种通用语言,对于程序员来说,有时候,一图胜千言,前提是要遵循图的语义规范,正确画图!

第 3 类:辅助思考类

这类工具是辅助程序员进行思考的,至于思考完了,要不要继续拿去做沟通,那就看个人了,因此,第 2 类和第 3 类工具可以有重叠的地方。

思考重不重要?当然重要,这不是废话?如果不思考,那人跟咸鱼又有什么区别?

那既然思考那么重要,为什么大部分人从来就没想过,要如何挖掘工具来提升自己思考的效率呢?就像挖掘自动化工具来辅助工作一样,挖掘一些工具来辅助思考呢?这说明,在大部分人的潜意识里,还是觉得思考没那么重要吧。

辅助思考类工具,我首推的肯定是思维导图,这是能够撑起一个门面的工具,这是每一个程序员都应该学会并灵活运用的工具。除了思维导图之外,还有一个大家非常熟悉的工具其实也是辅助思考类工具 —— todolist,它辅助大家思考以下 2 个关键问题:

  • 今天我要做哪些任务?
  • 当下我最重要的任务是什么?

至于 todolist 到底能不能很完美地辅助我们完成这两个关键问题的思考,就不在今天的讨论范围内了,但它肯定是有一定作用的,起码它让你开始思考这两个关键问题了。

还有其他的工具目前我还在积累当中,更多的是一些分析方法论,比如 MECE 法则、5W1H 分析法等等,期待互相交流。

工具应用原则

原则1:要正确使用工具

对于自动化工具来说,不正确使用都跑不起来,这就不多说了。对于其它两类工具来说,正确使用工具也同样重要。之前提到过,一些优秀的广为人知的工具本身就是一种通用语言,我们跟别人聊天,可以带一些方言,普通话可以说的不是那么标准,但是肯定不能讲错,否则,这次沟通肯定是存在问题的。同理,我们在使用工具的时候,我们可以在规则允许的范围内做适当的灵活运用,但是不能有错误的使用动作,否则,我们的思考思路可能会被带偏,我们要表达的意思可能会不清晰,甚至传达错误的信息给对方,造成严重的后果。

创造力不能打破底线,否则适得其反,正确使用是我们应用工具的首要原则。

原则2:不要过度依赖工具

一直以来,我们都是追求如何利用工具来提效,但是物极必反,我们也需要注意的是,不能过度依赖工具,在应用工具的时候,一定要搞清楚工具背后的原理,这个才是最重要的,当某天,这个工具不在我们身边的时候,我们可以快速想到替代方案,这个才是能够让自己一直保持高效的方法。

使用太多工具而不搞清楚背后的原理,有时候会蒙蔽我们的双眼,反而降低我们的工作效率。学校里有一位老教师和一位年轻教师,年轻教师上课放 ppt,也放视频,还有动画讲解,通过工具辅助,年轻教师授课节奏非常快,没到学期末就教完整个学期的内容,然后接下来就是使劲刷题,每节课刷题量更多。老教师不懂高科技的东西,他的工具永远都是粉笔,黑板,尺子,圆规,堪堪到学期末才教授完所有的内容,习题课每次最多讲解 3 道题,但是到了期末,老教师班里的学生不管最高分还是平均分都比年轻教师的班级要高。

原则3:工具是死的,人是活的

这原则除了想要说明我们要灵活运用工具之外,我更希望大家反着看这句话。工具是客观的,当事情不顺的时候,有问题的肯定是人,人没做好,或者是没有选择适当的工具来做。当下的环境,有非常多的人吐槽汇报风,吐槽答辩环境,这个有一定的道理,但是如果因为这些就开始排斥 ppt 工具的话,我觉得就有些过了。错的是人,而非工具

用程序员的思维重新认识工具

写到这里原本就可以结束本文了,但是为了更好的引导后续的系列文章,这里我新增一个小节来做一些有趣的,简单的工具介绍,不是全部的工具列表,也不会做深入展开,每个工具我都会在后续用一个独立篇幅去展开介绍,敬请期待。

我在学习沟通表达的时候,就经常会听到结构化表达,其实表达跟思维其实是差不多的,我们的思维也是结构化的

很多的第 2 类工具和第 3 类工具的底层原理实际上也是结构化的,它们能够更好的处理这种结构的思维或者是素材。

对于我们程序员来说,最熟悉的结构,无疑是数据结构,接下来,就带大家用我们程序员的思维重新认识一些工具,还挺好玩的哈。

思维导图 —— 树型思维

既然推崇思维导图,就先说它吧。思维导图的本质其实是树型思维,所有 tree 结构的数据,使用思维导图都是合适的。像大家很熟悉的组织架构图、时间轴图、鱼骨图等等,还有我们有些 OKR 表格,实际上也是树型表格。

list —— 一维数组思维

最常使用的列表(list),比如 checklist,购物列表等等,很容易想到,不就是一个一维数组么。这个列表的每一个 item,都是跟列表主题相关的。

todolist —— 优先队列思维

这个很有意思,我们使用非常多的 todolist 工具,本质其实是个优先队列,每次出栈最高优先级的任务,每次有新任务进来的时候,都要先做一下比较(思考),新任务要不要放在队头呢?

excel/表格 —— 二维数组思维

有了前面的例子,这个简直就是送分题了哈。

ppt —— 双向链表思维

可以上下翻页,每次专注在某一页的内容中,而且每一页的内容都不会太相近,甚至有不同的表现形式,我觉得,没有比双向链表思维更能代表 ppt 的底层结构了。

word —— 白纸思维、整体视角思维、建造者模式思维

不能少了三剑客中的任何一个,不过我想了想,实际上 word 是自由度最高的工具,没有任何一个基础数据结构可以代表它,因此我就用了其他表达,这里容我卖下关子,放在后续的文章正式介绍,如果现在要解释他们,我需要花费不少的篇幅。

结语

工欲善其事必先利其器,但大多数程序员都只关注了第一类工具,忽略了其它两类工具,而这两类工具才是能提升程序员职场效能的利器。接下来我会针对后面两类工具分享更多的文章,希望可以开启这些讨论,我首先要做的事情是让大家认识它们,并正视它们,这样才能开始实践并用好它们,欢迎大家关注我的公众号,关注后续文章。

----------------【END】----------------

欢迎加我v【longyiyiyu】,进行无负担沟通,我会

  • 长期职业发展规划指导
  • 近期工作重点交流
  • 职场解惑
  • 面试辅导

也欢迎关注公众号【潜龙在渊灬】,收获程序员职场相关经验、提升工作效率和职场效能、结交更多人脉。

你可能感兴趣的:(程序员程序员发展职场工具)