专栏首页美码师老兵的十年职场之路(二)

老兵的十年职场之路(二)

在上一篇文章 老兵的十年职场之路(一) 里头,讲述了我在初入职场时的一些经历,从自己个人的感受来说并不是特别的美好,既没有职位上的屌丝逆袭、也没有令人兴奋的意外成长,但也许这也是很多人所经历过的,毕竟我们都是"平凡"的人,

一旦平凡就只能是"在抱着不平凡的梦中 度过这平凡的一生"...

那么,在接下来的这段职业中,我又经历了什么?

相比第一段经历,会有什么样的波澜起伏? 下面让我一一道来...

第二家公司,是慕名而去的,之所以这么说,主要还是平时里头同事聊天时听来的。 那时候的微博、微信都还在襁褓之中,我们所能获取信息的手段其实很有限,除了百度和上目标企业的官网上看看介绍之外,更多的就是街头巷闻。 当然,这家企业在移动互联网领域的扩张非常快,连我原来公司的老板都会拿来给我们当做学习的榜样... 真是不错,直到后面离职时我也毫不避讳的告知了他我的选择,然后是除了祝福的话之外,恍惚中仿佛看到了一丝黯淡。

别具一格的面试

记得是在清明节过两天之后,我第一次去到新公司面试,除了前台MM很热情之外,还有就是对那办公室 布满的公仔和亮堂的灯光令我印象深刻。 相比之前所在的死气沉沉的写字楼,感官上的差异非常的大。 面试我的是一个穿着沙滩花裤的"年轻人",一上来也没有问我什么,更多的是唠一些工作经历。 中间我觉得无趣,多问了一句:

听说这里牛人很多,是真的吗?

他笑了笑,故作镇静的说道:

我们都是"普通"人而已...

冷场十秒钟后,又唠了一些兴趣爱好,然后是聊到陈奕迅的歌,我随兴唱了一小段之后,大家都满意的结束了面试。

之后,我一直觉得比较忐忑,这样的面试是不是不大合适?但最终反正是通过了(花裤男是那部门的老大),后来给我的体会就是有些事情不能老按常理去揣测。

新气象

入职之后,自然是很多新气象,有许多东西都是第一次接触,由于我的求知欲盖过了压力,所以那段时光只是一味感觉到轻松且愉快的。 成长期的互联网公司充满了开放和创新的气氛,这话不假。也就是到了这里才知道原来除了Java 和 ssh 三大框架之外,还有那么多人在使用其他的编程技术比如 Php 的 Lamp,Python 等等,数据库除了Oracle 之外,还有那么多人在用 MySQL.Memcache 这些开源的数据库中间件。

而之前还曾天真的认为数据库是 Oracle 等商业数据库的天下,MySQL 只是学生才用的玩意,真觉得自己像个井底之蛙。

所有的这些现象大概已经告示了公司的技术流派:拥抱开源!

没错,一切都是用的开源技术,这也包括了部门在使用的各种协同系统,基本上都是免费的开源系统搭建出来的,所以长的千奇百怪的不足为奇。

但是开源协同系统的弊端也很明显,除了长的丑之外,bug 也很多,要修复就得吃透整个项目的源码,后来管事的觉得这样下去不是办法,于是启动了一个的内部协同系统项目(基于Java开发),希望把这些千奇百怪的开源系统给替换了。

这里为什么会提到新协同系统?因为当时我一开始是参与了这个项目的,但只是由于项目比较乏味,基本上就是用的 ssh 那一套,于是我很快就申请转岗去干了别的…

编程语言之争

前面提到编程语言的多样性,的确,互联网项目习惯于野蛮式的生长,基本上也都是用自己最熟悉的。于是在项目变多了以后这却成了一件棘手的事情,比如:

  • 人力资源难以调动,比如让做 php 的去写 c++不合适
  • 代码质量参差不齐,一种语言就需要一套规范,而有些语言也很难找到规范
  • 新人培养上成本太高,甚至很多人并不是很想尝试太多新的东西

于是乎,就有了各种关于编程语言的讨论,到底要采用哪个作为主流的技术,当时在内部社群也争论的很激烈,貌似最后也是没什么结果(编程语言之争一直就没停歇过),到后来从项目技术的覆盖面上看,Java 是占了绝大优势的。

我一开始所在的小组大多是 Java 技术老鸟,老丁是队里的老专家,在每次代码评审后也总会这么说:

"这点代码怎么会写不好阿,Java 简单阿,无非就是些增删改查嘛!"

从当时的项目看也的确如此,对于协同系统更多的就是理解好业务流程,定义好实体类,然后一通增删改查… 然后是过了一年后,我从内心里就完全推翻了这个想法

修罗战场

因为对手头上工作没有半点兴趣,没过多久后我就申请到了一个新部门,主要做社区类的平台产品,而后者是就是所谓的自负盈亏部门。

