王辉的博客

是什么让我对未知世界始终充满热情?

一个享受编程的程序员为什么会有转管理的念头?更何况技术精进的好,不愁找工作,不愁加薪,还受领导重用,同事尊重,名利双收。我想通过亲身经历,说说转型管理的心路历程。

转型管理,这个念头来自一次失败的创业经历。从那以后,意识到了,再好的技术,如果解决不了用户的痛点,投入再多的心血,也都是无用功。这是走向管理最重要的契机。除此之外,还有好奇心的驱动,做了七年多的开发,技术仍可以进步,但吸了水海绵,越吸越难,在管理这个新领域,很多知识都是新的,一碰就能吸进去。第三个原因,是想体验帮助人的快乐,程序员死磕代码,带来的是自我的成就感,做管理,能让光和热,温暖到更多的人。

转管理更能创造价值。相对于程序员来讲,经理有更多的牌可以打,让程序员敲出的代码,能解决真正的问题,好钢用在刀刃上。这里所说的牌,是对项目更大的把控。首先,作为技术经理可以和产品经理及其他业务人员,围绕产品进行更深远的规划,因为技术经理可以从日常的事物中抽出身来,把花在机器上的编码调试时间省出来,抬头远眺,评估和管理产品可能遇到的风险。其次,可以利用所掌控的资源,为项目的进展保驾护航,特别是当项目遇到困难的时候,有权利调配研发力量,对产品进行迭代。最后,随着经历不断丰富,对产品,项目管理,技术实现等各个方面洞察力会不断增强,能从产品研发的全方位确保价值的产生。

转管理更能博闻强识。程序员满足自身的求知欲,断然不是问题,这得益于技术更新换代的高速度。然而,程序员要做的优秀,最保险的是在技术领域深耕细作,这也往往限制了程序员对其他领域的探索和发现,失去了达到新高度的机会。做技术经理,除了对技术积累的要求外,有机会也有必要触及更多的领域。培养情商,有利于沟通;知晓心理学,有利于增强领导力;储备金融知识,有利于判断企业的发展潜力;学习决策组织管理,有利于在不同的机构不同的环境中游刃有余。自从转了管理以后,我发现了另外一片知识的海洋,享受着学习的快乐。

转管理更能发现意义。写代码也好,做产品也好,达到职业巅峰也好。日出日落之后,是什么让你觉得你做的事情有意义。人作为一个社会动物,我觉得通过人与人之间的相处更容易找到意义。转了管理,考虑的不仅仅是自己,开始懂得照顾他人,关心团队的业绩,队员的成长。在对团队坚持不懈的支持下,团队取得的卓越绩效,队员的稳步成长,比独自撸代码战胜难题,更能带来满足感。

上面说了我从程序员转型管理最重要的动机。然而我并不想盲目鼓励所有的程序员都去着急的转管理。这里有两个很重要的原因,首先,程序员和技术经理,不是黑与白的对立。管理特别是在技术领域下,需要程序员时期技术的沉淀,这样一来能更加深入的理解程序员这个群体的需求,二来帮助你得到程序员们新的信任,三是有助于敏锐的发现项目中暗藏的技术风险。

除了需要技术积累,选择管理并不是对所有的人都适合。如果你喜欢专注起来做一件事,喜欢钻研事物的本质而成为某个领域的专家,比如某个数据库,或者某个编程语言。做程序员最大的幸事,就是你既可以做自己喜欢的,也可以衣食无忧。

为什么要转型?如果你还没有答案,也不要过于纠结,大不了试一试,喜欢了就接着做,不喜欢可以继续做回工程师。这其实不但可行,反而会有意外的收获,因为管理,可以使你成为更好的工程师。因为从事管理,可以锻炼你更加全面长远的看待问题。也可以让你接触到更多的问题及解决办法,进而增加处理问题的经验。凡是没有绝对的黑和白,不同的岗位有不同的优缺点,如何找到合适你的,这是一个值得整个职业生涯都去考虑的事。

从程序员转了管理之后,我一部分的管理知识来自试错的经验积累,一部分是领导的言传身教。它们虽有可取之处,却难免低效片面,为此我没少探索理论的支持。在苦苦寻觅的过程中,发现了欧洲管理学大师马利克所著的《管理、成就、生活》。认识到了管理可以作为一种职业,通过其四大基本要素:任务,工具,原则和职责,进行系统化的学习。

