成为核心程序员的一些建议

成为核心程序员或技术榜样既是一个伟大的责任,也是一个很好的职业机遇,但中间的过程却是艰辛的。

对自己和自己的工作负责,与尽可能地推卸团队的责任是有着很大区别的。

许多程序员做起自己的工作来很是得心应手,却在晋升到首席开发这个领导职位时,因为对所涉及的额外责任没有准备而焦头烂额无所适从。

作为一个有着多年职业经验的首席开发人员,我想向大家分享一些我认为有用的东西。

你为什么想成为一名首席开发人员?

在你想要处理成为首席开发人员产生的问题之前,首先你得成为首席开发人员。

而在你成为一个首席开发人员之前,首先你需要回答为什么。

你为什么想成为首席开发人员?

这是自我的追求吗?

是因为你觉得可以赚更多的钱,或者拥有更高的声望吗?

还是说,是因为你想关心、领导和激励大家更好地完成工作?

Depositphotos_11196920_m

你可以是因为自我的追求,也可以是因为想赚更多的钱或者爬上更高的地位,但如果你想获得成功——并维持这个职位——那么你的动机应该基于是为了帮助他人,领导他们取得胜利,并激励他们尽可能地做好工作。

如果你的目标只是金钱和权力,那么你不但只能是一个糟糕的首席开发人员,而且也不会喜欢这份工作,因为额外的工作和责任会渐渐湮灭你获得新职位的欣喜。

我这么说不是为了打击你,有野心有抱负是没有错的,关键是要适度,要有正确的方向。

要想成为最有效率的首席开发人员的途径是让你的团队更优秀,然后各种奖励也会随之而来。

而将奖励和声望放在第一位,只会让你的团队受到不良影响。

成为首席开发人员

好,那么你真的想要成为首席开发人员吗——即使它可能是一个吃力不讨好的工作,甚至可能还没得加薪?

如果你的答案是肯定的,那么下面我们就来说一说该怎么做。

首先,你必须认识到,即使没有正式授予称号,你也可以成为首席开发人员。

领导地位不是挂上头衔就能具备的。

领导者之所以是领导者,是因为有人会追随他们,而不是因为他们被任命了某个职位。权力可以被授予得到,但领导力却只能靠自己。你可以是一个没有领导力的权威,也可以成为未经授权的领导者。事实上,一些最有效的领导者,其实却并没有被上级授予任何权力,因为他们并不需要。

按照这种说法,成为一名首席开发人员更多的是要赢得团队的尊重和信任,这比什么都重要。

为了成为首席开发人员,你需要证明你不仅具有技术能力,还具备促进关系、鼓励、构建协同感,以及启发大家的能力。

一个真正的领导者,无论任何形式,都能够把大家团结在一起,拧成一股绳朝着共同的方向前行。

下面这些特点是我认为一个好的技术领导人所应该具备的:

  • 负责
  • 充满动力
  • 擅长技术
  • 谦逊
  • 有坚定的信仰
  • 良好的沟通技巧
  • 可靠

如果你想成为首席开发人员,那么你需要专注于开发这些特性,还需要提升你的软技能

而最优秀的首席开发人员不但能指点我们正确的技术方向,还能启迪我们成长,让我们更好地完成工作,并且能做到将团队利益牢记于心,不徇私,能够让我们放心信赖。

最成功的领导者能帮助大家更加成功。

如果你想成为首席开发人员,那么首先你可以想象一下你想要什么样的团队领导者,然后将自己当成那个人去做。

忘记政治博弈,设法为他人给予有用的服务,现在就开始采取行动,不要颐指气使,也不要自以为是,保持谦逊和真诚的态度来帮助团队中的其他成员。

成为首席开发人员的意义

如何担任首席开发人员以及如何成为首席开发人员其实是同一件事,所以,下面的建议不但适用于那些已经成为首席开发人员的登顶者,也适用于那些想要成为首席开发人员的攀登者。

