软件工程师,应该去大公司还是小公司?
有一派认为要去大公司,因为大公司的基础建设较完善,工作职责分明,可以“认真coding”,而且福利待遇也较好;另一派则认为要去小公司,因为职责界线模糊,常要身兼多职,可以学到更广泛的技能,组织也比较弹性,沟通较顺畅。
2月,有PTT账号名为NewSpec (新配置) 的网友,以“如果可以,真的建议不要再去创业公司了”为标题发文,建议工程师不要去创业公司,引发论战。因此,有个PTT账号名为HZYSoft (PCMan) 的网友另外发布了一篇文章,用中立客观的态度,剖析大小公司的优缺点,引发PTT社群的热烈反响与支持。
HZYSoft (PCMan) 在文中表示,自己待过创业公司团队,也待过大公司,对两种公司都有些体验。小编在下文整理HZYSoft (PCMan) 的观点,提供工程师们职业生涯选择的参考。
大公司:制度、基础架构完善,但沟通限制多
优点:
公司制度完善
基础架构完善
best practice较扎实
程序代码品质较好
可以开眼界(因为需要考量世界级的规模)
缺点:
没机会碰底层架构
科层组织,沟通限制较多
很难对公司有影响力
HZYSoft (PCMan) 认为,大公司拥有完善的制度、基础建设、best practice和code quality;此外,由于大公司做事需要考虑世界级的规模,因此可以开眼界,是“学基本功的好地方”。但也因为已经有基础架构,基本上照着文件处理即可,不太会碰到底层架构;而且大公司分工明确,优点是可以在一个领域做很深,但广度相对受限。此外,大公司层级多,又需要跨国沟通,因此沟通效率较低。最后,除非你够强,或是在重要的职位上,不然很难对公司发挥影响力。
小公司:可以拓展技能树、练leadership,但做事求快、不深入
优点:
拓展技能树
有机会带项目,练leadership
推动变革容易
缺点:
做事求快,容易做不深
HZYSoft (PCMan) 表示,小公司分工较不明确,通常不会有专门的团队负责,所以要常常自己动手,有些infra要自己来,甚至兼职“PM”,因此可以拓展技能树。因为组织扁平,所以有机会带项目,可以练leadership。组织扁平,推动变革也相对容易得到上级支持。
然而小公司步调快,资源、时间相对有限,计划也常常变动,因此比起best practice,小公司更注重弹性与快速应变的能力,缺点就是事情求快,容易做不深,也容易留下技术债。
小编要在这里引述NewSpec (新配置) 网友的观点。NewSpec (新配置) 提到,有些工程师认为,在一般公司发展可能不好,看的不全面,增长不多,为了想学更多东西,因此去创业,负责更全方位的职责,希望能力更强。但NewSpec (新配置) 认为,“创业公司的规模小,所以其实每次做的事情都一样,一样浅、一样不深入”,去了几间创业公司,但也就是做几次同样的事情,因此几年下来也不会有长进。因此NewSpec (新配置) 总结,有心创业的工程师,在有一定的技术能力之前,先待在大公司里,因为“技术或架构能力上的增长、眼界的扩展才是最重要的”。
基本上NewSpec (新配置) 的观点也呼应了HZYSoft (PCMan) 的论点,就是小创业公司有做事不深入的缺点,大公司由于需要考量世界级的规模(市场、用户数等等),可以培养工程师的眼界,因此工程师若要选择小公司,这些缺点必须认真考虑。
NewSpec (新配置)文章传送门
NewSpec (新配置)文章传送门
结论:大小公司都很好,端看你想在怎样的环境工作、想培养怎样的技能
总结来说,HZYSoft (PCMan) 认为,大小公司出来的工程师各有专长,并没有哪方比较好。大公司的工程师经历过完善的制度与best practice,当企业想在市场站稳脚步,补上缺乏的制度与best practice的时候,就需要拥有类似经验的工程师。
至于小公司的工程师,他们常要面对变动的环境,而且小公司的系统限制更多,基础建设也不完善,常常要自己来,因此在这种环境磨练出来的工程师拥有强大的应变能力。此外,由于他们工作环境的code base不好,他们通常有能力处理技术债的烂摊子。
因此工程师该去大公司还是小公司,这没有标准答案,端看你想在怎样的code base环境下工作,想培养怎样的能力,想深耕单一领域还是拓展技能树,想静静coding还是推动组织变革,想按照计划工作还是接受各种突如其来的挑战,这两边都很好,都能学习,未来也能在软件工程界持续发挥所长。