管理的任务,指的是为组织取得理想成果,而必须做的事情。管理工具可以帮助更好的完成任务。管理的原则,决定着任务完成的质量和工具的使用效率。前三者积累知识,反复操练可以习得,而管理的职责,追求的是德才兼备,需个人树立正确的价值观。

原则

关注结果:关注结果就会为做的事情负责
为整体做贡献:把集体的利益放在首位,有利于团队合作
聚焦关键:面对分散精力和浪费时间的威胁,把精力聚焦在最关键的事情上,才能出成果
利用优势:好的管理者识别并发扬属下优势
信任:相互信任的团队,能同甘共苦,在出现管理错误的时候,才能挺过来
正面思考:有志者事竟成,越是正面思考,越容易激发人们去关注解决方案

任务

制定目标:制定目标指明集体前进的方向
组织:怎样组织,才能让大家把注意力放在客户花钱的地方,让员工,高管做最应该做的事情
决策:好的决策包括制定和执行
监督:虽然不讨好,但监督可以避免丑闻或灾难性的错误
人的发展:做什么事,都离不开人,所以首要任务就是人的发展

工具

会议:会议可以做到高产出,它来源于对结果的追求
报告:写下来便于更深入更有效的沟通讨论
工作设计与任务控制:为人才分配合适的工作,并帮助他们聚焦在最重要的事情上
个人工作方法:如何管理时间,构建记忆系统
预算和预算编制:预算会使长远规划、蓝图、战略、创造力与创新变得更清楚
绩效评估:真正的目的是通过回看做过的事情,发现对方的优势
系统的“垃圾”处理:清楚冗余才能持续发展

虽然学习可以系统化,但管理者所处环境不同,自身情况有别,学起来一定要灵活应变。这也是作者从头至尾时刻在强调的学习心态。

要想和别人有效的沟通,最重要的是把自己的想法清晰的表达出来。金字塔原理,帮助你有逻辑的组织思维,更加容易的让人准确的接收到你的信息。

在读芭芭拉这本书之前,我曾经上过一个清晰商业英语写作的课,当时学到的最重要的一课是,写文章要开门见山。从那时起,逐渐明白通过改变文章的结构,可以达到有效沟通的目的。话说回来,之前写了那么多作文,应该也是有结构的,议论文,记叙文都练过,可能当时太过书生气,从来没想过结构能提升沟通力。

再之后,开始从技术岗转管理岗,查了一些MBA的书,才偶然的碰到了培养逻辑思维的这本《金字塔原理》。看完之后,如获至宝,理论结合实践,慢慢体会到了金子塔结构的优美之处。

当用金字塔结构沟通的时候,要从上往下走,先说出你的结论,然后再给出支撑你结论的原因。举个例子,给老板汇报解决方案。用金字塔的结构讲,就是我想选方案甲,因为它能满足产品的需求,并且相对方案乙来说,开发周期短。如果你采用另外一种先说原因的方式,洋洋洒洒说了很多方案甲和方案乙的各种优劣,最后再告诉老板说,“综上所述,我们应该选甲方案”,年轻力胜的老板应该能听你说完,安逸一些的可能都睡着了。

金字塔结构为什么好用?因为它对大脑的处理信息的方式很友好。你一旦告诉了结论,大家就会自动的带着问题听你讲下去,并且因为你交了底,听众知道什么信息,需要留意,什么直接可以丢弃。相反,如果你把结论当成悬疑破案片,留到最后,听众首先不知道接收的信息是否有用,所以就不得不存储这些信息,大脑的短期记忆是有限的,想记住更多的信息,就得更费力。

除了对大脑处理信息有帮助外,金字塔开门见山式的结构,也可以让受众去选择,我们是否要展开某个话题,如果受众觉得话题已经很有利的证明了结论的话,也可能直接要求跳过,进入下一个需要深入探讨的话题。

