《从程序员到领导者之间的微妙之处》

2023-11-02 03:40

本文主要是介绍《从程序员到领导者之间的微妙之处》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

            前段时间读到一篇关于程序员、领导力和领导者的好文章,感觉很不错,就翻译过来分享下。借用文中一句话:“好吧,我只是个程序员,为什么需要领导?”。

       做一个优秀的领导者可能不是大部分程序员会立即认同的东西。许多人的脑海里立即浮现出这样一种形象:宏大的讲台与高昂的演讲。

然而,让我们看看塞斯·高汀(Seth Godin)对领导力的定义:

 

肯定自己生存的价值,要善于利用自己的优势,闯出属于自己的一片天地,做一个不可替代的人。

领导力的秘密很简单:做相信的事,画出一幅未来的蓝图。去那里,人们自会跟随。

  突然之间,领导力似乎唾手可得,就像是每个人都能做的事情。领导力并不是仅保留给那些被授予权力的人,比如 CEO,CTO 或公司的创始人。

领导力可能是你缺失的一块,它能让你的职业生涯跨越一大步;领导力也可以是一种工具,它能解决你代码库中遍布的大隐患。

也许我们想要成为一位优秀的领导者,然而领导者们为了获得他们的影响力与尊重,所做的事情比表面上看起来更微妙。优秀的领导者具有一些微妙的习惯和行为,他们把这些习惯融入了日常的互动与关系之中。

言归正传,我只是一个程序员,为什么需要领导?

领导力发生在所有的层级上,不仅仅是 CTO 或创始人他们才能领导,领导力可以来自组织结构框架内的任何层级。由于大多数程序员都处在执行层面的核心位置,所以他们有绝佳的机会注意到效率问题,并带头开括创新。


 

领导力让你与众不同。而不是 “我只是一个程序员” 的心态会严重妨碍你的职业生涯发展,一个技术熟练又善于领导的人将会脱颖而出。

你可以一边领导一边写代码,变成一个领导者并不意味着放弃你作为程序员的日常工作。领导者是一个有想法的人,他有足够的勇气来描绘一个愿景,并坚持不懈地追求它。你甚至可以带领你的团队走向一个技术愿景,这个愿景将你与你所热爱的开发工作更紧密地联系在一起,而不是让你远离它。

领导力是永恒的。你使用 Java、C 或 Ruby 编写代码的能力可能会随着时间的推移或语言、平台与需求的变化而减弱。并且是领导一个团队走向成功的能力源泉,而且是大家一直所需要的。

 

职位不能发挥一个人的领导力、反而一个人的领导力能为大家指引方向

 

领导力需要时间,培育领导力需要时间。也许,当下领导团队不是你的擅长事项,但在未来,你发现自己有可能处在一个领导位置,想要把握这个成为一个领导者机会 —— 那么现在做好准备可能是个不错主意。

领导力将给予你在团队中的影响力。对如何改进代码库有一个很好的主意?想要使用一种新的编程语言或框架?对新产品有一个好主意?然而严酷的现实就是是,每个人都有想法。但采取哪些想法和建议,并推动其进行决策部署的人,那些推动变化的人才会获得奖励。你的头衔可能是 “软件开发工程师” 并且容易陷入这种身份认知。然而,你不仅仅是你的头衔。你被雇佣来解决问题(诚然,主要是用代码解决问题),为了解决问题,你要能够利用他人的力量和经验 —— 这就是领导力。当你实现了改变并产生了影响,你就会得到回报。不要坐等改变 —— 让它发生。

英雄般的传奇程序员一直是个神话,没有程序员能够单独完成任何事情,软件开发如今成了一项团队运动。为了取得成功,你需要能够让周围的人支持你或你的团队。如果你能激励一个团队,让他们行动起来,你的存在就会变得无价。

做为一个程序员,当我第一次尝试成为领导者时,我犯了一个巨大的错误:我模仿周围的人。我痛苦的发现我的作法是多么的天真,并了解到领导力比我最初想象的要微妙的多。

事实上,我是在健身房学会了领导力课程。我持续健身有七年多了,我观察到在每个健身房都存在一种新手现象,让人想笑,他们都在做一样的动作,无论我走到哪个健身房都一样。

