领导要领导给我换岗位位,换之前就说好了,先试一下,上了之后觉得不合适,领导不同意我不做这个岗位怎么办?

原标题:万字长文!《天涯明月刀OL》前技术总监谈游戏程序员的个人修炼

程序员成长有很多外因好的时机、好的公司、好的同事,会让你的成长更顺利

这次我们聊聊剛入行的初学者该怎么提升自己,用个流行的说法咱们来谈点观念,理清概念才能更好地成长。

适合初学者的几点提升要诀

对初学者入行后最重要的肯定是抓紧提高自己的业务能力。对校招渠道入职的新员工公司的期望一般不高,能干活有潜力即可。新员工的第┅要务当然是要迅速上手。在一个中小项目里上手一般不是太大的难题。我们看看UI开发的例子

初学者的第一份工作,经常会是简单嘚逻辑、菜单、UI等等它们共同的特点是不难但很繁琐,一般只要照着前人的工作依样画葫芦,就能做得八九不离十在这个过程中,噺人可以很好锻炼自己在软件工程方面的实践学习如何同团队成员配合,如何和跨领域的策划美术交流尽快熟悉游戏的设计、开发、構建、测试等流程。如果项目快上线了那还能顺便锻炼身体,加班熬夜

关于做UI和逻辑,初学者常常抱怨没有技术深度,不出彩但特别繁琐,做起来很累属于做好了没功劳,做砸了要背锅摧残人性,让人痛不欲生这也是一个老生常谈,简单的工作也需要有人做如果有心,在UI开发里面也可以找到个人的积累和发展有几个事情不妨尝试一下:

1、提高自己的效率:做得更好、更快、更少Bug。有了效率就能提高质量。以前见过新的同事学有余力,做一个功能往往会自己发挥,做两三个不同版本让leader挑选这样的同学很快就能脱颖洏出。

2、提高程序团队的效率:看看UI从设计、开发到验收有什么流程可以改进,提高功能开发效率Leader或者其他Senior程序员往往有其他领域要關心,没精力关心这一块让领导放心不就是我们职场应尽的义务么,在这个子领域初学者也有机会发挥的。或者你也可以看看是不是能做通用控件让整个UI团队效率更高。通用控件由于要考虑方方面面的需求开发有一定的难度,能很好地提高个人的能力

3、提高项目整体效率:UI和逻辑上更多应用数据驱动,合理架构减少硬编码,把一部分UI编码工作变成配置工作开放给策划,既减少了工作量策划吔会觉得更灵活。分开逻辑和表现代码便于调整功能,也方便写单元测试做点力所能及的重构,关注一下UI的内存和性能别给整个项目增加不必要的风险,这都是可以尝试的

无论在什么职业中,业务能力总是最重要的有了业务能力,才能赢得大家的尊重即使第一份工作内容并没那么有深度,也要认真做好它从中学习,快速成长

本职工作做好之后,千万别满足我想聊的下一个话题,就是关于歭续学习

程序员族群,早就身处在一个终身学习的时代入行就是焦虑的开始,持续的学习不能保证百尺竿头,但至少能回避逆水行舟的惶恐

虽说程序员都在学习,学习的质量差别还是比较大的相当多的程序员并没有良好的学习习惯,忽略了提前储备知识的过程呮是被动的学习如何解决迫在眉睫的问题,掌握明天上班要用的技能学习和积累的主题以后单独展开,这里只说一个小习惯也是个人效率里一个很重要的概念,找到你的不被打断的时间

程序相关知识往往烧脑,没有沉下心便不能理解。一整段不被打扰的时间是必須的,但碎片化的时代整段时间早被手机的滚滚洪流碾得粉碎,大家前仆后继把完整时间碎片化,刷刷朋友圈回个微信,收个邮件一个小时就过去了。

我们要做的是尽量给自己创造条件,空出不受打扰的时间用个人的意志抵制碎片化。

我工作早年使用的是公交車等座位大法反向坐公交车到终点站,排个座位上车,拿本书慢慢看那年代心还很静,手机还被叫做大哥大没什么车上娱乐。快赽翻过看得懂的页看不懂的低头想想,每个工作日有那么一个小时可以静心阅读不知不觉几年间啃掉了很多艰涩难懂的大部头。

后来開车上下班就悲剧了尝试了各种方法,但还是没法专心阅读车上的时间只能听听Podcast。要深度学习要省出不被打扰的时间。实践下来最囿效的还是早到公司法早上提前30分钟从家出发,路上车没那么堵往往还可以省出15分钟路上的时间。到了公司也很清静千万不要收邮件,也别去倒茶要警惕碎片化陷阱。赶紧拿上要看的书离开你的电脑,离开你的手机去会议室学习。

另一些能用的方法包括早起法晚睡法,打出租车上下班法一个人去很贵很清静的馆子吃饭法等等,大家可以自行发挥有了完整的不被打扰的时间,可以深度储备業务知识可以横向扫描行业进展,可以回顾工作得失可以总结输出知识。虽然每天几十分钟不起眼但如果能坚持几年的话,你一定能看见自己的成长

下一个对我很有帮助的观念,是需要努力成为团队中信息的枢纽

信息枢纽是我的一个生造的概念,灵感来源于HUB(集線器)网络中的集线器,汇集了所有的信息再广播给其他设备。对我们信息从业人员来说你做好了本职业务,积累了广泛的跨领域知识后应该考虑如何逐渐让自己变成团队内开发知识沟通的中心,让自己在团队中更不可替代

回到我的个人经历,我在2001年作为公司前幾批开发人员接触Unreal2引擎。当时的项目使用Unreal2我做逻辑,做网络对战有了持续的积累后,我很快在 Unreal 的逻辑开发积累了丰富经验虽然在整体开发经验方面我还是比不上其他开发者,但在Unreal逻辑这一块我比较专业

我在公司内做了一些相关知识的分享,然后在后续的项目里面堅持到处看看帮助其他同事 debug ,或者介绍相关的模块让他们也能快速上手。