这里除了程序员之外,还有产品经理,运营妹子,运维大汉… 传说中的鄙视链现象也时不时在这里出现,只是程序员和产品的关系似乎没那么糟糕,这可能跟产品团队都是妹子有极大关系,现在想想当时的人力资源团队还是很有智慧的。

在新项目中,我遇到了许多未曾遇到的挑战,也就是在这里个人的技术视野和能力都快速的提升了。所谓屁股决定脑袋不是没有道理的,当你做的事情让你感到自己像个小白时,你才能拥有巨大的提升空间。

项目的挑战

社区平台是一套的 Php 代码实现的,一开始呢功能很简单,但经过一年半的演进已经变得臃肿不堪。而随着运营同学的努力,用户量也达到了几千万,整个系统开发维护效率极为低下,很容易动一发则牵动全身。另外一旦到了业务高峰期总会时不时的出现一些性能问题。 好了,这是系统的背景,接下来的事情就是:

重构!把一个庞然大物变成许多只小飞象!

这里听着有点像是服务拆分的意思,但那会没有微服务的概念,就是做成分布式系统,一些原则和理念跟现在的微服务理念也基本是一样的,诸如服务发现 隔离,业务降级,关注性能... 当时技术选型方面用的是Java ,Web 通信框架则是由开源项目改造而来的,底层是封装了 Netty 用来实现 NIO高性能吞吐,然后是基于业务的特性实现了一套应用层的分库分表框架,这主要是用来支持 MySQL 的水平扩展。除此之外,为进一步提高性能,框架也集成了开箱即用的缓存能力(对接Redis集群),这样的配合基本上已经做到极致了,于是后来这套技术组合也逐渐统一了大大小小的项目。 由于Java 掌握能力上的优势以及自身的求知欲,我很快就把这套框架的源码给摸透了,当然这些实现并没有包括之前用的 ssh 框架,这是一个非常轻量级的开发栈,风格上更像是Ruby on rails。里面抛弃了许多 J2EE 的东西,对 Restful 的支持非常好,而且在当时Restful也是许多大平台的首选,比如新浪微博开放接口...总之用起来是非常清爽的。 然后说因为对技术框架比较熟练,于是会经常帮同事解决一些问题,慢慢的就成了项目骨干。再后来就是陆陆续续负责一些核心业务的开发,重大问题攻关以及做一些框架规范化管理类的东西。

这里说到规范,不得不提关于代码注释的事情,团队在注释的要求上是非常严格的。大家基本上都认同的一点是:

"自解释代码根本不存在!所以不要因为觉得代码写的好就可以不写注释!"

超哥是同事里的老专家,写了十多年代码仍然能坚持把注释做到极致的清晰,足见对于工作严谨的态度。

影响深刻的事情

在一段快速成长的经历里面,必然会有那么几个时刻,让人始终记忆犹新。

A. 怎么样都写不好的文档

有一次主管让我为一个自动化框架编写一个用户手册,我不以,花了一上午加一个小时给整好了。发到工作群里后被一阵痛批:

“这是给别人看到还是你自己看的?“ “Api请求头说明到哪去啦?“ “把全部错误码放到一个表格不好吗?“... 也就是从那件事之后,我开始认真对待我的每一篇文档博客,直到有一天,某位大师跟我讲:“嘿,我觉得你小伙子不错!” “为啥?“ “因为我看过你的文章!“

B. 突如其来的救火

有一次系统上线了一个紧急补丁,结果由于并发性能问题直接导致系统局部宕机,我在快速攻关后定位到了根因。在问题重现到代码修复足足花费了两个小时。这时已经超过了维护时间窗口,如果再进行测试时间将导致问题出现一再延迟,更严重单事情就是用户流失。 记得那会大家都非常焦急的时候,一直很平静的主管突然对我吼了一句:

"能不能保证质量!"

他的音量很大以至于周围的人都惊诧了,然后是我硬着头皮说 "能..."(当时也只好这么说...)于是在没有测试的情况下有惊无险的上线了新补丁。

“工作就是打仗,互联网行业里用户为王,用户就是上帝”

这是我所得到的体会。

C. 群猿的通宵夜

一次平台的重大升级变更中,我们团队和运维的大汉兄弟们进行了紧密的协作。因为版本变更太大属于架构级别的变化,所以大家都是不敢懈怠的,运维和开发的两两配对,每一步的操作都要另一个人二次确认。 尽管如此,期间还是问题不断,比如脏缓存问题,dns出错等等,整个变更和保障花了整48小时,吃睡也都在小黑屋.. 可以想象当时空气中弥漫的那种宿醉的异味。 当然这些异味不是重点,而是,在完成升级之后的凌晨,产品经理和运营经理都来找我们质问,"为什么系统中断了半个小时,不是说好平滑的吗..."

