大家好,我是对白。
今天给大家分享一位朋友赤小豆的经历,她在大厂和小厂都工作过,正好最近写了一篇心得与体会,内容真实而富有情感,希望能帮助到正在抉择offer的小伙伴们,以下为原文。
毕业后到底应该去大厂工作还是小厂好,这是个老生常谈的话题了。小豆从毕业至今正好 6 年的时间,经历过火速发展并成功在纳斯达克上市的初创公司,也体验过国内和国外大厂的文化。我认为这个话题,不能够简单地说哪个更好,而应该仔细权衡,根据个人的情况因地制宜。
我刚毕业的时候,大众创业、万众创新的口号非常响亮,那时候行情一片大好。互联网还处于蒸蒸日上的时期,我当时也非常喜欢小初创公司的文化,人性化的管理,前沿的技术,配上还不错的福利,我在一家小初创公司开始了自己的职业生涯。
我喜欢那里的同事,同事之间关系非常好,至今还时常约出来聚聚。我也在这家公司找到了自己热爱的职业方向(程序员是个技术极其细分的工种),但是工作几年下来,发现职业发展遇到了瓶颈,公司的技术成长空间已经满足不了我个人的需求,于是到了一家大厂继续工作和学习。
下面我整理了从技术人的角度,在大厂和小厂会有哪些不同的体验。
视野
初创公司
在初创公司,可能整个技术团队才百来号人,能够有现金收入的业务线就几条,开几次全员大会就差不多了解公司的基本情况、近期目标和动向。组织架构相对来说比较扁平,人员管理也较为简单,平时在吃饭和闲聊间,就知道目前行业里头部的玩法。
而每个团队目前在做什么东西,也都是移动一下工位,有空的时候去聊聊天就能够获得的。从底层的基础设施团队,到后端服务、前端开发、中台、设计师、产品经理、运营、数据分析等一系列的岗位分工与合作,都能够有个大致的了解。
我也是在这个期间,从后端到前端都折腾过,加深了对本专业的理解,对产品端到端的生态也有一个比较全面的认识。在这个过程中,找到了自己比较感兴趣,能够进入心流状态的事情。
当时公司比较小,内部经常组织的一些分享会,每周五还有一个TGIF(Thanks God It’s Friday)活动,可以认识不同团队的人,有时候可以对CEO/CTO提一些问题,了解平常很少接触到的话题,更清楚公司的核心是什么,目前业界流行的玩法是什么,也算是开阔眼界。工作也是挺开心的。
大厂
相比而言,在大厂的工作其实没有那么自由的交流环境,因为企业太大,必须有非常好的流程和规章制度才能够让整个组织有序高效地运作。大厂中更倾向于一个萝卜一个坑,每个团队的分工非常明确,团队太大了其实跨团队之间的人员交流机会比较少。
所了解的信息更多是小团队内部的,比如周围都是工程师,那就是工程相关的一些分享与交流。毫不夸张地说,跨部门的人员交流几乎是没有的,除非工作中恰好有一些机会。
与初创公司偏爱多面手不同,大厂更喜欢培养领域专家。大厂工作中面对的挑战往往更大,如果每个领域都能够有人做的足够深入,不管遇到多大的困难都能够做的更领先一步,这样能够保持产品在市场中的优势地位。
从小到大我们都被鼓励学会更多的知识和本领,然而每个人的时间精力都是有限的,职场中更是偏向于奖励那些领域专家。
一直在小初创团队做技术的话,有可能比较难接触到比较深入的问题。
当然,当你还没有确定好自己的职业道路的时候,一个比较自由交流的环境也许会是不错的选择,可以在各种尝试中找到属于自己的专长。
内部工具与技术栈
初创公司
初创公司因为一切都从零开始,内部工具和技术选型一般都会追随比较新的一些方案。由于人员有限,很多平台型的产品能够买第三方的就绝不会自主研发。比如企业内部的通讯工具,文档工具,代码管理仓库,云服务等等。
购买第三方的好处很多,目前市面上也有很多优秀的创业公司比如 Slack(通讯工具),Gitlab,snowflake(数据仓库解决方案),阿里云,亚马逊云等等。这些工具做的真的非常人性化,按需付费,这也是为什么这些初创企业能够在激烈的竞争中生存下来的原因。
而大厂中往往喜欢自己造轮子,一方面人员比较充足,自己造出来的东西还可以拿出去卖,何乐而不为。然而,大厂造的轮子不一定好用。我常常怀念那些在小初创公司使用过的工具和产品。
初创公司的技术栈相对来说是比较新的,也没有太多的历史包袱。但是往往公司成立不久,一些基础的组件极度缺乏,通常会使用开源的方案。比如前端的组件库并没有那么多风格统一又完善的轮子可以重复使用,于是使用开源的一些前端组件,但是产品体验可能没有那么好,就成为一种无奈之举了。
再比如后端还没有建立起完善的服务体系,比如安全检查,日志服务,监控分析,网关服务等等,全部都使用开源的方案,使用规范很难做到统一。对于开发者而言,会有一种东拼西凑去实现某个目标的感觉,技术整体上缺乏长远的规划与思考。然而,对于初创公司而言,能够用就行了,也要求不了更多,毕竟人力物力摆在那里。
大厂
大厂则必须要规划和思考如何做到更统一和规范,特别是面向B端客户的产品,如果所提供后端服务的 API 约定千差万别,比如某些 API 的翻页有的用 skip + top 的形式,有的用 continuation token,这样的用户体验极差,并不是一个可持续发展的状态。
不得不说,作为大厂的程序员,其实是很幸福的,基础设施搭建的比较完备,技术规范比较好,容易培养起良好的编程习惯,也不容易走弯路。类似功能的轮子非常多,可以按需进行挑选,往往通过看别人写的代码和设计文档,能够学到很多,在技术方面的积累和视野也是小厂无法比的。
然而在初创公司,也许没有写设计文档的习惯,也许没有做代码审查的流程,也许也没有设计讨论会,有的只是赶紧出一个功能,先跑起来再说,跑起来之后其实还有其他的事情要忙。复盘总结如何做得更好,这些良好的习惯,或许是没有太多时间去做的,也没有相应的规范和约束鼓励员工做。
历史包袱
当然大厂也不是样样都好,也要看你所在的部门,所做的事情。有些部门还在用着非常老旧的技术,市面上都很少听到相关的术语,然而还需要维护着老旧的服务运行。历史包袱太重,却无法一下子抛弃掉,内部的各种依赖导致老服务无法下线,而员工还不得不学会跟这套老服务打交道,也是工作中体验不是那么好的一点。
初创公司没有那么多的顾虑,可以选择尝试最前沿的技术。在这个技术快速迭代的时代,如果有机会从零到一实践一个新的领域,长期坚守一个方向,说不定以后有发展成为该领域专家的机会。而大厂中接触不到外界新鲜事物的人,如果不注意提升自己知识迁移的能力,死守一个方向,又过于依赖当前的舒适区,以后有被慢慢淘汰的风险。
工作的标准
初创公司
在初创公司工作的时候,我发现工作相对来说还是比较轻松和简单的。没有太多困难的挑战,实现的方案其实大方向上没有问题就可以了。
只要足够用心,能够多思考一步,站在产品的角度去思考问题,我就能获得还不错的用户反馈。于是我一直认为自己做得还不错,但其实是因为当时我所在的团队还不够成熟,缺乏深度的思考,也缺乏高标准的要求。
举例来说,所做的产品投入的时间不会太长,几个月的时间,做个能用的雏形出来就可以了。然后不再继续琢磨如何做好它,为了完成更多的KPI,去做新的产品。在这种模式下,不需要太多深入地思考,也不需要高标准,只要快速产出就可以了。
这种工作模式,刚开始我的成长还是比较迅速的,但是很快就到了瓶颈。而且作为一个技术人,也时常感到迷茫和困惑,到底应该如何做技术,优秀的设计和架构是怎么样的。带着各种疑惑和学习的心态,我来到现在的公司,对每个人有更高的要求,我发现我的思维方式和能力得到了很大的提升。
大厂
目前所做的软件开发是一款 ToB 的产品,整个团队非常庞大,分工合作也非常的细。我感受到了比较规范的流程,不为了赶 deadline 而作设计上的妥协。我认为最重要的一点,是身边有很多非常厉害的人,可以从他们身上学习他们是怎么思考问题的。
???? 举一个例子,前端工程师说想要做一个页面的刷新,刷新后仍然能够回到当前页面的状态,需要后端这边加一个API,一般的人听了之后,觉得需求挺合理,实现也比较简单,就会说,好的,回头给你加上。这都是没有经过思考,也不知道应该如何思考系统设计的一种做事方式。
更正确的思考方式应该是先理解前端为什么需要这个API?
- 首先作为一个 Singles Page Application(SPA),刷新页面后,真的能够回到当初的状态吗?
- 当前页面的状态那么多,到底要还原到当初的百分之几,如果100%还原,技术上能够实现吗?即使能够实现,这个投入和产出的效果,值得吗?用户真的有这个需求吗?
- 如果没有后端 API 的支持,就真的没法做下去了吗?前端的需求是否有其他的途径可以自己解决掉,比如存到前端的 storage 中,减少跟后端 API 的交互。
- 跟后端交互越少越好,性能也能够得到提升,而不是不断地从后端索取想要的资源。
最后经过一系列的思考和讨论,结论就是不需要增加后端 API,前端可以做一些存储,URL 中也可以存储部分的信息,也不需要百分百还原刷新前的页面。
以上的思考,我会认为这是有价值的工作,不是为了完成任务不假思索就去做事情。不是为了完成某个KPI,不是为了让产品经理满意,也不是为了迎合老板。最终的价值应该落实到客户满意,做有意义的工作。
福利制度和升迁
小公司的各种福利制度不如大厂来得完善。大厂会有一种把你照顾的很好的感觉,各种大大小小的节日礼物,食堂健身房,不定期的各种培训,比如心理方面的,沟通与表达,家庭关系,身心健康等等你能想到的和想不到的外部分享。
至于升迁,也是看所在的团队和做的东西了,因人而异,总体来说小公司会快一些,毕竟人少,竞争也没有那么激烈。大厂人多,升职的机会少,那么就要煎熬和等待了。
对于升职这件事,我认为没有必要特别的在意,只要自己的水平提高了,有些属于自己的东西也许会迟一点点,但是一定会到。
结语
以上只是我个人的一些经历,不一定每家小公司或者大厂都这样,如果让我推荐毕业后去小厂还是大厂,我会推荐先去大厂。如果没得选,先去小厂也算是一种经历吧。
选工作最重要的不是钱多钱少,有些人纠结那相差几千块的月薪,有些人纠结公司的大小和名气。我认为最重要的是要保证自己能够在那里学到东西,自己喜欢干的且感兴趣的,周围有可以学习的牛人。
只有能够长期坚持下去的方向,才能够比别人走远。
不建议冲着一夜暴富的梦想去一家小初创公司,很大概率会失望,创业都是九死一生的事情,如果浪费了自己的时间,还学不到东西,那么才是最大的损失。
也不要听信HR的忽悠,相信自己面试的感觉,面试过程如果觉得很水,感受不到团队的魅力,还是应该再聊聊多考虑考虑。
对于已经有一些工作经验的同学,我认为选择一家公司的目标是:
跟什么样的人,做什么样的事。
如果两者兼得,你的工作会非常非常快乐而充实,而赚钱只不过是顺带的事情而已。
关于我
你好,我是对白,清华计算机硕士毕业,现大厂算法工程师,拿过8家大厂算法岗SSP offer(含特殊计划),薪资40+W-80+W不等。
高中荣获全国数学和化学竞赛二等奖。
本科独立创业五年,两家公司创始人,拿过三百多万元融资(已到账),项目入选南京321高层次创业人才引进计划。创业做过无人机、机器人和互联网教育,保研清华后退居股东。
我每周至少更新三篇原创,分享人工智能前沿算法、创业心得和人生感悟。我正在努力实现人生中的第二个小目标,上方关注后可以加我微信交流。
期待你的关注,我们一起悄悄拔尖,惊艳所有