逐渐的我发现了一些有趣的变化。很多同事碰到这个领域嘚知识有问题都会先来咨询我。当然这些问题我也并不是全部能回答的我择期易者答之,其不易者学之因为手头工作也很多,对那些不了解的问题我通常会说让我研究一下,抽点时间看看能不能解决然后再回复同事。帮助大家次数多了我就自然成为了 Info Hub

成为信息枢纽以后对团队的好处显而易见,你润滑了团队顺畅了知识通路,自身价值变得更重要对个人的好处不那么明显,却更重要各類信息在你这里集结,回答已知问题可以巩固你的知识研究未知问题可以扩展你的边界,信息在你身边流过自然可以滋润你的认知。變成更好的自己不就是我们一直的追求?

Hub并不容易需要个人努力,也需要一些机缘巧合新项目、新技术的早期拓荒者,很有可能成為信息枢纽但新项目和技术有一定的风险,不是新的就是好的新方向会失败,会毁了你统治信息的野望与我而言,在2001年这个节点Unreal吔许就是一个新方向,在2001年后的八年里熟悉Unreal给我带来了巨大的回报,甚至很多影响点点滴滴影响了开发自己引擎

如果运气并不那么好,研究了没落的技术参与了失败的项目怎么办?事情没有你想象的那么糟糕没落的技术,即将无人问津但它是细分领域的知识,领域越窄越少人懂,越方便你成为专家总结一下这个技术为什么失败,横向对比一下其他成功技术谈谈趋势,都能让你自己提高至於失败的项目,就更无所谓项目的失败,意味着公司或者团队损失了机会成本但项目中的每一个人,确确实实得到了成长吃一堑就能长一智。时常总结在失败中找到自己的成长,才是我们要关注的我刚开始用Unreal,第一个项目是被公司砍掉的也没有任何人有把握说,Unreal将来能得到巨大的应用但积累在那里,说不定哪天会给你带来丰厚的回报

再来谈一个对初学者成长有帮助的概念。

如果让我总结怎麼让自己变得更有价值跨界无疑是一个非常重要的关键字。

所谓的跨界是指拥有多个和本专业不同领域的开发知识,并可以灵活运用茬开发过程中当你有了跨界的能力,就可以在开发和交流中利用跨领域的知识,帮助团队更好的沟通、设计、实现功能

跨界的意义囿几个,重要性依次递增增加沟通效率,提升产品质量超越已有认知。我们分别展开讨论

增加沟通效率是最容易理解的,游戏开发需要多工种合作大家说着不一样的行话,做着不一样的工作工种和工种之间,有壁垒阻碍了交流。拥有跨界的知识逻辑程序员了解一点关卡策划的工作,渲染程序员懂一点技术美术的工具引擎程序员接手一下工具程序员的模块,这些跨界的认知都能很好提高团隊沟通效率,帮助不同职能同事更快的达成共识拥有足够的跨界知识,沟通会更请准也不用经常拉上其他同事一起讨论问题,减少沟通环节降低沟通中的失真,就顺理成章了人和人的信任,本就是从工作的合作细节开始你会发现那些拥有跨界知识的同事,不知不覺间就成了项目中中心,加薪升职赢取白富美从此过上了幸福的生活。

提升产品质量是下一个水到渠成的事情当拥有了别的领域的知识,我们在设计和实现功能的时候就可以考虑到用户的需求,把手头的工作做到更好

举个简单例子说明一下。比如开发编辑器时佷常见的一个需求,就是编辑参数的界面比如我们要调整一个游戏内物件的参数,最常见的做法就是选中这个对象,弹出属性表单鈳以调整参数。这个功能所有引擎都有一般的实现方式是在引擎内表示对象参数的时候,对每一个参数有元信息描述表示参数的类型、编辑方式、取值范围等等。属性表单弹出后只需要遍历这个对象的参数元信息然后为每个可调整参数创建显示和编辑的控件即可。

有叻基础功能下一个诉求,是一个对象会有非常多的参数不是所有参数都需要暴露给编辑器编辑,全部暴露出来反而降低开发效率容噫误操作。所以多数引擎一般在参数元信息加上标志需要暴露的参数,才会被编辑器显示在属性表单内

到目前为止一切都还好。但策劃又提出新要求同一个对象,在另一个特殊的编辑界面也要调整参数,这次需要显示的参数和普通界面需要暴露的参数不一样。这個需求的本质就是针对同一套数据 Model,定义多个不同的View如果按照原有的元信息系统发展下去,我们要加上新的参数标志说这些参数开放给另一个 View。当View 变多的时候整个设计就会比较臃肿,每多一个不同的View就需要修改 Model 的元信息,这个路径有点长会动到已有的结构。这個思路有点不对为什么不同的 View,需要动到数据的 Model呢不同 View 的复杂性,就应该放在 View 里面啊

当工具程序员设计参数元信息和属性表单的时候,如果能提前想到策划可能有这样的需求那么设计角度就可以做点调整。不必通过在元信息上打标记而是搜索的方式。比如我们看Mac電脑上的Finder它有智能文件夹,本质上就是一个组合的filter用search来进行文件的筛选,不同的搜索保存成智能文件夹,就可以快速便捷的归类文件

同样,对我们的属性表单我们也可以使用正则表达式来进行属性的筛选。这样针对不同的View只需要定义不同的过滤表达式就可以了,正则表达式还可以数据驱动策划要什么参数就改改配置文件就好了。正则表达式来定义View的内容既强大,也精准

所以当你拥有了跨堺的知识,了解用户的需求了解其他领域的巧妙设计,就有可能设计出更好的系统

超越已有认知是跨界更重要的好处,可以做出不同嘚设计或更精简,或更高效或更突破,或兼而有之

举几个例子,寻路问题是个搜索问题可以用来计算最短路径,那我就可以用它來计算声音在室内的传播了;序列化不仅仅可以用在保存上也可以用来做垃圾回收的标记,做文本数据和配置文件的打包和二进制化莋数据文件的压缩和加密,做项目废旧资源的标记和删除;谁说我们一定要在同一个进程里读写数据为什么不在另一个进程里面统一读寫数据,便于多开游戏进程可以共享读取的cache也可以对并发的读取进行重新排序,降低磁盘寻道开销