金字塔原理的运用范围,不局限于开会,写作,演讲等沟通领域,还可以在解决复杂问题的时候,通过建立逻辑树,帮你理清解决问题的思路。这篇文章,抛砖引玉,关于具体的金字塔内部结构,如何构建金字塔,就留着您和本书作者芭芭拉在书中相遇时在交流吧。

克里斯多夫的书,帮助拥有亲密关系的人们,尤其是伴侣,认识他们之间的关系,并且教大家如何通过这层关系找到人生的启示。

亲密关系的发展,一般分阶段。从甜蜜开始,经历困难,越不过去的分手道别,越过去的经历内省,或许能得到人生的启示。不过,它也可能会出现倒退,进而有新的内省和启示。

书中下面的几段见解,对我的启发比较大,和老婆探讨过,她也很认同。

当下的愤怒和过往的伤痛

当下的愤怒可能会让你喘不过气,但是如果你能跳出愤怒的包围圈,冷静的分析一下事情出现的根本原因,事态很有可能会朝更好的方向发展。

眼前的争执点燃了Ta的愤怒,很多时候只是外因,内因,来自Ta过往经历,尤其是童年的家庭经历。缺乏安全感,信任,关爱,会给人留下伤痛。而当前的愤怒,有可能是旧伤复发了。

如果你能这样想,而不是针锋相对,你就能更加容易的面对当前紧张的局面,进入一个安静的,深层次的交流,敞开心扉追寻Ta这么做的原因。一旦走上了平静的,探索的道路,你们就能发现过往对你现在的影响,最后达到疗伤的目的。

只有双赢才是唯一的健康解决办法

你拿出了很多论据,现在的,过往的,终于证明Ta错了,Ta出于负罪感,做出了你要求的改变。这种解决冲突的办法,表面上平息了战火,却留下了再次冲突的种子。双赢,追求的不是谁对谁错,而是通过深层次的沟通,发现彼此心中的伤痛,互相抚慰,共同治愈。

有人牺牲,就有人放纵

你做了很多你不愿意做的事情,但是这样可以帮你避免冲突,这时候你是牺牲者,Ta是放纵者。这种牺牲,会把你们的亲密关系拉向更危险的境地,因为有一天,你可能会爆发,说我给你做了那么多,而你却还视而不见。

更糟糕的是,一个人牺牲的越多,另一个人就放纵的更多。换句话说,你的牺牲,喂养了Ta的放纵。

牺牲的对立面是享受。如果你是在享受做一件事,你不会注意到时间的流逝,也不会积累你心中的怨气,会让你们的亲密关系增添更多的轻松惬意。辨别牺牲和享受最容易的办法,就是问问你自己,你是不是发自内心的愿意做这些事情。

学会接受

在遇到自己不想面对的事情的时候,我们通常的反应是,逃避,愤怒,或者懊悔。然而,事情的发生都是有因有果的,当它们出现的时候,也就是瓜熟蒂落的时候,接受他们的出现,会让我们变得更加平静,自然。

学会接受,就学会了欣赏,让风再吹一会,让雨再下一会,让雪再飘一会。

作为结尾,在亲密关系中,Ta是一面镜子,你能从镜子中看得到,你旧时的伤痛;Ta是一个桥,你能从桥上,到达你不敢去的地方;Ta是爱的启示。

高效的培养新人,要从两个方面考量,一是新人得到提升,二是老师没有过度消耗精力。我从一个真实的错误中学到了一条很宝贵的经验,能二者兼顾。那就是在每次授业解惑前,必须备好课。

有一次,我回看新人的代码,发现不少需要改进的地方,就找到他手把手的演示如何把代码写的更加简洁。因为是临场讲解,有的问题挖的深,有的拓的宽,不知不觉,别的同事都下班了,就剩下了我俩,还有对面暗地里观察我们的老板。事后,老板找到我,说我在新人身上花的时间太多了,自己的任务都给耽误了,他给我分享了一个技巧,帮我更加高效的带好新人。

这个技巧,就是在每次授业解惑前,必须备好课,切忌临场展开大规模的讨论。备课的目的,是事先抓住问题的关键,理清讲解的范畴和思路,规划好哪部分手把手教,哪些让新人自学。这样做的好处,一是把信息更加简洁的传递给新人,并且给他自学的机会,留给他足够多的时间去消化吸收难点。一旦新人能通过一部分的自学解决问题,这就能节省老师的时间。

