入行十年,卷王也卷不动了,想对新人说

很多年前,当我还是一名学生的时候,有一次高我好几届已工作几年的师兄回校给我们做交流,听说他已经是“高级研发工程师”,在深圳某企业月入上万。那时候心里一阵崇拜,觉得“高级”开发该是多么厉害的存在,让我无数次憧憬着成为像他一样厉害且收入高的人群。

时光荏苒,一晃十年过去了。自己也从当初的菜鸟,成长为“高级研发工程师”,然后做了管理、带了团队,薪资也从几千达到了百万。然而,在互联网摸爬滚打多年后,发现很多事情跟自己当初想象的完全不一样:

  • 编程并不总是随着经验累积越多,你越发轻松
  • 长时间写一线业务代码并不有趣,甚至有些无聊
  • 如果你只想在你的职业生涯中安静的研究技术,那么你在这个行业很难走远

回溯过往,眼瞅着这个行业潮起潮落,仍然有越来越多的新人奋不顾身的涌入,在此以一个行业“老兵”的身份给即将或者刚入行的同学一些感悟和分享,希望能让你们少踩一些坑,踏上更坚实的职业征程。

珍惜前两年,用力去卷

我一直认为,这个行业(可能其他行业也是)新人成长最快的就是前两年。这是因为:

  • 新人刚刚步入职场,对于新的挑战和机会充满了热情。你们带着刚从学校获得的知识和技能,急切地想要将这些应用到实际工作中,从而迅速增长。
  • 在前两年,新人通常会承担较少的重要项目和高级别的责任。这为你们提供了一个相对安全的环境,可以更自由地学习和尝试新事物,而不必担心严重的后果。
  • 在最初的阶段,新人会得到较多的指导和反馈。这有助于你们更快速地纠正错误、学习新知识,并逐步提高自己的能力。
  • 新人进入工作环境后,需要迅速适应不同的工作情境、流程和团队文化。这种适应性的训练使你们能够更快速地适应变化,并培养出解决问题的能力。
  • 许多新人在前两年内通常没有太多家庭负担,生活开支较少。这使得你们能够更专注地投入到工作和学习中,从而更加快速地成长。相较于后续可能出现的家庭责任和花销,你们在这段时间能够更自由地选择投入时间和精力,去学习新技能、探索新领域,并积累宝贵的经验。

想起我职业生涯的第一年,对未来充满了无尽的焦虑。也是由于这种焦虑,让我牟足了劲去学习行业技能。我不记得有多少个晚上是学到了半夜2-3点,但我的收获是专业技能得到了快速成长,为自己的职业生涯开了一个好头。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EXwo8x7V-1693064591235)(/Users/bin.ke/Library/Application Support/typora-user-images/image-20230826122010186.png)]

后来我进了大厂,当了管理,大厂对新人一般都会有一个培养机制,比如:3个月入门指导、6个月辅导计划、年度提升规划等。同时,在做事的标准上对新人的宽容度也会更高,会给你试错的机会,但会要求你从错误中去复盘、成长。

然而,在多年的管理生涯中,也遇到了很多新人在短暂的努力过后,变得不思进取,早早的就退出了奋勇争先的行列,被同龄人快速超越。

印象最深的是22届的一位同学,暂且称为A某,成都电子科大毕业。有名校光环,学习能力也强。从实习到入职后前半年,非常积极、努力,成长也很快,半年过后就能独立支持中小项目的研发。但随着时间推移,他身上的劣势也越发显现。在掌握了工作的基本技能后,他开始变得有些不务正业:在工作中开始花大量时间学习安全技能,但本职工作中几乎用不到。相应的,他的工作产出越来越低,交付不及时,质量不合格,对他的投诉也越来越多。经过3个多月的沟通、辅导,再沟通、给改正机会后仍然看不到任何进步,最终被辞退。

写代码很简单,但写好代码很难

当你掌握了一定的专业技能后,实现业务功能对于大多数开发者来说都不是一件难事。但想写出好代码却很难。比方说下面的代码,你认为是好代码么?

func Deduplicate(input []string) []string {
    result := []string{}
    for _, item := range input {
        exists := false
        for _, r := range result {
            if r == item {
                exists = true
                break
            }
        }
        if !exists {
            result = append(result, item)
        }
    }
    return result
}

这段代码用于对字符串数组进行去重操作。虽然实现了去重功能,但从代码质量的角度来看,它存在一些问题:

  • 性能较差:result 切片中进行遍历查找是否已存在相同的元素,时间复杂度较高,特别是当输入切片较大时。
  • 可读性不高: 嵌套的循环和多个条件判断导致代码复杂,难以一眼理解逻辑。
  • 未使用现有工具: Golang 提供了 map 数据结构可以用来更高效地实现去重,但代码中未使用。

让我们试着使用map做出改进:

func Deduplicate(input []string) []string {
    unique := make(map[string]bool)
    result := []string{}
    for _, item := range input {
        if !unique[item] {
            unique[item] = true
            result = append(result, item)
        }
    }
    return result
}

是不是瞬间看起来都舒服多了😄。

那么该如何写出好代码呢?

好代码并不仅仅是实现功能,更是一种艺术和哲学,我们在写代码时,应该多思考代码的质量和可维护性。问自己以下问题:

  • 这段代码是否易于阅读?其他人能理解吗?
  • 是否有更简洁的实现方式?
  • 是否需要加入注释来解释实现思路?
  • 是否考虑了性能问题和异常情况?
  • 是否符合团队的代码规范和设计风格?