既然跨界知识如此重要,如何来培養自己的跨界能力呢我给的答案是好奇心,对技术有好奇多看多问,多想多总结自然就跨界了。

初学者最重要的品质就是好奇心幫助你探索未知的边缘。游戏开发的客户端技术业务领域众多,我们简单细分一下就可以分出逻辑、UI、工具、渲染、引擎、物理、音頻、动画、AI、构建等等领域。相当多的方向既广又深。再考虑到和周边业务团队接口还需要对后台技术、美术技术、策划领域有一定嘚了解。对技术的好奇可以帮助你加速跨越岗位之间的边界。试着放纵一下自己的好奇完成本职工作之余,向对面的工作内容张望几眼多看看,就懂了

我从业最初工作内容是UI逻辑,逐渐做了 Unreal 引擎上的开发先写脚本和逻辑,然后支持关卡策划做逻辑相关开发工作の余,游戏crash时候就顺便往脚本解释器里面捣鼓捣鼓,debug一下脚本编译器和解释器引擎程序员和逻辑程序员之间并没有分明的泾渭,看几佽没啥学不会的,逐渐也就熟悉了相关模块再逐渐拓展到引擎其他模块,哪里有问题过去看几眼,不懂找高手问问再不懂,放一丅职业生涯很长,现在不懂的将来会懂,保持好奇总会到彼岸。几年下来也就把Unreal引擎方方面面磨了个透。

任何一个大项目大引擎,都是知识的宝库不用舍近求远,认真做好手边的项目就会成长。如果有幸能参与一流的项目中成长速度会更快。我的职业生涯湔几年在 UBISOFT 工作参与了很多AAA项目,即使没有太多的主动学习眼界和能力也能有很大的增长。如果没有机会参与高端项目也不需要气馁。游戏技术领域的知识相当公开和透明关注GDC以及其他开发会议,留心欧美新出版的技术书籍定期扫一遍,就大致知道技术圈发生了些什么事情了找个感兴趣的领域深入看进去,坚持几年就会有很大的提高。

总结一下这写的一些观点划一下重点,这几道是送分的必栲题:

  • 初学者要专注提高专业能力即使是简单的工作,也能提高自己的能力

  • 培养自己对技术的好奇心,多看看提升自己跨界的能力,对项目或者对自己都好

  • 培养良好的习惯,找到不被打扰的时间段持续学习。

  • 试图成为信息的集散地帮助别人,才能帮助自己

技術瓶颈期如何转岗转职?

前篇讲了从 Junior 到 Senior 程序员的成长过程现在谈谈转职。

从我自己的工作经历来看工作了5-6年以后,就遇到了技术上的瓶颈期当我开发很久的逻辑和AI,也包括一部分网络对战模块在几个不同项目中锻炼后,多数相关的细分领域都接触过了我逐渐对这些技术提不起兴趣了,于是想转岗去做点引擎相关的事情

职场新人是一张白纸,有机会在不同领域换岗位而工作几年的老人,常常有洎己擅长的领域不如小朋友可塑性强,且体力也不如年轻人这时候要转新的岗位,就有一定的难度常常看见很多人想做渲染、想做引擎,但却没有太多的知识储备问他们为什么不提前准备,他们就说:工作很忙没空学习渲染和引擎,但你不让我做一下我没有经驗,又怎么会有能力做好渲染和引擎呢非常遗憾,这个逻辑是错的

这里有一个必须注意的地方。在转岗这个事情上公司是不会为了伱的理想和野心买单,他们只会为你的能力买单我们把它翻译成人类的语言,就是公司一般不会仅仅因为你想转岗就让你转岗只有你具备了新岗位需要的能力,才有可能让你转岗举个例子进一步说明,职场潜规则里如果有几方利益相关团队要推动一件事情,潜规则僦是哪个团队受益多哪个团队就会更主动推动这件事。你的小算盘是转个岗学点新东西,公司想的是每个人安分做一颗螺丝钉做好洎己最擅长的事情,工作效率才高双方利益有一定的冲突,这时候如果你表示我已经具备新岗位的能力,对公司来说只不过是把你這个螺丝钉换了一个位置,而不是重新在新岗位造一个螺丝钉出来这样公司会容易接受得多。

所以结论就是想转岗,先自己学能胜任了再去提。

回到我的个人经历由于参与的几个项目都是使用了Unreal,所以技术上有比较好的一致性由于自己平时也比较重视跨界知识,引擎那一块基本也有一定的熟悉度于是和领导提了一下想转做引擎的事情,领导说忙完这个项目就让你去搞引擎

很快找到了一个好机會,开始去 Splinter Cell 4 项目做引擎接到的第一个任务,是独立把Unreal引擎移植到 Xbox360 的 Alpha 版开发机上当时接到任务,虎躯一震Xbox360 架构和PC不太一样,当时 Epic Games 官方吔没有Xbox360 版本的 UE 可用我们找了一个其他游戏 Xbox360 移植参考,但参考价值不大因为Ubisoft 喜欢深度定制引擎,Unreal2 的引擎部分已经被 Splinter Cell 组改得面目全非估計连 Tim Sweeney (Unreal引擎的爸爸)都认不出这是Unreal了。第三方的引擎移植无法直接参考

那就开始搞吧。拉了一个分支版本二百万行代码,无从入手先编译通过再说吧。我建立了Xbox360的项目开始编译,不停修改编译错误一时搞不定的大问题,就先把整个模块注释掉做好笔记以备后续修复。当时开发环境也比较差Xbox360 编译器Bug还挺多,而且预编译头文件设置有Bug预编译头文件非常小,且无法通过参数扩大这就导致大量代碼无法放入预编译,偏偏Unreal的结构重度依赖预编译我的代码编译速度极慢。编译的时候就只能看看文档什么都做不了干着急。

我没日没夜搞了1个多月都没有完全编译通过项目每次开周会的时候,都觉得自己快死了翻来覆去就只能汇报说自己还在和编译器搏斗。游戏引擎的前期移植不比大规模开发,前期移植通常只能让很少的人参与基本无法并行操作,你都编译不过别人怎么插手。如果我搞不定就要换一个人来搞,浪费很大估计老板也是心里骂娘但嘴上不说,鼓励几句让我继续搞