然而,要彻底的发挥这个技巧的威力,有一个前提,就是老师得事先充分了解到新人遇到的问题,和新人的水平。如果问题了解的不清楚,本来是语文课,结果备成了数学,没用。新人自学能力不足,你甩给他一堆资料,他也学不会。

除了这个前提,还有后续的反馈。新人自学一段之后,要从新评估他对问题的理解水平,作出相应的备课调整,进而再讲解。

高效的培养新人,就是要建立一个,从了解,备课,传授,到从新评估的循环机制。刚开始带新人的老师,可能在每个阶段上都要花些心思,这个循环的周期也可能是一天,两天,或好几天。随着老师带人阅历的增加,不同阶段之间的衔接会更流畅,带人的效率也会更高。

今年参加了法国最佳程序员(Meilleur Dev de France)比赛,结果第一轮就惨遭淘汰,非常可惜,总结一下失败的教训,希望下一年能比的更好。

之所以止步第一轮,有几个主要原因。

首先,是太在意得失了。第一次取的了不错的成绩,大伙包括自己,都有很高的期待。开赛前,老板还给我说,如果进了前二十就请客吃饭。越是在意得失,就越难集中注意力。

除了心态,另外是解决问题的方法。越是到关键时刻,越不能像无头苍蝇一样乱撞。乱撞的成本太高,这次浪费了不少时间,纠结是大于等于,还是纯大于的一些操作上。越是乱,越要冷静的思考,可以画个图,演算一遍算法,每个细节都要有理论的支撑。

冷静之后,还要提高考虑问题的层面,不要着急的直奔方案,而是要先申清楚所期待的输入输出,避免做一些错误的假设。如果开头的假设,是不正确的,就像盖楼一样,盖得再高,也要推到重做。具体的来讲,就是可以花上一分钟的时间,把题目举得例子都先扫一遍。

最后一个原因,就是生搬硬套。这些年来,大大小小的比赛也参加了不少,自己也积累了一些常用问题的解决办法。可过多的依赖已经写过的代码,也是有风险的。已经写过的代码,往往是经过提炼和抽象,解决一类问题的。如果要重用这些代码,必须把现有的问题转化成既有方案能适用的样子。这个转化的过程,很容易拖慢解题速度。比如这次我遇到的问题,其实是一个很简单的深度遍历的问题,如果生写代码,几分钟也就能搞定了。我却过度的依赖一个已有的框架,做了一些转换,结果转换的过程中,出现了一些差错。

可归根结底,还是平时训练的少,自己如果真的掌握的已经炉火纯青,也不至于在压力的情况下就败下北来。

失败的滋味,很不好受,特别是这种有排名的比赛,就觉得你都工作七八年了,还比不过,那些还没有毕业的大学生,情何以堪!当天晚上回来,就一直懊悔,为什么会犯那么低级的错误。虽然会难过,但也会暗示自己:不能只注重结果,过于的在意输赢,很容易就导致一个人在失败的时候,完全放弃。参加比赛,更重要的是激励自己平时的积累,保持思维的敏捷,学习不能停。失败了,就意识到了不足,继续加油!

在Murex工作了七年,到了说再见的时候。在这里,回顾一下在Murex的成长历程,解释一下离开的原因,也对未来做个展望,希望能对大家有所帮助。

成长

七年里,得益于优秀的同事,我一直在成长,回想起来,有几个关键节点,分别是积累的效果,主人翁意识的觉醒,以及对程序员价值的探索。

积累的效果

日积月累,虽然每次进步特别小,但慢慢的,会有惊喜。拿每周四中午的CodingDojo来说,虽然有时候,两个小时,一个问题也解决不了,但慢慢的,从心底领会到了,动态编程的奇妙,优先队列的强大,双指针的无敌搭配。这一点一滴的积累,加深了我对数据结构和算法的理解。注重积累,不仅让认知能更深一层,而且当我们注重点滴的进步,而不是最终结果的时候,我们能更好的克服拖延症,更好的保持长期学习的动力。

