在真实工作中的编程是咋样的,与学校里有啥不同
百赞啦,又想到了一些,更新一波~文档:学校:口口相传工作:别人都用Markdown写文档,快把你的Word收起来……delay:学校:deadline之前搞定了就好,先休息半个月再说工作:每天都要发项目日报,你的老板和你老板的老板都盯着呢……联调:学校:自己和自己联调,左右互搏……工作:我:##¥¥%!……\u0026amp;*!!对方:没听懂……需求:学校:定期和老师汇报进度就行,需求一般不会发生变化工作:时常会碰到来求助的运营MM故障:学校:就算真的遇到了,顶多挨顿骂工作:这个季度的kpi又悬了……上级:学校:才不管你怎么实现的,也不会看你代码,能用就好工作:不但会问你怎么实现的,也会review你代码,还会强行让你用一些新技术……代码复用:学校:复用全靠写函数工作:就算跨项目也要强行复用……造轮子:学校:轮子是什么工作:这个季度造个什么轮子吹比呢……bugs:学校:以空指针居多工作:只有想不到,没有遇不到……吐槽:学校:好烦啊,做了这么多事情一点好处也没有工作:运营又说改版了,之前的代码可是PHP的啊,确定这样也能改版?--------------------------------------------------------------------项目:学校:基于XXX的XXX系统的设计工作:商家处罚中心工作来源:学校:老师或者是自己工作:产品或者运营工作内容:学校:实现完整的项目工作:实现完整项目是少数情况,大部分是新增功能需求开发之前:学校:打游戏看电影刷拖延一下工作:开会评审需求,分配工作开发人数:学校:前端后台产品设计全是自己工作:前端2两人,后台3人,产品一人代码:学校:所有代码自己搞定工作:只负责规则模块规范:学校:实现功能就好,代码写成什么样不重要,从来不写任何注释,代码之后自己刚写完的几天才能看得懂工作:每一个模块都需要完成相应的单测,并且保证测试通过。代码需要简洁美观,变量、类等命名严格遵守驼峰命名法,需要附加完备的注释框架:学校:框架是什么,实现功能就行工作:公司对各个功能(例如链接数据库等)进行了封装,必须要使用相应的框架封装:学校:为什么一定要面向对象,怎么简单粗暴怎么来工作:进行一定的封装是必须的,要考虑代码的复用性,尽可能避免代码冗余。差的封装是会被吐槽的debug:学校:肉眼,偶尔使用工具,一碰到蛋疼一下午工作:使用工具,流程化排查问题疑难杂症:学校:自己蛋疼摸索,直到放弃向研究生师兄请教工作:蛋疼摸索一会,请教大牛发布:学校:随意发工作:每次发布需要请示老板,你多发几次试试……review:学校:review是啥……工作:发布之前必须review,被挑到刺打回去再正常不过maven:学校:maven是啥……工作:每个模块的打包发布都有严格的流程,maven依赖必须要仔细,否则很容易遇到问题,有专门的工具对maven依赖进行检查git:学校:coder只有一个,用git干嘛……工作:git的命令牢记于心,stash,merge,checkout花式命令,键盘敲起来氛围:学校:开发累了,打会游戏休息一下工作:老板就在旁边,你打个游戏试试……设计模式:学校:闻所未闻工作:原来这种方法这么机制,赶快学一下,以后说不定能用上先想到这么多,后面想到了再来更|第一名答案给的是一个在学校里屌屌的学生,进去一家传统公司,然后看不上一切别人垃圾代码的视角。我带来一个,毕业眼界也挺高,觉得自己技术不错,然后面试被真正的大牛虐成狗,然后还跪舔进入公司继续被虐的,游戏公司,第一视角。给我一份爱,还你一夜情。第一视角,现在开始。10年进入大学,无限憧憬大学,然后就傻逼了整个大一上学期,大一下学期买了电脑接触了dota,两年刀塔路,步步皆辛苦。大三下学期开始意识到,毕业总得赚钱吃饭,现在的节奏感觉会要饭,然后就开始敲代码。一开始无任何头绪,找到某培训机构视频开始看,我学java,据说ssh搞完,出去就有6k以上,我无耻的硬了。不对,我傻傻的信了。现在想想,多单纯啊,6k就感觉吊炸天了。大四下学期,独自一人去了广州,学校同学还在学校里接受培训机构培训。我觉得教的都会了。就先出来了。2013年11月18号,到了广州。投了一圈,没反应。感觉人生挫败了。这时候,有时候不得不说可怜之人偶尔也有运气好的时候。在qq上碰到一个公司发招聘,我完全不抱希望的尝试下,居然给了面试机会。当天去面试信心满满,然而并没有什么卵用。老大直接从基础问到虚拟机,计算机原理,编译原理。当场直接跪了,我现在都还有心理阴影。整整差不多一个小时,我感觉像是一个世纪。印象比较深,老大问编译原理,我说我们没有开编译原理的课,事实是真的没有。老大原话,“你们他妈没有编译原理也敢叫软件工程专业!”,我完全无法接下去。最后老大问,你坚持最久的一件事是什么?大三一直都在跑步,我说,跑步,跑了一年多。老大说,那你感谢你的跑步吧。就这样我留了下来。得到了全公司最低的月薪,别问我怎么知道的,不可能有人比我更低就是了。忘说了,老大长发,那种中长发,飘逸的那种,第一眼真心就觉得大牛。至今无法忘记见老大的第一眼。好了,不能再说了,再说会有gay的即视感。留下来后,下周二入职,周一我去看了牙齿,做根管治疗。大学里面完全不知道游戏怎么做,游戏服务端是怎么做。一丝一毫的概念都没有。第一天几乎没啥事做,我自己配了下环境,上网看了看游戏相关的东西。还是完全都不了解游戏到底怎么做。我的座位靠着一个项目组老员工,我就看他和别人一句话过来一句话过去,然后看看代码什么的,后来才知道这叫连调。第二天,旁边的老员工问我是新来的么,然后让我去找xxx要学习视频,然后拿两本书,一本Java并发编程实战(JCP),一本EffectiveJava。然后就开始看视频,看书,看视频,看书。视频也是一个培训机构录的视频,后来才知道,那是我老大几年前在一个培训机构讲课录的。大概看了一周多视频,终于有了个小任务,写一个拉日志的小程序。暂时就叫那个老员工鸟哥吧,大家都那么叫,一直我也不知道为什么。鸟哥讲了需求,给了点思路。我第一次知道延迟队列,第一次知道Executor线程池,然后就自己去搜,搜了然后去用,然后去写,写完去找鸟哥,鸟哥直接在我电脑上看代码,分分钟把问题找出来,看了多少篇文章,都不如鸟哥直接指出来,来的印象深刻。写完之后大概有看了一周的书,等到了第二个入职的新人,终于有了个伴。然而后来我问了,人家工资都比我高。我就说我全公司最低啦。第二个人进来后,我和他两人开始做第一个测试项目。SVN管理系统。在这之前,我对SVN真心都不太熟,只是知道这东西。第一个版本,鸟哥说写个命令行版本的,就直接在命令行能交互就行,我当时虽然被虐的很惨,但还是比较有信心的。毕竟当时我看培训视频,还写过一个OA的项目,当时我觉得OA就很牛逼了。没办法,眼界太低。开始做了才知道,这东西真心没那么简单,SVN写过代码的都知道,版本控制,有库什么的,原生版本好像是没有权限的,然后我们就是要在外面加一层控制,并把权限管理加进去,用一个RBAC模型,总之全都没听过,总之做的艰难前行。忘了说,当时面试进来,HR的老大就强调过,说他们公司对新人的淘汰率很高,每做一个小项目,都会有代码review,会有几个老大一起看,如果说不过,给次机会回去改,改了还不能过,直接辞退走人。童话里真的都是骗人的,我之前从来没有过这样的心理准备。你们有待过这样的公司么,真的是直接走人,真真的!后来看到有人review完,会议室里出来,就收拾东西去办离职了。你们感受下。在高压下前行,完成了第一个版本。第一次review,我不知道女孩子第一次是啥感觉,反正我进会议室内心是期待而又忐忑的。过去从来没有人这么正式的看过我的代码,一行一行的看。真的是一行一行的看!功能是最基础的,但是鸟哥真的不怎么在乎那些功能,他觉得那是必然要做到的。功能验证演示也就几分钟的事,功能看完就是看代码。在会议室,用个笔记本,远程桌面连接到自己的电脑上,然后直接投影到会议里,直接在eclipse里面看,从入口开始,一个一个方法,一行一行代码,那天整个人内心真的是被骂崩溃的。对的,就是被骂崩溃的。看到别人进入公司都会碰到一个和蔼的老李,我这边真没有老李,只有严厉的不能再严厉的鸟哥。代码中各种错误被鸟哥一处一处指出,包括各种编码规范错误,并发控制考虑,该抽出可配置文件的地方抽出配置文件去配,不能硬编码在代码中。印象很深的是不处理异常,直接就打印出来了。“你他妈打印出来给谁看,以后都是跑在服务器上的,以后不要让我看到syso在代码中出现”,然后还特意全局搜了下syso这句打印代码的数量,然后鸟哥一头黑线,因为我所有有异常的地方都是打印出来。当时加上设计错误,代码错误,反正记起来得有十几条,我写在笔记本上的,笔记本现在依然躺在我电脑边上。我是个恋旧的人。经过第一次review,我和另外一个哥们总算是感受到什么叫代码review了。那哥们比我早一届,已经毕业,之前在一家公司做过,我问他这咋办,真的是被喷成狗了。他说实在不行就辞职了。我没说话。/**2015/10/52点更新**/经过第一次review,回去改第二版,基本知道了问题有哪些,虽然被打击的非常惨,但是还是有信心可以把这些代码改好的。当时其中一个主要大的问题,就是在做多任务处理时,对多线程的处理,以及多线程异常的处理。当时鸟哥说,上传功能有可能当时是因为网速或者其他因素没上传成功,但是可能稍微多尝试几次就能成功,所以出错后要加尝试处理。当时我是真的没经验,我就觉得尝试嘛,得嘞,那捕获到异常,我就循环,while(true)一直就尝试上传操作,直到上传成功才跳出这段代码。所以当我上次看到那个图,一个哥们写代码,失败之后再强制去试100次的代码的时候,我真的是笑尿的,因为我比他更屌,我是试无限次。当然最后这里也是被鸟哥喷的狗血淋头,鸟哥说,你真牛逼。你这是在代码里面写了个死循环啊。我真的当时脸都绿了,因为我知道在服务器代码上写个死循环是什么后果,真的是一背都是汗。哦,插一段,当时第一次还是第二次review的时候,鸟哥看完代码之后,发现太多问题,实在没法看下去了,说,“你们的代码真的让我感觉到恶心。”。不知道你们review的时候,听到这么一句是什么感觉,反正我是一辈子忘不掉了,和我同期那个同事也是,至今一起吃饭每次都会回忆这句。当时经过了,几次改版,从基本命令行,到后来用bootstrap做个web版本,前前后后鬼门关走了得有7,8次,特别是当时做web版本,鸟哥要求使用restful风格,又是一个新名词,restful,好好休息么?我承认我当时真的是渣1的战力。不过鸟哥讲解东西真的是一绝,就三两下,真的可以把restful是个什么东西让你有个清晰的了解。restful当时还好说,springmvc本来就支持restful,真正让我差点挂掉的是js。JS我真的是学了一万年都没学好的一个东西,当时我和那个同事两人还是有点美术追求的,不想就写个特别简陋的界面出来,感觉至少也得让人能下的去眼吧,虽然鸟哥当时没有要求这个。后来我们两就想用bootstrap,一直都挺火的一个前端框架,但是也是完全没接触过,然后我还是9流的js程序,功能没花我太多时间,反而是界面真的是让我整个人都疯了。很难整体上做出一个比较好的效果出来。最后听说公司后台用的就是bootstrap,我们两就拿了公司的后台模板直接来改,但是中途发现公司有自己封装一层js,我的一个侧边栏点击,右边显示的效果死都出不来,但是这还是最重要的一个效果。搞得心好累,就是不出来。关键时刻,那个周末,我那个和我相依为命的同事,还去澳门玩了。我内心的怨念,你们可以感受下。因为他已经调出来了。没办法,我只能等他澳门回来,星期天晚上,12点多,我们语音,他跟我一起帮我调我的那个问题,最终解决。想想,那一段日子,没有他一起,还真的是很难坚持下来啊。相依为命的日子,一起深夜打车,冬天跑KFC买甜筒,一起感慨不知道哪次review完就要收拾东西走人。历历在目。===更了一段。待续。大家来点赞。要不好多人看不到。被压在下面。/**看了一眼,上一次更新时2015年10月5号,差两天正好一年,时间真的好快2016年10月3日更新*/感觉自己的记忆在一点点流失,趁着现在还能回忆起,我还是要坚持把我在那游戏公司的一年多写完。好不容易熬过SVN权限管理系统的痛苦黑暗的一段时期,差不多改了3个还是4个版本,从命令行一直写到WEB版本,方才罢休,总算是过了。不过忘记当时通过是什么感觉了,很后悔没有把但是最直接最真切的感受记录下,有可能这辈子都不会再有了。据之前已经通过试用期的同事小道消息,过了SVN权限管理系统之后就能真是接触游戏代码了,当时还是很兴奋的。马上要接触自己从没接触过的东西,好奇心所带来的兴奋感冲淡了那段难熬的痛苦时光。当时公司扩招的很厉害,办公位置不够,都是各种找位置挤,到最后没法挤了,就弄了个会议室,所有试用期的同学全部搬到了会议室改成的办公区。他们取名叫小黑屋。就是一个没有窗户的小会议室,挤一挤坐了7,8个人。后来我们也是在小黑屋里,结下了深厚的战友情,这是后话了。第二个测试项目开始涉及游戏,做一个黑市商店,也就是可以发布物品,然后玩家可以选择购买,然后扣费发放购买奖励什么的。但是听到需求的第一感觉是完全没概念的,没有任何整体的设计概念,知道像以前一样,定义个存储,设计一些接口啥的,对于实际游戏中的设计,或者说最佳实践完全木有概念。而且这次开始有了一个简单的公司框架给我们使用,我和我那个小伙伴简直如获至宝,感觉看公司的实际运行的东西是怎么写的,然而没想到木有源码,只是一个简单的架子,有些调用实例,底层的代码都是木有的。sigh.就这样做了第二个测试项目,过程快进了,和之前类似,都是被骂,修改,继续被骂,再修改。还好反正抱着必死的决心,也就坚持过来了。我那个一起吃甜筒的小伙伴中途还提过一次辞职,不过后来又被鸟哥两句话给安定下来了。我还记得那天鸟哥突然把我俩叫到会议室去,我一脸懵逼,然后就说我们就这么玻璃心,然后说我那小伙伴提了离职,问我怎么想的。我还一脸傻逼的笑着说,哈哈,我没有啊,还好诶。但是我的内心独白其实是,其实我也想过。经过了这个游戏项目,后面开始顺利很多,偶尔还会犯特别二的错误,但是已经可以整体理解真实游戏开发怎么做了。后面还继续做了两个测试项目,都是游戏中的真是模块,一个摇钱树,一个奴隶系统,我小伙伴抽到的是竞技场。反正就这么熬了下来。进到项目组之后,开始负责开发一些小玩法模块,修复一些产品提过来的BUG。老大已经不是鸟哥,换了实际游戏开发组的老大。不过要求没有一点点的减弱,每次上线的代码要review,会扣一些很细节的内存使用,数据结构使用,边界的处理从这个老大那里也是学到很多。对待代码的那种认真的态度,和对实际review中的错误代码敏感度,真是我到现在都很敬佩的。总是能在review中快速看出错误点,或者可能有疑问的地方,提出质疑。人真的是在高压环境下成长比较快,我很庆幸能一开始进入到这样的团队接受锻炼,提高自己的眼界。我一直觉得,代码眼界很重要,你要知道什么是好的代码。除了老大,组里的一些同事也都非常的执着认真,说实话,我真心感觉自己有时候就是个渣。当时坐我旁边的是一个成都的哥们,操着一口四川普通话,川普,你晓得的撒,真心是逗的飞起。不过他写代码做东西的速度也是快的飞起。而且看问题的角度经常能转换的非常快。近水楼台嘛,所以我的很多问题都是找他讨论的,总能找到一些新的思路。关键是!!!天天炒股还能不耽误工作!!代码照样写的飞起!!我也是没话说了。像我这种,只要想着什么事的时候,基本工作效率就为0了。还有个湖南的同事,工作经验比较丰富的,之前电信研究院做了4年还是5年,然后转行来做游戏。我们都叫他斌哥哥。我就记得当时印象最深的,我们在闲聊一个什么事情的时候,然后斌哥哥说他就是真心喜欢写代码的。从那以后这句话一直是我检验自己内心的标杆啊!不过页游最终是走下衰亡的趋势,是无法逆的。技术人再怎么努力,你也没法反抗市场的选择。页游市场被37几乎全部霸占,手游开始崛起,最终呆了一年多之后,我也是不得不选择离开。我的第一家游戏公司,又爱又恨的公司。到现在,我午睡的靠枕和毯子都还是这家公司发的。我说过,我是个恋旧的人。嘻嘻。好像写的越来越离题了,反正我其实也是在写给以后的自己看了。大家将就吧。■/*亲爱的维护者:如果你尝试了对这段程序进行‘优化’,并认识到这种企图是大错特错,请增加下面这个计数器的个数,用来对后来人进行警告:浪费在这里的总时间=40h*/潜水这么久,怒送一血,已然破百,答题之路才刚刚开始。谢谢大家答案非原创,纯属娱乐
■刚工作了三个月,简单谈一下我的感受。先说重点:最大的不同是质量。质量是个很广的概念,涵盖方方面面。1、规范性在学校写的代码,除了你自己可能没有第二个人看,可以不写注释,命名随意起,inti、inta;在公司,代码需要遵循一套严格的规范,这样做利人利己。每行代码需要经过至少一次其他人的CodeReview,我在学校自认为代码比较规范,结果到这里经常被师傅提很多Tala(修改建议)。2、测试在学校,代码写完运行起来跑一下、随便点一下就行了;在公司,相比较开发的时间,写单元测试和接口测试的时间只多不少,一行代码需要好几行代码、好几个用例来测试。我认为没有经过测试的代码等于没写。3、性能(并发)在学校,写的代码充其量只是个小玩具,用户量一只手数得清,甚至再变成玩具之前就已经夭折了;在公司,每一行代码要面对的用户上千万、甚至上亿,性能以及随之带来的并发问题不得不考虑。这就好比在公园盖一个厕所,装修华丽,环境很好,但是坑位只有五个,结果节假日几百号人同时上厕所,那场面自行脑补。4、严谨在学校写的代码,出错了最多被老师批一顿,改一下就完事了;在公司,尤其是我所在的支付宝,一行代码出错可能会带来几十万、几百万甚至更严重的资金损失,这种坑把我卖了都填不上。借用一位前辈的话:对你的每一行代码保持一颗敬畏之心。最后回答题主另外一个问题:每天啪啪啪手敲成千上万行代码——我还没听说过每天啪啪啪就能敲成千上万行代码的人,不啪啪啪也敲不了这么多。暂时想到的就这么多,后续有机会再补充。
- 马上毕业本科生,北京19W和苏州16W的工作,咋抉择?
- 「北京有 6000 『中介业主』手里有 300 『间』房屋」的说法真实吗
- 每天工作学习十几小时,睡眠六七小时的高效人士就不累吗
- 怎样更好的简化自己的工作和生活呢
- 现在的你,跟小时候想象中的你,吻合吗活成了自己想要的样子吗
- 怎样看待北京理工大学良乡校区肝糖元教师节晚上宿舍灯光阵型工作人员公器私用趁机表白
- 在当下社会,想在经历「最底层的工作」和「最低级的待遇」后再去成功,这种想法很蠢么
- 怎样评价《说唱新世代》中的个人battle战
- 咋样可以在家里高效的工作
- 你的工作地离你家有多远