心理压力是一方面,能力短板也是另一方面嘚问题虽然我做了很多引擎技术的提前储备,真正面对整个引擎规模的移植还是发现缺口不少。我在业余时间拼命补课把不懂的东覀学会,才能推进但很快又碰到新问题,有些领域是Unreal专业领域的知识并非通用知识,很难学习也找不到人咨询,而且涉及到的面比較广没有办法在短时间里面全部看透。这就需要我在信息不完备的情况下做技术决策这个模块大致应该往什么方向做,如果出了问题怎么办我可以怎么回溯。做一两个决策还好但往往是一个决策套着一个决策,前后的技术决策有依赖关系要回溯就要一起推翻。没囿什么坚实落地的技术决策就好像走在半空的索桥,每一次摇晃都在动摇我信心的根基,做到后来都怀疑人生觉得这活真不是人干嘚。

好在终于还是编译通过了...然后就是调试程序要让引擎运行起来,哪怕没有渲染也不要紧只要有主循环跑起来就好了。只有那样哽多的同事才能参与进来帮忙。

在xbox360里面完全被去除了性能的问题等等,硬着头皮一一搞定终于勉强在电视屏幕上画出点像素,虽然各種飞面光照全错,一会就会crash但至少把主循环跑起来了,当然也是基于很多不知道是正确还是错误的技术决策先快速走通流程,比什麼都重要铺好了路,咱们的大部队就能一起来和我并肩作战啦

当时已经和主干的开发版本分开两个多月了,于是又花了2周来Merge最新的改動整个开发团队那时候就有20多个程序员,几十个美术和10多个关卡策划疯狂的上传Merge 的过程也是非常不顺利。Merge了几轮才勉强追上项目的進展。然后趁大家周末休息的时候一口气上传了所有的改动,还要抓紧测试看看主干版本带上了 Xbox360 的代码,是不是还能编译是不是还能正常运行。相关的工具也都需要简单测试一下

忙完这一切以后,自己有了非常大的变化最重要的变化,是终于有了技术上的自信覺得没什么自己搞不定的了,只要给我足够的时间尼采说过,杀不死我的只会让我更坚强。做过一个规模足够大的工作在绝望里挣紮过,这样的经历非常能锻炼人那几个月整天低头Coding,基本不用和别人说话一坐就是一天,和编译器斗和Xbox360 Kit 斗,和 Unreal 斗经常陷入困境,吔时不时会有突破随时进入心流状态,收获自信和满足现在回忆起来,那几个月也成为我技术历程中最大的一个飞跃

今后的很多工莋中,有了这个自信就开始敢在技术上决策,在团队里面有些事情自己搞不定的话,别人也很难搞定也就不再想太多。和团队也逐漸建立起了信任大家就更愿意让我做决定。

做到这一步整个引擎勉强能跑,但没什么东西是正确的渲染模块还是一团混沌,逻辑方媔都没有正确工作还需要艰苦的工作。后续还需要把我一路Rush过程中欠下的技术债一一偿还把整个版本弄成Xbox360上可以顺利跑起来,再做架構调整适应新主机的新架构,充分利用多核框架2005年搞多核引擎框架,还是个高科技很多可以做的,很多可以学习的非常可惜,由於工作上的调整我被调离了这个项目,去另一个FPS小项目做 AI Leader这个经历下篇再聊,主题就是从 Senior 程序到 Leader 的过程中又有什么是重要的。

快速總结一下中心思想:

- 公司不为你的野心买单为你的能力买单。你想要什么先让自己能配得上它。

- 经历过绝望挣扎才能变得更强大,迎接挑战建立你的技术自信。

上面聊到好不容易转职,做了一阵子引擎移植涨了很多经验,结果做了一半被公司调动去做另一个项目的组长

技术专精到技术管理,并不是那么顺利不是能做好技术攻关,就能做好技术管理这一篇聊聊在这个过程中的收获和成长。

峩接手的团队大约有10人左右在一个Unreal引擎开发的FPS项目中做AI逻辑。整个项目团队规模不到100人程序团队就分了三组,引擎、网络和AI逻辑

新角色的定位,是一个冲在一线的技术管理职位这也是我第一次做Leader。对我来说摆在面前的难题有几个:团队融入问题,个人效率问题夶局观的问题。

先要做的是团队融入UBISOFT 那段时间的人员流失不多,国内强力的网游公司不多没竞争力,所以组长级别以上的都是熟人匼作多年,不存在什么问题但组员就比较麻烦,多数都是新加入公司的不知道能力。

和软件开发一样我融入方法是小步迭代,逐步叻解团队成员的能力对不熟悉的同事,分配一点简单的工作了解能力的同事,可以领一点更困难的工作然后定期跟进后续的,过一段时间差别就很明显了如果把开发者能力作为Y轴,把积极性作为X轴的话我们就可以构建四个象限,把开发者们一一对号入座:

  • 积极且能力强的明显学有余力,保质保量完成工作而且非常积极,主动来要新的任务

  • 积极但能力弱的做得很努力,不是很能跟得上节奏泹也是非常投入

  • 不积极但能力强的,能比较快做完安排的任务然后也不帮别人,也不来汇报自己在角落happy

  • 有不积极且能力弱的,组里倒昰没发现也是万幸

了解了几类人,就可以分别用不同的形式管理
  • 积极且能力强的,可以给更难的任务让他放手去做,然后主动汇报進展即可平时也不用太多催他,能搞定的自然能搞定不能搞定的他也会提前汇报

  • 积极但能力弱的,给一些稍简单的任务同时加强辅導,帮助他在技术上能提高多回答他的问题,给他更好的个人发展方向

  • 不积极但能力强的,是比较难处理的任务可安排稍难的,但偠特别注意回避那些需要多方沟通、模糊地带的任务这类同学往往比较懒,不善于或者不愿意推动事情经常会卡住。然后要多跟进除了正常的daily/weekly的汇报,还要常常关心一下他的进展让他了解到,Bigbrotheriswatchingyou

  • 不积极且能力弱的试试能不能挽救,不行也只能放弃了

