程序员如何培养多层次上下文视角?

这篇具有很好参考价值的文章主要介绍了程序员如何培养多层次上下文视角?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近,我与一位员工以上级别的工程师聊天,他一直在努力影响他的同行:每次他建议一种方法时,他的团队都会同意他的意见,但他在组织中的同事却不同意,并予以回击。他希望得到我的建议,为什么他的同事总是破坏他的方法?

聊天结束后,我又与他的同事们聊了聊最近的一些分歧,他们不断强调这位工程师所提的各种建议中缺少上下文背景信息

随着我与更多同行的交谈,工程师的问题变得越来越清晰:

工程师很难从多层次的上下文中对问题进行推理。

所有有趣的问题都会跨越多个上下文层:
举个具体的例子,一个我遇到过两次的问题:如果一个团队想在公司的技术栈中引入 Erlang 或 Elixir 这样的新编程语言,那么在评估该团队时需要考虑哪些上下文层?

  • 我第一次遇到这种情况是在雅虎,当时我的团队领导引入了 Erlang,这让安全和工具团队大失所望。
  • 在我职业生涯的后期,Uber 的一个团队想用 Elixir 实现他们的服务,我也遇到过这种情况。

这里上下文的一些层次是:

  • 项目工程团队
    • 要解决的问题涉及协调多个服务器之间的工作
    • Erlang和 Elixir 有许多用于实现分布式系统的有用工具
    • 解决问题的团队有一位经验丰富的 Erlang 工程师,团队的其他成员对学习该语言感到非常兴奋
  • 开发人员经验和基础设施团队
    • 有固定的预算来支持整个工程组织
    • 每一种额外的编程语言都会减少对整个组织中更常用的编程语言的投资。这使得该组织在每次支持新的编程语言时都会认为基础设施组织的效率较低,因为平均而言它的效率较低。
    • 该团队告诉基础设施,他们将负责通过引入Erlang创建的所有非典型工作。然而,基础设施团队以前就听说过这个承诺,并且在这些团队重组后经常最终拥有新语言的工具。在这一点上,他们相信任何使用新编程语言的项目都会成为他们的问题,无论团队如何大力宣称它不会
  • 工程领导
    • 希望将创新预算投入到对用户重要的问题上,而不是引入通常相当于现有工具的新技术
    • 正在管理高度有限的财务预算,并试图在不影响稳定性和生产力的情况下最大限度地提高产品工程的预算支出。引入新语言与这一目标背道而驰
    • 需要标准化的招聘和培训流程,重点关注尽可能少的编程语言
    • 因团队试图引入新的编程语言而苦恼,但最终因缺乏对该语言的基础设施支持而受阻

在我的职业生涯中,两次遇到这个具体问题给了我很大的启发:

  • 因为第一次引入一种新的编程语言似乎是个不错的主意。

  • 第二次,我的上下文堆栈已经扩大,我坚定地推翻了这个决定。

在我目前的高管职位上,引入另一种编程语言是不可能的,因为这违反了我们的工程战略:

  • 项目团队中的中级工程师没有基础架构视角的某些部分。

  • 基础架构团队的中级工程师也会忽略产品工程视角的某些部分。

要成为一名成功的 "员工+"工程师,就必须跨越这些上下文层进行感知和推理:既要看到产品和基础架构的视角,也要了解(或知道询问)领导层的视角。

如何跨多上下文视角?
在任何指定的角色中,你都会缺少关键的背景知识来扩展你对周围各层次的理解。最好的情况是,你的同事和经理会花时间解释这些层次的背景,但他们往往不会这样做。

例如,我花了很长时间才理解公司的财务计划如何与我们的规划流程相联系,部分原因是没有人向我解释过。

一般来说,人们都沉浸在自己的上下文中,以至于没有意识到这对其他人来说是多么的不直观。

