成为有影响力的开发者

腾讯会让新入职员工采访一些老员工,通过访谈方式让新员工更好的融入公司的企业文化,也能更有针对性的面对未来的工作。在腾讯混了三年,终于混成老油条了,通过近些年的工作经历,也来谈一谈如何成为一个有影响力的开发者。

关于技术

每个有追求的程序员都想通过有“技术含量”的项目来锻炼自身的技术水平,不过所谓的“技术含量”的工作不多,而且需要在普通的项目上证明自身的能力后才可能有机会参与设计更重要的项目。所以先来谈谈如何磨练自身的技术水平,面对一个任何一个开发者都能胜任的项目,不同的开发者进行开发,虽然可能最终都能完成一个项目,但其过程却体现出很多不同点。

首先从代码质量角度,优秀的开发者可以以更为优雅的实现方式,写出更漂亮的代码,更具灵活性更易扩展。小到一个变量的命名,大到模块的架构设计,设计细节的考虑,都有高下差异,考虑多少对一个人成长也至关重要。

另外,对于周边模块,开发中了解越多,越能掌握项目的主动,把控全局,在一个团队中,系统模块了解越多的人,越有可能成为别人依赖的对象,这对影响力的增加至关重要。

另外,即使是技术含量不高,也有很多可挖掘思考的细节,也许每一个细节都不重要,但养成良好的习惯,日久天长,很多年的积累过后,成就便会逐渐区分出来。

关于独当一面

作为新人,在工作岗位上最容易产生依赖心理,对一个函数的声明、一个模块的设计,因为不熟悉,总需要在各种问题上有人把关,但如果经常被动的跟着别人的要求去做,一旦产生依赖习惯,便很难自己独立做出一些决定,别人也不会放心把整个模块全权交给自己去完成。从这方面考虑,当新人即使各种不熟悉,在面对一个问题或者决定,也最好能够根据自己已经知道的情况做出一些自己的思考和决定,让导师或者leader做一个决策者,指出自己方案的不足,而不是做一个指挥者,指挥自己去做事情,随着对整体环境的逐渐熟悉,自己做的决定也越来越靠谱,而且会让leader感觉自己面对问题有自己独立的想法,基本上都很靠谱,也更容易放心的交给自己独立负责模块,逐渐建立相互之间的信任关系。

关于分享

所谓的影响力,说白了也没什么神秘,努力让更多的人认识自己,认可自己。这就要把握一切机会展示自己,其中一项很重要的方面就是“分享”,想让人更快的认识自己,就要认识到自己的长处,或者努力让自己在某一方面成为专家,第一步学习,第二步应用,最后就要把自己的所学分享给他人,当周围的人对算法不是很擅长,可以精研一些算法。当周围的人对设计不在行,可以学习一些并在项目中合理的应用一些设计模式。最后把这些都分享给他人,一般开发者对于自己所不擅长并且很有用的分享都抱有开放的态度,一旦自己成为别人眼中某一方面的“专家”,就会有更多的人咨询探讨,为了保持这份“专家”身份,就会促使自己更加精研这个领域,从而某一天发现,自己真的成了专家。

关于主动性

每个人都希望把自己的工作交给“省心”的人,不需要自己操心,当接到一个任务,能够主动cover到任务的各个方面,当自己cover不住的点,就会到leader手里,一个人能cover更多的部分,leader也就越省心,也就越能体现自己的能力,积极主动的去cover更多的方面,也能更大程度上增加自己的影响力。

另外主动性还包括主动优化项目中的不足,每优化一次就是一个亮点,真正的思考和优化能力,是不可替代的,也是别人所欣赏的。

关于沟通

在日常工作和项目中,沟通也是至关重要的一项能力,沟通的时候你需要了解对方所希望知道的,对一个产品解释某个代码中的细节,可能对方并不关心,只关心结论,也可能对方想要知道技术中的难点,这事也需要简化为对方能够听懂的方式,尽量减少对方的沟通成本,别人也会乐于与自己沟通。满嘴的高深技术细节,并不一定会让人觉得自己很牛,相反可能会觉得自己能力不足。

沟通的一方面也包括工作汇报,当你向产品或者leader解释工作的时候,需要突出难点,有理有据,一个会让人觉得自己的思路很清晰,另一方面也能展现工作中的难点,突出成绩。相反如果没有重点平铺直叙,不容易突出自己工作的难点,容易让人忽略,以为自己的工作很简单。

关于时间管理

当自己负责的模块越来越多,自己的影响力增大,找自己处理问题的人也会越来越多,这时候就需要考虑自己的时间,当自己一直被人中断处理各种问题,真正属于自己的工作时间就会变得很少,这时候就需要学习如何正确的处理中断。合理的安排时间,集中精力解决紧急并重要的问题,而且需要经常思考,如何把自己从繁重的无意义事情中解脱出来。

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计