刚好待过一个大公司(上万研发人员)和一个小公司(12个研发人员) 先说下小公司的体验,总共就十二个研发人员,包括了硬件电路设计,PCB layout,FPGA,DSP,结构工程师,嵌入式软件程序员,PC软件程序员,还有元器件库管兼焊工。小公司就是把人当成劳动力在使,根据你的能力地图,你可能会同时兼职干很多事。 比如我在入职一年中,前后担搞了硬件电路设计、PCB layout、FPGA,嵌入式软件程序员这四个活,偶尔还要兼职一下焊工。这四个活里面,任何一门深入学习下去都能吃喝不愁,但是你根本没机会深入下去,小公司的编制就决定了不可能做成大项目。另外,小公司还有个严重的问题,在管理上太粗放了,很少有形成条例的管理制度,完全是靠领导的心情。而且很少有小公司能做到软件工程中的全系列编制,小公司的代码有个很大的问题就是欠测试,体现在客户手里就是质量不行,之前我所待的那个公司,好几个产品,在开发部完成功能开发,然后放那儿运行几天,如果没有问题直接把工程机拿到客户现场演示。 再说一下大公司的体验。首先,规章制度和流程正规了很多,根据流程你知道自己的代码要经过几个月的锤炼,这其中至少包括以下三个过程:
(1)程序员的自验证和测试用例编写。
(2)组织代码检视,这里代码检视的力度一般是根据项目是否紧张来决定。
(3)发布版本交由测试进行测试,测试根据交付的功能在各种奇葩且变态场景下猛测几周。整个项目的周期在前面3个过程中反复,最终到客户手里的产品质量是相当的高。
如果用修桥来类比的话,小公司造的桥是这样的
大公司造的桥是这样的ps:图片来源于网络,侵删。
面对不同的场景,两座桥都能工作,都能解决不同的问题。小公司的程序员由于经常要面对快速出活的问题,代码质量上考虑欠缺,整个功能欠测试。而大公司的项目周期较长,代码能够得到多人的审视和走读,并且得到充足的测试场景保证,质量较高。最后,还有一些差别。小公司的程序员干的活比较杂,懂得较多,对整个产业链的东西总能东拉西扯说一堆东西。大公司的程序员对自身的业务代码特别熟悉,也钻研的较为细致,但是离开舒适区以后,感觉自身水平跟应届生差不多,这也是大厂程序员焦虑的源泉,总感觉自己的业务做得越久,市场竞争力越弱。
最后给大家推荐我的web前端资料分享群:755627684有免费学习资料,还有各种趣味案例等,欢迎各位加群!