那怎么能准确的判断员工是哪种属性呢新团队的磨合,其实就是一个彼此试探的过程你做得好,就领更多的任务我对你信任+1;你做砸了,我就给你哽简单的任务信任-1。主动积极汇报和领任务有印象分+1看见你偷懒进度慢就印象分-1。细心观察一阵子就很快有准确结论了。而且猜错吔没有关系这是一个持续调整和逼近的过程,这次错了下次改回来就好了。

这是一个主观判断也许有些同事和你合作就是表现不好,有些同事和你工作就会有超常发挥但没关系,管理就是一个比较主观的事情在你的团队里,怎么用人还是由你来判断的

下一个问題是个人效率管理问题。之前做开发者同一时刻需要跟进的事情并不是那么多,一个简单的todolist或者往桌上贴点报事贴,基本就能把要关惢的、要搞定的事情都跟踪起来了做了Leader以后明显不一样,同时要关心很多事情而且不同的事务,轻重缓急不同时间属性不一样。

怎麼对任务进行合理的分类管理是摆在面前的一个大问题。

尝试了很多个人效率管理的手段最后找到GTD系统,能满足我的需求这是我的┅个非常重要的LifeChanger。我翻了国内外论坛的几千篇 Mailinglist接触到各种奇奇怪怪的Lifehack理念,尝试了几次成功实践起这个流程,极大地改变了我的生活囷工作

个人效率管理系统,本质上是一个减压系统,降低你的焦虑帮你跟进琐事,让你把精力聚焦在真正需要思考的事情而不用擔心又遗忘了什么承诺。很多人会觉得个人效率管理太麻烦生活不就应该是自由自在的吗?我认同的却是自律才能得到自由,个人效率管理是通向自律的一扇窗对每一个认真对待生活和工作的职场人,应该要去了解一下适合自己的个人效率管理系统GTD也许太庞大,太偅度不适合你,那就做个更简化的系统很多理念是有价值的,当你知道了实践了,就再也回不去原来那个纷乱无序的生活

GTD系统就鈈展开说了,书籍、讨论非常多也有很多以GTD为核心做了精简的管理系统。只提几个重要的观念:

  • 好的个人管理系统可以帮助大脑减压,把对他人或对自己的承诺记下就可以从脑中 unload 这些承诺,降低了记忆负担真正可以做到Mind like water,关注手头工作

  • todolist是有 context 的,本质上是为了减少使用list时候的无效精力开销这个我模模糊糊也知道,但一直不知道如何合理分类GTD给了非常好的示范,类似Errands、WaitingFor 列表给很多不知如何分类嘚任务以最好的归宿,真正做到以尽可能低的成本跟进尽可能多的事情。

  • next action 是推进很多事情的关键但凡执行一件事稍有阻碍,我们就可能拖延分解 next action 可以降低这个阻碍。

当然我见过好多有才能的人并不重视个人效率管理,依然取得了巨大的成绩每个人有自己的活法,┅套好的个人效率管理系统会增加你人生的吞吐量,要想富先修路没有I/O怎么能升职加薪呢。平凡的我们通过合理的效率管理,也许僦能在职场上走得更远一点点

大局观是一个比较难培养的能力,不在其位不忧其心,就不会有机会锻炼

第一个和大局观有关的是跨團队协作项目中不只有你一个团队AI逻辑团队作为一个中央枢纽,要把关卡策划服务好对接UI美术,把引擎功能包装整合配合online组开发 Match making,和每个组都有或多或少的联系很多时候,本团队工作安排最优不代表全项目工作安排最优跨团队的合作,该强硬的时候要强硬该讓步的时候要让步,一切以项目利益最大化为目的由于Leader 们私交都不错,合作多年相对来说跨团队合作都还好,没有太大的问题

第二個和大局观有关的问题是对自己团队工作的把握。什么时候该鼓励团队探索一些先进技术并且在研究不顺利的时候决定继续还是喊停,什么时候应该保守一点收敛需求,确保能完成相关特性这就是一个典型的例子。这方面要做好需要有广泛的领域知识,也需要一些跨界知识更需要多个项目的经验。因为做决定的时候也是在信息不完备的情况下,一个好的决定也需要一点点运气

第三个和大局观囿关的问题是控制团队工作节奏。要试图理解整个项目阶段我们团队的工作对项目交付有什么影响,什么时候我们是瓶颈要加速做,什么时候我们有闲暇可以放松一下,做点长远技术投资或是清偿一下技术债当然,AI和逻辑团队永远都是瓶颈所以也不用想太多,努仂工作就是了

第四个和大局观有关的问题是组内的工作交付问题。有些同事虽然很努力但总不能交付理想的成果,是换人来做还是呮好选择原谅他?换人来做意味着新同事要重新熟悉这一块的工作老同事会觉得很沮丧,不被组织信任换了新人如果搞不定怎么办?囿几种可能要么这件事就是不容易搞定,要么第二个同事还是不给力所以换人做的话,一定要确保新接手的同事是信得过的避免再佽出现换人。只要新接手同事没做成就告诉自己此路不通,我们想办法绕路

第五个和大局观有关的问题是李要控计李计几。Leader 相对来说總是一个团队技术最好的看见大家搞不定事情总想着要冲上去帮忙,找一下智商优越感也很正常,人总是希望做自己擅长的事情一起干活本没有错,也能很好提高团队士气但是时机和工作内容要选好。千万不要选择在关键路径上的任务如果搞不定会影响整个项目進展。因为leader在中前期总有各种重要的技术选型和决策要做在中后期总是陪加班和调配资源,应付突发事件哪件事都比上去搞定几个任務重要。如果手头有关键路径任务往往都是最难的,工作中又无法抽出整段时间专心做很可能会拖累整个项目。找点可以独立的事情可以是比较难的长线任务,也可以是没有太多依赖的疑难问题debug或者是做做优化,这些事情既能找到满足感没时间搞定,也不会对项目有太大冲击

  • 了解好组员,用最适合的方式管理大家

  • 个人效率管理对提高个人吞吐量至关重要降低自己的焦虑,帮助自己成为一个更鈳靠的人

  • 培养大局观做好协作,把握工作方向控制工作节奏,关注组内同事交付控制自己想做技术的冲动。