如果你想增强对周围其他层面的上下文感知,以下是我发现的一些最有效的技巧,可以帮助你发展自己的上下文:

  • 出于好奇而不是信念来运作。当别人说的东西对你来说没有意义时,几乎总是因为他们在某一层运作,而你缺少了这一层的背景。当你对别人的观点感到困惑时,与其试图说服他们他们错了,不如试着去发现那一层及其背景。这种视角越资深越有价值
  • 轮换到其他球队。如果您在平台工程部门工作,请与您的经理合作,在使用您的平台的产品工程团队中工作三个月。每隔几年这样做一次,以加深你对不同团队如何看待相同情况的理解
  • 参加销售电话并查看客户支持。跳出工程设计的视角,直接了解最终用户,是跳出上下文层的有效方法,而你的大部分时间都是在上下文层中度过的
  • 在不同类型的公司和行业工作。专注于某一特定垂直领域(如金融科技或市场)有很多好处,但在职业生涯中涉猎一些不同的行业也同样有价值。通过了解其他垂直行业,你会更好地理解自己花时间最多的行业的特别之处。同样,加入一家大公司也能更好地了解初创企业的特别之处,反之亦然。
  • 最后,建立广泛的网络。建立一个广泛的同行网络是借鉴他人来之不易的背景的最简单方法,而不会受到公司内部矛盾和政治的干扰。特别是要挖掘你对某一主题的看法可能是错误的原因,而不是寻找你可能是正确的原因

这些都需要时间,老实说,我花了整整十年的时间才掌握了感知和上下文背景层的能力。事实上,这也是阻碍我在初入职场时担任更高级职位的最大障碍。

激情可能会让人盲目
与许多基本领导技能一样,跨上下文层感知是一个显而易见的想法,但很多人在实施过程中却举步维艰。缺乏好奇心是我看到的最常见的阻碍人们理解这一点的挑战,但最困难的障碍却有点不直观:太在乎。

我遇到过很多非常聪明的工程师,他们非常在意以某种方式解决特定问题,这种方式通常能完美地解决他们所处的上下文层的问题,但他们却完全无法意识到其他上下文层的存在。

例如,我曾与一位高级工程经理共事,他一直对自己没有得到晋升感到不满,同时还威胁说,如果我们不引入他们喜欢的新笔记工具,他就辞职不干。我们的知识库中已经有大量的笔记,如果再引入一个新的知识库,我们的知识就会更加支离破碎

这是我们在开发人员工作效率调查中经常出现的前三大问题。

作为一个曾经为此苦苦挣扎的人,我发现分三个阶段解决问题很有价值:

  1. 专注于了解其他各方的观点

  2. 进入学术评估模式,我非常努力地从纯粹的智力基础上思考问题

  3. 只有在完成这两种方法之后,我才会将自己的感受带入决策中——我实际上认为最好的方法是什么?

这种方法的要点不是拒绝我的感受和观点,因为我知道这些是做出有效决策的重要组成部分,而是确保我不会让我的感受蒙蔽了我对可能性的认识。我越来越相信,大多数隐含的权衡都是人为的——只要你花时间了解当前的情况,你真的可以鱼与熊掌兼得。这种方法帮助我最大限度地发挥精力解决整个问题,而不是卷入问题参与者之间的冲突。

明显还是不明显?
如果你觉得 "有许多上下文层 "这个想法太明显,可以先不考虑这个想法,因为也许你已经很善于考虑手头的观点了。(banq注:陷入了当前上下文而不自知,身在庐山不识庐山真面目)

但是,如果你经常发现自己与同事或领导不和,那么就花点时间对照你最近的一些冲突来检验一下这个想法,看看它是否可能是冲突的根源。对于与我共事过的一些才华横溢的人来说,这是他们在茁壮成长为高级领导者之前需要学习的最后一课。

https://www.jdon.com/71943.html文章来源地址https://www.toymoban.com/news/detail-801493.html