这些新手到底有什么共同点?他们直接复制与模仿他人。

想象一下:你正在完成你的第一次锻炼,然后走开,开始你的第二次锻炼。一旦你离开,回头看,你就会发现一些健身新手就在你身后,像影子一样模仿你的一举一动!

当你对一个领域知之甚少,照搬别人似乎是有意义的。但是,以我的经验来看,这是一个巨大的错误。

在健身训练中,实质发生在表象之后。高级健身会员可能会通过做一些你看不到的事情来获得你想要的成果。

作为一名新手,我没有意识到高级健身会员训练中的以下几点:

他们已经策略性的分析了自己的弱点

他们在用不同的方式加固他们的核心

他们专注于建立 “思维-肌肉” 的联系

所有这些都无法被明显地观察到 —— 这些就是其中的微妙之处,就像高效领导者的行为一样。

当你观察你的资深程序员或团队领导时,你可能没有意识到他们在幕后投入了多少基础工作来支持和鼓励团队。

一个资深程序员在弹指间驱动团队的强大能力,可不是朝夕之间建立起来的 —— 并且这无关乎他们有多好的编码能力。多年来,他们的影响力被持续精心打磨,并在其所加入的所有团队中被精心实现。

我在我的第一个领导角色中犯下的 “复制错误” —— 我模仿其他人看上去是如何领导的 —— 创造了一种不真实,机械且虚假的风格。我没能观察到领导力的微妙之处。

我错过了什么?一个简单的事实:好的领导是支持与说服的大师。

仅仅观察一个领导者的行为,只会给你全貌的一半。

作为一名程序员,当你想让你的想法获得通过时,你需要能够理解他人,理解他们的动机和他们的需求,以便得到你想要的行动与改变。

领导者的应当养成微妙习惯

 

会议提问中获取答案、倾听团队建议、激发团队斗志

我想你已经确信成为一个领导者对你做为软件开发工程师的职业生涯来说是很重要的,但你该如何去做呢?

1. 领导者基于同理心控制自己的情绪

当我们对批评或困难作出情绪化反应时,结果可能很难接受。领导者需要保持平易近人的态度,这样他们的队友就会觉得可以对他们保持开放与诚实。做为一个领导者,你想要诚实的信息而非糖衣包裹的美化物。

为了实现这种情绪稳定,领导者们一直在努力理解他人的感受。

在对情况作出反应之前,好的领导者会作出如下思考:

为什么其他人是以这样的方式感觉的

为什么其他人是以这样的方式行为的

为什么其他人会说这些话

例如:你可能评审了其他程序员的代码,而他们对你的反馈感到不快。一种未经考虑的情绪反应可能会对你们的关系产生负面影响。

你可能会想:“但我写下这些评价,是因为我想帮助他们啊!”。

尽管有这样的想法,一个好的领导者还是会花一点时间去理解他们同事的观点,并意识到批评有时是很难接受的。考虑到这种更有同理心的反应,你可能会平静地解释所要求的改变的目的,甚至可能会主动提出结对编程。

2. 领导者建立个人关系

非正式且个人化的探讨建立信任。

成组的 “团队建设” 有它的作用。优秀的领导者不仅要花时间在团队环境中,而且要寻求与团队成员进行一对一的高质量的交流。个人与个人相处的时间让你有机会在更有意义和更个人的层面上与某人建立联系,这会建立你们之间的信任。

结对编程是建立这种一对一信任的另一个重要机会。与其他团队成员坐在一起,帮助他们一起完成工作。与他们分享你的知识,保持耐心与理解。

编码可能是个相当孤独的游戏。尽量找到机会,花一点时间与队友远离键盘。一起吃午餐,或者在他们戴上耳机潜心代码之前,激发起一些关于周末安排的交谈。这些对建立关系的小投资将会获得长期的回报。

