程序员大厂十年:我的三段职业经历和八条建议!

2023-10-18 15:10

本文主要是介绍程序员大厂十年:我的三段职业经历和八条建议!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我2009年本科毕业,毕业第一年进入QQ后台,从事分布式系统的开发。

那年,我完成了一个学生到职业人士的蜕变,也完成了学生式技术思维到职业式技术思维的转变。

毕业入职后,参与的第一个项目是QQ分布式后台的接入层系统。当时的QQ 主要还在PC端,移动互联网还没有兴起。

QQ接入层最难的事情,是在线状态的同步。以前PC端的QQ,有在线状态的功能,你登陆上线后,你的好友能在一秒的延时内,接收到你状态的变化。

那时 QQ 已经接近1亿人同时在线,1亿人在线状态的互相同步,所带来的同步流量是很恐怖的。QQ接入层最牛B的地方,就是利用流量分层的思想,使得1亿人的状态同步,在有限的带宽资源下达成了,而且端到端的时延控制在了1秒内。

我作为一个毕业生加入到了这个团队,可以说是接触到了当时即时通信领域最尖端的技术。

在那一年多的时间里,我懂得了什么是架构设计,什么是定性分析和定量分析,接触了海量分布式系统的设计理念,培养起了软件质量的意识,心理上也完成了一个学生到职场人士的改变。

2010年,因家庭的原因,我转岗到了QQ邮箱。因为原来的技术基础比较好,入职后进入到了基础架构团队,做自研存储系统的研发。

2011年,微信项目立项,半年后被安排进微信项目组。

进入项目组后,接到的第一个任务,是研发一套适合微信业务的存储系统。

当时的技术总监对这个新的存储系统提出了很高的要求,要求实现双主灾备而且要求性能要有三倍的提升。

项目发展初期,人手严重不足。

初始只有我跟我 Leader 做这块的事情,但我 Leader 因为还有其它的任务,所以真正 coding 的只有我一个人。

现在回想起来,那真是一个赶鸭子上架的项目。

项目要求、人力、时间,在现在看来,都是极不合理的,但客观环境的限制,你不上也得上!

经历了半年艰苦的过程,我几次想过放弃,当时外面新的 Offer 都谈好了,不过最后还是坚持了下来。

现在想来,那半年,是这十年,成长最快的时期。技术能力,技术视野,心理承受能力,都上了一个新层次。我也深刻体会到了:要历经风雨,才能看见彩虹!成长,真的是被逼出来的!

写下这段的时候,我内心依然带着一份激动!

顺理成章的,我成为这个存储系统的主负责人,随着业务的高速发展,业务侧对存储系统也不断提出新的需求和新的要求。

到2014年的时候,系统已经经历了3次重大迭代,从最初勉强可用的小系统发展到了覆盖微信百分之九十以上业务的存储系统。

我也由一个普通工程师成长为了一名高级工程师。

当时微信的发展迅猛,而且微信有很好的产品文化,我在基础架构团队做了一段时间后,也想多接触接触产品,于是就申请转岗到了开放平台。

开发平台团队当时的主要业务是公众号。

进入的第一年,我感到了不适应。

在技术上,相比基础架构团队,业务团队在技术规范,软件质量保障上的投入都比较少,有段时间,我还觉得有些技术的事情做的太过 “随意”。

在产品上,经常跟不上产品的思路,产品说的每句话都能听懂,但却不懂得这背后的考量,想不清楚为什么要这么做。

2015年左右的时间,我又进入到了快速成长期,不过这次成长是偏业务的成长。

我带着做基础架构积累下来的经验,对已有的业务系统进行了全面的 review , 带着几个同学,一起把已有的基础系统,进行了优化和重构,使得业务的稳定性上了一个台阶。

自己在这个过程中,也培养起了更好的业务意识:不追求最好,只要最合适!

同时,自己也获得了任命,开始带技术团队。

接下来几年里,除了技术经验,自身的业务经验,产品思维,管理能力都得到了巨大的提升。

我觉得,这又是一次蜕变的过程!

以上是我个人的三段关键经历,因为文字篇幅的缘故,有很多的故事没提及,没展开。这些故事,有些在以前的文章里面分享过了,还有些,后面也会继续分享给大家。

这十年,除了故事,我也有一些自身的感悟分享给大家。

1. 技术并非随着工作年限的增长而一直增长。通常毕业一两年后,都可以获得快速的成长,但后续的成长就很依赖于是否碰上好项目了。没有好的项目,没有实战的经历,技术能力很难有根本性的提升。

2.技术人员不止于技术。作为一名程序员,技术能力是很重要的。我建议职业生涯的早期,都要专注于技术,保证自己能有一项核心竞争力,但不应该止于技术,如果有机会接触业务,产品,管理,我建议都应该去试试。

3.不要过早进入管理。管理是耗费精力的,特别是新晋的管理者,往往被搞到焦头烂额,无暇顾及自身的技术提升,所以我建议不要过早进入管理,工作三至五年后,再进入比较好。

4.职业规划要尽早开始。职业规划不是一个静态的计划而是随自身发展而变化的。需要注意的是:

一,要尽早开始,最好在进入工作后就开始思考这个事情;

二,不要追求完美,没有完美的职业规划,合适自己才是最好的!

5.成长是痛苦的!至少我的经历里面,每次的蜕变都伴随着心理上的煎熬,准确的说,是经历过了这种煎熬,才带来了蜕变。而每次的蜕变,都带来了视野上的开阔和心理舒适区的极大扩展。所以,对于成长的痛苦,你应该要有心理准备!