到了这里,关于程序员如何培养多层次上下文视角?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 《从程序员到架构师》:从现在开始培养架构思维,一点都不晚

    《从程序员到架构师》:从现在开始培养架构思维,一点都不晚 尽管大家都明白软件架构非常重要,但是能够真正理解并应用软件架构的核心思维去解决实战的商业项目,确实大多数程序员所欠缺的。本文将从一个全新的视角,重新带领大家了解下程序员到架构师的进阶以及

    2024年02月06日
    浏览(53)
  • 聊聊程序员那些【越早知道越好】的道理或者建议-程序员如何提升自己

    比如好好学习ide的使用和快捷键 ,以及一些常用的命令。 写一个实体类:Alt+Insert,shift+ ↓ ↓ ↓(或者ctrl+a全选) ,回车 把代码封装成方法:Ctrl + Alt + M 代码格式化:Ctrl + Alt + L 删除无用的导包:ctrl+alt+o 构建项目:ctrl+f9 … 比如 mybatis generate lombok 比如引入自动化工具,

    2023年04月24日
    浏览(69)
  • 程序员如何成长

    做技术是打怪兽不是养宠物,为什么要打怪兽?因为难;为什么难很重要?因为难的事情才能带来成长;为什么要成长?承认吧,因为「如何成长」是当代人,包括你我他在内焦虑的源泉。 过去几个月内我在写一系列主题为「NodeJS实战」的文章,内容来源是过去两年独自开发

    2024年02月08日
    浏览(49)
  • 程序员如何提高代码能力

    C++ 是一种功能强大的编程语言,广泛应用于操作系统、数据库、游戏开发等领域。而要成为一名优秀的 C++ 程序员,不仅需要掌握 C++ 的基本语法和特性,还需要不断提高自己的代码能力。 以下是一些具体的方法和建议,帮助你提高 C++ 代码能力: 阅读优秀的代码 阅读优秀代

    2023年04月25日
    浏览(50)
  • 程序员如何制作PPT?

    有道无术,术尚可求也;有术无道,止于术。大家好,我是程序员雪球,今天让我们一起探讨如何从零开始制作高质量的 PPT。 上周,领导要求我撰写一份关于 4到6月持续集成运营分析的报告,并通过 PPT 的形式进行汇报。作为一名五年经验的老程序员,我深知 PPT 制作并非我

    2024年02月16日
    浏览(37)
  • 程序员如何提高代码能力?

    作为一名程序员,自己的本质工作就是做程序开发,那么程序开发的时候最直接的体现就是代码,检验一个程序员技术水平的一个核心环节就是开发时候的代码能力。众所周知,程序开发的水平提升是一个循序渐进的过程,每一位程序员都是从“菜鸟”变成“大神”的,所以

    2024年02月01日
    浏览(51)
  • 程序员该如何学习技术

    前言   学习是第一生产力,我从来都是这么认为的,人只有只有不断地学习才能意识到自己的缺点和不足,身为程序员,我更认为人们应当抱着终身学习的想法实践下去,这是我所一直践行且相信的。   高处不胜寒,只有站在更高的地方,才能欣赏更多的风景,当年老

    2024年02月01日
    浏览(90)
  • 程序员行业还是高薪职业吗?我来和大家聊聊C++程序员该如何学习

    此外,程序员的劳动大多是脑力活动,不需要东奔西跑。这也就意味着,程序员的工作不会对身体健康造成太大的影响。 我们都知道,我们现在的生活水平越来越高科技,越来越先进。在这样的发展速度下,程序员怎么可能被淘汰呢?所以,别听网上的瞎说,什么互联网红利

    2024年02月05日
    浏览(52)
  • 【话题】程序员如何选择职业赛道?

    程序员的职业赛道确实多样化,每个方向都有其独特的魅力和挑战。以下是一些主流的编程职业赛道,以及它们的特点和所需的技能: 特点:负责网站的外观和用户交互。 技能:HTML, CSS, JavaScript, React, Angular, Vue等。 美丽花园:创造性地设计用户界面,实现流畅的用户体验。

    2024年03月08日
    浏览(68)
  • 程序员如何维护自己的电脑

            作为一名程序员,维护自己的电脑是非常重要的。一个良好维护的电脑能够提高工作效率和编程体验。本篇博客将介绍一些维护电脑的基本技巧,包括软件更新、病毒防护、文件组织和备份等方面。 定期更新操作系统和软件是保持电脑安全性和性能的关键。以下

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包