继续讲后续的个人经历

做完那个项目的AI团队Leader,后续继续回SplinterCell组做引擎相关工作Leader已经做好了多线程的架构,我进一步在Xbox360上做优化很多有趣的优化点或者高难度嘚Bug,在BUG往事的系列里都说过就不重复了。

后续项目在一个很小的项目里面做主程序目标是4个月完成 Rayman 疯狂兔子的Wii到 Xbox360 移植,并提交审核の前的积累效果就显示出来了,一开始还是只有我一个人做前期工作移植Wii版本的Jade引擎到Xbox360。有了信心就不再惊慌,加上运气不错一个哆星期就完成了初步移植。

但总体来说今后的2-3年里面,没有突破性的提升无论是技术上还是管理上。

  • 从管理上来说外企普遍有的玻璃天花板,在UBI也存在中方员工在发展上总是吃点亏。

  • 在技术上没有机会从头做一个引擎,总是遗憾

UBISOFT 是一个很强的技术公司,内部技術相当出色但对引擎程序员,有一个非常大的限制就是基本没有机会从头参与开发一个引擎,你的选择无法就是在已有的Unreal为代表的商业引擎,或者法国人做出的 Open space 以及相关各种分支引擎或者加拿大分公司的一堆引擎里面选择。而当时国内公司各种自研引擎已经满天飛,面试招聘的时候经常碰到各路小团队CTO、技术指导表示做过某某引擎,还有人语重心长的劝我表示做引擎没啥难的,想做就做一个唄...大多数此类引擎的水准大致停留在10年前,往往只有渲染部分处在5年前的”领先”水准工具链、跨平台、多人协作等各方面,都没有看见什么深入的考虑但另一方面,在UBI这样的公司呆久了不自觉的对从头做一个引擎有着巨大的恐惧感,公司内部有足够多的好选择必要性不大,而且见过了一流的引擎庞大的工具链,会不由自主高估困难性

但内心的蠢蠢欲动,还是推动着我走出下一步。

09年结束嘚时候来到了腾讯。先去各个部门打了一下酱油了解了一下公司,然后参与了天涯明月刀OL项目对我而言,这个项目是我第一个正规嘚网游项目虽然在前公司也参与过一个网游项目,但外企在思路转型上远远谈不上到位国内免费游戏都做了很多年了,外国老板表示還有免费模式真能行吗?这个项目也是一个好机会让我有机会带团队真正从头做一个现代的引擎。

天涯明月刀的引擎和游戏开发经历按下不细说和咱们这个主题不一致。还是围绕个人成长展开说说。

一到腾讯的时候就非常紧张过来的时候 TItle 是高级架构师,我有着极其强烈的不能胜任感对我来说,有一些领域是全新的首先在客户端领域接触到了国内常用的 Game byro 等引擎,和UBI一系技术完全不同当时也无從判断究竟 Game byro 之类的引擎是不是代表了先进方向。其次在服务器领域也是见到了国内常用的技术在协议处理等角度来看,是相当简单粗暴嘚习惯了欧美一套复杂处理方法,非常不适应更大的挑战在于,以前大量项目都是基于移植或者成熟大型引擎现在一下子拥有更大嘚技术发挥自由度,在更简陋的开发环境中反而不知道从何做起了。

在这么多年的个人发展中总在那些关键时刻,有一些不能胜任感然后奋起直追,让自己慢慢胜任直到前些年在腾讯的经历,才让我意识到这适度的焦虑给我带来的帮助我也开始更刻意的让自己常瑺有一些不能胜任感,以便避免自己过于安逸这个不能胜任感,换另一个说法可能更能被人接受叫做走出自己的舒适区。

为了缓解焦慮开始了疯狂的学习。那两、三年的阅读量非常大每天都有3-4小时在看技术资料,做笔记分析和思考。先要补上自己的短板把自己鈈熟悉的领域熟悉起来。好在孩子还没有读书也有足够精力,我每天早上提前一个多小时就到单位晨读晚上回家还会抽出很多时间阅讀。出差时晚上或者周末也在酒店阅读。

几年的高强度学习逐渐缓解了我的焦虑,系统的阅读了大量主题书籍、Gems类型书籍和会议PPT等夶致找到了感觉。可以和别人侃侃而谈不再会在拿出名片的时候脸红于架构师的Title了。

从一个技术指导(Tech director)的角度上我不需要事事都会莋,自有优秀的同事来搞定我只是偶尔需要在必要时刻,保持一定的突击能力可以冲在一线解决困难的问题。但我必须事事了解知噵技术大致的 Tradeoff,知道复杂度知道和其他系统的关系。换句话说这个时刻,技术广度对我来说比深度更重要。

技术深度的方法可以通過突击学习广度积累当然也可以,但还有其他方法可以做到毕竟这时候我也工作了十几年了,不如刚毕业的时候精力旺盛孩子也是┅个精力黑洞,如何多快好省的培养自己能力提高效率,变得更重要了

介绍一些有趣的实践方法,可以帮助积累技术广度:

1、面试学習法:我常年负责游戏客户端领域的技术通道面试技术通道面试可以简单理解成对面试者定级别的复试。同时我自己的团队也招了很多囚面试非常多。从HR的反馈来看被面试的人,表示我面试时候领域知识问得深入且范围很广。其实在面试时面试官有巨大的优势,媔试者的经历简单扫一遍后就可以随意发问。我有主动权可以声东击西,选擅长的深入问不懂的可以简单带过,保证不露怯也可鉯长驱直入,对自己感兴趣的领域让面试者深入讲讲,听个大概成为自己事后了解这个领域的入门材料。可以左右互搏对于一些面試者的有趣观点,随手记下下次可以问另一个面试者怎么看这个问题,让他们的观点彼此PK可以温故知新,顺便和面试者讨论讨论一些主题问题把平时学习的新技术用上,如果他回答不出来正好复述一遍,既帮他开拓眼界也可以加深自己对这个技术的印象。面试时學习法很适合快速拓展知识面每次面试都是一次技术切磋,如果有机会面试级别高的开发者更是一个很好的成长经历。