现在我们就来说一说首席开发人员最重要工作

…让他或她的团队取得成功。

不光团队要取得成功,而且尽可能地也要让团队中的每一个个体取得成功。

如果你想成为一名优秀的首席开发人员,那么你的主要工作——也是你最重要的事情——就是尽可能多地让你身边人取得成功。

如果你能做到这一点,那么你就成功了。

但是,该怎么做呢?

以身作则

Depositphotos_28448455_m

一开始一定要以身作则。

不要指挥别人怎么做,要做给他看。你希望别人做什么,那么首先你自己先做,然后让他们明白为什么这样做是有益的。

不要威逼利诱,也不要争得面红耳赤,如果你真的想激励大家,那么你先做给大家看,用实际行动和得出的结果证明给大家你的方法是最好的。

如果你想要团队中的开发人员写出更好的代码,那么首先你自己的代码要写得更好,并且为此你付出的努力有眼可见。只有这样,你制订的编码标准才能令人信服。因为他们看到你的代码,会受到鼓舞,会心甘情愿地写出和你一样质量和可理解的代码。

如果你想要团队中的开发人员编写单元测试或实践测试驱动开发,那么你最好不但能先做出表率,还能用具体的结果表明你所推荐的方法是最好的。这需要言出必行和脚踏实地,光是传教式地说你听到或读到所谓最好的方式是行不通的。

如果你想要团队中的开发人员能够开发他们的技能和个人发展,那么你最好能够做个榜样。你应该比别人花更多的时间用于学习新的东西,与其他人分享你所学到的内容。你应该写一些博客分享你的学习进展,并鼓励大家一起来学习。

问题的关键是,如果你希望大家能跟随你,那么你必须先带头,以身作则。

敢于承担责任

当领导者犯错的时候,谁该承担责任?

对,是领导者。

当团队成员犯错的时候,谁该承担责任?

对,还是领导者。

如果你想成为首席开发人员,那么你必须敢于承担责任,不仅要敢于承担自己的错误,还包括团队其他人犯的错误。

我知道这一点很多人打心眼里是不认同的。我也知道,当我建议大家为别人的失误承担责任时,大多数人是嗤之以鼻的,但我依然要实话实说。

如果你不愿意承担责任——我的意思是全部的责任——不愿意承担团队的失误,那么你就不应该成为首席开发人员。

不过这并不意味着你就不能成为一个好的团队成员。也不能说明你不能为团队的成功做出贡献和帮助别人进步。

我只是说,如果你想成为首席开发人员,那么你必须做好准备——心甘情愿地——承担团队失败的责任。

一个好的领导者会欣然接受这个责任。

一个好的领导者敢于一力承担责任,保护团队免受指责,这样团队成员就可以自由地冒险,这样团队成员就不会浪费多余的时间为别人擦屁股。

就像我之前说的,领导职位并不适合每一个人。

哦,现在又多了一个承担责任。

猜猜团队的成功会归功于谁?

领导者?

No。这是一种约定俗成的单边协议。

是的,领导者是团队成功的主要负责人,但他或她从不将功劳占为己有。

相反,一个好的领导者会将成功归功于团队。

还记得我有说过成为首席开发人员是一个吃力不讨好的工作吧?

促进交流

一个良好的首席开发人员不仅要为团队的行为负责,而且还应该充当与其他团队、管理人员、业务人员及其他任何需要进行交互的人的代言人。

这并不意味着,首席开发人员就是唯一一个与团队外的人交流的人,但首席开发人员往往是负责传达团队的愿景和想法给他人,特别是非技术人员的人。

作为首席开发人员,你得能清楚有效地与非技术人员交流技术解决方案,同时避免冲突。

Young brothers talking with tin can telephone on grunge backgrou

这不是一件容易的事,特别是当你要说的是坏消息的时候。人们往往喜欢迁怒于报信者。