6.从自己的事业中找寻真正的乐趣。十年的时间,说实话,很漫长的,任何的工作做久了,都会腻烦,如果你能从工作,从技术中找寻到真正的乐趣,你的生活会幸福很多!

7. 个人的发展,跟能力,跟选择,跟运气都有很大的关系。我们没办法掌控人生的全盘,但可以掌控主观的因素,比如提升能力,做出合理选择,至于运气就要看上天了。

8.人生真的是一场长跑,重要的是越过终点的时刻。在我的圈子里,我的发展算是中上水平,有比我好的,也有比我差的。有些人早年发展的比我慢,但后面飞快地上去了;也有人早年走得很快,但后面慢慢沉寂了。

把时间拉长,从一年,三年,五年,十年,甚至二十年,你会发现,很多人都已经放弃不跑了。大部分可能在五年至十年时就呆在原地不动了,所以,只要能够坚持二十年以上的尽力向前,你一定可以超越很多人!

最后,谢谢你听我啰嗦了那么多。我的感悟里面,有干货也有鸡汤,十年是一个很漫长的过程,一个人不可能只凭着枯燥的坚持走下来,除了正确的方向,指引,你也需要强大的来自心底的源动力!这动力,来自你的乐观,激情和对未来的憧憬!希望大家都能保有它们 !

这篇关于程序员大厂十年:我的三段职业经历和八条建议!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/233354

相关文章

CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历

转自:http://blog.csdn.net/fengyily/article/details/42557841 本人一直用的是CRtmpServer服务,在CRtmpServer服务中根据自已的想法也加入了许多功能,如通过http接口来加载配置等,苦于不支持HLS,自已添加ts分片水平又有限,思来想去决定借助SimpleRtmpServer的HLS功能。说干就干,马上查找相关资源

为何我建议你学会抄代码?

文章目录 为何我建议你学会抄代码?一、引言二、抄代码的艺术1、理解抄代码的真正含义1.1、抄代码的好处 2、如何有效地抄代码2.1、发现问题2.2、整理需求2.3、造轮子标准流程 三、抄代码的实践案例1、发现问题2、整理需求3、设计重试机制4、实现重试工具类5、使用重试工具类6、优化和扩展 四、总结 为何我建议你学会抄代码? 一、引言 在编程的世界中,“抄代码” 常被视为一

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

腾讯社招面试经历

前提:本人2011年毕业于一个普通本科,工作不到2年。   15号晚上7点多,正在炒菜做饭,腾讯忽然打电话来问我对他们的Linux C++的职位是否感兴趣,我表达了我感兴趣之后,就开始了一段简短的电话面试,电话面试主要内容:C++和TCP socket通信的一些基础知识。之后就问我一道算法题:10亿个整数,随机生成,可重复,求最大的前1万个。当时我一下子就蒙了,没反应过来,何况我还正在烧

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

大厂算法例题解之网易2018秋招笔试真题 (未完)

1、字符串碎片 【题目描述】一个由小写字母组成的字符串可以看成一些同一字母的最大碎片组成的。例如,“aaabbaaac” 是由下面碎片组成的:‘aaa’,‘bb’,‘c’。牛牛现在给定一个字符串,请你帮助计算这个字符串的所有碎片的 平均长度是多少。 输入描述: 输入包括一个字符串 s,字符串 s 的长度 length(1 ≤ length ≤ 50),s 只含小写字母(‘a’-‘z’) 输出描述

程序员都在使用的画图工具

大家好,我是袁庭新。 程序员都在使用的画图工具,你一定没用过这款画图工具吧!我教程中的架构图都是用它来画的。 比如我编写的RDB工作原理图就是用draw.io绘制的,如下图所示: 再例如Redis集群故障恢复原理图我也是通过draw.io工具绘制的,如下图所示: 是不是觉得draw.io绘制的图形特别简洁、美观。它的官网是: https://www.drawio.com dra

2024数学建模国赛选题建议+团队助攻资料(已更新完毕)

目录 一、题目特点和选题建议 二、模型选择 1、评价模型 2、预测模型 3、分类模型 4、优化模型 5、统计分析模型 三、white学长团队助攻资料 1、助攻代码 2、成品论文PDF版 3、成品论文word版 9月5日晚18:00就要公布题目了,根据历年竞赛题目,可以分析A/B/C/D/E题目大概的类型,提前了解题目特点,在选题上就不会浪费过多时间。下面总结了一下5个题目各

Vue组件文件夹结构建议

全局通用组件 位于src/components。 注意与业务组件区分,全局通用组件更强调基础性。类似于一个UI框架里的各种Input、Button、Tab,只是在此处是你自己封装的。 建议风格 文件夹命名使用PascalBase风格一个文件夹代表一个组件组件使用index.vue导出 示例 目录结构 - src- components- SvgIcon- index.vue 使用

大厂面试:小米嵌入式面试题大全及参考答案(130+道 12万长文)

Flink 架构介绍 Flink 是一个分布式流处理和批处理框架,具有高吞吐、低延迟、高可靠等特点。其架构主要由以下几个部分组成: 客户端(Client):负责将作业提交到集群,并与作业管理器进行交互,获取作业的状态信息。客户端可以是命令行工具、IDE 插件或者自定义的应用程序。作业管理器(JobManager):负责接收客户端提交的作业,协调资源分配,调度任务执行,并监控作业的执