3. 领导者不做评价(Don't Judge)

领导者期望深思熟虑的冒险者为自己工作,他们希望围绕在自己身边的人能够自我驱动。

为了更好地给予帮助,领导者不去做评价或嘲笑周围人的决策,这样做会削弱领导者的权力与影响力。

当你的队友意外提交了一些他们不该提交的代码时,会发生什么?你会谴责他们吗?当众说他们是笨蛋?还是帮他们私下清理干净,甚至承认你曾经也犯过很多次类似同样的错误?

谦卑一点,行将至远。

4. 领导者给予反馈

领导者优先考虑他人。

领导者以建设性的方式向同事提供反馈,以支持他们的成长。他们把团队的最大利益放在心上。

作为一个程序员,到处都有提供反馈的机会:最困难的部分是有勇气以建设性的方式表达自己的感受。

当一个团队成员主持一次正式会议,一次敏捷站立会,一次复盘等等,抓住机会,提供一些你认为哪里是好的和哪里还可以改进的洞察。

记住,一个好反馈的核心在于意愿 —— 你希望其他队友或程序员知道你提供反馈是因为你想帮助他们。

5. 领导者慷慨而公开的赞扬

领导者表现得正面积极时会更有力量。假如你是一个充满活力的人,当你离开后也会被想念。当你看见某人做了一件了不起的事情时,要特别强调它,并且公开地这样做。

赞扬能在团队中产生最大的影响。好的,公开的赞扬建立起了那些被你赞扬的人的信心,并让别人有机会模仿这样的行为,从而获得同样的赞扬。

赞扬的好时机 —— 包括敏捷计划会,每日站立会和复盘回顾。

成为一名合格的领导者:你可以通过每天建立这些小的行为习惯来投资自己,有意识地自我反思,并提醒自己想要展示的行为,可能在你意识到之前,你将会展现出这些微妙的习惯,并会发现其他人蜂拥向你寻求建议、支持与机会。很快,你将发现你的职业生涯实现了一大步的跨越。

这篇关于《从程序员到领导者之间的微妙之处》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327847

相关文章

day-51 合并零之间的节点

思路 直接遍历链表即可,遇到val=0跳过,val非零则加在一起,最后返回即可 解题过程 返回链表可以有头结点,方便插入,返回head.next Code /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}*

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

O(n)时间内对[0..n^-1]之间的n个数排序

题目 如何在O(n)时间内,对0到n^2-1之间的n个整数进行排序 思路 把整数转换为n进制再排序,每个数有两位,每位的取值范围是[0..n-1],再进行基数排序 代码 #include <iostream>#include <cmath>using namespace std;int n, radix, length_A, digit = 2;void Print(int *A,

16 子组件和父组件之间传值

划重点 子组件 / 父组件 定义组件中:props 的使用组件中:data 的使用(有 return 返回值) ; 区别:Vue中的data (没有返回值);组件方法中 emit 的使用:emit:英文原意是:触发、发射 的意思components :直接在Vue的方法中声明和绑定要使用的组件 小炒肉:温馨可口 <!DOCTYPE html><html lang="en"><head><

数据流与Bitmap之间相互转换

把获得的数据流转换成一副图片(Bitmap) 其原理就是把获得倒的数据流序列化到内存中,然后经过加工,在把数据从内存中反序列化出来就行了。 难点就是在如何实现加工。因为Bitmap有一个专有的格式,我们常称这个格式为数据头。加工的过程就是要把这个数据头与我们之前获得的数据流合并起来。(也就是要把这个头加入到我们之前获得的数据流的前面)      那么这个头是

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

【编程底层原理】方法区、永久代和元空间之间的关系

Java虚拟机(JVM)中的内存布局经历了几个版本的变更,其中方法区、永久代和元空间是这些变更中的关键概念。以下是它们之间的关系: 一、方法区: 1、方法区是JVM规范中定义的一个概念,它用于存储类信息、常量、静态变量、即时编译器编译后的代码等数据。 3、它是JVM运行时数据区的一部分,与堆内存一样,是所有线程共享的内存区域。 二、永久代(PermGen): 1、在Java SE 7之前,

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数

【鸿蒙HarmonyOS NEXT】页面之间相互传递参数 一、环境说明二、页面之间相互传参 一、环境说明 DevEco Studio 版本: API版本:以12为主 二、页面之间相互传参 说明: 页面间的导航可以通过页面路由router模块来实现。页面路由模块根据页面url找到目标页面,从而实现跳转。通过页面路由模块,可以使用不同的url访问不同的页面,包括跳转到U

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心