技术人生的职场众生相 – 十多年的经验与心得 – 之三 – 职业与事业

系列目录

职业与事业

现实

铁打的营盘流水的兵,大家都是可以被抛弃的卒子,不想成为边角料,就要不断提升自我。

职场如古代的欢场,上班族都是出来卖的小姐,区别是一些天生丽质技术过人的成了头牌、花魁,日子自然滋润,如果碰上要么色中恶鬼的土豪劣绅或一见钟情的傻情郎给之赎身(大量股票&公司上市),那就可以安稳过下半辈子。否则等到徐娘半老只能被抛弃。少数早早财务自由,转个身,还是做了老鸨(老板)

职场如古代的后宫,上班族都是佳丽,区别是一些天生丽质技术过人的成了各级妃嫔,日子自然滋润,如果碰上皇上宠幸,成为高人几等的贵妃(大量股票&公司上市),如果怀上龙种诞下皇子,那就可以成为宠妃甚至皇后(技术带头人)。否则等到徐娘半老只能被抛弃。少数早早财务自由,拿个封地自立为王(老板)。

追求

如果人没有理想,那和咸鱼有什么区别?

我不是普通码农,我是传说中的那种10x码农,效率是普通码农的10倍,但我的待遇是普通码农的10倍吗?不是。所以,我今天还得起床去搬砖。

出污泥而不染,濯清涟而不妖,用这个来形容我每日在烂代码的枪林弹雨中匍匐前进而幸存下来,挺适合的。

追求,除了代码质量,还有岗位,和待遇。

我那“离职公司就上市”段子大家都知道了,我经历过几次,2次错过,1次主动放弃。中午请公司Z的技术总监吃饭,他是老员工,整个系统主要是他搞起来的,公司最近拿了几亿刀的授信,市值是1.85亿刀,但公司只给了他价值6万的刀股票。另外一个所谓的CIO,来了没多久,没啥大贡献,但他要求不拿工资换股份,现在有4%,价值约740万刀 。

追求,就是不甘于只完成任务,而是要做得更多。

多年前,因为要监控不同公司的不同系统运行状态,写过多个针对性的监控程序。做过一个分布式计算,c井写的,RESTful API通信,cluster server发送计算模块(动态的c井代码)到所有tenants,每个tenant跑完代码结果送回server,就是map reduce的过程。这种模式,可以做很多事情,譬如以前做过分布式查询,任意客户端(台式电脑、手机等等)查找结果然后汇总 。做监控系统,遇到状况就触发条件然后通知相关人。后来改用第三方的,譬如Nagios,再后来,改用云服务。以前用过monitis.com ,还行,现在公司要这个功能,所以再做了比较,发现还monitis最适合 。

做公司S,我发现公司没有这种监控系统,我主动做了出来,效果很好,找出不少问题,damage control比以前好多了。刚才监控到物理内存突然占用多了600M,分析后发现一个业务逻辑把整个数据表取出来在内存出来,空间占用1.6G。这就是追求。

公司S,花了些时间,给公司的系统做了个高度可配置的数据归档功能,可以指定任意来源和目标服务器、数据库、业务表、数据记录条件等,自动创建目标数据库、表,完了自动备份压缩、迁移等等,这个,是之前没有人能做出来的。这就是追求。

公司S,主系统存在10多年了,当年没啥设计,功能逐步堆砌。存在各种问题,性能问题尤为突出。主业务是各种数据的ETL,大部分逻辑都是逐条记录写入、更新到数据库。譬如插入1万条记录,需要2分钟。我改成批量的,0.4秒。。。还是太慢了[摊手]。这就是追求。

虽然我是爆栈,我偏好写后台逻辑代码,因为前端代码,好歹还得跑一下minify和uglify步骤,这样别人才看不清你写的代码有多烂。毕竟,系统慢,你可以说是硬件差不是你代码烂。其实,我还是都写得很好的。这就是追求。

公司S,生产环境有备份(第三方的备份SQL server的备份文件),但备份是一笔糊涂账,譬如随机抽查尝试还原,居然能告诉我那天的备份失败了[摊手]怎么没人通知??然后呢,换一天,数据库本身的备份也失败了,然而还是没有设置通知[摊手]我看不下去,给备份结果做了通知,然后给之前写的系统监控加了相关监控 。这就是追求。

现在上班每天还是坚持做些研发和写写代码,最近在做系统监控的功能,全套, 爆栈,从前端(angularjs等)到服务器(asp.net MVC+Web API等),从客户端(Windows service) 到数据库(SQL Server等),每个模块都尽量针对接下来做新产品要用到的技术的最佳实践进行演示,编程规范等等都尽量覆盖,给大家学习。这就是追求。

公司S,一天,所有网站服务全部停摆。查自己写的log没发现,查看IIS网站在跑,但应用程序池停,启动再打开网站,还是不行,池还是停,如此反复,排查系统日志,池停止是因为hips模块无法加载,追踪是外包的IT服务公司擅自在工作时间安装McAfee杀毒软件,给IIS加模块,IT卸载杀毒软件还不行,最后只能由我解决。这就是追求。