与“业务”进行沟通的最佳方式是,首先确保自己能够清楚地了解正在构建的软件的具体进展,以及正面临的技术挑战。

你越明白这是怎么回事,就越容易传达给别人。

这意味着,你需要不断地去了解大家都在做什么,以及面临着什么样的挑战,并且在解说的时候你还需要转化成非技术术语。

这需要练习,但却是首席开发人员必备的技能,因为大部分正在构建的软件需要与利益相关者和客户进行沟通。

特别是当你需要指出为什么“业务”的某个点子不可行或不是手头问题的正解时,情况变得更加困难了。

人是很容易屈服于权威之下的——然后要么承诺交付不了的东西,要么同意一个不认同的解决方案——当然也有人敢于大胆反对那些站在你技术优势对面的任何人,但你得坚持立场无所畏惧。

优秀的首席开发人员能够理解业务需求,能够与决定或立场背后的非技术推理产生共鸣,然后提出一个明确,理性的论点,以促成提议的解决方案。

优秀的首席开发人员知道什么时候可以妥协——可能不是最优的,但会避免不必要的冲突,也知道什么时候应该坚定立场,为了不让团队不堪重负或不承诺那些不能交付的任务。

优秀的首席开发人员能促进团队和其他部门间的交流。

帮助大家做到最好

首席开发人员对团队造成的最有利的影响是,他们的存在能够提高其他开发人员的执行水平。

如果你想成为一个好的首席开发人员,那么你不仅需要不断促进自己的个人发展,还必须激励其他人和你一起进步。

作为首席开发人员,你应该每天花时间学习和阅读最新的技术和趋势,以便于尽可能地跟上技术技能当前的发展脚步。你应该确保你对于你的团队正在使用的技术理解得最为透彻——如果可能的话——这样你就可以成为你的团队的可靠支持,你就可以自信地引导他们往更好的技术方向前进。

同样地,你应该鼓励你的团队成员开发和提升他们自己的技能。你应该给他们资源来做到这一点。你应该分享你正在学习的东西,并指引团队成员以帮助鼓励他们专业化地成长。

你应该尽一切可能来确保你的团队具备成功所需的要素,同时你还应该表现出你就自己而言非常关心他们个人的成功和成长。

你的关心会引起他们的重视,更高水平地完成工作任务的可能性也会更大。

成为一个首席开发人员并不是一件容易的事

我在这篇文章的开头就提到,你必须得问问自己你是否真的知道成为首席开发人员意味着什么,或者你是否真的想成为一名首席开发人员。

这工作不容易,甚至可能是吃力不讨好的,它可以涉及到很多的牺牲,但如果你关心其他人的成功,并愿意投入时间和精力来帮助大家做到这一点,那么你有潜力成为一名伟大的首席开发人员。

但是,如果你只是追求更高的职位,或者是可以指挥别人怎么做的权力,或者如果你的动机完全是基于成为首席开发人员之后的加薪,那么你会发现自己在这个位置上步履维艰。

所以,好好地想一想,你是否真的想成为首席开发人员,如果你已经下定决定的话,那么要谦虚,要敢于承担责任,要尽你的力量使你的团队——以及团队成员——尽可能地成功。

