你好呀,我是歪歪。
看到社区里面发起了“记我的第一份编程工作”的征文活动,让我也想起了我的第一份工作。
2016 年,大学毕业后,没有参加校招,直接选择一个人去了北京找工作。
历尽千辛万苦,终于找到了一个 Java 研发的工作,当时特别害怕自己过不了试用期。
在工作上就会非常努力的去学习,如饥似渴般的去看,去学。
我当时住的地方离公司很近,我一般晚上走的比较晚,因为可以享受公司的电脑和空调。回到宿舍后也会学到很晚,熬夜的习惯大概就从那个时候慢慢的养成了。
因为不懂的东西实在太多了,技术知识储备不够,带来的结果就是常常拿着一个需求不知道如何下手。
每写一行代码,都是胆战心惊,步履维艰。
记得我第一个需求就是写一个分页查询,但是学艺不精,还带了个 BUG 上去,这就是我职业生涯的第一个生产 BUG。
好在当时的同事对我都非常好,我特别感谢他们,在工作上给我指点了很多。我当时每天都有很多的问题,他们就不厌其烦的给我讲业务流程和系统逻辑。
而对于新入职的我来说,了解自己所在组的系统流程,比去亡羊补牢似的去学技术优先级更高。
为了了解系统流程,我把当时参与的几个系统的代码看了好几遍。
第一遍,在纸上画流程图,先画主流程,有个主体认知。
第二遍,再画分支细节,了解里面的支线任务。
第三遍,最后把整体和分支融合在一起。
当时也不知道有在线画的网址,就画在本子上了,画完之后把那张纸撕下来。没事就拿出看看,发现不对的地方还会修改一下。
最后,除了我,应该是没人能看懂我的那几页纸是干啥的。
再后来我参与对接的第一个渠道是微信支付。
他们的交互流程对于当时完全没有经验的我来说还是太复杂了,同事给我讲了好几次,我都没有完全消化下来,已经超出我能力范围之外了。
当时带我的同事,给予了我极大的帮助,他拿着纸和笔在本子上一步一步的给我画流程,每画一步就讲为啥是这样做的,数据是怎么流转的、异常后是怎么被处理的。
我惊讶于他能把整个流程默画下来。
于是我就先硬背,管它懂不懂的,我先把交互图背下来,我也默画几遍。边画边给自己讲为啥,说不出或者比较含糊的地方就去看代码,去网上查,去问。
反正就靠这些笨方法,挺过了试用期。
2016 年,印象比较深的还是那个国庆,也是参加工作的第三个月开始。
我没有回家,一个人窝在宿舍里面,七天时间,第一次完完整整的看完了一本技术书《深入理解Java虚拟机》。
那个时候的我完全驾驭不住书里面的内容,但是我会越看越兴奋,因为里面全是我不知道的,但是又隐隐约约觉得很厉害的知识点。
国庆过完了,书也通读了一遍。
知识点,是一个没记下来。但是它为我打开了一扇门:哦,原来,Java 里面还有个叫 JVM 的东西,帮我们做了这么多事呢?
是的,2016 年 10 月,我才第一次摸到了 JVM 的样子。在之前的实习和面试过程中,JVM 这三个字,似乎都不曾出现过。
有类似感受的,还有现在了解的比较多的 Dubbo。
当 Dubbo 第一次出现在我的视野中的时候,我都惊呆了。
当时我不懂,寻求同事的帮助,他在我的电脑上一顿操作之后,启动 A 服务的测试用例后,断点居然在 B 服务的代码中停下来了。
说真的,当程序停在断点的时候,我就知道,这是神迹啊,这个东西已经超出我有限的认知范围内了,得赶紧学一下。
虽然不懂,但是我会复制粘贴啊,看别人是这样配置的,于是粘一份出来,稍微改改也能用。
而为什么能用?
我不知道。
所以暗下决心,一定要知道为什么。我记得当时鼓捣了好一阵,但还是只学了一些皮毛。
自己尝试过去看源码,每次都像个无头苍蝇在源码里面乱撞,渐渐的就对源码产生了抵触情绪,所以也没学到什么精髓的东西。慢慢也就搁置了。
不只是 2016 年,其实一直到 2018 年,在工作的前两年半的时间,我自我感觉都是处于一个比较高效的学习状态下,自己的成长可以用突飞猛进来形容。
从最开始的做一些简单的“脏活累活”、一些别人已经分析完成需求,我只需要按照需求上的一二三四点写代码就行,到后来也慢慢的能参与到一些比较复杂的需求开发中去。
恰好,在我加入公司的第二年,公司引来了一波快速增长,交易量每天都在蹭蹭蹭的涨。
我的技术能力也就随着公司一起成长了一波,经历了大大小小的生产事故,也算是被千锤百炼过。
记得那一年,每周的上线日,为了把对交易系统的影响减低到最小,都会选择在低峰期上线。
我们交易系统每次上线都会选择在 22 点以后,后来交易量越来越大,有一段时间就是 23 点以后上线。
听到这个上线时间你是不是就头疼?
但是我当时一点都不觉得,我甚至还很期待每次的上线。
小公司的好处就是啥都能让你干点,所以我当时开发也要肩负上线的任务。根本就没有什么灾备、切流的操作,处于系统上线的蛮荒时代,完全没有自动化工具,就是人工登录上服务器滚动更新。借此机会也算是把 Linux 玩了个皮毛,对于后面做开发是勉强够用了。
上线时,除了开发之外,测试也需要留下来做好上线后的回归测试。
我参与开发的系统属于交易组中的核心系统之一,巅峰时期承担着公司大概 80% 的交易量,所以是测试总监直接负责测试我们的系统。
我、另外一个开发(类似于我的导师的身份,就是给我画图的同事)、一个测试总监、后来又招进来一个小伙子,就组成了上线小分队。
每次上线之前,我们都会一起在附近的小馆子吃一顿,吃一个多小时的样子,吃完回去上线。
在饭桌上,我们基本上无所不谈,我从另外几位的身上学到了很多,我们也从同事变成了很好的朋友。
也是在那个时候学会了喝白酒,写到这里的时候我特别怀念彼时的大盘鸡、烧烤串和小海鲜。
在北京的前两年,我主要是渡过了一个技术小白入门阶段。
而且还完成了一个学习方式的转变。
从最开始,想要学点什么东西的时候就首先想要找到对应的视频,到后面的优先看质量高的博客、文章、书籍、官网。
从视频,到文章,一个简单的转变,学习效率整体提升了起来。
当然我不是说看视频学习不好,只是我觉得我之前太依赖看视频学习了,已经形成了固化思维。
而看文章,打破了我的这种固化思维。
寒来暑往,时间很快来到了下一个时间节点。
2018 年中旬,那一年我 24 岁。
我所在的交易组面临了一次拆分,我的领导被委以重任,去开拓新的业务条线。
他找我面谈了一次:愿不愿意跟着我干,我从组里面带不走几个人,但是我想带着你走。你要同意我就去跟领导申请。
我想着交易也干了这么长时间了,感觉没啥挑战了,而且本来我们私交也是非常不错,于是我跟着他去了新的业务条线。
如果说在北京的前两年我的贵人是给我耐心画图并一直带着我一起发展的同事,后一年我的贵人就是带着我去新业务线的领导。
在这条全新的业务线上,他非常信任我,并给了我很大的发挥空间。
从需求分析、到系统设计、再到设计落地,让我全程跟进并主导开发,这是一个真正的从 0 到 1 的过程。
同时项目组人手不够,面试招人,让我做一面面试官,也就是从那个时候起,我面了很多人,有了宝贵的做面试官的经历。
领导常给我们说的是:你们就当这是一次创业,能不能成事儿,全依仗各位。
而我也是一直发自内心的想把这事干好。
那段时间,真的是有很多事情在等着你去做,去解决,而且优先级都很高,所以晚上加班、周末加班那是常有的事儿。
加完班,由于我和领导住的也比较近,经常坐他车回家,我们在车上从来都心照不宣的、不聊工作上的事儿,就天南地北的扯淡,偶尔聊一聊家事儿。
新业务线上,我当时对接的是跨境电商,有时候出问题了,早上 4 点多就得爬起来解决问题。
说不累那是假的,但是看着一整套系统从 0 到 1 ,慢慢的完善起来了,是感觉真的值得。
就是这段经历,让我的技术能力和综合能力有了进一步的较大的提升。
也是这段经历,给予了我面试时,面对面试官的自信心。
之后,由于个人原因辞职,选择离开了北京。
这大概就是我第一份编程工作的经历。
我非常感谢我在北京遇到的公司、遇到的人,我很珍惜并怀念这一段经历。
本文参与了 SegmentFault 思否写作挑战「探索编码世界之旅 - 记我的第一份编程工作」,欢迎正在阅读的你也加入。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。