这些问题可以总结为以下的编码标准:

  • 可读性优先: 代码应该易于阅读和理解,变量名、函数名应该具有表意性。清晰的命名可以减少代码注释的需要。
  • 简洁明了: 避免冗余代码,使用合适的数据结构和算法,让代码尽可能简洁,同时保持功能完整。
  • 注重性能: 在保持代码可读性的前提下,考虑算法的效率和性能。避免不必要的循环和重复计算。
  • 注释解释: 代码中应添加适量的注释,解释代码的意图、实现思路和关键步骤。这有助于其他开发者理解和维护代码。
  • 模块化设计: 将代码拆分成小的、可复用的模块,提高代码的可维护性和可测试性。
  • 错误处理: 考虑异常情况和边界条件,进行适当的错误处理,避免潜在的问题。
  • 版本控制: 使用版本控制工具管理代码,保留历史记录,方便回溯和团队协作。

写好代码是一件需要时间和经验积累的事情,但始终保持对代码质量的追求,将会使你成为更优秀的开发者。

想拿高薪吗?首先要成为卷王

过去的十多年是互联网疯狂发展的年代,很多人包括我吃到了这个行业的红利,行业内动则薪资上百万、甚至几百万的大有人在。但随着行业红利的逐渐下滑,越来越多的新人涌入,这个行业肉眼可见的变得越来越卷。

我印象中的“卷”是从16开始的,这一年被称作直播大战的一年,也是“短视频”元年。随着智能手机的普及,移动化的加速,万物皆"上线",行业巨头(尤其AT)疯狂扩张和竞争。什么“996是福报”、"面向ICU编程"成为行业普遍的现象。行业变得越发内卷的同时,薪资也确实水涨船高,吸引了越来越多“用生命”换钱的卷王(😭)。

这就是行业的现实,特别是这两年红利期的减少,经济的下滑,大厂业务收缩、裁员加剧,对于新人来说,竞争变得更加剧烈了。在这样的背景下,我为什么推荐新人去“卷”呢,是因为:

  • 积累经验: 通过卷,你可以迅速接触到各种项目、技术和领域,积累宝贵的实战经验。虽然过度卷可能会疲惫,但在一段时间内,你会获得比其他人更多的锻炼机会。
  • 成为多面手: 卷王往往需要在短时间内涉猎多个领域,这培养了你的多面手技能。这对于职业发展和未来的岗位选择都有好处。
  • 快速成长: 卷王面对各种挑战,需要不断学习、解决问题。这种快节奏的环境可以让你迅速成长,积累的知识和技能会让你在职业生涯中受益匪浅。
  • 适应压力: 行业的快速发展和竞争带来了巨大的工作压力,通过卷王经历,你会逐渐适应并变得更加抗压。
  • 职级晋升:通过卷让自己在公司脱颖而出,快速晋升,晋升一定伴随着薪资的增加,就算是跳槽你晋升的职级也是你薪资谈判的重要亮点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8uRZLegx-1693064591236)(/Users/bin.ke/Library/Application Support/typora-user-images/image-20230826120305402.png)]

虽然成为卷王可能需要付出更多的时间和努力,但在现如今的竞争激烈环境下,通过卷王的方式可以更快地脱颖而出,为自己的职业生涯奠定坚实的基础。

搞技术可以,但不要只搞技术

”我就想安安静静地搞技术、敲代码,用技术思维解决技术问题,也用技术思维解决业务问题。我能实现业务功能就可以了,我不想也不愿花心思去搞懂业务“。这或许是许多研发者的心声,搞懂业务是产品、运营的事情,我是技术专注技术就行了。

曾几何时,我和千千万万的技术开发一样也是这么认为的。直到有一天我感觉卷不太动了(也有可能是年纪大了😂),我发现业界新的技术、框架层出不穷,技术之路永无止尽。而且也见证过一些技术牛人随时被下岗(有一位很厉害的架构师曾经是我下属),我突然觉得:技术思维很重要,但只动技术不懂业务你就随时可替代。

毕竟,任何技术都是要为业务服务的,只有有市场的业务才能活下来,只有活下来的业务才能让公司养活技术团队。脱离市场(业务)单纯只靠技术养活团队的毕竟是极少数(行业技术推动者)。

举两个鲜活的例子,我公司之前有两个只专注技术解决问题的团队:一个是infra,一个是data。前者负责公司基础设施建设,后者负责大数据处理。他们团队对也公司各领域业务都不熟,在公司业务还不错的情况下,是有足够资源养活的。但这两年公司业绩下滑、股价大跌,最终导致大规模裁员,首先开刀的就是这两个团队。因为纯技术给公司带来不了业务收益。

这是我入行十年的一些感悟,希望能帮助更多新人在这个行业中更好地成长。无论你选择的道路如何,保持对技术的热情,同时不断拓展自己的眼界,用心去创造价值,你将能在这个变化多端的行业中持续成长,迎接未来的挑战。希望这些感悟能够为你们的职业发展提供一些指引,少踩一些坑,走得更加坚定。加油!

我是斌少,十年经验大厂全栈开发,多年一线leader,分享编程经验、技术干货,帮你少走弯路、快速成长。关注我吧!

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值