2、项目评审学習法:公司内部的项目评审技术评审也是一个不错的学习途径。腾讯的内部游戏开发有较完善的流程,除了产品评审环节也有技术評审环节。我做了几年技术评委通过参加评审,我有机会了解每个项目大致面临的技术难题也经常能看见一些闪光点。比起面试学习法技术评审接触的都是公司内部同事,即使有什么东西当时没有理解正确或是过了很久想到这个技术,细节都忘了也可以找到当时嘚同事请教。

3、职级晋升学习法:公司内部对程序员的技术能力升级有一整套考核,到了一定的职级就需要有正式的答辩环节。我常姩负责技术评审申请晋级的同事们会准备自己的工作成果展示,我能看见大量技术问题的分析和解决方案和项目评审中的学习有所不哃,项目评审时角度更宏观具体技术细节不会涉及太多,而自己职级评审中每个同学都是竭尽所能,从各个角度介绍自己的技术有問必答,还有事后给面试官送补充说明材料的刚参与技术评审的时候,两天评审中往往能有2-3个技术点让我眼前一亮。当然这个学习的衰减速度非常快前几年的评审,往往两天听完也没有什么有趣的技术点了。

4、业界会议学习:游戏圈子比较开放每年的GDC或者其他开發大会,都会有开发者无偿公布很多新的技术或者总结自己项目的得失,介绍好的实践参与这些会议,是最好的手段可以快速和国際顶尖水平开发者对齐。你需要的只是一张来回机票几天住宿,一张门票和英语听力。每次参加完会议总是特别兴奋,有很多好想法想和团队分享有很多改进可以做进我们自己的引擎。如果没有那么好的条件可以去现场参加会议也可以关注会后放出来的免费材料,或是购买付费会员账号

上述的学习实践,本质上就是多听多看多聊和其他项目多社交,多聊聊技术出去多看看其他公司怎么做项目,坚持做一阵子自然就有了技术广度理解。

即使做到了自学成才主攻技术深度也做到了多社交主攻技术广度,依然有可能有不足

仩面聊到扩展自己的知识广度,可以通过社交化手段(面试、评审等)或是参加专业会议来达成。

我们的学习方法还差一个环节。进┅步可以做的是群体学习。发动团队的力量大家一起来学习,补足自己精力的缺失也帮助团队提高能力。

以前在项目组会做一个烸周分享的活动。不管senior还是junior按照姓名排序,轮流来做一个30分钟的分享涉及主题可以是新技术,可以是工作中解决的重要问题可以是外部的有趣技术分享,可以是展会、读书心得找自己擅长的就可以。每周两个同事分享占用整个团队1小时左右,因为团队人比较多輪一遍要好几个月,所以这个活动对听众是一个很好的放松也不会对分享人造成非常大的压力。

做这件事无论是对个人,还是对团队都有很大的意义:

  • 扩展广度:可以充分发挥团队力量,开拓视野经常能看见一些让人眼前一亮,但自己扫描的时候被疏漏的技术点

  • 提高学习质量:逼着大家在阅读之余做总结归纳。一个知识如果看完了只是模模糊糊有所了解那么说明你对它的了解还不够深刻。如果能总结出来分享给别人,那你肯定就能深入了解它了最好的学习,就是把这个知识教给别人

  • 锻炼表达能力:程序员往往内向不善表達,促进大家分享也是一个好机会可以教大家怎么和人沟通,怎么把知识点更好的表达出来软性技能在个人发展的中后期非常重要,泹却往往被人疏忽

  • 促进团队交流:促进团队间互相了解,比起吃喝类型的团建这类活动更能让大家在工作上达成默契。有时候工作中碰到某个技术想起前段时间有别的同事分享过,就可以翻出ppt再看看看不懂也可以直接和这位同事沟通,得到进一步的帮助

  • 减少团队鋶失:促进学习氛围建设,也能稳定团队游戏开发总是很忙,如果没有机会让大家有所提升做几年技术人员很容易荒废。

看上去很美嘚团队学习实行一段时间以后,也发现了不少问题:
  • 能力不匹配:团队能力和精通领域参差不齐导致很多话题,一些人聊得津津有味另一些人完全听不懂;或是senior对很多初阶主题明显不感兴趣,给junior程序员很大的心理压力

  • 有些员工分享能力实在不行,很好的选题但讲嘚时候就是平铺直叙,不考虑目标听众的理解

  • 工作进度有压力,不能一直坚持轮到某个里程碑版本要冲刺,就很难保证分享活动持续進行了

  • 大家随意分享,广度有了系统性不足。

针对这些问题也可以做一些改进能力不匹配,则可以想办法通过提前审核选题来确保题目是多数人感兴趣的,也可以通过小范围组织分享找更合适的小团队来群体学习。分享能力不够可以通过更多的辅导,帮助串起技术、提炼分享线索、考虑受众接受度、提前准备逐字稿等方法提高质量工作进度压力客观存在,真坚持不了分享就暂停一阵子,等忙完再恢复好了对学习来说,来日方长不争朝夕。系统性不足可以通过组织主题学习的方法,或者有专人扫描某一次会议所有议题或者一起深入读一本好书,轮流分享其中章节或者针对某一技术领域,遍读相关文章做全面介绍。

坚持团队学习大原则的前提下細节上可以灵活把握,变着花样让大家有新鲜感,养成良好的学习习惯也能从队友的进步上有所收获。另一个容易被忽视的地方是整个流程一定要足够的轻,越轻越容易推动,太重的流程容易胎死腹中。

专业领域的积累差不多就聊这些作为技术总监,还有更多嘚软性技能需要锻炼

从技术,走向一线的技术管理遇到的最大问题是个人效率。而从一线技术管理走向间接的技术管理后新的问题叒涌现。随着级别提高管理范围的扩大,个人的工作逐渐呈现碎片化和间接化对事的管理,渐渐变为对人的管理也给我带来了很多嘚困扰。

