java开发学习:真实工作中的编程和在学校有何不同

在实际工作中的编程,跟在校期间相比,小编我认为是炮火纷飞的战场和与世隔绝的象牙塔之间的区别。举几个很简单的例子:

文档:

学校:口口相传

工作:别人都用Markdown写文档,快把你的Word收起来……

delay:

学校:deadline之前搞定了就好,先休息半个月再说

工作:每天都要发项目日报,你的老板和你老板的老板都盯着呢……

联调:

学校:自己和自己联调,左右互搏……

工作:我:##¥¥%!……&*!! 对方:没听懂……

需求:

学校:定期和老师汇报进度就行,需求一般不会发生变化

工作:时常会碰到来求助的运营MM

故障:

学校:就算真的遇到了,顶多挨顿骂

工作:这个季度的kpi又悬了……

上级:

学校:才不管你怎么实现的,也不会看你代码,能用就好

工作:不但会问你怎么实现的,也会review你代码,还会强行让你用一些新技术……

代码复用:

学校:复用全靠写函数

工作:就算跨项目也要强行复用……

造轮子:

学校:轮子是什么

工作:这个季度造个什么轮子吹比呢……

bugs:

学校:以空指针居多

工作:只有想不到,没有遇不到……

吐槽:

学校:好烦啊,做了这么多事情一点好处也没有

工作:运营又说改版了,之前的代码可是PHP的啊,确定这样也能改版?

项目:

学校:基于XXX的XXX系统的设计

工作:商家处罚中心

工作来源:

学校:老师或者是自己

工作:产品或者运营

工作内容

学校:实现完整的项目

工作:实现完整项目是少数情况,大部分是新增功能需求

开发之前:

学校:打游戏看电影刷知乎拖延一下

工作:开会评审需求,分配工作

开发人数:

学校:前端后台产品设计全是自己

工作:前端2两人,后台3人,产品一人

代码:

学校:所有代码自己搞定

工作:只负责规则模块

规范:

学校:实现功能就好,代码写成什么样不重要,从来不写任何注释,代码之后自己刚写完的几天才能看得懂

工作:每一个模块都需要完成相应的单测,并且保证测试通过。代码需要简洁美观,变量、类等命名严格遵守驼峰命名法,需要附加完备的注释

框架:

学校:框架是什么,实现功能就行

工作:公司对各个功能(例如链接数据库等)进行了封装,必须要使用相应的框架

封装:

学校:为什么一定要面向对象,怎么简单粗暴怎么来

工作:进行一定的封装是必须的,要考虑代码的复用性,尽可能避免代码冗余。差的封装是会被吐槽的

debug:

学校:肉眼,偶尔使用工具,一碰到蛋疼一下午

工作:使用工具,流程化排查问题

疑难杂症:

学校:自己蛋疼摸索,直到放弃向研究生师兄请教

工作:蛋疼摸索一会,请教大牛

发布:

学校:随意发

工作:每次发布需要请示老板,你多发几次试试……

review:

学校:review是啥……

工作:发布之前必须review,被挑到刺打回去再正常不过

maven:

学校:maven是啥……

工作:每个模块的打包发布都有严格的流程,maven依赖必须要仔细,否则很容易遇到问题,有专门的工具对maven依赖进行检查

git:

学校:coder只有一个,用git干嘛……

工作:git的命令牢记于心,stash,merge,checkout花式命令,键盘敲起来

氛围:

学校:开发累了,打会游戏休息一下

工作:老板就在旁边,你打个游戏试试……

设计模式:

学校:闻所未闻

工作:原来这种方法这么机制,赶快学一下,以后说不定能用上

其实,实际工作中的编程和学校不同,体现在下边几个方面:

工作之后的代码量远没有学校时大作业那么多,但是要更严谨;

但是你要面对很多遗留代码,你要把它们弄懂,不像在学校里你基本都是从头造轮子;

同事们都是八仙过海,各有所长,无论你在学校里是当大腿还是抱大腿,在公司大家都对公司有着这样那样的贡献;

你不可能什么都会,工作才是学习的开始,大学生活只是让你准备好;

除了代码和技术,你还要考虑业务知识、测试、质量、生产效率和可持续性;

机会总是有的,你要做的只是准备好;

学校所学的非常有用,但是理论和实践有着巨大的鸿沟,这全靠你的经验和工程感

学习java的小伙伴有不懂的可以加群一起学习交流,Java交流学习群前三位是:三七四,中间三位是:三二零,最后三位是:二八二

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180311A07TVN00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券