hi,大家好, 伴随着一届又一届的同学毕业,传智播客收集了众多成绩或优秀或一般的就业学员分享的工作经验,是时候给大家从真正开发的角度去聊一聊, 公司实战当中都是用什么技术开发、我们传智播客的学员扮演什么样的角色,以及具体的工作内容~~! 我们发现无论哪个班的同学都会问这样一个问题:“我们没有实际的工作经验,根本就不知道公司里是如何工作的,我认为自己完全不具备两年工作经验的水平。”每当听到这样的问题我就十分揪心,然后反复地解答。
咱们毕业1,2年的同学一直都肯定地说传智刚刚毕业的同学技术上一定有两年工作经验的水平。而在他们刚刚毕业的时候也曾经有过同样的疑虑。这是什么原因造成的呢在总结了众多同学的工作开发经验之后,发现问题不在技术上,其中一个重要的原因是工作环境中使用的开发环境。于是,我对同学们在工作当中的开发环境做了下汇总,今天就采取问答的形式以2012年6月22日班王X同学的经历来真真正正地告诉大家实际工作中到底是什么样子的:
Q:请问你所在的公司是一个什么样的公司呢?
A:我所在的公司是一个外包公司,我甚至忘记了我外包公司的名字。我们被外包到中国工商银行,进行开发的是中国银行数据中心,北京分公司数据测试的一个部门使用的软件系统。项目名称叫做:中国工商银行测试管理系统。
Q:进入公司里到底是用什么技术呢?
A:大部分肯定还是在传智学习的技术,只是我们公司是是用的IBM的一套框架实现的所有业务模块,框架名称是CPT
Q:能详细讲解一下什么是CPT框架么
A:CPT框架集成了许多常见的功能。比如他在一般的excel基础之上完成了报表的导入导出,实现了报表的一键化操作。这在传智学习的时候,是自己手动完成代码实现,而在CPT框架当中是直接关联表单完成的。完全不用自己实实在在地写java代码。
Q:仍然不是很明白操作方式。
A:其实也是很简单的。所有的操作都是可视化操作。就像dreamweaver一样,想要完成相应的功能所要做的就是在页面拖进去相应的操作组件,之后完成对应的操作要求。比如想要完成一个上传功能,那么只要拖进来上传的组件,双击之后弹出浏览数据库表的界面,之后选取要操作上传的表和制定相关路径。这就完成了相关操作。可能我说的有些抽象,但是真正操作起来要比在传智用代码实现上传功能要简单得多。
Q:除了这些特殊的操作,那公司当中的工作量都花费在了哪里,也就是说,工作时间都在做什么?
A:对于我们公司,由于公司使用了CPT这套框架,所有基本上所有的内容就是写JSP页面与存储过程。基本上天天都在写存储过程,SQL语句,函数和JSP页面。纯JAVA的代码写得非常少,只涉及到一些简单的servlet。
Q:那存储过程是怎么和JSP交互的呢?
A:这样的工作内容好像很奇怪,但是全都是由于CPT框架的实现原理。这套CPT框架实际上就是一个JSP与存储过程交互的一个中间件。其内部的实现机制我们并看不到。以jar包的形式体现在项目代码结构当中。我们所能看到的内容就是JSP与存储过程相映射的配置XML文件。我们只要在JSP当中写框架规定好的内容就可以了。全部都是按照已经设定好的业务逻辑来的。比如公司当中的BPM并不是传智讲课使用的JBPM,而是公司按照BPM规范自己使用的一套工作流,而且这个工作流当中也有非常多内容是基于存储过程的,也就是说有工作流当中也有许多内容是存储过程在调用java类。
Q:工作的内容单一么,会不会觉得没有意思?
A:写代码当然是一个辛苦的事情。不过也有许多有意思的事。比如8项目开工时80多人,共用一个美工,但是随着时间的推移,项目组的人越来越少,唯一的一个美工也走了。以至于现在的美工的事情都是我们自己来做。我这里指的美工是调CSS样式的,切图的人还是在的。
Q:那工作当中工作内容会不会很吃力:
A:还好,我学习属于中等偏上的,所以表示压力有但是没有传说的那么大。而且工商银行的项目,周边的人都是清华北大北邮北航的所谓高材生。但是除了项目经理剩下的人水平都很一般。经常需要我们帮他们调代码。男同事还算靠谱,尤其一些女程序员,开发起来真是完全没有产出,什么都不懂。开始还很惊讶,但是到后来就觉得无所谓了。公司以学历分人,没办法。
Q:那吃力的地方在哪里呢?
A:数据库表设计是一个吃力点。许多东西都是清华北大的研究生本科生设计出来的,但是里边许多字段都是有问题的,缺少字段是家常便饭。我们得根据实际开发情况完成这方面的内容,复杂SQL语句,关联5,6张表的业务逻辑,多级数据字典,国际化字典,编号表是工作量很大的一部分,700多张表也是比较壮观的,我觉得这也是把软件工程师比喻成民工的主要原因之一。实际上,我认为,让我去设计应该都比他们设计的要科学。不过还是那句话,刚刚开始工作,学历压死人。
Q:那加班会很多么?
A:是这样,分两个阶段。在项目未上线没有开始使用之前,加班还是比较平常的。而现在投入使用之后,只涉及到维护,和新功能的添加。加班就已经比较少了。基本上没有加班了。所以说工作重点就放在维护上了。由于这个代码经手的人比较多,所以会涉及到非常多的兼容性问题。往往在开发一个模块时,看不懂别人写的代码,并不是因为技术原因,而是写代码那个人写的太过复杂了,没有层次。所以在这样的代码之上进行扩展基本上是不可能的事情。除非推到重来。并且,我们做的这个项目已经是在别的项目基础上推到重来的了。
JavaEE入职后都在干啥——常见入职疑惑解答,布布扣,bubuko.com