java

来源:互联网 发布:linux如何解压bin文件 编辑:程序博客网 时间:2024/04/18 11:37
Java工程师成长之路
李颜芯:欢迎大家收看CSDN的视频节目,今天我们的有关话题是Java工程师的成长之路,今天我们请到两位老师,和我们一起探讨这个问题,首先请两位老师作一下自我介绍。
李翊:大家好,我是来自于东方标准人才服务有限公司,原来的新东方职业教育中心。
耿因志:各位好,我是Java组的编程教师。
李颜芯:欢迎两位老师的到来。首先要问的是要成为合格的Java工程师要具有哪些结构呢?
李翊:我先来说一下,因为我以前一直从事软件的开发包括这种架构的设计,也从事过教育的工作,包括在职业教育里面的设计,从工作的经历感觉,其实说白了就两点,其一就是编码能力,其二就是项目经验,其实这二点听起来很普通,但是我想着重说明一点就是编码能力这一点来讲,我们通常企业里面说的编码能力和我们平常说的可能不太一样,因为Java的学生可能更注重API这些东西的使用,我们这些编码的理解就是如何使用企业级的程序一个代码,那什么是企业级代码呢?当然他跟企业的现实环境是有关系的,除了要有代码的功能之外还要有很好的性能方面,等等,所以在写代码的时候及我们会对这方面有这方面的考虑,以前我也给学生们举过一个例子,我会拿出一个真正的企业级的代码去给他们看,他们会发现最大的不同,他们会发现真正的企企业级代码在那里面写了很多的代码,而他们写的代码可能只是打印出来的语句,作为企业级的程序他可能要有很大的工作两去解决异常情况,在我们平常的联系或者学习的过程中可能会更多的注重API的体现。所以我们在设计产品的时候,怎样使学员的编码是企业级的编码。
李颜芯:那他们又是怎样去慢慢编写这个代码呢?
李翊:这个可能会有一些困难,这个需要我的教师去给他们展示企业级的代码。
李颜芯:那是不是会给他们这样的模拟环境呢?
李翊:这样的环境肯定会有,那这方面是不是请耿老师给我们说一下。
耿因志:我这边现在是这样,我们一致强调一个观点就是学以致用,我们主要以案例为主,拿一些案例来说明一些概念,我们要通过这个代码来知道哪个概念,我们要对这个案例进行重构,这是我们上课当中经常采用的一种方式,我们平常还通过其他的方式,还有别的手段。
李颜芯:那你们通过这种手段和这种方法想达到一种什么样的效果呢?想给学员达到一种什么样的应用呢?
耿因志:很多学生来了以后对编程方面非常的缺乏,首先要打通他们的经脉,让他们在企业中有思路,我们通常比如上课这样敲代码以后,我们会根据某一个知识点会让学生来分组进行代码方面的模拟,比如我在课上敲代码会少不了的,那会留一些概念让学生们自己敲代码自己演示,这里面有一种手段,这个敲代码中会有各式各样的问题,那这里面的思路可能会有些打不开,我们会在每个角落都发现问题,基本上分小组的方式,比如我们在30号发现问题了,我会在30号敲代码,目的是让这个错误在全部展示出来,告诉其他同学一下。
李颜芯:那实际上这也是你们教学的一种方式是吧?
耿因志:对,是一种方式,目的是帮助学生开拓思路。
李颜芯:那学生进来之后你们会觉得学生身上有哪些不足呢?在应用方面?
耿因志:我觉得最大的问题就是方法的问题,这个跟学历没有太大关系,这个在开发方面差别是不太大的,关键最大的问题就是对学生方法有问题,很多学生就是摆脱不了传统的学生方法,比较依赖于书本,我们在讲课的时候一开始还拿着书,很多书上的概念我们是不用看的,只要上课的东西掌握清楚了,就不用看书了,我们号召大家撕书,就是把书撕下来放在兜里,可以反复揣摩。
李颜芯:那么就你们的经验来看,一般这些学员在进来之前在技术或者应用上有哪些不足呢?掌握的程度怎么样?
耿因志:很多学员就是这样,他可能听过别人说过某个概念,你要问他这个概念表达的什么意思他可能一无所知,我们要通过对这方面的了解再做一些开发工作。
李翊:我稍微打断一下,你刚才提到市面上的一些概念比较流行的,这边我也有一个问题想探讨下,这个问题可能跟企业的项目经验有关,我们现在的无论学生也好培训机构也好,对于这些非常实用的技术或者框架都有一个比较使用的关注,其实我觉得这边的话可能会有一个误区,其实我们这边的整个课程设计包括整个教学课程不是完全以这样的框架的讲解为主,我们也明白,如果我们只是讲到知识的层面,对于学生以后的开发还是帮助不会特别特别的大,为什么呢?因为我们教出的学员是让他们具备企业的项目经验,这也是企业特别希望的,那么这个如何去具备项目经验呢?我感觉你应该明白这个项目中间会出现什么问题,去怎样解决,那这个框架是什么呢?这个框架他有它的历史,我觉得在给学员讲这个东西的时候,最重要的第一点就是暴露这个企业方面的东西,让他知道你在企业中间都会遇到什么样的问题。
李颜芯:那是不是暴露企业中间经常出现的问题呢?
李翊:对,比如技术的问题还有需求变更的问题等等。
李颜芯:会出现什么特殊的问题吗?
李翊:特殊的问题,其实他能够把企业中的常见问题解决我想是项目的问题不是技术点的问题,然后把这些问题暴露以后呢?要明白这些组建这些框架是如何解决这些问题的,或者说他解决这个问题的特色在哪里?第三次我们知道任何东西都是有利有弊,我们在提高方便的懂事降低了灵活度,我们在提高可扩展性的同时降低了性能,我们就是想如何让你的组建很好的服务于项目里,那就是要做一些这种,如何去避讳我用了这个组建去有哪些好的方面有哪些不好的方面,我们去做一些自己的扩展都是有可能的,我们的期望我们的确要教这些流行的框架,更要教就是这些流程的框架真正在企业中能够作什么事情,我们如何让这些事情更好的为企业服务。
李颜芯:刚才我们也说了,您刚才教学员们流行的框架,更重要的是告诉他们如何解决实际开发的问题。还会教学员哪些思维呢?
李翊:设计模式这个东西是肯定要有的,我们把模式上升到一定程度是可以的,但是不能过分化,我们要告诉学员这些模式是可以实际解决问题的,有的学员说老师我学了3、5种模式,但是比较模糊,分不清,区别不开,我说区别不开更好,我们不能光为了模式而去学他,我们首先要学习这些模式肯定是通用的一些理念或者方法,去解决实际的行为结构问题,我觉得他只要能够用这种方式这种思维去解决就好了。
耿因志:我们平常去处理一个问题的时候,我们不可能只解决一种模式,可能集中模式穿插在一起去解决,我觉得李老师刚才说的无招剩有招就是这个问题。
李颜芯:那这个学员当中肯定会有模糊的概念,怎么帮他清晰呢?
耿因志:我们的学生方法一定要转变过来,我经常告诉学生的方法就是把这些全部删除重新写,那他在重写的过程中可能会发现说哦,刚才有哪里写错了。
李翊:我们在书上可能会举一个例子,就是讲卖水果或者怎样怎样样,他就会去想,其实我们没有必要想清楚这两种模式真正的界限在哪,这是正常的。
耿因志:其实模式的东西我们不需要把他分的特别清楚,我们有的时候要做一个灵活的变通。
李翊:关系是要有变通的感觉。
耿因志:而且我觉得对于学生在那种概念的时候不适合一直往下钻,我们出现的问题他正好能解决就可以了。
李颜芯:那你们是不是会给学员进行层次的划分?
耿因志:这个肯定会说一下,另外就是学生方法,什么阶段应该是什么样的学生方法。
李颜芯:那二位能不能谈一下具体的案例?在教学当中?
耿因志:案例的话,就是我们要求学生写代码,写作业的时候,会出现一种问题,千奇百怪什么样的问题都有,这种方式可能就是典型的思路有问题,如果这条路走不通可以用其他的方法,但其实我们不需要再一个问题上深究,至于中间怎么转换我们是不提倡的。
李颜芯:那你们会给学员一个什么样的导向呢?去解决问题?
耿因志:就是这条路走不通你就先避开,他不行你就赶紧绕弯子,当所有的问题都解决完了再去锦上添花,看看有没有其他的路可以走。
李颜芯:那这个可以理解成你们的教学的概念吗?
耿因志:我个人当中经常采用这种方式,经过这种教学的实践效果还是比较明显的。
李颜芯:能把这个教学的问题扩大谈一谈吗?
耿因志:比如敲代码的时候经常会一个老师带一班学生比较多,经常会出现一些问题就是比如张三出现问题,那我可能叫李四帮他处理问题,不是说李四一定能够帮助他解决问题,但是会帮他想,我们会尝试心理暗示的方法,你开始想,你旁边有一个鬼,你告诉鬼你开始写代码了,第一行、第二行、第三行等等。
李翊:还有一个就是现实的帮助,我以前帮助过一个学生就是他是清华大学的学生,他来我们这学习,这是一个优秀的例子,我们以前留了这么个作业,就是上传FTP的软件,我发现全班同学都在忙活,就他闲着,闲着干吗呢?他上网去找这个FTP,因为FTP这种协议网上肯定会有现成的使用,那么把他的东西读懂以后,他又在原先以后进行了一种改变,我觉得这个方式是蛮好的,我倒是建议大家写代码的初学者不要埋头苦干,为什么呢?因为这样会走很多的弯路,你没有企业级的环境,你没办法作专业的测试,所以你往往写出来的东西表面上可以,实质的结构是有问题的,所以编程编到一定的阶段要去多看一些东西,在基础上重新做一些开发,多看多思考。因为你只有看了才有思考的空间。
耿因志:我觉得程序员必须要有一种冲动,就是首先要把你自己的代码写出来,我觉得每个程序员要有这种思路解决这种问题,那这样如果有现成的离子我们那来调一调。
李颜芯:实际上老师在向我们介绍学生的方法,最后向让老师给我们谈一谈不同层次的学员你们对他们的教学目标是什么呢?
耿因志:我觉得刚开始来的时候会有一些不同,可能科班毕业的学生可能会有助于他的学习,还有一些就是初学者没有接触过,我觉得没有太大的区别,一般来讲2个星期以后大家都是一样的阶段,我觉得对于初学者来讲学生方法是最重要的。
李翊:对,这个我比较赞同,因为原先我们的教育化主要是以培训为主,现在的话,东方标准可能除了培训以外还有广泛的人才这样的一个业务,就是我们如何对待不同层次,因为我们作的是全方位的,我们可以针对不同的人可以做不同的培训,我们可以做高端的人才也可以作普通的人才,单单是开发来讲,我觉得你的问题就是来一般地学生可能水平高一些或者水平低一些,可能前两个星期这几个人水平很厉害,其他的人稍微的逊色一些,但是2个星期以后水平都抹平了,因为我们培训的东西是真正企业级的东西,是真正在企业里面遇到的问题解决的方案,所谓高一点水平就是学历高一点,拿武术的角度来说就是花拳秀腿,到时候大家真正学到了企业级的思路可能就差不多了。我们还是以一种比较通用的方式去教他们,对于初学者还是一鼓励增长信心,对于高层次的人就是劝戒他不要骄傲。
李颜芯:那是不是你们对这些人注重代码的应用?
李翊:对,毕竟像软件开发是一个非常非常高端的脑力劳动,我们不能够像教他们开汽车或者开飞机那种纯应用的东西,而是纯理论,如果没有理论仅仅是操作技能以后找工作还是缺陷的。
耿因志:刚才李老师说的东西是很重要的,我觉得解决问题的方法可能还是要比知识点增长很多。
李翊:我们跟学员讲,你们出去以后你们向作架构师可能吗?你们没有项目经验的极点没有行业背景,但是你至少具备这个架构师的潜质,有的人可能作2、3年就是架构师项目经理了,但是有些人作了很多年以后还是程序员,可能是能力比较高的程序员。
耿因志:我们说一个班的学员层次是比较不同的,基本上学生学的好学的坏老师心理是有谱的,但是不是绝对的。
李颜芯:那节目的最后希望老师给我们说一下总结性的话语。
耿因志:还是长期在这个岗位上的体会,还是个人的体会,第一点就是对所有的开发人员来讲,就是对于这个框架非常的流行,每个程序员都不可避免的,我们学任何一个框架之前就是把东西调通,这个非常重要,这个对于后面学习其他的东西有非常的重要,要先练功再练武。第二点解决问题的时候不要沉迷于某一个概念,但是要专著,再一个问题浪费太多的时间没有太大的必要,那第三点我认为学习技术来讲,它的适用性更强一点,要用以自学的观点,我们在用的过程中体会这个概念,那如果这一本书你觉得看的头昏脑胀的时候你可以先放一下,这是我个人的体会。
李翊:我这边也可以说是体会或者是经验的东西,有几点,首先就是对于错误不要沮丧,可能我们对编程的时候会有错误的发生,这是好事情,因为我们学习的就是解决错误的方法,我们重要的是要锻炼解决问题的能力,程序出错要非常的高兴,不要沮丧,对待技术不要敬畏,不要怀着对技术敬畏的角度来学习,这个是不可取的,我们学他是为了用它,我们真正应该用的是项目中如果解决问题,我们通过学习这个产品这个手段更多的是要知道企业中的这些问题他生了我们要怎么去解决他,去研讨解决策略,更重要的就是解决框架也好,他会遇到一些弊端,你要敢于去怀疑他,在实践开发的时候应该有一些这种精神,我们要有一些实践的开发东西去给学员看,好象背离了我们通常这种一般的认识,其实这可能是正常的因为在中间作了一些事情,对这是个很正常的事情,那么有些时候我们还会给这些框架做一些改动做一些完善做一些扩展,你要做一些内核不要去敬畏他,因为某些东西会和他一起淘汰下来,但是我们对于解决系统问题的方法这个可能会保留下来,第三点我们觉得就是对待尝试不要去畏惧,我们除了学习Java又去学习数据库,我们不能按照一个一个模块去学习,你刚开始的时候你不可能去对某个技术学习的很深,就是用于常识不要怕犯错,我也跟学员讲,你放开胆去试,那电脑你怎么试都不会爆炸的,我大体讲三点。
李颜芯:好,今天我们的访谈节目就到这里,非常感谢二位老师的参与谢谢大家。
 
原创粉丝点击