译文链接:http://www.codeceo.com/article/tips-for-leader-programmer.html
英文原文:Some Advice On Becoming a Lead Developer
翻译作者:码农网 – 小峰
转载必须在正文中标注并保留原文链接、译文链接和译者等信息。]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 以下是从一名小白快速成为资深程序员的一些建议: 1. 学习编程语言和工具:作为一名程序员,必须掌握至少一种编程语言和相关工具,例如IDE,文本编辑器等。建议初学者先学习易于理解和入门的编程语言,例如Python或JavaScript,并且学会使用一些基本的工具,例如Git和命令行。 2. 掌握算法和数据结构:算法和数据结构是编程的核心,它们可以让你编写更高效、更简洁的代码。建议学习基础的算法和数据结构,例如排序、查找、链表等,并掌握它们的时间复杂度和空间复杂度。 3. 参与开源项目:参与开源项目可以让你学习到其他优秀程序员的代码,了解行业最佳实践和编码规范。在Github等开源平台上找到感兴趣的项目,开始贡献代码和解决问题。 4. 阅读相关书籍和文档:阅读相关书籍和文档可以让你深入了解编程语言和工具,以及其他相关的技术领域。建议读一些经典的书籍,例如《深入浅出Python》、《JavaScript高级程序设计》等。 5. 持续练习和实践:编程是一门实践性很强的技能,需要不断地练习和实践。可以尝试解决一些编程练习题、编写自己的项目、参加编程比赛等。 6. 学会自我学习和解决问题:作为一名程序员,你需要不断学习和解决各种问题。可以学会使用搜索引擎和技术社区寻找答案,并学会提出明确的问题和进行有效的调试。 ### 回答2: 想要从一名小白快速成为资深程序员,以下是几点建议: 1. 学习扎实的基础知识:作为一名程序员,必须掌握基本的编程语言、数据结构和算法等基础知识。可以通过学习相关教材、参加在线课程或参加编程培训班来打牢基础。 2. 实践项目:理论学习只是第一步,实践才是提高的关键。通过完成一些编程项目,不仅可以强化知识,还能锻炼解决问题的能力和思维方式。可以找一些开源项目或者自己构思一个小项目进行实践。 3. 持续学习:程序员是一个朝气蓬勃的行业,技术更新迅速。要想成为资深程序员,需要持续学习和跟进最新的技术趋势。阅读技术书籍、博客,参加技术交流会议和培训,保持学习的动力。 4. 参与开源项目和社区:积极参与开源项目和技术社区的讨论,你能从资深程序员的经验中学到很多。这也是锻炼自己技术能力和交流能力的良好途径。 5. 寻找导师或 Mentor:找一位资深程序员作为导师,能够帮助你指导学习方向,解答疑问,并提供实践经验和建议。 6. 勤于总结和分享:将学习过程中获得的经验和知识以博客、技术文章等形式进行总结和分享。这样不仅能够加深自己对知识的理解,还能提升自己的表达能力和影响力。 最重要的是,要坚持不懈地学习和实践,不断提升自己的技术能力和思维方式,才能成为一名资深的程序员。 ### 回答3: 要从一名小白快速成为资深程序员,关键在于持续学习和实践。以下是一些具体建议: 1.选择合适的编程语言和领域:根据个人兴趣和市场需求选择一门编程语言,并专注于相关的领域,例如移动应用开发、网络安全等。熟悉一门语言和领域将有助于深度学习和提升技术水平。 2.系统学习编程基础知识:打好基础是成为资深程序员的关键。学习算法、数据结构、计算机网络等基础知识,并掌握常见的设计模式与编程规范。 3.通过实践不断积累经验:通过编写实际项目来应用所学知识,并逐步提升自己的编程技能。参与开源项目、参加编程比赛等都是不错的实践机会。 4.持续学习新技术与工具:学习不同领域中的新技术和工具,保持与行业发展的同步。阅读技术书籍、参加技术社区、关注技术博客等都是获取新知识的途径。 5.与他人交流与合作:活跃参与技术社区和开发者社群,与其他程序员交流、学习和分享经验。通过与他人的合作,可以了解不同的解决方案和开发方法。 6.注重代码质量和项目管理:学会编写高质量、易于维护的代码,并熟悉常用的版本控制工具与项目管理方法。良好的代码风格和项目管理能力将提升职业水平。 7.不断挑战自己:设定目标和挑战,不怕失败,勇于尝试新的技术和项目。不断超越自己,拓宽自己的技术范围与视野。 成为资深程序员需要时间和经验的积累,没有捷径可走。因此,持续学习与实践是最重要的一点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值