你所认为的很值得骄傲的事情,在别人看来可能不屑一提,因为大家的想要的东西并不一样。

其他的事

如果读过我的一篇文章的朋友可能还记得,在我第一家公司里头发生了许多八卦的事情。然而在这里,我几乎一点花边新闻没有收到,为什么?原因可能有这么几点:

  • 公司处于快速的上升调整期,高管似乎都把心思放在了事业上面
  • 身边的同事,包括我都扎进技术里头了,对这类事情并不关注

唯一会听到的小道消息可能就是诸如某某跳槽去了某游戏公司,薪资翻倍什么的之类,但是听多了会懂得这个就是常态的东西。 而更多的时间里就是大家都在为项目或是自我提升而持续的奋斗着。记得当时的主管讲过一句话:

"最恐怖的是,比你牛的人比你还要努力!"

这话一点没错的,团队呈现出来的特点只有努力两个字了。同事里不乏能力强又谦逊的,有些至今已成为了业界里有影响力的技术专家。

总体来说,我算是在一个比较好的时期加入了这家公司,在团队规模上恰到好处。同时管理层是技术出身,其对于开放,创新文化非常的重视。 所以,很重要的一点是,很少会碰到如大企业各种繁杂的流程,勾心斗角之类的事情

公司是移动互联网领域的佼佼者,我所在的两年半里规模扩张了一倍不止,在阿里收购之际,我也离开了公司。顺带还拿到了一点期权回购的钱,尽管那点钱其实很少,但却在我最困难的时候成了我的救命稻草!

曾经一位前辈跟我讲过,只要你一直在学习,当你做了五六年之后会达到一个小高峰。

的确是这样的,当时的我觉得自己技术还不错,几乎什么系统都可以去做,甚至觉得很多事情好像都很容易。

那个阶段是移动互联网的风口,各种互联网人创业成功的故事也是满天飞,在这样的环境中,我在一次偶然的机会下选择离职创业,又开始了下一段旅程。

(未完待续)

本文分享自微信公众号 - 美码师(gracebuilding),作者:美码师

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-04-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 不懂开源软件?你需要这篇文章

    没有开源软件,现在的互联网根本无法存在,开源的历史可以追溯到ARPANET建立。开源在今天已经不再是一个时髦的词了,对于互联网的开发者来说,它现在就像空气和水一...

    美码师
  • 老兵的十年职场之路(一)

    不知不觉已经到了工作的第十个年头,很难想象时间会消逝得这么的快,真是印证了那句成语叫"白驹过隙"。 白驹在不停的向前跑,我也从一个职场菜鸟变成了一名老兵,每当回...

    美码师
  • 补习系列(10)-springboot 之配置读取

    在早前的博客中曾经写过 Spring 程序通过 Bean 映射实现配置信息的读取。 在SpringBoot 框架中读取配置的方式变得非常多样,这导致读者在搜寻资...

    美码师
  • 一个自称 lpk.dll 的病毒分析

    该样本将自己命名为 lpk.dll,与系统 lpk.dll 同名,在程序需要使用 lpk.dll 时,便会遭到该样本的劫持。

    信安之路
  • Function as a Service介绍

    本文是在去年梳理的关于FaaS的一个文档,主要目标是梳理FaaS的基本概念,发展势头,应用场景和一些基本的架构设计。后来在内部参考FaaS的设计思路,我们实现...

    黑光技术
  • 航空发动机,机器人,芯片哪个难度大?

    从科技的角度分析航空发动机,机器人,芯片都归属于核心技术领域,每个从高端的角度分析都是需要多年的积累才能完成的事情,但非要比较其难度个人还是倾向于航空发动机。因...

    程序员互动联盟
  • 【专业文章】六种常见的HTML5写法误用(二)

    四、figure元素的常见错误 figure以及figcaption的正确使用,确实是难以驾驭。让我们来看看一些常见的错误, 不是所有的图片都是figure 上...

    程序员互动联盟
  • 【.NET】UnpackMe!Shielden+DNGuard,双层变异壳 - 脱壳详解

    前言:自从脱壳神器de4dot横空出世以来,我们可以看到几乎所有的.net破文中的第一部分就是不管三七二十一把程序丢进去脱壳以及反混淆。可是你真的明白de4do...

    逸鹏
  • CPU、GPU、FPGA、ASIC,区块链挖矿技术哪家强?

    区块链火了!10月24日,中共中央政治局就区块链技术发展现状和趋势进行第十八次集体学习,明确区块链技术的集成应用在新的技术革新和产业变革中所起到的重要作用。

    PP鲁
  • XNOR.ai要简化数学,让人工智能从云端走进普通设备

    来源 | TechCrunch 编译 | 量子位 陈桦 与许多计算机概念类似,在讨论人工智能、机器学习或深度卷积网络时,人们关注的是数学。这些高性能网络的核心是...

    量子位

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动