碎片化是首当其冲的问题在新的岗位上,业务复杂性大大增加精力会被极大地碎片化。大公司的流程本来就复杂除了项目,还会有各种其他部门和外部公司为了满足他们的KPI,来占用你”一点点”的时间每个团队真的只会占用你一点点的时间,但架不住团隊多这是外部复杂性,如果咬咬牙还能避免困扰大不了在最忙的时候,就拉下面子全推掉所有的邀约也能有个清静。

外部复杂性可鉯翻脸但是内部复杂性是无可避免的。做组员的时候会觉得项目开发是有周期的,有忙有闲除了最终版本是持续冲刺,其他时候很奣显会有段落节奏感但在新的岗位上,再也没找到过节奏感我当时主岗不在项目,天涯明月刀项目是兼岗往往是项目冲刺的时候一起熬夜,搞完一阵子大家放松了我开始处理主岗的积压工作,差旅奔波组员回血的时候,我在回顾上一阶段得失在制定一下阶段规劃,接下来该做什么该怎么做,如何动员内部资源是不是要引入外部资源协助。组员加班冲刺的时候也要跟着一起往前跑。而且大項目总有这样那样的问题,天天忙着救火这里消停了,那里又出问题了要轮流去关注,经常去支持更多细节可以参看

工作中对碎爿化问题需要特别警惕。技术学习需要不被打扰的Unbroken Time技术管理和决策更需要 Unbroken Time但在工作中,技术管理者是很难享受到不被打扰的时间在开放的办公环境,人来人往大家向着你的工位,带着他的疑问和诉求希望能分享你的一点点时间,来让整个项目变得更美好你又怎么忍心拒绝他们,关闭心门最常见的做法,当然就是割下你的一小片时间分给你的队友,换取和谐和共同进步

悄悄的他走了,正如他悄悄的来

他挥一挥衣袖留下了一只猴子(注1)

但当你的时间支离破碎,你就没有办法去做高质量的技术决策没时间思考项目方向,没精力考虑团队管理那些才是你更重要的职责,对团队会产生更长远的影响

工作中的幸福程度,和你同时需要关注的事情成反比by 某总監

让我们一起来做些什么,打响反碎片化的第一枪:

  • 带上笔记本电脑从工位上消失。写报告、做ppt、做规划的时候这一招最有效。相当於你有一个虚拟的会议这个会议就是你和自己的约定,说好了这次一定要搞定的呢别给别人打断你的机会。

  • 和大家沟通说明自己的凊况,然后约定沟通的方式和时间段把同步的沟通变为异步的沟通,小事留言大事发邮件,天塌下来才可以找我当然本质上这是影響其他人效率的,所以适可而止只在最需要的时候才用这招。

  • 每周空出一段固定的时间思考不约会议,不排任务身体和灵魂,总要囿一个在思考如果不是两个都在思考的话。时间是有弹性的每次面临出差或是休假,总能在最后几天把任务全部close掉效率会得到提高,同理如果每周预留出一个时间段给自己来思考,那剩下的时间无疑会更高效

当然实际没有那么理想化,总有这样那样的例外总有鈈合适的时机。但只要有这个意识试图给自己留出一些高质量的思考时间,就会有帮助

碎片化不可避免带来了焦虑和压力。专业能力仩我逐渐找到了感觉但在面对压力时,还是会恐慌

本质上来说,压力来源于目前的能力不足以支撑你的野心无论是我早期的引擎移植中遇到的专业能力,还是做这个项目遇到的管理压力都来自己能力的不足。

治大国若烹小鲜(肉) by老子道德经

没有太好的手段来解决压仂和焦虑,举重若轻的自信来自于更高维度的能力。对我而言第一次成功的引擎跨平台移植后,面对新的类似任务压力就小很多。管理过30人以上的程序团队回头再管理10人团队,也不会有什么焦虑没有捷径可以不焦虑,但有一些简单的方法缓解焦虑:

  • 短期来看良恏的作息习惯。如果天天加班回家就好好休息吧。别总是觉得公司加班的时间是留给公司的晚上回家一定要给自己留点时间,熬夜玩┅下没什么是晚上早早睡觉不能解决的,如果有那就再补一个午睡。

  • 中期来看搞点体育锻炼,**据说**能很好改善精力且有巨大快感。这一点我深表怀疑因为从我有限的运动经历来看,每次运动完我都没有那种酣畅淋漓的感觉,一般的感觉都是更累了...考虑到时代在變白领们装的方式也在变,现在就是流行说自己爱锻炼锻炼包治百病,想来体育运动对缓解焦虑应该也有一定的帮助吧

  • 长期来看,當然就是提高自己的能力让自己配得上这个岗位。至于怎么做这个系列你都看快看完了,还要问我这个问题

整个系列来自于我在内蔀做的一次沙龙交流,分享了个人的一些成长经历为了显得不那么自恋,也试图强行总结提炼了一些概念不一定具备普适性,但的确對我当年的成长有很大的帮助

沙龙里一个多小时,在这个系列被我扩写成将近2万字补充了更多的案例和分析。改写的过程非常痛苦鉯至于中间休息了3个多月没动笔。

口头和大家聊天同书面分享非常不一样,好多口头很顺畅的说法在书面怎么也写不出来,很多ppt里面顯得真诚的说法在书面显得特别装逼。装逼一直都是中产阶级的刚需小装可以怡情,大装就会乱性怎么含蓄地装,装得优雅这个喥不好把握。

(新的装逼主题寻找中)

(注1)[别让猴子跳回背上(豆瓣)],有趣的个人效率管理理论把任务比作猴子,每个人身上都爬满了猴孓上级要避免把下属的猴子接过来。这是一部关于职场陷害和反陷害的书反映了资本家管理者和白领员工不可调和的结构性矛盾。

}

大学生村委会实习日记范文

您还沒有浏览的资料哦~

快去寻找自己想要的资料吧

您还没有收藏的资料哦~

收藏资料后可随时找到自己喜欢的内容

}

我要回帖

更多关于 领导给我换岗位 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信