之前写了一个版本《潕量的成长之路》,最近自己又翻开去读了一遍,总感觉并没有表达出自己期望的观点,全篇主要都在介绍自己遇到什么契机做了什么事情达成了成长的关键里程碑。我也发现很多成长系列的文章基本都是这个思路在写,一般同学读下来可能会觉得像个方法论、甚至励志文的感觉。大家看的时候可能会拿自己的经历去对比,“原来他这么早就在研究xxx了”,那读完自己有啥可学的呢,会发现无从下手,“既然他那么早就在做xxx,而我那么早的时候还啥都不懂,所以现在才不够强吧”。这种拿着过去的经历来说当下的事情(比如上大学之前就是开始专研计算机所以现在多牛逼、比如10年前就会啥了所以现在我成了这个领域的专家),这对来看文章的同学更多的是发出几声赞叹“哇塞,他好厉害”,能学到的反而很少。所以我打算重新整理下思路,更多的从一些能给我带来心境变化的案例、对我的人生观产生变化的事情入手去写,期望这些变化不管在什么时候都能够有用。
在优秀的环境中超越半数的人
环境是我第一个领悟到的点,不过这个领悟是个长期的过程,从中学一直到大学可以说一直在验证这个观点。
很多和我同龄的人应该都经历过初三分班的情况,学校会根据某次考试成绩重新调整班级分快班和慢班(当然现在应该禁止这种操作了),比如我们学校就是当时 5 个班,每个班大概40人的样子。初三上半年,我在班里大概第10名的样子,我当时算过如果分一个快班出来我应该能刚刚好当那个快班的最后一名。当然我考的不错顺利进入了快班,在快班的排名是中等偏下,不过经过半年后我又到达了快班的第10名。我给自己的定义是我很勤奋,我总能在任何环境中适应的很好,那么环境越优秀其实就是你越优秀。
第二个印象深刻的事情就是关于跑步的。我从小跑步就跑不快,中考的时候会有体育考试,大部分人基本都是满分,我是少有的因为体育考试被扣分的人。上了大学后的体育课的1000米跑步依然不达标,跑步的时候是乌泱泱的一堆人一起跑,慢慢的没力气了就慢下来了变成了队伍的尾巴,他们并不是真的想当尾巴,是真的迈不动步子了。后来我想可能是自己太关注自己大腿迈不动这个点了,我调整目标把目标盯着跑第一的那个同学,告诉自己只要跑在他后面就行。这个方法非常有效,后来我在班上的1000米跑步一直都是第二名,也就是说通过信念是可以打破肉体带来的束缚的。
今天大家都在阿里,其实已经通过种种努力进入了快班,有不少人在想如何在优秀的环境中不要让自己不要成为最后一名,不如想下如何跟上第一名的脚步,说不定你就超越了半数人。
约束 vs 自律 vs 兴趣
高中快毕业的时候我们跟我们说了一句话到现在还印象深刻,她说“别看你们现在这么刻苦,等你们上了大学后,挂科、逃课这种事情肯定不会少干”。当时非常不服气,我在高中从来不逃课、从来不挂科,每天6点起来刻苦学习到晚上10点都没觉得累过,我还能干逃课挂科这种事情。当然结果怎样就不说了,现在有很多人甚至在说没逃课没挂科的大学是不完美的。我举这个例子是想说约束和自律之间的关系。
自律这个事情是有人执行的很好,但是我相信大部分人并没有执行的很好。说好的想写个文章一定要拖到交稿的时候才写,说好的周一早上要交ppt一定要在周日晚上才能灵感涌现,说好的每周锻炼身体去了两三次后就没有以后了。
人生来懒惰,自律是与人体本能冲突的,必须要加以精神引导。我健身卡办了5年,还有一年就到期了,前面4年当然都是浪费掉的。最近终于正常的进行了2个月,原因是喊上了三五个人一起,一开始是通过不去发红包来约束的,但是真实执行下来大家没发过一次红包,没有人会无缘无故不去;这个时候每天喊着一起出发就是精神的力量,不去对不起承诺。
兴趣不一定能带来自律,但是能带来你满意的结果。如果要再约束、自律、兴趣中间排个序,毫无疑问一定会把兴趣排在前面。兴趣是精神的力量,做自己感兴趣的事情很容易进入心流状态。这个时候不需要自律、不需要约束你就会一直探索下去,成功后带来的满足感妙不可言。如果你面临的是枯燥乏味的工作,那么一定要从中找到自己感兴趣的部分。
跟随内心最深处的呼唤做事情,有时间就多看源代码多造轮子。
我接触计算机很晚,是从高中才开始接触。当时觉得坐在计算机前面就能遨游网络非常神奇,但是并没有因为兴趣爱好让我原地一变变成大黑客。
在大学打游戏的时间比敲代码的时间多,遨游了3年网络,一切都不在特别,眼里只有迷茫。那个时候还没有感受到青春的可贵,现在回想起来觉得很是可惜。我觉得在那一刻非常缺少一个引导者,如果他能带我探索网络深处有意义的事情,能告诉你可以干什么该干什么。
大三的时候c++挂了,但我认为反而是重生,大四重修后才开始真正的认识到c++语言的奇妙。从此开始了我的coding生涯,带领我走上了IT工程师这个职业。
真正开始写项目是大四的暑假期间,进了一个工厂随便找了份工作,想为研究生挣点生活费。这个阶段是我反复打开了一个新世界,看到什么软件都想自己写一份,我做的最多的事情是模仿,模仿看到的一切刚兴趣的软件:
- 模仿 QQ 的UI 和功能自己实现一个 聊天软件。但是用的 MFC 默认皮肤和功能和 QQ 肯定有比较大的差距。基本靠网上查资料,看别人贡献的代码。网络通信协议的封装。把 TCP/UDP 在本地的实现。
- 后来看了一个开源软件,网上看到一位木马研发的日记。自己也写了一篇木马研究日志。多个文件的合并、分解、隐藏,都是从网络获取的代码。
- 因为玩魔兽游戏,当时RPG游戏真三国无双,很多人开外挂的。自己也用过网上下载过的,但是广告多+平台经常封杀。所以自己也想做一个一模一样的。网上找资料阅读了如何把应用挂载到魔兽里面,如果找到内存地址修改数据。这个项目非常激动人心,虽然功能和网上提供的外挂差不多。但是过程非常激动人心,能够随意进入一个程序修改数据、打开地图迷雾。研究这个东西确实是打开了对软件的新世界。https://blog.csdn.net/qc20042/article/details/6074779?spm=1001.2014.3001.5501 当时写文章为了快速记录自己的查找过程,不是为了让别人看懂。真的是,到了阿里才开始思考写文章是为了给别人看,会反复去改自己写的文章。
- 后来也重复过相同的事情,跟着网上的教程去实现过一个一键完成扫雷。过程非常有趣,发现扫雷的整个空间原来存储在二位数组里面。只要找到这个数组的地址,然后遍历是不是雷就行了。 但是做完后点一个按钮雷全扫完了就一点意思都没有了,兴趣大多在这调试的过程里。
- 我虽然非常喜欢木马相关原理,但是最终没有走上这条路。因为自己的职业方向不是这里,所以慢慢的生疏了。现在技术经过多年更新加壳,我已经完全搞不定了。
- 自己用 MFC比较多,但是底层实现非常黑盒。另外就是网上看了一个飞鸽软件的源码,长的和MFC差不多,但是底层消息封装机制基本都是自己实现的。
我的路径基本就是看到有意思的开源项目,就很想去看看底层怎么实现,然后自己会根据当前了解过的开源项目把期望的功能点融合到一个项目里面。那段时间经常干到半夜三四点,不觉得累,不干完睡不着。
前段时间大家在讨论身边有没有学习的人,有不少同学说羡慕年前时候的自己,感想下当时的状态真好,真的是激情满满。但是想想现在在阿里,年龄越大、层级越高,自己的时间越来越少,所以同龄或者同级的同学看到这块大多做不了什么,只能说你如果还能持续这么产出很有益自己的技术持续提升,但是你还有很多其他重要的事情去做。对于还在学校的、初入职场的同学,没女朋友、没成家什么的,多去造轮子、多看看源代码,对你的思维会非常有益。
做一个产出思考的owner。思考比努力更重要。
说做 owner 并不是一定要成为一个项目的负责人,也可以是项目中其中一个功能模块的负责人。owner 的目的是让你产生对你负责模块、产品产出思考,这些思考才是成为一个owner的关键点。
我在上家公司呆过3年,虽然没垫底过,但是也没拿过S。大部分人的比例都落在这个区间,我其实也是那个大多数人。我也从来没思考过怎么拿到S,只知道埋头干事情,隐隐的觉得自己牵头负责的项目会更努力。进阿里后主管就会先和你强调做事情要多思考、要有自己的想法,这非常锻炼人,对于想承担更多事情的同学来说是非常契合的。Owner精神就是你一定要把产品当成自己的,任何事情上升到精神就会排除万难、持续思考怎么去完善。多做事情不吃亏,是金子总会发光。
阿里的晋升非常强调在工作中的思考,讲的其实也是自己做产品做技术的思路。当然现在减轻了晋升的形式,主要是为了减少大家的工作量,但是不得不承认那段时间的收获是巨大的。其实这里要的就是重新审视做事情的方式,多问自己为什么要这么做。
把自己当个“傻子”去试用产品
我们在定义绩效目标的时候经常会遇到,“实在想不出现在系统有哪些亮点可以挖掘出来去改进,今年的KPI 提效这块不知道怎么写” ,大家应该都会遇到这块的疑惑,因为技术的价值就是在于用技术辅助产品成功。而产品的成功有很多因素,其中一个最重要的指标就是客户满意。
对于一个自己负责的产品,怎么提出问题和建议。不管是做技术还是其他职位,做一个产品的时候第一目标都是让客户满意。对于一个刚刚接触产品的同学,我反而觉得更有优势去理清楚当下产品的问题。往往小白用户才能发现产品的问题点。我们甚至期望产品经理在体验产品的时候把自己当一个傻子去试用产品。因为我们太熟悉往往会带有自己的经验、偏见和预设的想法,这些因素可能会影响我们对产品的评价和使用体验。而如果我们把自己当成一个“傻子”,就可以减少这些影响,并更客观地评估产品,并发现其中可能存在的问题和改进的空间。不过“傻子”可能也有期限,比较熟悉后就很难再充当“傻子”,可能还要多找找“傻子”用户,这个时候就需要多走访用户了。
我在腾讯的时候可以只写 JavaScript,不用写 css和html 。因为我们有页面重构工程师,这些活他都干了。可能现在的很多前端会疑惑为什么要单独搞一个“页面重构工程师” 插在设计师和前端中间,当然存在即合理,因为页面重构面向的技术大多是 html + css, 页面逻辑补充面向的技术是 JS。前者偏 UI 而 后者偏向逻辑层,就好比你让你一个后端开发突然去写UI的感觉。是的,后端写逻辑很快,但是写UI可能花双倍时间。因为有时候调UI不全是靠逻辑的。
今天前端已经把 UI 和 逻辑都干了,似乎也挺合理的,但是UI的工作量依然在的。依然占据了和填充逻辑几乎相同的时机。所以这在后面设计前端组件的时候有一个原则,就是一定要避免额外 css 代码的编写,尽量让干逻辑的人只专注逻辑。
多读书与持续学习
我们经常会第一次遇到很多事情导致难以抉择,期望有所参考。经历经验一定最重要的一种参考,不管自己的还是别人的,差别只在于自己的经历印象更加深刻而已,而别人的没有那么感同身受。那么如果能够吸取到别人的经历,是否可以利于我们做抉择?但是每个人这一生太过短暂很难有精力体验各种不同人生,而读书是一种获取不同人生经历的好方式(当然还有很多其他的方法获取)。
对于读书的感悟每个人都不一样,你在读书的时候可能如饥似渴(刚刚好我面临这个问题期望解决方案),或者感同身受(我遇到过,并且深刻知道里面的不易),或者走马观花浅浅的留个念头在记忆里(我还没遇到过,也没有多少感受)。不管是何种方式,都是对别人这一段人生的短暂理解,即使留一个念头也是留了一种可能。