公司S,每周开个workshop,主要说现有代码的问题和怎么优化,还有各种场景的优化办法和高效算法,给出benchmark,一些快几倍,一些几十倍,一些上百倍。还在ASP.NET Web API的基础上搭了个Web服务框架,支持token,流量控制等,写得好爽 。这就是追求。

我们心态不应该bottle half empty,而是half full,就是要乐观。我眼中的坑,是潜力,我发挥的机会,坑越大越好。我吐槽了那么多,都是我遇到并修正的。

老油条

我对老油条爱恨交加。

公司S,我面试的时候,老板说公司要把现有老系统做成SaaS,队伍很成熟,看了一下该公司领英员工列表,初创员工从最开始到现在11年多了,没离开过。成熟,换言之,就是革新的阻力大,老员工舒舒服服的,不会关心什么新技术,更不喜欢空降一个上司来找他们麻烦。如果你是老员工,你怎么办?如果你是空降那个,怎么办 ?

公司S,几个老油条,经常请病假,曾经有人一个月请三次病假,完全是滥用。

有一家公司,做了20多年,积累了大量代码,超过2000万行,其中,大量重复发明的轮子,基础组件如譬如O/RM和XML序列化等,大模块如ERP等,无所不包,相当佩服,好处是,你有藉口入职后1年才开始了解系统,之后,也可以安心做老油条养老,因为你写的代码没多少人看得懂。

公司A,我接替的那个研发经理将于3周内离职,问他拿系统架构设计、流程图、数据库设计、技术规范等等所有文档,全无!那好,让他讲解一下,他让我直接看代码和用数据库diagram看表关系。。。我靠,系统设计仅仅就是表关系吗?相当的无语。。。

职业道德

这些年来听过不少朋友吐槽各种奇葩遭遇,我之前也遇到过不少。

公司X,用Java的,其是给南航做订票系统的,后来老板跑了,没发工资,大家都回公司抢电脑填工资。

公司H,一个从广州灵狐(还有人记得吗?)来的码农同事离职,破坏分区然后格式化磁盘了,还拆开机箱,拔了电源线和数据线。

一个公司雇用一个员工成本挺高的,找猎头就要给一个半月的工资,基本工资,养老金,各种保险,工作环境(租金),设备,培训,年假,病假,每年加薪、奖金,平均算下来是基本工资的150%甚至更多。所以,我干活都很努力,对得起这份工资。

时刻站好岗,不过不需要像之前带病工作了,也不需要第一个来上班,最后的那帮人走。早9晚5,把工作都做完就行了。

公司S,部门会议,8个码农,30个任务,部门的码农狂塞任务给我,我要做10多个。。。我vs都没,代码访问权限都没,业务逻辑都没掌握,就让我做事情,一些任务还是有难度的,譬如很笼统的系统优化,我还是坚持去做了。

公司S,数据安全很严格,除了一般的过滤和监控等,每个员工都是从本机使用自己的账号远程桌面到服务器上做日常工作,譬如收发邮件、读写文档、使用公司的系统等,这种做法还真是第一次见 。公司这样做,无非就是想大家遵守职业道德,但如果不尊重的情况下,可以知道并且行动。

公司C,我离职的时候被部门经理冤枉我破坏服务器,一个多月的工资没发我,后来他们发现是部门经理搞鬼。这个部门经理还把源代码放自己的手提每天带回家,要挟老板给他股份。几年后,公司还发现这个部门经理偷偷卖公司的系统源代码,把他给炒了,但公司还厚颜无耻地找我回去主持开发部。

公司T,我离职了,几年后,跟我一起呆过的技术负责人,联系我,说他现在手上有当年的系统的源代码,问我有没有兴趣一起搞搞卖钱。

健康

身体是革命的本钱。没有健康的身体,工作效率和质量要打折。

举个梨子,我这些年来身体每况愈下,先后有脱发、肩周炎、手腕痛、颈椎病、腰椎间盘突出、慢性胃炎、肾结石(三次入急诊)等等。

因为长期病痛,必然会导致工作时不能全神贯注,所以产出量自然要降,而且质量也可能存在问题。

我工作10多年,只请过几次病假,要么是因为要去急诊,要么是颈椎病发作严重无法思考。现在回头看,觉得自己不需要这样拼命。

该请病假就请病假,对自己好点。

我现在是上班工作,出卖劳动力,而不是出卖性命。你垮了,甚至挂了,你全家人怎么办?老板给你的工资中是不包括这个的。

古代,那些卖唱的女子,碰到无耻之徒,会说:“请客官放尊重点,小女子只卖艺,不卖身!”。现在,我也应该说:“老板,请你尊重劳动合同,我每天只卖艺8小时,不卖肾。”。当然了,如果老板给的钱足够多(非常非常多),那,我就不管你今晚来的多少人,来的是不是人了。

加薪升职与待遇

