作为软件工程师的我怎么认识这个世界

34 阅读8分钟

近期结识了一位非常有思想的律师朋友,第一次见面就聊到了一些深层次的话题,让我对这个世界也有了更多思考

人不仅能够认识世界,还能够改变世界;一个人会用自己最擅长的工具认识世界,也会使用最擅长的工具改变世界;

也因此,拥有不同的认识世界工具的人,在进行相互认识时,总会需要优先进行一些认知的对齐,才能够进行真正的沟通。

因此我会先把自己坚持的一些看法写在此处。

认识世界

  1. **有比较才能鉴别。有鉴别,有斗争,才能发展
    **任何事情都是比较得出来的。
    如果一个农民只是在自己的村子生活,不知道山外有其他的村子存在,他就不会知道其他村子的农民有其他的种田技术,但是一旦他接触到了山外的其他农民,看到了别人是怎么种田的,他就会自动的比较两个农民之间的差距
    当然这个时候的他只是知道了村子外有别的农民,他们都有不同的种田技术,这是比较的表现
    人会自然的比较两种方式哪种更好,从而会选择其中一种,选择就是自己认知中的价值考量进行查看,这就是鉴别的表现
    真正引起这个农民向其他农民学习的契机,是其他农民在市场上得到的比他更好的收入,倒逼他突破自己的舒适区,实现自我迭代,这就是斗争的表现
    后来这个农民因为会学习其他农民的技术,自己的农产品在市场上有了更好的竞争力,自己也因此赚了大钱,这就是发展的表现
  1. 自然社会和人类社会中的绝大部分事情都是有迹可循的,靠着成功路径,总可以获得相同的成功
    天下没有新鲜事物,任何事情都可以在之前的事情中找到相似的模板,依靠着自己的或者别人的成功路径,达成了成功的一切要素后,也会取得相同的成就。
    父亲的孩子如果只由父亲教育,就最多会获得父亲的成就
    但是如果这个孩子被全世界的优秀人才教育,通过书本等方式接受其他优秀人才经验的这个孩子,很可能在未来发展会超过他的父亲,因为他接受的教育是比他父亲更优秀的人给予的
  1. 绝大多数事物,都会有多个步骤,分步骤就是为了降低成本;很多厉害的事情都是将其中一个步骤进行了极大的优化

    以一个软件工程的例子举例。
    软件工程的目的是交付合格的软件,这是一件商业化的工业化的过程,就会需要一个标准化的流程,满足这个需求的绝大部分要求
    需求→设计→开发→测试→部署→维护
    团队需要在特定时间内完成对应的任务,有意识地在不同阶段做对应的事情,是为了提高效率,也可以避免多个任务混合
    在不同的任务中反复切换会导致项目混乱,也会导致人的精力会浪费在不同任务的切换中
    人总意识到一个大任务是由多个阶段的不同的小任务组成的,就会自发的比较鉴别哪些任务可以在一个特定阶段中集中完成,从而会不自觉地提升效率
    另外的,就算是一个大任务可以通过拆解成不同阶段的小任务进行解决,但是也会出现一些人力重复的事情;在软件工程的部署环节中,计算机有不同的系统(MacOS、Windows 等),会产生兼容性的问题,所以出现了容器技术(docker,k8s 等),把任务放在同一种容器上执行,让容器自动的和计算机系统交互,减少了这一阶段中需要投入的人力,提升了工作效率
    在微服务架构中(一个大任务作为一个产品变成多个任务作为一个产品),运维团队由维护一个任务变成维护多个任务,在上面的流程中,部署和维护的时间成本和复杂度就提高了,为了解决该问题,可以通过编写自动化脚本用于自动执行部署和运维任务,从而降低人力消耗。因为降低了人力消耗,提高了工作效率,这本身就是一件很厉害的事情

  2. 绝大多数事物,如社会属性的系统,或是有自然形态的事物都有生命周期
    如第 3 条所述,绝大多数事物都会有多个步骤,在一些通过管理可以触及的地方,可以将一个任务变成可以规划的多个阶段的小任务,在一些大的方面上,则会体现出特有的生命周期,像是人会有童年→少年→青年→中年→老年的阶段。这个并不是人的活动,而是一组自然规律。商品或商业模式总有创新→增长→成熟→衰退的一套规律。要识别、认识到这些规律,并且要善于运用这些规律

  3. 作为工程师,永远相信一个团队的成果永远大于一个人单干的成果
    罗马不是一天建成的,一个人的力量总归是有限的,所以一个人要想成大事,就需要有人成为他的左膀右臂,成为他意志的延申,一个团队做一件事本质上是一个超过普通人的人去做一件超过普通事的事。

改变世界

  1. 任何事情都是不确定的,所以需要优先进行决策,再根据决策的结果决定下一次行为
    世界上没人会打包票说一个人以后会有多大的成就,因为世界是复杂的世界,不可控因素太多,正如我在上面提到的,虽然成功有迹可循,但是本质上人无法集齐成功的人的全部成功要素,一个人下棋失败是因为世界上总有他不知道的棋局,一个人开店失败是因为他不可能洞悉全部可能会导致失败的因素,因为人不能知道所有的因素,所以任何事情都是不确定的。所以成功本质上是拼概率的事情,如果收集成功的人的要素有 80%以上,那么可能就会有 80%的概率成功,人不能决定自己是否必然成功,但是可以决定以多大的努力去拼这个概率
    但是人总不会等到完美才开始行动,因为这个时间点永远不存在,但是人可以优先进行尝试,根据结果再决定下一步的行动,直至成功
    在工业界,这个可以指向一个管理方法,叫做 PDCA循环

  2. 永远要对自己的事情做管理,管理才能做到将自己的成果增大到极致
    人生就是对模糊的概念进行清晰化的过程,人不知道其他人如何结交,但是当他知道交朋友的本质和技巧后,在经过实践,他才会知道怎么管理处理自己的人际关系
    人不知道自己的目标是什么,但是当他主动接触其他取得成功的人,尝试其他的人的领域,如果他通过自己的实践或者观察其他从商的人的生活情况,让他不喜欢从商,那么商业成功就不是他的目标,他就会转而尝试其他事情,一次次的尝试才会让他变得对自己的目标更加清晰,他也可以逐渐的对自己的目标进行管理

  1. 识别出核心问题,且优先解决核心问题
    一个人在一个时间点上总有大量问题,但是并不是所有的问题都是平等的,总有一些问题会决定一个人的命运
    再更细分上,一个人的一些身份中,总有几个问题会影响一个人的一个身份的命运
    怎么识别出这个核心问题,就需要通过多个参数进行判断;如可以把全部的任务按照“紧迫程度-重要程度”进行划分,那就是需要优先解决紧迫重要的任务,完全不管不紧急不重要的任务,减少紧迫但不重要的任务,抽空解决不紧迫但重要的任务

基于 MECE 原则,我不一定能在这次文章中写出全部的信息,所以我可能还会基于后续的实践不断对我的思考进行补充