最近,知乎社区上有人问:“有文章说,应届毕业生去科技巨头公司只是维护老代码,而不是写新代码,知识增长率比创业公司要低得多,请问属实吗,为什么?”大家对此展开了热烈的讨论,对大、小公司在个人职业发展中的作用褒贬不一。
首先,在创业公司的好处是,人少,开发少,就 2 个,整个网站的最内核的框架代码我都了解,最主要的代码我都参与了,整个项目从头到尾我都能了如指掌,随便说起什么细节我都能侃侃而谈,这对于应届生来说,是很大的学习机会,我一年之内从零基础到对 PHP、CSS、Javascript 的精通,可以说完全得益于创业公司的锻炼。毕竟是小公司,所以前端、后台什么都得自己来,有时候还要负责下 UI 的设计、图片的剪接,可以说一年之内我身兼数职,UI 设计,前端开发,后台开发……大公司分工很细,各司其职,你会更精通某项技能,而不是面面俱到。但是,创业公司也有创业公司的悲剧。正如我在上面提到的,在创业公司,你一个人身兼数职,需要做很多工作,导致身心俱疲,加班更是家常便饭。我最近还好,去年有段时间天天加班到晚上 9 点多,甚至某天晚上加班到凌晨一点。说实话,我有点受不了,身体扛不住。而且创业公司你懂的,没加班费。如果在大公司,因为已有规章制度,一般不会加班,就算加班也是集体性的、有加班费的、极少数情况下的加班,不会无限制,也不会家常便饭,更不会无偿。
还有一点,你在创业公司学到很多,面面俱到,但有一点的确在大公司要好的就是,规范性和专业性。大公司你一般就做一个工作,但因为整个团队的领导也多,你能在这个专业技能上学的很精通很专业很规范。小作坊走出去的毕竟需要纠正很多不良的小习惯。比如代码规范等等。在大公司为了增强代码的可读性,连大括号是空格之后大括号还是换行之后大括号都有规定的,不是随随便便按照个人习惯的。这种规范更符合团队合作的需求。在创业公司,更能发展你的个人,而且是多方面发展,而在大公司,可以小而精地锻炼你的某个专业技能。这样说吧,如果你现在还不确定你要具体地做那一个细节行(比如只想做互联网,还不知道做 UI、前端、后台)那就推荐你去创业公司,广泛学习,了解自己的长处和兴趣。如果你确定了自己的职业规划,而且暂时没有创业的念头,那就去大公司吧。
“知识增长率”以维护代码还是写新代码来区分也太扯了。大项目容易遇到各种问题,解决问题的过程就是专业知识不断增长的过程。分析问题可能需要几周,而动的代码也许只有两行。但是,期间的收获并不小。而创业公司每天赶着各种模块,你就是写了上千行代码又怎么样?也许仅仅是不断的重复你已知的技术,甚至,不断的重复你的错误。
所以,去大公司,应该看自己是否有机会处理核心业务的问题(比如百度就是搜索)。去小公司,要看自己的职位是否可能独当一面。这样,无论你在哪里,都可以获得高的知识增长率。
我觉得并不属实。首先说一下“知识增长率”,如果一个人在某个方面的原有掌握的知识很少,那么只要他在这个方面有了些进步,那么这个增长率就会很高,因为基数小。我觉得楼主的意思应该还是学习的速度、深度和广度。无论是写代码,还是维护代码,都是一个学习的过程。在创业公司或者创业团队中,写自己的代码,可以亲身经历设计、实现、上线、有问题、再设计、再实现、再上线、又有问题这样的一个痛苦的分娩过程,过程很痛苦,经历之后很有收获。但这样的过程,并不是一个人快速成长的唯一途径,在大公司维护代码,同样也是一个关键的学习过程,维护代码,如果要做一点点修改,必然要懂得手上的代码,起初的时候,所读所改自然很小,后续会慢慢展开,逐渐的把一个相对完善、健壮的系统消化吸收,个人认为,这同样是一个十分有效率的学习的过程。
在创业公司或者是小团队,个人能够有机会接触到一个业务的各个环节,从策划到运营,甚至还有可能跟着市场的人一起去跟客户 PK、喝酒。在大公司,能够直接的看到在一个问题一个相对成熟、正确的解决方案,如果个人很主动的话,还可以知道在这个问题上不断迭代的历史,能看到原来在一个看似简单的问题上,还有某些隐患,以及这些隐患的解决方法。抛开物质收益以及企业寿命不谈,在互联网企业中,无论是小公司还是大公司,对于一个新人,都有足够的料让新人去学习,去成长,虽然可能因为个人的际遇,会对个人的成长带来或大或小的影响,但在成长的过程中,自身的主动好学、分享积累,才是王道。
这个问题和上面的回答其实深刻反映了中国创业公司和硅谷创业公司的一个巨大不同:对创业团队员工的价值认同。在硅谷,参与过创业的员工身价提升很快,这和硅谷的创业团队普遍水平较高有关系。只要是创业团队出来的,一般水平都不差。在中国,这种身价的提升就差很多,怪还是只能怪我们的创业大环境还处于早期,大家水平参差不齐,创业团队出来的人,水平也参差不齐。这就导致了大家觉得在创业公司冒风险,和在大公司相比不一定值得。
其实如果你去了一家好的创业公司,即使项目不成功,你的身价也会提升很多。我很认同这篇文章的说法,至少我觉得在我这里,知识增长率和能力增长率都会远远高于大公司。
这个话是有前提条件的,就是如果不去优秀的大公司维护老代码,你要去的创业公司一定得是像instagram 那样强大的。在中国,创业公司大多不靠谱,产品垃圾,作坊式开发,这种创业公司毁人啊,在中国刚毕业去大公司维护两年老代码是个人增值的最佳路径。有过这样的人创业公司也爱要,个人待遇也能要上价格。
我觉得对于毕业生来讲,首先要知道的所谓创业公司90% 以上最后都要失败死掉的,不管是在硅谷还是在中国,在《浪潮之巅》中把它形容成比中六合彩还难,因此如果抱着一夜暴富的心理进创业公司的话还是免了。其次从技术层面来讲,除了上面提到的全面和专精的问题外,创业公司和大公司很可能技术层面就不一样,你知道的10 万数据量和几亿数据量是很大的差别的,这很可能就决定了他们的技术层次,前面可能用几个PHP 网页就可以应付过去,后者可能要用到一大堆的技术来解决。
总结一下,创业公司比较有风险,里面容易成为万金油,做不细限制了层次,大公司池子大有足够的余地让你发挥,但很可能你只能知道其中一小部分,限制了你的眼界。
就这个问题本身来看,我以自己之前在华为(不知道是否算科技巨头公司,呵呵)的经历来谈谈,供参考:首先,对于应届毕业生,入职公司时,除非进入较新的部门,否则可能需要较长一段的被培养期,那么这段时间直接让你参与新代码的编写的可能性会小一些,即便是新项目,可能也是做测试等较为边缘的工作。其次,大公司很多产品已经较为臃肿成型,那么这个时间出于风险等诸多的考量,一般不大可能进行重构,通常能做的就是解决BUG 维护既有产品代码;而即使客户有较大的需求,需要在旧产品代码上增量开发新功能或特性,那么这时通常还是会由资历较深的核心员工把握,应届生得多的机会仍可能偏少。当然,这些只是自己的一点经验,不同的公司产品规模,用户群体等并不尽然相同,开发模式以及对应届生的培养也不尽相同,仅供参考。
毕业后去一家大软件公司做了两年。收获:培养了比较良好的职业习惯;学习到了良好的沟通技巧;工作比较闲,我利用空闲时间学习了很多知识,并且花了几个月将项目组负责的系统各部分代码、设计文档都仔细阅读了,并且在之后的工作中对自己影响巨大。离职原因:工作太闲了,自己对技术比较有激情,想做更具有挑战性的活。
第四年去了一家创业公司,并已上市。收获:如@GayScript 所说在创业公司比较锻炼人的是身兼数职,实现了自己之前积累的很多想法。离职原因:如@GayScript 所说,身兼数职,能得到支援的资源很少,身心巨疲。身体有点扛不住了,加之老婆抱怨之声很大。
谁说维护老代码不能获得新知识了。读老代码 -> 研究代码 -> 学习代码 -> 自己使用 -> 获得新知识。不过你要说在大公司很少有机会接触到新的领域,这个确实,不过你可以在自己的时间里面自学啊,自学总比被别人逼着加班学感觉要好吧。
而且就本人的经验,让我快速自学,我也是通过大量阅读代码来熟悉学习编程的,在某种程度上说,要是有大公司的规范代码来阅读,那学习效率说不定更高。
一个人的成长与否与维护代码还是写新代码没有直接关系;关键在于你做的项目是否有价值,是否在你的兴趣点上;在大公司同样会有挑战性的项目分给你,从头到尾一口气儿做下来;在小公司同样也有很多让你做得很郁闷的小项目。
读者朋友对此有何看法?欢迎大家发表自己的意见。
评论