除了CodingDojo,还参加了很多其他的活动,当初参加的Scala学习小组,就为我今天找到新工作打下了基础。还有那么多次的CodingGame比赛,HashCode比赛,让我接触到了工作中不可能碰到的离散优化,人工智能,今天没有用,搁一边暂且不说,视野得到了扩展,说不定哪天就用上了。

主人翁意识

主人翁意识,简单的说,就是自己对自己负责。职业规划,工作环境,没有人会为准备好一切,你必须主动管理。

这个意识,工作久了,才容易体会到。起步时,需要学的东西很多,做完,领导会分配下一个,让人应接不暇。上手后,有了时间和精力,观察身边的人和事,并非都如意。可能所在团队目标不清晰,可能代码中测试太少,可能同事间的分享不够多,可能会议效率低。如果你认为这些都和你没关系,或者天真的以为领导们会解决这些问题,那么等待将会是漫长的。

主人翁意识,就是主动找路子。我曾做过一次尝试,为了营造交流的氛围,办了一个Java技术交流会。不仅结识了很多大牛,还改变了身边的技术环境。

程序员的价值

最后一个关键节点,是对程序员价值的探索。如果说前两个节点,注重的是自身技术的提升,自我意识的培养,那么关于价值的探索,让我跳出了我的范畴,因为我终于体会到,一个人的价值,不仅仅取决于一个人本身的能力,更多的是这个人如何用他的能力,去帮助其他人

离开

离开一个工作七年的地方,是一件不容易的事情。因为离开的不仅是企业,还有朝夕相处的同事,朋友。究竟是什么原因,让我做了离开的决定,起初的时候,我心里也不清楚,但总有一个声音在暗示我,要换换地方了。后来明白了,原因有很多个,一是为了探索。换个地方可能更好,也可能更坏,没有人能预测未来,这就是探索,有风险也有回报。其次,就是当你欣赏的人,陆陆续续都走了的时候,你留下来的动力就会越来越少了,确实有一些人有这样的魅力,能带你走。

探索

首先是不同的企业所处的阶段不同。Murex,已三十有余,成熟的商业模式,遍布世界各地的客户,毋庸置疑,这是一家成功的企业。还有的企业,可能在竭力生存,也可能在兴奋的扩张中。我想置身于这种环境去体验初创的感觉。也希望在这种多变的环境中,多作贡献。

其次,就是探索一个新的行业。有些人讨厌金融,说玩来玩去都是钱,但金融里能让我们学会管理风险,衡量一个东西的价值,培养投资者的思维。除了金融,还有很多有意思的领域值得尝试,比如电商,我想尝试一种新的行业,也解锁一些新的技能。这里插一句话,我们应该珍惜和利用作为程序员的优势,因为我们几乎可以从事任何行业。

最终,就是探索一种新的做软件的方式。传统的软件行业,软件带来的效应更多的是数字化,自动化,提高效率。而大数据背景下,软件改变的是人们思维方式,以数据为导向。我想探索大数据公司中,数据工程师,数据分析师,数据科学家,还有产品,销售的人们是如何工作的。除了数据导向之外,还有软件交付的模式,传统的交付模式,是把软件安装的客户端,SaaS是一种基于云计算的交付模式,用户不需要安装任何东西,打开网页就能使用,它的好处是软件的交付周期可以更短。

探索,表面的意思,是尝试一些新的东西,初创也好,大数据也好,其实更深次的意思,是一种危机感,怕跟不上行业发展的速度。

欣赏的人走了

我比较欣赏的同事,从我离开的前一年,就有人走了,当走了第一个的时候,我觉得是他有自己的打算,后来,离开了第二个,第三个,第四个,最后就是带领我们往前冲的领导也走了。每走一个,就代表着朋友就少了一个,就意味着能当你老师的人少了一个。直到最后,你会发现能和你一起玩竞技编程游戏的人没了,能和你讨论Clojure的人没了,能交给你如何使用strace命令追踪系统调用的人也走了,留下了一丝悲伤,这时候也基本是自己要走人的时候了。

感谢

说到最后,还是要感谢Murex给我带来的七年美好时光,还有在Murex交下的那么多好朋友。也许有一天,我在外面混久了,发现所有的决定都是错误的时候,还希望能回到这个梦开始的地方。

0%