加薪,还得看加多少,很多时候,仅仅是随着通货膨胀率加一点,一些时候还不怎么加。加得多的,一般是公司看重的而且是呆得久,升职尤甚。蹲坑久了,一般人加薪升职是不如那些跳槽的。当然,如果你运气好,公司上市,你又拿到可观的股票期权,那另当别论。

离职,和谈得来的其它部门的同事喝酒,他在这个公司呆了10年,看着它的变化。他说:“我知道这个公司很多问题,很多混帐的人,我每天只能逐一应付,日子就这样过去了,尽管一些生活我会忍不住爆粗,老板待我不薄,所以我没有找别的公司。”,这个待我不薄,其实就是加薪升职,他从毕业实习生一直做到经理。

但是,职业生涯,是一个金字塔,底层的是绝大多数,往上层次/岗位的越来越少。所以,不可能大家都当上高级工程师、经理、主管甚至CTO。

在中国,很多公司为员工逃税,把工资造低,大家倒手的钱是多了,但长远看,未必,因为帐目收入低了,公司给你的养老金自然会低,你自己给的养老金自然也低。我在中国工作7年,移民澳洲的时候退保,个人部分才拿回1万多元人民币。来澳洲刚刚满7年,养老金是中国的40倍,不逃税。

典故

公司A,IT经理,样子是典型的犹太人(就是那种大胡子),后来一问,人家说是英格兰+苏格兰裔的澳洲人。。。我代替的那个研发经理,是不丹人,祖母是广东人。。。部门的开发人员之一是日本人,英文名跟中文拼音一样。。。另外有一个开发人员是上海人。

公司K,我是刽子手。公司人员流动率高,新员工入职,老员工离职,都需要一系列的流程,我做的hr业务中有一个功能:自动化入职和离职流程。每当监控系统中显示今天要离职的人员,我就有深深的罪恶感。。。。监控系统只是显示的人员不断变化(入职离职),但背后是有血有肉的人啊。。

公司T,大学还没有毕业,就在这里混了,然后跟着公司去了深圳蛇口,公司就在女娲补天像旁边的大厦,当年那里是海边,现在那个地方都成市中心了吧?下班后,大家去楼下的大排档喝深圳土产的金威啤酒,晚上大家就在公司里的一个小房间里的挤着睡。

女码农,大家觉得又少又神奇,是吧?

公司T,遇到了两个女码农,一个在几年后成为了另外一个该公司的男同事的老婆。另外一个,成了我的女朋友,当年是很开心的,有共同语言,爱的死去活来,(这里省略大量儿童不宜的内容)。后来,与她纠缠不休的前男友来搅和,她让我走,我心有不甘,但尊重她的决定,多年之后,她读了大学,用上了C,去了银行搞大型机,再几年后,找了个同乡,回去组建家庭,生了孩子,没再从事码农事业,(这里省略大量各种哀怨)。

公司H,另外一个女码农,水平还行,但不大喜欢接受新技术,我推荐的新东西她都没有采用,不过,我还是在这家公司呆了我职业生涯最长的时间,超过5年,直到我要离开中国移民澳洲。

公司T,上述的同事夫妇,3年前带上全家来澳洲,他读硕士,说是曲线移民。毕业后,因为,他的原话:“我只是不想别人给我的时间定价”,愤而回深圳发展。对了,当年我们分别离职之后,我在广州买房,他在深圳买房,都才是50万左右的两房,现在他的房子快1000万了。

注意!前方高能!!!

职场,是泡妞的好地方。

公司A,前台真漂亮啊,目测很年轻,20岁左右的样子,貌似是混血的,哎呀。

公司H,我遇到了一个女神,真心漂亮,一见倾心那种,我就对她展开了追求。后来发现已婚了的部门经理对她也有兴趣,在各种电影中才会发生的经历之后,(这里省略大量儿童不宜的内容) ,她成了我的两个孩子的妈!

事业/经验

说起做技术的人事业演进路线,一般分三条。大家都是从初级码农开始,到中级码农,高级码农,然后开始分:1、tech lead / principle developer → architect → senior architect → chief architect → CTO;2、team lead → development manager → senior / technical manager → VP of engineering。如果还要细分architect的话,还可以这样:application/software architect  → solution architect → enterprise architect ,每个都有junior/mid/senior/chief级别。

说起架构师,我觉得没有多年实际动手经验,毕业就上来做架构师的,真正做成功的属于凤毛麟角,大部分都是扯蛋。

为什么需要资深(老)码农?为什么需要架构师?一个误区:把现有系统扔到AWS/azure/GCP这样的公有云是简单的lift and shift,但实际上远远不是这样,譬如一个公司的业务要打印快递公司的那些标签,就不能完全在云里面跑了。

资深码农,经过多年的实战经历的锤炼,掌握的技术广度和深度都是新人无法比拟的。简单来说,老码农踩过的坑,都是血泪换回来的,你愿意让缺乏经验的人再去拿公司来玩笑吗?

版权所有

所有文章内容版权所有,任何形式的转发/使用都必须先征得本站书面同意。本站保留一切追究的权利。