程序员项目总结范文
时间:2023-04-02 00:15:37
导语:如何才能写好一篇程序员项目总结,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
1.项目起步阶段
当掌握项目后,项目经理开始进行开发人员组织,从项目来看,项目的业务较小,但是技术要求较高,如前文所述,为了保证项目能顺利实施,项目首先摒弃了技术风险,所以在人员配置方面,必须要有技术过硬的程序开发人员参与。其次,为了保证系统的功能,项目选择的语言不能是高级语言,所以应该设定在C,C++语言行列。首先,进行人员组建:编程人员3人,架构师1名,开发语言最终确定为C语言。继而根据项目特点,搭建开发环境。其次,系统选择敏捷式原型开发模式。
2.项目需求分析阶段
在项目需求分析阶段,为了规避业务风险,让程序员以及架构师认真阅读用户需求报告,继而让程序员对需求进行整理,为了使项目的业务风险减到最低,程序员可提供QA,在这个阶段首先是对业务进行详细的分析,把握功能要点;其次,根据系统需求,罗列技术要点,需对项目中的技术点进行调查,比如:本项目中的gmail自动登录,用户常用网址的自动登录以及用户安全加密技术等的调查,技术调查的结果应该以技术模型为代表,这样才能为后面的开发扫除技术风险。
3.系统设计阶段
首先项目架构师应该根据项目特点,对项目进行结构划分,对项目架构进行设计,就本项目而言,系统功能相对独立,所以在项目架构上可以采用多进程处理办法,一个功能点设置为一个进程,利用进程之间的数据通信来完成整个系统的联动。以此来规避由于设计上的原因,影响进度的风险以及程序上的质量风险。
4.系统开发阶段
在系统开发阶段,程序员根据先前的设计情况,进行系统的编码工作。当然为了程序的一致性,需要编写编码规格说明书,对函数的命名,变量的命名都应该有明确的规定,在开发阶段,为了控制软件的进度与质量,作为项目负责人,应该早、晚各开一次全员会议,早会是对当天的任务进行分配,晚会是对当天的工作情况进行总结。为了保证质量,作为项目的负责人需要检查程序员编写的代码,首先是对其可读性进行检查,其次是对程序的逻辑进行检查,对于本项目而言,需要注意程序中是否存在内存泄露现象,因为对于C语言而言,内存泄露是必须要控制的,而这也是质量风险控制的要点,如果等到测试发现问题再修改,会浪费更多的时间,影响项目的进度,导致项目的成本增加。
5.系统测试阶段
到项目开发完成后,需要对系统进行测试,测试点主要针对系统功能进行测试,其中主要体现在用户操作界面是否流畅,界面会不会被隐藏,或者操作界面显示的数据是否正确,这都是测试的基本点。
篇2
一、软件开发项目的人员组织形式及存在问题
(一)软件开发项目的人员组织形式由于软件开发人员个人素质与能力各不相同,因此,要对软件开发人员进行合理分工,充分发挥每个人的特长。同时,软件开发的组织结构应与软件项目开发模式、软件产品结构相对应,使软件开发方法、工具与人相统一,降低软件开发过程中,管理与质量控制的复杂性。可以按照树形结构对软件开发人员进行组织。树的根是软件项目经理和项目总技术负责人,可由一个人或一个小组担任。树的结点是程序员小组。为了便于项目管理,树的结点每层不超过7个,并在此基础上尽量降低树的层数。程序员小组可以按主程序员进行组织,由主程序员负责小组全部技术活动的规划、协调和审查。小组其他成员,如后备工程师,是主程序员的助手,必要时可以代替主程序员领导小组工作,以保持工作的连续性。程序员小组之间和小组内的程序员之间的任务界面必须清楚,并尽量简化。如微软公司的编程人员共分为5个等级,最高等级只有5人,WindowsNT,Windows2000操作系统的核心开发队伍只有10人左右。内核程序由核心人物亲自编写,而提供软件开发工具的队伍则多达2000人,编写各种程序模块的编程人员也有1000多人。
(二)存在问题1.人员流动性过大,人才结构不合理调查显示,软件管理人员平均年龄为33.3岁,普通软件员工的平均年龄为28.4岁,65%以上的受调查人员具备大学本科以上学历。由此可见,软件项目从业人员以高学历的年轻人为主。这就意味着,一方面,这些人有更强的学习创新能力,另一方面,也可能存在个人约束力差、眼高手低等不稳定因素,一些自认出色的从业人员对公司稍有不满就会离公司而去,造成项目人员流动频繁。再加上高级研发人员缺乏,一般编程人员过剩,更不利于员工培养和人力资源维护。2.绩效评估不合理许多软件项目缺少完整、系统的绩效管理机制,比如,对个人绩效评估的实践、考核结果大多只为评价员工工作态度提供参考,最终绩效考核变成员工出勤记录。软件项目缺乏绩效考核,不能充分反映出项目成员的付出,有一些项目虽然对项目的投入和项目进度进行绩效评估,但没有和激励机制结合在一起,这时,有无绩效评估结果一样,同样不利于团队建设和人员稳固性的增强。3.培训不足由于培训方式落后和培训管理手段不成熟等原因,软件项目一般对成员培训较少。项目成员认为在项目组中没有机会学到更多东西,无法提高自己的能力,导致软件项目人员流动频繁。而由于人员流动频繁,项目更不愿意为员工培训投入时间和金钱,当需要人时就直接聘用,由此形成恶性循环。
二、软件开发项目人力资源管理的有效策略
(一)招聘策略招聘是控制人力资源质量的第一步,也是人力资源建设和开发的重要步骤,是吸引优秀、适合人才的重要途径,作好招聘工作是保证人员质量的重要环节。项目组配合公司人力资源管理部门,积极参与筛选简历和面试评审环节的工作,根据项目需求挑选简历和设计面试考核问题。与往常面试题目相比较,根据项目需求的不同,在招聘面试过程中,适当增加对某方面能力的考核。不能达到能力要求的面试者,不予以录用。
(二)培训策略1.新员工培训新员工培训的具体内容包括:公司测试标准与规范,公司质量手册、程序文件,公司测试业务、人员、公司整体、各部门介绍,公司各项规章制度,公司办公与测试环境配置,测试基本理论、测试流程与测试案例(测试方案、测试计划、测试报告、缺陷报告等),工作流程、工作表格、测试文档的标准模板等。所有参与培训的人员要在培训后的入职考试中取得优异成绩,考试合格率要达到100%。2.内部技术培训由于各部门承担的测试项目类型不同,对员工技能要求也不同,因此,毎年各部门、各项目组也会根据自身需求,组织与测试项目相关的内部技术培训。
篇3
不经意间,工作已经告一段落,回想起这段时间的工作,一定取得了很多的成绩,这时候,最关键的工作总结怎么能落下,但是却发现不知道该写些什么。小编为大家准备了2021程序员个人工作总结范文,希望对大家有帮助。
2021程序员个人工作总结范文一
在过去的一年中,我担任公司开发部的一名软件工程师,主要从事着JA项目的开发工作,这一年来我低调努力工作着,不求闪亮显眼和光芒四射,只为平静和淡定;这一年中所做的成绩如下:
一、财政局项目,本人独立负责开发会计处的三个子系统:
1、会计人员信用查询系统。
2、记账机构信用查询系统。
3、会计人员网上报备系统。
以上三个子系统上线后,方便了社会各界查验会计人员的真实信息、方便了查询合法的记账机构信息,以及方便了各单位对会计人员的报备。
二、餐饮行业项目,在团队开发项目中直接参与了豪享来餐饮有限公司总部的信息综合管理平台项目,主要负责的系统有:
1、房屋租赁合同管理系统。
2、短信收发管理系统。
3、会员管理系统。
4、基础信息管理系统和人事管理系统的部分功能模块。
系统应用后,豪享来在管理全国各门店房屋租赁合同上,一定程度上提高了管理效率,并且及时有效提供了相应预警信息;短信收发系统方便了总部及时传递各项信息;会员系统更好的管理全国各门店的会员信息;人事系统在管理中减少工作量等。
三、金融行业项目,我参与了中国银行厦门分行,企业转账管理系统中的部分模块开发。
本系统方便了企业快速实现大量和复杂的转账工作。工作总结
四、国土资源与房产管理局项目,正在负责和开发的是住房货币化补贴网上申报审核系统。
本项目采用了新技术,使界面更加大方美观,很大程度上改善人机交互平台的效果。
总结不足:驻豪享来总部做项目时,由于团队内部某些原因,加之外面的其他因素,一定程度上影响了工作效率、影响开发进度和影响最终软件质量;这是包括我在内项目组中的每个成员都必须检讨的地方。
通过总结一年来的工作,尽管有了一定的进步和成绩,但在一些方面还存在不足,个别工作做得还不够完善。在今后的工作中,我将努力找出工作中的不足,以便在日后的工作中加以克服。自我不断的学习吸收新技术,认真学习好规范规程及有关文件资料,并且及时的把新技术应用在实际的项目中,进一步提高项目的技术含量。
2021程序员个人工作总结范文二
我是一名程序员,在过去的45天里,通过师傅的带领,慢慢的进入程序员的工作状态。在公司这充满奋斗的环境下,师傅以严肃认真的工作态度和百折不饶的精神,指导着我努力完成公司的各项工作,也取得了一定的成绩。在这年终之际,现对来公司45天里的时间所作的工作总结如下:
一、公司主营业务的熟悉。
公司成立于20_年,致力于为大众提供信息存储与平台,服务项目包括域名注册、虚拟主机、VPS、云主机、企业邮箱、主机租用、主机托管、网站建设、CDN网站加速、网络营销服务等,以帮助客户轻松、高速、高效的应用互联网,提高企业竞争能力。公司一直秉承“诚信为本、聚智创新、服务社会开放共赢”的价值观,坚持“以微笑收获友善,以尊重收获理解,以责任收获支持,以谦卑收获成长”的行为观向客户提供全面优质的互联网应用服务。
通过这段时间的努力,使我个人的耐心、细心程度及对工作的合理安排得到了锻炼,学会了在繁忙之中找条理,危难之中找希望。同时自己也有一些不足之处,一些细节地方技术上还不太成熟,还需加以学习与钻研。
1、公司网站页面维护
从十二月初开始进行公司网站页面的维护,每天早起赶到公司进行网页的改善。在这期间主要是对于后台登录页面、支付页面、联系我们、服务器租用、商务合作等页面进行改进,提升用户粘度;在网站维护过程中出现的问题,晚上下班后加班加点将每天的小错误及兼容性问题修改完毕。
通过这项工作,使我原本欠缺的业务能力得到了很大的提高,并学到了很多业务技巧及业务上的知识,更加明晰了网站维护的流程,但离一个成功程序开发人员的标准还差得很远,在今后工作中,定会多多注意,加以改善。
2、活动页的编写
进入双旦前夕,公司开始准备活动页的项目,主要使用媒体查询技术,实现活动页的相应效果。自己在做这个项目的过程中,未能及时完成项目,后在师傅的引导下,得以完成项目。
通过这项工作,为后期的活动页开发奠定一定的基础,使我更加加深了项目开发的整体思路与技术要点,总结了前期开发和实施中碰到的问题,并对一次次的兼容性测试中的小bug进行了最后的修改。
3、利用工作之余的休息时间加强学习
平时注意收集有关__方面的资料文件,以前我在达内学过一些开发,但是底层架构与页面样式我都是没有涉及太深,对于当前编程的主流思想是对象,没有深入的体会,理解这些话很费解,都是从表面上理解。通过在公司的这段时间,提高自己的处理新问题和解决新问题的能力,并加强学习css3及响应式方面的知识,为后期的工作打好基础。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点,充实自己的经验和知识储备。
二、团队协作
上面的成功与收获,除了自身努力外,以及公司的支持,是这个团队铸造了我。我们这个团队有拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。
务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在李总的带领下现在是这样,以后同样也是这样。
拼搏:公司给的每一个任务不管它多难,如果工作没有完成,我们会晚上加班,也要尽可能的完成当天的工作。如果工作实在忙,为了赶进度我们放弃周六休息时间也要尽可能的使项目提前。
创新:现在我们写好的代码,保证程序正确的前提下,尽可能的提高程序的效率。
互助:我们小组内只要任何一个人出现技术或其它的问题,我们彼此都会尽可能的去帮助他,不会因为某一个人而拖住整个项目滞后。
交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题,这样可以省了很多重复研究的时间,这是一笔很可观的时间。
在交流中只要我会的,我懂的,我不会去吝啬,我会积极的去与你交流。“人强团则强,人弱团则削”,说的就是这个道理。
三、工作心得
1.每一个项目在开始着手的第一步,一定要把需求沟通清楚,只有了解了项目的需求,才有可能真正做好一个项目。
2.工作中,有一个无论是技术,还是经验都比较让人肯定的前辈带领,将任务详细化,详细到,每个页面、甚至是一个页面中的图片什么时候做好,做到什么程度,这样把工作进度有计划、有方向的赞定下来,做事很有效率。
3.每天的工作小结真的很重要,这让我们每天都有计划的知道自己干了什么,不是漫无目的的工作。
4.工作并不是一成不变的,也许有一天你要去其他岗位帮忙,所以同事之间的技术要互相学习,也许有一天,公司需要你发挥其他的技能帮忙,所以互相学习也是很重要的,自己的工作不能仅仅局限于自己的业务范畴。
四、工作计划
1.要提高工作的主动性,做事干脆果断,不拖泥带水。
2.工作要注重实效、注重结果,一切工作围绕着目标的完成。
3.要提高大局观,是否能让其他人的工作更顺畅作为衡量工作的标尺。
4.精细化工作方式的思考和实践。
5.虚心请教比我做的优秀的其他同事,向他们学习技术或经验。其实作为一个新员工,所有的地方都是需要学习的,多听、多看、多想、多做、多沟通,向每一个员工学习他们身上的优秀工作习惯,丰富的专业技能,配合着实际工作不断的进步。
不论在什么环境下,我都相信这两点:一是三人行必有我师,二是天道酬勤。
6.在参加工作的这短短的45天中,我深刻的体会到,把自己所有的精力都投入进去,技术工作都不可能做到完美程度,毕竟技术工作太繁杂,项目多而人手少,但多付出一些,工作就会优化一些,这就需要认认真真沉下心去做事情,职业做事,诚信待人。
五、个人总结
光阴如梭,45天的工作转瞬即将成为历史,伴随着春节钟声的临近,我们依依惜别硕果累累的20_年,满怀热情的迎来了20_年。展望临近的20_年,我会更加努力、工作上认真负责,再接再厉,更上一层楼。
以上为本人粗略的个人工作小结,请领导审阅,如工作上有不到之处,请领导不吝指出,以便本人及时改正,从而能更好地工作。相信自己会完成新的任务,能迎接新的挑战。
2021程序员个人工作总结范文三
我是一名程序员,在过去的一年里,软件研发部团结协作,以及在公司这充满奋斗的环境下,我以严肃认真的工作态度和百折不饶的精神,努力的完成了公司的各项工作,在软件研发、团队协作和个人成长上也取得了一定的成绩。在公司一年的工作已经结束,特向公司总结汇报如下:
一、软件研发
根据公司的安排,项目的需要。在自身的努力、伍经理的帮组,团队的合作下,克服重重技术困难,增长了工作经验,收获丰盈。
1、asp.net开发
以前我在其他公司也做过一些开发,但是底层和架构与页面样式我都是没有涉及到的。通过这一年在本公司的的这些项目程序中的锻炼,我成长了,我学会了很多很多。
首先,面向对象语言的收获。对于当前编程的主流思想是对象,任何事物都可以用对象来表示。以前理解这些话很费解都是从表面上理解,没有从深入的体会,通过这次asp.net项目的深入,不管是数据还是外部一些条件我们都可以抽象成对象,都可以用对象来表示,具体可以用语言中的类方等。asp.net如此,c#如此java也同样如此。
其次,具备独立完成vb.net知识方面的能力。以前没有做过vb的东西,加上这次深入的做,这次涉及到的领域也非常广,常用的重要的都有涉及,并且还补充_ml,java实际操作中空白的部分。通过这一年的开发,在.net方面我能胜任这方面的工作,能独立完成这方面的工作。
再次,c#方面存在一些不足。LocALhOST通过c#这次软件的开发,也发现自己的不足,如基础知识掌握不牢,缺乏编程整体思想。这些都是需要在工作中完善和改进的。
2、数据库开发
数据库是伴随着项目以来用的最多最平凡的技术。以前对数据库只是会一些简单常用的操作,经过这一年项目的实战,对数据库的操作增加了一些丰富的经验。为以后的工作和经验的积累都奠定了坚实的基础。同时在项目中还用到了oracel与access数据库,这是我的收获。
优点:能熟练的运用数据库技术进行开发。特别是对sql数据库的操作,经过这么长时间的积累,基本上能合理的设计和新建数据库,同时在数据结构上也加强了对数据库的理解。通过项目的实践现在能熟练使用和编写多种sql语句。还掌握了一些关于数据库优化sql语句优化的方法,能进行一些简单的优化。
缺点:数据是一门比较先进的技术,并不是你会写一些sql语句,能建几个数据库你就是数据库工程师。要成为一个好的数据库管理员是要经过长时间的工作积累。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点。充实自己的经验和知识储备。
二、团队协作
上面的成功与收获,除了自身努力外,以及公司的支持。是这个团队铸造了我。我们这个团队也是因为有了我们这些拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。我与软件研发小组是一个整体,这里的团队总结也就是我在这个团队中的收获。
务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在伍经理的带领下现在是这样,以后同样也是这样。
拼搏:公司给的每一个任务不管它多难,如果工作没有完成我们会晚上加班,也要尽可能的完成当天的工作。如果工作实在忙,为了赶进度我们放弃周末休息时间也要尽可能的使项目提前。
创新:现在我们开始项目的时候都会进行研讨,一般都会进行一个效率和逻辑的分析与讨论,保证程序正确的前提尽可能的提高程序的效率。
互助:我们小组内只要任何一个人出现技术或其它的问题,我们都会彼此都会尽可能的去帮助他。不会因为某一个人而拖住整个项目滞后。
交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题。这样可以省了很多重复研究的时间,这是一笔很可观的时间。
在交流中只要我会的,我懂的,我不会去吝啬。我会积极的去与你交流,我的团队名言“人强团则强,人弱团则削”。
三、个人成长
通过公司这快一年的锻炼与学习我真的进步了很多,不管从技术上还是做事上,都不像以前那样了。我在公司学到的懂得的使我飞速成长。
篇4
关键词:SOA;SCPI
中图分类号:TP311
SOA是面向服务的设计架构(Service-oriented Architecture),相比面向对象设计来说,属于更高的一个层面。现在,大多数基于SOA设计都是非常庞大的软件系统。从某种意义上讲,SOA也是一个广义的概念,基于SOA的设计可以为大的系统软件设计基础运行平台,在基础运行平台上开发不同的功能。
对于SOA的理解,大多数是更高层面的概念,专门面向大型软件的项目经理、软件架构师等等相对高端的软件设计人才。而对于基层的软件工程师和程序员能不能理解SOA的概念,应该怎样去理解进而可以让SOA的设计思想更加平民化,是本文描述的重点。
SOA实际上和很多其他学术概念有很多相似的地方,比如基础平台加上应用这个概念和软件二次开发就非常类似,也和基于Frame Work的软件开发有很多相似的地方,Frame Work是基础平台,在Frame Work上开发的功能也能够理解为基于SOA的应用。无论是二次开发也好,Frame Work也好,基础平台类的程序一旦写好了代码就不需要再修改了,而基于基础平台的应用可以千变万化,尽可能地发挥我们的创造力。
从体系结构的角度,SOA是一种软件体系结构和软件构造方法。在软件的基础架构上,SOA架构能够实现服务部署环境和服务实现之间的松散耦合,以及不同功能的服务实现之间的松散耦合性,有利于提高分布式系统的可伸缩性,有利于实现对资源的动态优化配置,最大程度地资源共享。在软件的构造方法上,SOA打破了传统的分布式组件容器的界限,以服务作为基本构造计算单元,通过服务的组合和组装完成系统整体功能。
从实现技术的角度,SOA不仅是一种体系结构,更是指以松散耦合方式实现业务层面各种服务能力的共享、供给和重用的方法学。SOA包含了编程模型及软件工程方法学等在内的一整套系统构造方法和环境。虽然SOA技术与软件服务化的使用模式并没有必然的联系,但SOA软件构造技术所带来的松散耦合和软件的可组合等特性,都有助于软件的使用方式逐渐演化为“定制化使用”、“托管部署和运维”的服务化使用方式。
而从普通程序员的角度去考虑,全部可以归纳为代码实现技术方面的问题,从面向过程、面向对象和面向服务不同领域层次来提升自己的设计能力。首先,“面向过程”是一种以事件为中心的编程思想,使用算法+数据结构的方式就能够实现。而“面向对象”(Object Oriented,简称OO)是一种以事务为中心的编程思想,任何事务都可以抽象成为对象。如:一扇门可以看作是对象,汽车本身有颜色、大小、品牌、位置、运动与否、运动方向、速度等属性。面向服务是一种体系结构,是一个系统架构层次的概念,其所有的功能和服务都使用描述语言+定义,并且各自的接口都可以使用网络进行发现。
从普通程序员的角度考虑,从面向过程、面向对象到面向服务,都是面对不同软件规模的特定设计方式,以给自身的工作带来最大的方面为目的。而无论是面向过程还是面向服务,其设计实际上没有本质的区别,所有原则都可以遵循“封装”、“复用”、“再封装”、“再复用”的方法,区别只是规模不同。
总结:如果能够以普通程序员的角色理解SOA,对于广大基层程序员的设计水平来说可以得到很大的提升。从程序员层面理解SOA还涉及到代码复用技术、好的程序设计方法、数据结构设计和二次开发设计定义,也应该算作狭义的对SOA的理解。
参考文献:
篇5
一年的工作已经结束了,在即将迎来的一年中,我们还会继续努力的,但首先得做好当下的总结。小编在这里给大家带来程序员2020年度工作总结范文5篇,但愿对你有借鉴作用!
程序员年度工作总结1以前在校很少自己做程序,对软件工程更是一无所知。来到公司,开始接触"大规模"(其实现在看来实习的项目其实还是很小的)软件开发,一时真的有些迷茫。比起VSS,MVC,QA,CMMI,我对JAVA,JSP,_ML的一窍不通根本不值一提。大家都不想输在"起点",所以都默契地在加班,这样一直持续了实习的两个月。
刚来的时候"始业教育"显得慢吞吞,我们还经常盘算去哪哪玩之类的。我和__(20个新生里一个南区的兄弟,软件学院的)还经常出去吃各种小吃,每到一处都尝尝本地的风味,这是他的习惯。之后开始的培训还不是很难过,JAVA,C++,ORACLE,老师们讲的很"好",可以说是非常好,好得我们没有几个人能听懂。大家开始发愁,我也是每天晚上都基本看书到10点。
"我心说得亏哥们我还练过",来之前的2月份我就自己买了一本THINKINGINJAVA,看懂看不懂怎么说也算是准备了一下JAVA。C++虽说没去上过课,但凭我的直觉我就一下看中这东西很有用,自己也看过一阵。至于ORACLE,虽然不了解,但毕竟因为佩服"云飞扬"的性格和敬业精神,咱SQL选修也不是白混的。专业倒还有点"基础",再加上咱这自学能力也不是吹的,基本维持。可等到后来的日语课就全迷糊了:本就没有语言天赋,再加上记忆严重欠缺,总是特别害怕去上日语课。不过特别喜欢那个老师说话的感觉,加上她一直对我都很好,所以还是很用心的学着。
随着培训的收尾,我们开始正式进入项目。从需求分析,概要设计到详细设计,我们一步一步的开始接触软件开发的每个细节。不了的就是每天都要记"周报",填写自己的劳动成果。因为这个我还被QA通报了好几次呢,真的很郁闷。其实现在我很感谢这种制度化的东西,某些情况下好习惯的养成是要靠强制来确保的。详细设计之后就是企盼已久的编码,我心想终于可以做点"正事"了。现在回头一看才知道,其实编码只占软件开发的整个过程劳动量的1/4左右,而且其他的环节也不是想象中的那么无足轻重。
编码我其实做的很不好,主要是因为需求分析阶段就没有认真仔细的理解需求和规格说明,加上编码时一个关键时段我回校和老同学叙旧。那阵项目经理(PM)就经常和我们说,"有问题自己想办法,不要经常问我"。PM其实是在叫我们自己酝酿,遇到难题只有"憋"一"憋"才能有真的收获。而我不在的那三天正好是大家技术/思路上的一个"跃迁",很多难题的解决方法都基本成熟,大家的编码也接近50%了,所以回来时我感觉已经掉队很多。再一个就是编码中期时机器出问题,环境搭不上了,这使我更加紧张和急躁,大大影响了我的士气。
后来利用五一其间的加班我终于赶完了自己的模块,达到了第一个里程碑。其实从发现落后到加班赶完这段经历,对我来说也具有里程碑的意义。不仅考验了我自己的能力和心理素质,也证明了我对集体的责任感和合作意识。我可以叫别人来帮我做赶上进度,但那样我会错过自己学习的机会,以后再遇到难题我还是不行;我也可以硬着头皮导致项目延期,那样我以后的日子保证不好过,而且这么做也不符合我的性格。事实证明我顶住压力独立完成任务不管是对集体还是对我个人都是一件大好事。
紧张的编码之后是单体测试,很多人都在继续编码,原来大家的编码都是没有完全做完。本是自己给自己挑毛病的过程,我们却都用来完成之前没有完成的任务,说来不禁可笑。
单体测试之后就是恶梦一样的系统测试。传说系统测试压力很大,测试组找到BUG上报后这边就得限期修改,之后提交给测试组进行下一轮的测试,回归若干次,测试结束后产品达到允许的缺陷率才可以出荷。不过由于这时已经有人要返校体检,其他人也军心涣散导致集体"早退",测试没有很正式的进行,只是简单的做了一下界面的统一和功能的检查,连性能测试都没做。不能不说是实习的一个败笔。
回想之前的工作,不到10周时间我们从学生开始转变为员工,从对公司完全陌生到有了一定的了解,不管是处世为人还是技术思想我们都有确确实实的进步。
再结合我自己来看一看。的收获就是我克服了有些自大的坏毛病,虚心的向别人学习。我知道这就是我练习与不同类型的人适应,交流的开始。技术上自不必说,我绝对学到了以前在学校一年也不一定学到的东西,这就是一个态度的问题。"态度决定一切",这句话太有道理了。
另外一点遗憾就是小孟说的,我似乎也感到自己有点"工作狂"的味道。为了拿下那些代码和BUG,我有好几周都连续加班到晚上11点,由于工作占用了时间,我连以前一直的跑步都没坚持下去。这样不是好兆头,我必须要养成合理的作息制度,不管工作怎样忙,必须不能占用自己的作息时间。还有一个就是和别人的交往。曾因为一些小事分别和老胡和哲明闹了不愉快,幸好后来都说开了,大家没计较。我一定要严谨,克制,绝对不在以后的正式工作中做这样的蠢事。
总体来说,我对实习充满了快乐的回忆,也许是因为我在大学的生活过于平淡和压抑。希望我可以延续这样的快乐,将自己带上事业的顶峰。
程序员年度工作总结2过去的一年,在马总的亲切关怀,伍经理的殷勤管理与认真指导,软件研发部的团结协作,以及在公司这充满奋斗的环境下,我以严肃认真的工作态度和百折不饶的精神,努力的完成了公司的各项工作,在软件研发、团队协作和个人成长上也取得了一定的成绩。在公司一年的工作已经结束,特向公司总结汇报
第一部分工作总结
一、软件研发
根据公司的安排,项目的需要。在自身的努力、伍经理的帮组,团队的合作下,克服重重技术困难,增长了工作经验,收获丰盈
1、asp.net开发
以前我在其他公司也做过一些开发,但是底层和架构与页面样式我都是没有涉及到的。通过这一年在本公司的的这些项目程序中的锻炼,我成长了,我学会了很多很多。
首先,面向对象语言的收获。对于当前编程的主流思想是对象,任何事物都可以用对象来表示。以前理解这些话很费解都是从表面上理解,没有从深入的体会,通过这次asp.net项目的深入,不管是数据还是外部一些条件我们都可以抽象成对象,都可以用对象来表示,具体可以用语言中的类方法等。asp.net如此,c#如此也同样如此。
其次,具备独立完成vb.net知识方面的能力。以前没有做过vb的东西,加上这次深入的做,这次涉及到的领域也非常广,常用的重要的都有涉及,并且还补充_ml,t实际操作中空白的部分。通过这一年的开发,在.net方面我能胜任这方面的工作,能独立完成这方面的工作。
再次,c#方面存在一些不足。通过c#这次软件的开发,也发现自己的不足,如基础知识掌握不牢,缺乏编程整体思想。这些都是需要在工作中完善和改进的。
2、数据库开发
数据库是伴随着项目以来用的最多最平凡的技术。以前对数据库只是会一些简单常用的操作,经过这一年项目的实战,对数据库的操作增加了一些丰富的经验。为以后的工作和经验的积累都奠定了坚实的基础。同时在项目中还用到了oracel与access数据库,这是我的收获·
优点:能熟练的运用数据库技术进行开发。特别是对sql数据库的操作,经过这么长时间的积累,基本上能合理的设计和新建数据库,同时在数据结构上也加强了对数据库的理解。通过项目的实践现在能熟练使用和编写多种sql语句。还掌握了一些关于数据库优化sql语句优化的方法,能进行一些简单的优化。
缺点:数据是一门比较先进的技术,并不是你会写一些sql语句,能建几个数据库你就是数据库工程师。要成为一个好的数据库管理员是要经过长时间的工作积累。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点。充实自己的经验和知识储备。
二、团队协作
上面的成功与收获,除了自身努力外,以及公司的支持。是这个团队铸造了我。我们这个团队也是因为有了我们这些拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。我与软件研发小组是一个整体,这里的团队
总结也就是我在这个团队中的收获。
务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在伍经理的带领下现在是这样,以后同样也是这样。
创新:现在我们开始项目的时候都会进行研讨,一般都会进行一个效率和逻辑的分析与讨论,保证程序正确的前提尽可能的提高程序的效率。
互助:我们小组内只要任何一个人出现技术或其它的问题,我们都会彼此都会尽可能的去帮助他。不会因为某一个人而拖住整个项目滞后。交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题。这样可以省了很多重复研究的时间,这是一笔很可观的时间。
在交流中只要我会的,我懂的,我不会去吝啬。我会积极的去与你交流,我的团队名言“人强团则强,人弱团则削”。
三、个人成长
通过公司这快一年的锻炼与学习我真的进步了很多,不管从技术上还是做事上,都不像以前那样了。我在公司学到的懂得的使我飞速成长。
技术上:不管从语言上还是做事的逻辑上都得到了很大的提高。现在在软件小组里面自己能独立完成一部分工作,承担自己的责任。
第二部分____年工作设想
通过今年的实践和学习,明年是一个新的开始,立足当前的优缺,肩负起一个软件工程师应有的工作和性质。希望为公司明年的发展尽的努力,也希望自己明年有更大的收获。明年计划在以下几方面有所突破,有所建树:
一、在编程语言掌握方面,达到本公司的编程思想—不被语言所束缚。在这方面伍经理是我的榜样,积极努力的提高自身的技术水平,真正做到不被语言所束缚。
二、数据库方面,在当前已有的基础上提升自己,明年自己给自己定的目标是,能非常合理的去使用数据库各类技术,掌握更多的数据库优化思想和技术点。有时间多向许总交流。
三、加强软件开发的辅知识使用和积累。针对当前软件开发中的一些情况,明年更加积极的学习javascrip、aja_和fle_等技术。能辅的把软件做的更好。
四、工作质量上,现在编程我是属于会写会编和局部效率,并不是全局的效率,明年一定要做到,编一个高效率的代码。这就要综合上面的三点,才能使其达到全局的高效。
程序员年度工作总结3过去的一年,我参与了较多的产品设计,从中受益匪浅,不仅学到了很多专业知识,对动态产品有了更全面的理解和把握,而且培养了我作为机械工程师所应该具备的基本素质。同时,我坚持自学,学习了当前机械行业新的工具软件和专业书籍,提高了理论水平。现将具体工作总结如下:
1.设计、调试出口印度的摩托车试验机
印度之行是成功的,也是艰难和值得回味的。我们一行三人,在没有翻译的情况下,克服当地天气炎热和饮食不适应的困难,在不到三周的时间内将四台设备调试完毕,拿到了用户的验收纪要,这是值得肯定的。但,我觉得也有一些遗憾的地方。由于是第一次做车辆产品的出口,缺乏经验,我们的包装和防锈做的不够好,设备出现了故障,让印度人对我们的满意度下降。如果我们注意这些细节,用我们的产品打开印度这个工业刚起步的国家的大门,那么,我相信我们会从中受益。
2.主管设计PWS-J20B1
此试验机已经交检完毕,各项指标达到了技术协议要求,等用户款到发货。
3.参与设计PWS-200B
与毛工一起设计,对液压夹头,气液增压泵等的工作原理有了更深入的理解,从毛工身上学到了很多东西。比如,设计的严谨和严肃性,此产品已发货。
开发四部的工作是繁重和艰巨的,我在车工和毛工的指导下,较好的融入了这种紧张和严谨的氛围中,较好地完成了各项任务,自身的业务素质和工作能力有了较大提高,对工作有了更多的自信。
程序员年度工作总结4我是一名程序员,在过去的一年里,软件研发部团结协作,以及在公司这充满奋斗的环境下,我以严肃认真的工作态度和百折不饶的精神,努力的完成了公司的各项工作,在软件研发、团队协作和个人成长上也取得了一定的成绩。在公司一年的工作已经结束,特向公司总结汇报如下:
一、软件研发
根据公司的安排,项目的需要。在自身的努力、伍经理的帮组,团队的合作下,克服重重技术困难,增长了工作经验,收获丰盈:
1、asp.net开发
以前我在其他公司也做过一些开发,但是底层和架构与页面样式我都是没有涉及到的。通过这一年在本公司的的这些项目程序中的锻炼,我成长了,我学会了很多很多。
首先,面向对象语言的收获。对于当前编程的主流思想是对象,任何事物都可以用对象来表示。以前理解这些话很费解都是从表面上理解,没有从深入的体会,通过这次asp.net项目的深入,不管是数据还是外部一些条件我们都可以抽象成对象,都可以用对象来表示,具体可以用语言中的类方等。asp.net如此,c#如此java也同样如此。
其次,具备独立完成vb.net知识方面的能力。以前没有做过vb的东西,加上这次深入的做,这次涉及到的领域也非常广,常用的重要的都有涉及,并且还补充_ml,java实际操作中空白的部分。通过这一年的开发,在.net方面我能胜任这方面的工作,能独立完成这方面的工作。
再次,c#方面存在一些不足。LocALhOST通过c#这次软件的开发,也发现自己的不足,如基础知识掌握不牢,缺乏编程整体思想。这些都是需要在工作中完善和改进的。
2、数据库开发
数据库是伴随着项目以来用的最多最平凡的技术。以前对数据库只是会一些简单常用的操作,经过这一年项目的实战,对数据库的操作增加了一些丰富的经验。为以后的工作和经验的积累都奠定了坚实的基础。同时在项目中还用到了oracel与access数据库,这是我的收获。
优点:能熟练的运用数据库技术进行开发。特别是对sql数据库的操作,经过这么长时间的积累,基本上能合理的设计和新建数据库,同时在数据结构上也加强了对数据库的理解。通过项目的实践现在能熟练使用和编写多种sql语句。还掌握了一些关于数据库优化sql语句优化的方法,能进行一些简单的优化。
缺点:数据是一门比较先进的技术,并不是你会写一些sql语句,能建几个数据库你就是数据库工程师。要成为一个好的数据库管理员是要经过长时间的工作积累。针对自己的不足,在以后的工作和学习中多接触,多运用新的知识点。充实自己的经验和知识储备。
二、团队协作
上面的成功与收获,除了自身努力外,以及公司的支持。是这个团队铸造了我。我们这个团队也是因为有了我们这些拼搏协作的队员,使得它成为一个具有务实、拼搏、创新精神的团队。我与软件研发小组是一个整体,这里的团队总结也就是我在这个团队中的收获。
务实:公司下发的任务,下发的工作,件件都是用心去做的。我们这个团队中没有一个人在工作的时候做了工作以外的事情,都是实实在在的做跟工作相关对公司有益的事情。相信在伍经理的带领下现在是这样,以后同样也是这样。
拼搏:公司给的每一个任务不管它多难,如果工作没有完成我们会晚上加班,也要尽可能的完成当天的工作。如果工作实在忙,为了赶进度我们放弃周末休息时间也要尽可能的使项目提前。
创新:现在我们开始项目的时候都会进行研讨,一般都会进行一个效率和逻辑的分析与讨论,保证程序正确的前提尽可能的提高程序的效率。
互助:我们小组内只要任何一个人出现技术或其它的问题,我们都会彼此都会尽可能的去帮助他。不会因为某一个人而拖住整个项目滞后。
交流:我们在项目中会及时沟通自己的收获,特别是一些针对性的技术问题。这样可以省了很多重复研究的时间,这是一笔很可观的时间。
在交流中只要我会的,我懂的,我不会去吝啬。我会积极的去与你交流,我的团队名言“人强团则强,人弱团则削”。
三、个人成长
通过公司这快一年的锻炼与学习我真的进步了很多,不管从技术上还是做事上,都不像以前那样了。我在公司学到的懂得的使我飞速成长。
技术上:不管从语言上还是做事的逻辑上都得到了很大的的提高。现在在软件小组里面自己能独立完成一部分工作,承担自己的责任。
程序员年度工作总结5光阴如梭,一年的工作转瞬即将成为历史,伴随着新年钟声的临近,我们依依惜别硕果累累的20_年,满怀热情的迎来即将到来的20__年。在这年终之际,现对来公司一年来的时间里所作的工作汇报如下:
1、正义erp项目的编码工作。
了解新疆正义项目的背景、及计划安排,熟悉正义公司制度及业务流程,再到熟悉新能开发模式,之后我根据需求调研报告,从基本的数据库创建,到编码,完成了销售部、生产部、采购部、质检部四个模块的基本单据的制单、审核、选单、查询、打印等系列的编码工作;完成了正义项目的模块测试及流程测试。
通过这段时间的努力,使我个人的耐心、细心程度及对工作的合理安排得到了锻炼,学会了在繁忙之中找条理,危难之中找希望。同时自己也有一些不足之处,一些细节地方技术上还不太成熟,还需加以学习与钻研。
2、、正义erp项目的实施工作。
从十一月初开始进行正义项目的实施,每天早起赶在企业上班前赶到企业进行erp的实施。实施期间主要是软件的安装实施及对企业的erp系统的使用人员进行软件使用培训;纪录客户使用过程中出现的问题,晚上下班后加班加点将每天的小错误及客户变更修改完毕。
通过这项工作,使我原本欠缺的业务能力得到了很大的提高,并学到了很多与客户交流的技巧及业务上的知识,更加明晰了erp系统的流程。但离一个成功程序开发人员的标准还差得很远,在今后工作中,定会多多注意,加以改善。
3、帮助和使用手册文档的编写。
帮助的编写使我熟悉了dreameweaver和fireworks的使用,为后期的oa开发也奠定一定的基础,使用说明的编写,使我更加加深了项目开发的整体思路与技术要点,总结了前期开发和实施中碰到的问题,并又一次的对软件整体进行了测试,对暴露出的小bug进行了最后的修改。
4、利用工作之余的休息时间加强学习。
平时注意收集有关pb方面的资料文件,提高自己的处理新问题和解决新问题的能力,并加强学习java及oa方面的知识(现转为学习.net),为后期的工作打好基础。
以上为本人粗略的个人工作小结,请领导审阅,如工作上有不到之处,请领导不吝指出,以便本人及时改正,从而能更好地工作。
篇6
求职简历是it社招求职者向用人单位介绍、推荐自我的名片,下面是小编为大家精心推荐的it社招简历范文模板,希望能够对您有所帮助。
it社招简历范文模板(一)个人信息
xuexila
目前所在:天河区
年
龄:21
户口所在:湖南
国
籍:中国
婚姻状况:未婚
民
族:汉族
培训认证:未参加
身
高:158 cm
诚信徽章:未申请
体
重:45 kg
人才测评:未测评
我的特长:
求职意向
人才类型:普通求职
应聘职位:软件工程师:java程序员
工作年限:1
职
称:初级
求职类型:全职
可到职日期:随时
月薪要求:2000--3500
希望工作地区:广州,广东省,
工作经历
长沙信凯软件有限公司
起止年月:2009-01 ~ 2010-04
公司性质:民营企业
所属行业:计算机/互联网/通信/电子
担任职位:java程序员
工作描述:OA自动化办公系统:
软件环境:Apache Tomcat 5.0/MySQL /windows2003/jdk1.4.2
开发工具:Eclipse,Dreamweaver等开发工具
项目描述:该项目主要针对衡阳市环保局的自动化办公,提高办公效率。
1、项目主要采用当前流行的MVC模式,Struts+Hibernate+Spring框架(B/S)。
2、使用的技术:
JSP、Servlet、JavaBean、Hibernate、JNDI、XML、Struts、Spring等相关技术。
责任描述:
1、负责技术:相关JavaBean,Servlet,Hibernate持久层的编写,配置,调试等负责部署整个webapplication。
2、负责功能为个人办公,包括短消息,通讯录等。
客户关系管理系统(CRM)
1.开发环境:Apache
Tomcat 5.0/SQLServer/windows2003/jdk1.4.2
2.开发工具:Eclipse
,Dreamweaver等开发工具
3.项目描述:基于J2EE平台,采用MVC设计模式及SSH(Struts+Spring+Hibernate)三个集成框架、B/S模式、SQLServer作为后台数据库。
4.项目责任:本人主要负责营销管理模块及其显示层的开发。
离职原因:
志愿者经历
教育背景
毕业院校:湖南城市学院
最高学历:大专
获得学位:
毕业日期:2009-06
专 业 一:计算机科学与技术
专 业 二:
起始年月终止年月学校(机构)所学专业获得证书证书编号
2006-092009-06湖南城市学院计算机科学与技术--
语言能力
外语:英语 良好粤语水平:较差
其它外语能力:
国语水平:优秀
工作能力及其他专长
1.扎实的JAVA基础知识,熟悉面向对象编程思想,熟练MVC设计模式。
2.熟悉JAVA、HTML、XML等语言的软件开发;
3.精通JSP,Servlet,JDBC,JSTL等Web开发技术
4.熟练J2EE(Javabean,struts,hibernate,spring)+
Apache Tomcat 5.0开发;
5.熟悉SQL-Server、MySQL,Oracle数据库的操作;
6.了解Linux操作系统,Ajax技术。
7.核心技术:J2EE。
业余爱好:
音乐、锻炼身体、阅读、旅游等
自我评价
本人自学能力强,思维敏捷,对于新知识接受快,勇于面对困难,敢于挑战;
为人诚恳,待人真诚,具有良好的团队合作精神和沟通组织能力,工作认真、踏实、积极上进。
it社招简历范文模板(二)简历信息
姓名:xuexila
性别:男
电话:136-3231****
学历:本科
邮箱:www@xuexila.com
地址:广州市天河区
求职意向
java软件工程师
掌握技能
1.熟练CoreJava编程,有编写注释的习惯;
2.能熟练的整合Spring+Struts+Hibernate(SSH)三大开源框架;
3.能熟练的应用各种常见的设计模式:工厂模式、单例模式、缺省适配器模式、不变模式、装饰模式、模式、MVC、SpringIoC等;
4.熟练应用Oracle、MySQL等关系数据库编程技术;
5.熟练使用JSP、HTML、JSTL、EL等表现层技术,掌握JSF技术;
6.熟练使用WEB服务器Tomcat、JBoss,IDE工具Eclipse进行开发;
7.能熟练应用SpringIoC/AOP/ORM等各种技术,了解EJB及WebService技术;
8.掌握XML语言、OOA/D、UML图、CVS、Log4j,了解JavaScript、Ajax等技术;
9.掌握Socket编程,了解TCP/IP、UDP、Http、Telnet、FTP等协议。
项目经验
项目名称:NetStore网上购书系统
项目描述:该系统分为首页、用户管理、购物车管理、订单管理、退出5个模块。首页模块实现了模糊分页查询、分类分页查询等功能;用户管理模块实现了登录、注册、修改、查看信息等功能;购物车模块实现了查看、购买、修改图书数量等功能;订单模块实现了查看、删除等功能.
责任描述:个人独立完成了整个项目设计,开发,测试等。此系统整体采用MVC模式的Struts框架,持久层使用的是Spring的HibernateTemplate实现,数据源利用的是SpringIoC注入;模型层严格按照JavaBean规范要求;用Struts进行流程的控制,并实现了国际化,JSP用纯标签进行页面显示。为达到用户名唯一的目的用户注册采用Ajax技术进行后台校验。运用SpringIoC的注入对各层解耦,大大提高了程序的可扩展性,易于维护。
开发环境:数据库:MySQL;
JAVA应用服务器:tomcat6.0;
技术选型:Spring、Struts、Hibernate、JavaBeans、Jsp。
项目总结:通过这个项目使我对MVC模式的认识更加的清楚,看到了SpringIoC在解决程序松散耦合方面的强大之处。JSP页面纯标签开发所带来的方便以及页面的美观。
项目名称:NETCTOSS电信运营支撑系统
项目描述:该系统后台主要由数据采集系统和数据整合系统提供支持,前台分为用户自服务管理,资费管理,用户管理,管理员管理,帐单管理,帐务管理6个模块。
责任描述:在数据采集系统、数据整合系统中,主要利用J2SE技术对原始计费信息日志进行定时解析,整理成清单,并保存到服务器的数据库t_detail表中,在保存过程中实现对信息的备份管理和日志记录。之后再利用PL/SQL由t_detail表整合出日表t_day_x,月表t_month_x,年表t_year_x三种表。在前台主要完成了用户管理、资费管理等模块,采用Struts2.0+Hibernate+Spring架构实现,大大降低了模块间的耦合,并编写了文档。
开发环境:数据库:Oracle;
Java应用服务器:tomcat6.0;
技术选型:Struts2.0、Hibernate、Spring、JSP、J2SE、Log4j等。
项目总结:这个项目不仅让我掌握了Struts2.0的应用,也加深了我对其他技术的理解以及编写文档的好习惯和重要性。
项目名称:BBS在线论坛管理系统
项目描述:该系统主要由首页、用户管理、帖子三个模块构成,首页实现了模糊分页查询、帖子分类、最新帖子、最新留言等功能;用户管理模块有登录、注册、修改信息、查看信息、积分功能等基本功能;帖子模块有发表帖子、留言、查看帖子、修改帖子、删除帖子等基本功能。
责任描述:个人主要完成了用户管理模块。持久层使用的是Hibernate技术实现了登录、注册、修改、查看信息、模糊查看等功能;控制层使用的是Struts的DispatchAction实现页面跳转,JSP页面主要利用JSP标签和Struts标签完成。用户注册和登录都使用form表单来获取数据,并且在页面用JavaScript技术对数据进行初步的校验。
开发环境:数据库:Oracle;
Java应用服务器:tomcat6.0;
技术选型:Struts、Hibernate、JavaBeans、Jsp。
项目总结:通过这个项目让我认识到团队合作的重要性,面向对象的设计思想以及Hibernate框架的简单性,加强了对JSP标签、Struts标签的认识。
项目名称:BAM银行帐户管理系统
项目描述:该系统是基于C/S架构的帐户管理系统。
责任描述:独立完成了整个系统的开发。采用GUI实现用户界面来采集数据,实现了用户开户、登录、转帐、修改用户信息、查看资产排名等功能;数据库采用MySQL存储信息,DAO层利用JDBC实现。
开发环境:数据库:MySQL;技术选型:GUI、JDBC、JavaBeans。
项目总结:这个显目让我对软件编程产生了更浓厚的兴趣,对JDBC访问数据库的技术使用更熟练以及有了对C/S架构的深入认识。
教育背景
20XX/9-目前湖南城市学院电子信息工程专业本科
收获:锻炼了我的交往能力,自学及适应能力,并且自学了J2SE。
20XX/6-20XX/11加拿大Tarena外企IT培训公司 java高级软件工程师培训
收获:掌握了基于JavaEE的Web编程等各种技术,加深了对软件开发的兴趣,对工作有了新的认识。
大学经历
20XX/9-20XX/2学校二级奖学金
20XX/2-20XX/7学校三级奖学金
收获:它使我有了更充足的学习动力,并且让我开始寻找自己的职业方向。
20XX/4-20XX/5组织了一次电子竞技比赛
20XX/9-20XX/8其间担任过两次家教
收获:这锻练了我的组织能力和处理事情的逻辑能力,让我认识到知识的宝贵。
个人评价
技术:熟练使用SSH三大框架和各种常见的设计模式进行J2EE的开发,熟练应用数据库知识,有良好的开发习惯和设计思路,并积累了1年左右的项目开发经验。
兴趣:有各种兴趣爱好,如打篮球,乒乓球,游泳,钓鱼,下棋,玩竞技游戏等。它们让我的生活充满乐趣和活力,也让我认识了更多的朋友。
性格:学习能力和对环境的适应能力强,思维敏捷,分析能力强,认真细致、有责任心,做事有计划,善于沟通与交流。
it社招简历范文模板(三)个人基本信息
姓
名:
性
别: 男
婚姻状况: 未婚
民
族: 汉族
年
龄: 22
身
高: 171cm
户
籍: 江西-赣州
现所在地: 广东-广州
希望地区: 广东-广州
希望岗位: 计算机IT类-开发/应用-软件工程师
计算机IT类-开发/应用-软件设计师
计算机IT类-开发/应用-需求分析师
计算机IT类-开发/应用-网络工程师
寻求职位: Java程序员、软件工程师
待遇要求: 3800元/月 可面议 要求提供住宿
教育经历
2008-08 ~ 2012-06 江西理工大学 计算机科学与技术 本科
培训经历
2012-02 ~ 2012-05 **软件培训学校 spring、hibernate、struts、oracle、ajax
工作经验
***公司名称 (2012-05 ~ 2013-08)
公司性质: 私营企业 行业类别: 计算机软件
担任职位: Java程序员 岗位类别: 软件设计师
工作描述: 1、担任研发部的小组长,负组员的任务分配,监督组员的进度,需求分析的讲解与指导并完成自己的模块.
2、参与软件工程系统的设计、开发、测试等过程
3、协调各个程序员的工作,并能与其它软件工程师协作工作。
4、协助工程管理人保证项目的质量;
5、我们团队成功的开发了OA办公系统,电力综合管理系统.赢得了客户的好评.
离职原因: 合同到期,换个对自己有发展的公司
项目经验
电力综合管理系统 (2012-11 ~ 2013-08)
担任职位: Java程序员、小组长
项目描述: 基于b/s网络的生产管理系统,从而使得工程管理,生产计划管理及人事部的生产工时管理,企业经营部的公司资质和业绩,实现信息化的统一管理,解决企业信息的孤岛问题。
系统以工程管理为主线,涵盖了标书管理、合同管理、资金管理、工器具管理、车辆管理、材料管理、安全质量管理、工作计划管理、综合查询、基本资料管理等模块,实现了电子数据处理,办公自动化,提高了企业员工的工作效率、减低了企业的成本。
责任描述: 负责工器具管理、车辆管理;工器具管理是对项目所需的工具的管理,可以进行领取,分配,回收,采购,外借等功能;车辆管理:对公司的车辆,和司机的管理,对车辆的录入,分配,回收,外借,年检等管理。
**办公系统 (2012-05 ~ 2012-10)
担任职位: Java程序员,小组长
项目描述: 主要技术:hibernate、struts、spring、ajax、jquery、jsp、jbpm、JasperReport、JFreeChart等相关技术开发的。
项目功能分为系统基础模块和业务模块,基础模块包括审批管理、权限管理、组织机构,业务模块包括信息中心、通讯录考勤管理、人事机构、办公申请、报销管理、办公用品管理、资产管理、工作日志。
系统在使用后页获得了金利公司的一致好评,金利有限公司通过使用的我们开发的OA系统后使员工从繁琐,无序,低端的工作中解放出来,提交了企业的办事效率和对信息的可控性,提高了企业的市场竞争力。
责任描述: 负责人事管理、报销管理两个模块,权限管理实现的是将用户分成各种角色,每个角色拥有相应的权限、一个用户可以属于多个角色,从而控制用户是否有权限操作某些功能,报销管理是对消费报销的申请、登记、统计等功能。
技能专长
专业职称: 软件工程师
计算机水平: 程序员
计算机详细技能:
具备扎实的Java基础知识,熟悉多线程和网络编程,具备面向对象的编程思想,熟悉常用的设计模式。
熟悉JSP/Servlet、Javascript、JDBC、XML、AJAX、JQuery、JBPM、JasperReport、JFreeChart等Web开发技术。
熟悉Struts、Hibernate和Spring主流框架,并使用这些技术开发过电力工程管理系统, 金利办公系统
熟悉Eclipse开发环境、能熟练使用CVS进行团队开发、使用Rose进行建模。
熟悉SQLServer、Oracle数据库及SQL数据库操作语言。
能熟练使用Tomcat、Jboss 等服务器。
技能专长: struts hibernate spring 等框架有一年的开发经验,从事过大型企业的企业信息管理系统的开发工作。并成功上线如OA办公系统、电力综合管理。利用JBPM进行流程的处理。
语言能力
普通话: 流利
粤语: 较差
英语水平: 口语一般
英语: 一般
求职意向
发展方向: 程序员-项目组长-项目经理-项目总监-CTO;
其他要求: Java软件工程师,软件程序编写
自身情况
自我评价: 对工作的热忱和一颗积极进取的心
为人踏实、工作认真,善于学习、不怕吃苦,能很快适应新的环境,
一年半的Java工作经验让我对这个行业有了更深的认识,也提升了自己的技术水平
我会以一颗最虔诚上进的心在工作中不断的学习不断的积累,力争为公司创造更多的价值。
兴趣爱好: 打球、旅游、上网、游戏、听音乐等休闲类的娱乐活动。
看过“it社招简历范文模板”的人还看了:1.it行业简历范文模板
2.it行业的求职简历模板范文
篇7
1.作人的姿态
作人似乎跟商务谈判不太有关系,很多技术人员相信PM需要的是本事,是如何做好一个项目,而不是会搞好关系弄的四平八稳的人。随着PM在中国的悄悄兴起,越来越多的
的PM开始在老总的授意下参与商务谈判,和销售们一起打单子,这就比较实在的需要PM们去揣摩客户的心理。揣摩客户心理需要有多方面的知识,需要深度和广度,然而,最重要的仍然是作人。如何放下架子,降低作人的姿态,对从技术人员转型的PM们来说,是至关重要的。
降低作人的姿态需要从多个方面去实施,最主要应该记住:人不可貌相,更不可以地位衡量。很多公司为了保持公司形象,会统一叫员工打扮的好看一点,看起来象个白领的样子。然而,老板多半是没有约束的。中国改革开放才二十年,很多有钱的老板实业家文化层次都不高,往往是当大学生们只会把屁股坐在板凳上肆意挥霍父母辛苦积攒的财富时,他们已经在各地奔波,积累丰富的商业经验并对金钱,人生和社会的本质有了充分的认识,形成了自己稳定的思维框架。这些人,很多都是穿着旧旧的衣服,戴着破破的手表,说话的时候经常会带上三字经,钻进上海的人堆里,搞不好你会把他当成民工。因为到他们所处的社会地位,已经不需要任何华丽的外表来衬托自己的身份,他们有的是底气。对PM来说,这是个非常危险的挑战。虽然说项目在初期有意向时会对对方的人事和关键人物有一定的了解,然而大项目里能说的上话的人太多了。上海人最瞧不起的就是土气,很多人谈项目的时候看到民工或很俗气的表现不免会皱皱眉头,往往在皱眉头的时候就失去了项目,也就是失去了市场和金钱。PM必须作到能与每一个层次的人交谈,尤其是看起来比自己层次要低的群体,哪怕是公司里扫地的阿姨。只有作到谦虚谨慎,不摆架子,尊重别人,才会得到别人的尊重,才有机会赢得项目。鼻子比眼睛高的人只会把自己的鼻子撞扁。
2.丰富的知识面
光尊重别人还不足以赢得项目,准确的说是赢得对方关键人物的信赖。PM一般用不着陪客户喝酒吃饭,那是销售们的事情,但是PM和客户讨论问题可能是最多的。讨论问题的时候就是机会,如何投其所好,是一大关键。金钱与美女依然是常规的敲门砖,然而这种傻瓜也知道的办法人人都会去做。老板的关系也只是一个方面,如今的大老板,哪个没有关系?同等条件下PM凭什么去胜过别人一筹?
我一个朋友(PM)打一个单子时,发现对方对什么都不太感兴趣,费了很大力气也找不到突破口。对方这个人非常顺利,金钱地位美女样样不缺。他花了好多天和对方交谈,以自己的博学逐渐取得了对方的信任。后来他隐约发现对方对数学和天文学的发展史有所涉猎,如获至宝,回家花一个通宵的时间在网络上搜索相关资料。第二天他根本不谈项目的事情,只跟对方大谈特谈哥白尼,布鲁诺,伽利略这些人的生平,整整吹了一天。对方点头如捣蒜泥,态度和热情都来个一百八十度转弯,隔天他就拿到了单子。这是个经典的战例,谁能事先想到哥白尼会来帮助IT的人赚钱?这个PM靠的就是博学和由博学引申出的敏锐的感觉抓住了机会,让客户产生共鸣。客户感觉他层次也很高,而且和自己有共通之处,信任度大大增强,把项目交给他放心。如今这种例子在商务谈判中已经屡见不鲜了。对PM来说,并不要求在各个方面都很精通,那是不可能的事情,只要PM对一些流行的话题和天文地理历史各方面的知识有个大概的了解,在需要的时候能尽快的掌握,才有机会创造机遇和把握机遇。
3.强大的沟通能力
胸中有万千墨水却不知如何表达其实是比较少见的,但并非绝对没有。每个人的人生轨迹都有所不同,思维受环境的影响也各有差异。包括象我们目前这个班级里的一些未来的MSE们,一定有比较内向或者不太爱表达自己观点的人,这些人比较被动,往往很难承担起谈判的重任。从今天开始,这类人就必须重新学习如何说话,如何大声的争论。沟通,并不仅仅是大声说话,而是在表达自己观点的同时发现问题并综合整理加以解决。除此之外,沟通的能力与社会经验息息相关,与PM的见识联系紧密。在日常生活中,PM就要多留心,多思考,当别人想到某个层次的时候要争取比别人考虑的更深。当然,也有一些不够踏实的朋友把沟通和吹牛当成了完全的一回事情,在和客户交流的时候口若悬河的说一些不着边际的话。这种人,碰到不懂,不太认真或者好奇心强的客户是有一定市场的;而有水平,负责任的客户往往会觉得这种人不可靠,一般不会把单子交给他。PM需要把握好这个度,吹是肯定要吹的,只是吹牛的时候一定要有基础的去吹,对从来没涉及过的领域或者根本不懂的东西轻易不要发表意见,挑选自己熟悉的方向合理的进行发挥,适当的留上一两手,给对方高深莫测的感觉,效果最好。
4.优秀的售前团队
这个团队一般是由总经理发起并组建的,通常不指定PMP,对团队的成员如SALES,PM,SA,ENGINEER们的团队合作提出了比较高的要求。一般公司在接下一个单子进行到一定程度的时候,PM往往会尴尬的发现协议上销售代表们对客户的一些承诺是几乎做不到或者根本做不到的事情。这种情况非常多,销售的任务是拿下单子,我听到的销售们说的最多的就是"没问题"或者"NOPROBLEM",但是当我听到客户的要求和销售的回答时我总是心惊肉跳,很不自然。销售是非常辛苦的,为了建立客户关系,尤其是空白的市场是很不容易的,往往为了一个单子会牺牲非常多。在这种情况下,和销售进行协调自然而然的又落到了PM的头上。在销售和客户做承诺之前,PM要主动的跟销售交流,提供粗略的总体设计框架和技术难关以及能考虑出的工作量,而不是等出了问题再被动和销售在老板面前互相推委责任。在组建团队的时候,PM要根据团队里每个人的素质和任务进行因人置宜的信息传递。优秀的售前团队合作是接单的重要保障。
在商务谈判的实际操作中,存在着各式各样的问题,PM的职责和要求绝非以上几点所能描述详尽。根据环境,政策,人文,关系等各方面的不同情况,PM的不同成长经历,每个PM最终都会建立自己对商务谈判的看法和经验。但是有一点的职责和要求绝非以上几点所能描述详尽。根据环境,政策,人文,关系等各方面的不同情况,PM的不同成长经历,每个PM最终都会建立自己对商务谈判的看法和经验。但是有一点可以肯定,这是PM成为PM的第一道关,也是最重要的一关。接不到单子,PM将失去去存在的意义。与销售有所不同,PM在该阶段的任务除了接单,还要尽可能的搜集客户关键人物的资料并与对方各个阶层的负责人建立良好的客户关系,以便在项目实施时充分调动资源。
二.启动阶段
1.项目的一些基本概念
项目三要素有多种版本,各不相同。实际操作中多分为范围,成本与进度,其中最重要的莫过于范围。我们把项目最终生成并提交给用户的产品和文档统称为递交件。谈判的时候一定要确立递交件的标准和要求,也就是范围。尽管商战的时候不可避免的客户会不断提高标准和要求,而承诺的款项却不会有一分钱的增加。但是这个标准对每个公司来说都有一个底线,一旦超过了这个底线,那项目就肯定是亏的。除非是为了二期有利可图或者是为了搞好关系,否则范围超过底线的时候情愿不做,再厉害的PM在这种情况下也是无能为力。建立范围需要的就是PM的多年的实战经验,在大大小小的项目中用血泪换来的一些体会。在这个时候,很能体现PM与技术人员的区别。成本就是客户答应付的款项,与我们的投入成本并不是一回事情。进度就不用多描述了。
项目如何成功?也有一些关键的因素。个人的理解也不尽相同,通常包括以下几个方面:界定工作目标及工作任务;老板或高层的支持;优秀的PM和开发团队;充足的资源;良好的沟通;对客户的积极反应以及适当的监控和反馈。这里要注意的就是资源和高层的支持。一个上规模的公司总是同时会有很多项目,可是再大规模的公司资源也不足以保证每个项目都能组建最合适的开发队伍或拥有最好的环境。这时候各个团队或者部门之间不可避免的会发生资源争夺战,摩擦再所难免。这时候对PM的作人再次提出挑战。除了高层对PM项目的重视程度,如果PM平时在公司与同事相处的好往往能使很多别人看起来很棘手的问题迎刃而解。相反,一个不会作人的PM由于人缘差,即使高层强压别的部门或团队配合,别人也会能拖就拖,延缓项目的进度和质量。有时候,这种内耗对项目和PM来说是毁灭性的。对客户的积极反应也比较关键。一般来说PM已经被项目里大大小小的事情搞的筋疲力尽,要PM去主动要求客户配合是很吃力的事情。然而,这个时候,越是困难,越是觉得累,越是要去主动。客户往往也不是特别的积极,主动与客户联系沟通和测试能及早发现问题。从风险控制的角度来说,问题发现的越早,风险越小,损失也就越小。积极的态度可以带动客户的积极性,在项目完工的时候,客户对你的感激往往是难以用语言描述的,这对以后接单或者做二期三期会打下良好的基础。因为在和别的新客户谈判的时候,新客户自然会找你的老客户了解情况,这时老客户随意的一句话顶的上你很费心的十句。
项目具有商业行为的几个重要特征,有消费源,有参与者,有成功关键因素,有财务目标,有风险。
2.启动阶段的主要任务
根据PMI的解释,接单之后项目自然转入启动阶段。启动阶段PM的主要任务是率领总体架构设计师和系统分析员收集尽可能详细的数据,确立尽可能详细的需求,进一步确立详细的项目范围,预估资源,确立其他方案并获得进入下一阶段的批准。在这个阶段,随着需求分析的深入,PM也开始在公司内部进行人员挑选和资源争夺,着手组建自己的项目团队。项目即将进入计划阶段。
在收集完数据之后,PM要和客户开始明确项目的大小,成本,规格,期限等重要特征并将其写入合同文本,同时准备内部的包括预算,衡量标准等文档,建立项目的评估标准。接下来就是需求分析。由于专业的原因,我们这里仅讨论软件工程项目的需求分析(以下简称需求分析)。
需求分析的主要参与人员有PM,总体架构设计师,系统分析员,熟悉业务流程的客户。PM统领的团队这时候还不是真正的开发团队,我们叫做前期团队。随着需求分析的逐步深入,新的团队成员不断加入,启动阶段结束的时候正式的团队将建立。对一个已经启动的项目来说,需求分析直接决定了项目的成功与失败。最初的需求体现在客户的工作说明书或招标文件及附件上。这种需求一般比较含糊,无法体现客户真正的需求。前期团队要根据自己的经验和客户沟通并引导客户进入正轨。有时候客户会很不讲道理或者思路僵化,就要求按照他的思维去定一些明显错误的需求。这个时候团队成员要耐心和客户举事实,谈经验,讲道理,用图形或模型等直观的方式将需求描述出来,比如常见的数据流图等。所以说,争论再所难免,客户有时候会吹胡子瞪眼睛拍桌子甚至会说"这个东西不要你们做了"之类的话。PM此时除了要亲身参与需求分析综合整理文档之外,还要处理好团队成员与客户的关系,确保关系不会恶化到无法收拾的地步。只要PM尽力约束团队中的成员,这个度还是很容易控制的。
对快速开发和叠代开发来说,需求和实现往往是同步进行,开发速度快是一大优势。对有相同或类似模式的小项目来说采用快速开发或叠代开发是很合算的做法,时下流行的极限编程就是针对这方面建立的思维模式。然而,大中型项目中有太多不一样的需求和模块。如果不是因为项目有差异,那么市场上就只有产品而没有项目了。所以,大中型项目的需求要认真仔细的去做。我们要讨论一个问题,究竟应该在需求分析和总体设计上花费多少时间?我们熟悉的瀑布开发模式基本上分需求分析,总体设计,软件开发,测试等几个阶段,然而究竟应该在前两个阶段上花多少时间却没有定论。实际项目操作的例子表明,分析设计的时间越长,需求设计做的越详细,测试的时间就越短,返工率越低,风险也越小,成本越容易得到控制。而需求分析和总体设计没有做好就急忙上马进行开发的项目在项目初期进展顺利的时候问题不大,到了项目后期和测试阶段一些潜伏期比较长但是破坏作用比较大的问题就会凸显出来,造成返工,延长测试时间。所以与其把问题堆积到紧张的项目后期,不如把时间多花点到需求分析和总体设计上。基础夯实了,金字塔就容易造了。
在日本公司打工的程序员们可能都知道,小日本的软件规范非常厉害,他们花在需求分析和总体设计上的时间通常在40%到50%左右,远远超过国内软件项目的实施,效果也要强的多。他们总体设计的规范甚至详尽到某个过程该如何判断,确立什么样的条件,换言之就是把什么时候该如何写(if...else)语句都帮程序员定好了。在这样的软件规范下,程序员更象是装配流水线上的工人,对一个模块或技术熟悉到一定程序就变成了完全的重复性劳动。所以在日本和欧美经常会有程序员是低级工作一说,很多人不明就里,对国内程序员也照搬,对国内的程序员来说是很不公平的。在国内,只会照抄别人代码,一点都不懂创新,凡事依靠别人,快下班就盯着表看的程序员是不少,这种人一般很难有什么前途。但是,优秀的不断进取的程序员也很多。由于国内没有象CMM这样的软件规范或者很少,所以这类优秀的程序员不少都是干着系统分析员甚至PM的活,拿着程序员的工资。这类程序员虽然在起步时会吃很多亏,而且是主动找亏吃,然而几年之后与前一种程序员的社会地位会出现明显的分化。当上进的程序员们作为PM进行商务谈判的时候,前者还在各个公司里频繁跳槽,跳来跳去都不满意。有些扯开了,回到我们的话题。日本的软件规范与CMM有惊人的相似,其中至少有35%以上都是几乎一模一样的。最近经济不景气,东京倒闭了160家软件公司,这个数字是今年6月份的,还在不断增加。这些公司纷纷抢滩上海,招收技术人员。如果去这样的公司应聘就要考虑清楚了,进去可以学到他们的规范和质量控制,可是要想从程序员成为系统分析员或PM,比登天还难。往往一个程序员进去干了好几年,对自己的那一块熟的不得了,而对隔壁同事所做的东西一窍不通。拒传华为正在尝试CMM4(华为印度研究所已经通过CMM4),对在华为工作的程序员们来说可谓福祸难料。当然,已经作到PM或QA或者热爱CODING的朋友例外。
需求分析本身也存在着时间分配的问题。第一遍需求分析花的时间会最长,分析员们在客户的各个部门之间几乎把腿都跑断,把口水说干,就是为了确立一个初期的需求模型。所有的文档将会提交给PM进行复审并签字,不合格的打回重做。反馈表随之将提交给客户,第二遍第三遍等等等等接踵而来,与客户反复讨论和磋商,反复提交文档和表格,目的只有一个,明确需求。当PM最终合并了所有文档并确立需求之后,最终生成的需求文档将提交给客户的各部门负责人签字。这些文档将作为合同的附件添加,以便在将来项目变更或者碰到重大问题时和客户扯皮的重要依据。需要说明的是,客户并非都是蛮不讲理,但是说实话,颇有无奈,国内目前的项目大多数客户为了不让自己的钱白花,经常变着法子提需求。在启动阶段明确需求并签字,无论最终情况如何,一份详尽的书面文档可以解决很多口头承诺或概念模糊的文档带来的许多问题。
详尽的需求分析有一个额外的好处就是对一些双方都很陌生或者从来无人尝试的领域将是一个决定是否进行项目的判断标准。有时候,这种大项目在签单时双方都没有绝对把握保证可以出成果,一旦在需求分析阶段发现难以逾越的技术难关,就会放弃项目。典型的例子就是NMD洲际导弹防御系统。上世纪八十年代初美国搞星球大战计划,拖跨了苏联。大家对那段历史有些含糊,很多人认为苏联人上了美国的当。其实并不完全如此,苏联人的情报机构无孔不入,并非那么容易上当受骗。实际上当时美国国防部已经开始着手NMD系统软件的需求分析,前后耗资数亿美圆,耗时两年,仅仅是做需求分析,终于发现存在着在当时技术上无法达到的高度,随后项目被放弃。
3.项目启动
项目启动要确定项目计划,与客户一起实施第一次项目审核,确认并对一些产品和服务向下包厂商下订单。这个时候的PM会忽然发现有开不完的会,一天开三到四个会议是很正常的事情。这些会议有与客户的会议,与下包厂商的,有团队的,有公司高层的。团队的会议主要是建立正式的团队,提供团队成员的角色和职责,提供绩效管理方法,向成员提供项目范围和目标。与客户的一个主要会议将是项目启动会议。在这个会议上PM会与客户确立正式的交流渠道,项目综合描述,让项目参与人员相互了解,建立以PM为核心的管理制度。还有一些零零碎碎的东西甚至包括办公场地的大小,电话多少部,所有人的联系方式等等都要在会议上确立,并做会议记录。这都是些非常琐碎的事情,听起来婆婆***,却是非常必要,缺一不可。大概就是所谓三军未动,粮草先行吧。
这时候,作为公司高层,应该向全公司发表申明,正式给PM项目经理任命书和项目授权书。这个动作虽然在别人看来有些形式主义,但是对提高PM本人的士气和责任感是有很大助力的。
三.计划阶段
1.定义结构分工结构图(WBS)
启动阶段结束后,项目进入计划阶段,也就正式进入实施。这里概念可能有些不太对头,其实是翻译的缘故,反正大家明白意思就行,不用拘泥于字面。WBS是一组要提交的项目元素,用来组织定义项目的总体范围,具体包括从工作内容,资源,成本角度考虑项目范围;建立一套系统所需要的分层工作结构;把项目分解成易于管理的几个细目,这概念有些模糊,其实跟资源管理器里分目录是一回事情。可以说,WBS是计划阶段的核心。WBS会详细的分到递交件,包括给自己人用的项目使用的过程文件,给客户用的模块和说明文档,完成每个细目的标准以及如何把这些细目的责任分配到具体的个人。WBS有缩进式和树状式,我这里也没办法画图,大家参考一些项目管理的书籍,里面有详细介绍。我整个文章只挑我觉得需要注意的地方,如非必要,对技术细节或者工具使用不做详细介绍。WBS的细目并不需要分解到同一水平,最下面的细目叫做工作包,分包的依据是个人的责任和可信度,也就是说到每个人头上的任务是否能落实,是否有把握完成;还有就是准备对项目进行控制的程度,程度越深,WBS树也就越深。由于WBS是实用性的东西,根据个人理解也不一样,所以一个项目可能会有几个正确的WBS,看PM的需要和最适合当前团队状态的进行选择。
WBS的定义还是很麻烦的。PM要召开团队进行讨论,向成员提供与项目相关的所有详细资料,并把WBS树分解到二层三层。然后要花上一段时间让成员进行头脑风暴式(BRAININGSTORM)思考,制订工作产出和相应人员的职责,记录每一个工作包的完成标准。在头脑风暴式思考时,会有很激烈的争论,PM要协调关系,调节气氛,从自己能考虑到的各个角度旁推侧敲,提示成员的思维角度和方向并加以总结。尽管很麻烦,制订WBS仍然是非常值得的。如同需求分析一样,WBS准备的越充分,编码的进度越快。
2.风险管理
既然是商业行为,那么项目的风险必然存在,相信阅读这个帖子的朋友不少人都经历过或大或小的风险。有些风险很容易解决,有些风险则大大损害利益。不论什么样的风险,能避免尽量避免,所以有必要对风险进行管理。由于风险的不可预知性,风险管理难度很大,概念也很难讲清楚,只能从一些可行的角度去分析,进行管理。
首先要识别风险。这是个难度很高的活。PM要先召开风险识别会议,这个会议面向公司,高层,跨部门的有经验的人都将参加。然后审核由项目小组生成的风险清单并与重要成员进行风险沟通,检查一些重要的风险源如WBS,成本(时间)预估,人员计划,采购管理等等。最后就要用到PM本身在以前类似项目中得到的经验教训。
识别之后要进行分析。我们可以进行粗略的量化分析(精确分析是不可能的事情)。有经验的人可以一起参加讨论,把提交出来的风险进行分类。首先按发生的可能性分,一般分成高,中,低三个级别,虽然很勉强,但是好歹也有个量化了;然后按耗去的成本分,也是高,中,低三级。我们可以把这两种类别的三个级别进行组合,碰到可能性也高,成本也高的风险就定位为不能接受。碰到这种风险只好让客户修改需求或者增加风险预留成本,否则一旦亏起来不是亏一点点,有可能赔的很厉害。高和中,中和中的搭配都是属于高风险,中和低,低和低搭配属于低,高和低搭配属于中。
针对出现的可能性,需要采取一些手段降低风险。到目前为止也没有一个定论说有绝对好的方式,只能尽其所能的避免。有几种方法可以考虑,第一种是将风险纳入项目管理计划并指定负责人,由外部人员定期检查项目风险,一旦风险发生,执行风险管理计划;第二种是保险,这种属于风险转嫁;第三种方式有点,不过最保险,就是把客户拖下水,让他们一起参与风险管理,呵呵,到时候就好说话了:)
风险管理作为项目计划之后,PM需要更新WBS,修改日程计划和更新风险管理计划。
2.启动阶段的主要任务
根据PMI的解释,接单之后项目自然转入启动阶段。启动阶段PM的主要任务是率领总体架构设计师和系统分析员收集尽可能详细的数据,确立尽可能详细的需求,进一步确立详细的项目范围,预估资源,确立其他方案并获得进入下一阶段的批准。在这个阶段,随着需求分析的深入,PM也开始在公司内部进行人员挑选和资源争夺,着手组建自己的项目团队。项目即将进入计划阶段。
在收集完数据之后,PM要和客户开始明确项目的大小,成本,规格,期限等重要特征并将其写入合同文本,同时准备内部的包括预算,衡量标准等文档,建立项目的评估标准。接下来就是需求分析。由于专业的原因,我们这里仅讨论软件工程项目的需求分析(以下简称需求分析)。
需求分析的主要参与人员有PM,总体架构设计师,系统分析员,熟悉业务流程的客户。PM统领的团队这时候还不是真正的开发团队,我们叫做前期团队。随着需求分析的逐步深入,新的团队成员不断加入,启动阶段结束的时候正式的团队将建立。对一个已经启动的项目来说,需求分析直接决定了项目的成功与失败。最初的需求体现在客户的工作说明书或招标文件及附件上。这种需求一般比较含糊,无法体现客户真正的需求。前期团队要根据自己的经验和客户沟通并引导客户进入正轨。有时候客户会很不讲道理或者思路僵化,就要求按照他的思维去定一些明显错误的需求。这个时候团队成员要耐心和客户举事实,谈经验,讲道理,用图形或模型等直观的方式将需求描述出来,比如常见的数据流图等。所以说,争论再所难免,客户有时候会吹胡子瞪眼睛拍桌子甚至会说"这个东西不要你们做了"之类的话。PM此时除了要亲身参与需求分析综合整理文档之外,还要处理好团队成员与客户的关系,确保关系不会恶化到无法收拾的地步。只要PM尽力约束团队中的成员,这个度还是很容易控制的。
对快速开发和叠代开发来说,需求和实现往往是同步进行,开发速度快是一大优势。对有相同或类似模式的小项目来说采用快速开发或叠代开发是很合算的做法,时下流行的极限编程就是针对这方面建立的思维模式。然而,大中型项目中有太多不一样的需求和模块。如果不是因为项目有差异,那么市场上就只有产品而没有项目了。所以,大中型项目的需求要认真仔细的去做。我们要讨论一个问题,究竟应该在需求分析和总体设计上花费多少时间?我们熟悉的瀑布开发模式基本上分需求分析,总体设计,软件开发,测试等几个阶段,然而究竟应该在前两个阶段上花多少时间却没有定论。实际项目操作的例子表明,分析设计的时间越长,需求设计做的越详细,测试的时间就越短,返工率越低,风险也越小,成本越容易得到控制。而需求分析和总体设计没有做好就急忙上马进行开发的项目在项目初期进展顺利的时候问题不大,到了项目后期和测试阶段一些潜伏期比较长但是破坏作用比较大的问题就会凸显出来,造成返工,延长测试时间。所以与其把问题堆积到紧张的项目后期,不如把时间多花点到需求分析和总体设计上。基础夯实了,金字塔就容易造了。
在日本公司打工的程序员们可能都知道,小日本的软件规范非常厉害,他们花在需求分析和总体设计上的时间通常在40%到50%左右,远远超过国内软件项目的实施,效果也要强的多。他们总体设计的规范甚至详尽到某个过程该如何判断,确立什么样的条件,换言之就是把什么时候该如何写(if...else)语句都帮程序员定好了。在这样的软件规范下,程序员更象是装配流水线上的工人,对一个模块或技术熟悉到一定程序就变成了完全的重复性劳动。所以在日本和欧美经常会有程序员是低级工作一说,很多人不明就里,对国内程序员也照搬,对国内的程序员来说是很不公平的。在国内,只会照抄别人代码,一点都不懂创新,凡事依靠别人,快下班就盯着表看的程序员是不少,这种人一般很难有什么前途。但是,优秀的不断进取的程序员也很多。由于国内没有象CMM这样的软件规范或者很少,所以这类优秀的程序员不少都是干着系统分析员甚至PM的活,拿着程序员的工资。这类程序员虽然在起步时会吃很多亏,而且是主动找亏吃,然而几年之后与前一种程序员的社会地位会出现明显的分化。当上进的程序员们作为PM进行商务谈判的时候,前者还在各个公司里频繁跳槽,跳来跳去都不满意。有些扯开了,回到我们的话题。日本的软件规范与CMM有惊人的相似,其中至少有35%以上都是几乎一模一样的。最近经济不景气,东京倒闭了160家软件公司,这个数字是今年6月份的,还在不断增加。这些公司纷纷抢滩上海,招收技术人员。如果去这样的公司应聘就要考虑清楚了,进去可以学到他们的规范和质量控制,可是要想从程序员成为系统分析员或PM,比登天还难。往往一个程序员进去干了好几年,对自己的那一块熟的不得了,而对隔壁同事所做的东西一窍不通。拒传华为正在尝试CMM4(华为印度研究所已经通过CMM4),对在华为工作的程序员们来说可谓福祸难料。当然,已经作到PM或QA或者热爱CODING的朋友例外。
需求分析本身也存在着时间分配的问题。第一遍需求分析花的时间会最长,分析员们在客户的各个部门之间几乎把腿都跑断,把口水说干,就是为了确立一个初期的需求模型。所有的文档将会提交给PM进行复审并签字,不合格的打回重做。反馈表随之将提交给客户,第二遍第三遍等等等等接踵而来,与客户反复讨论和磋商,反复提交文档和表格,目的只有一个,明确需求。当PM最终合并了所有文档并确立需求之后,最终生成的需求文档将提交给客户的各部门负责人签字。这些文档将作为合同的附件添加,以便在将来项目变更或者碰到重大问题时和客户扯皮的重要依据。需要说明的是,客户并非都是蛮不讲理,但是说实话,颇有无奈,国内目前的项目大多数客户为了不让自己的钱白花,经常变着法子提需求。在启动阶段明确需求并签字,无论最终情况如何,一份详尽的书面文档可以解决很多口头承诺或概念模糊的文档带来的许多问题。
详尽的需求分析有一个额外的好处就是对一些双方都很陌生或者从来无人尝试的领域将是一个决定是否进行项目的判断标准。有时候,这种大项目在签单时双方都没有绝对把握保证可以出成果,一旦在需求分析阶段发现难以逾越的技术难关,就会放弃项目。典型的例子就是NMD洲际导弹防御系统。上世纪八十年代初美国搞星球大战计划,拖跨了苏联。大家对那段历史有些含糊,很多人认为苏联人上了美国的当。其实并不完全如此,苏联人的情报机构无孔不入,并非那么容易上当受骗。实际上当时美国国防部已经开始着手NMD系统软件的需求分析,前后耗资数亿美圆,耗时两年,仅仅是做需求分析,终于发现存在着在当时技术上无法达到的高度,随后项目被放弃。
3.项目启动
项目启动要确定项目计划,与客户一起实施第一次项目审核,确认并对一些产品和服务向下包厂商下订单。这个时候的PM会忽然发现有开不完的会,一天开三到四个会议是很正常的事情。这些会议有与客户的会议,与下包厂商的,有团队的,有公司高层的。团队的会议主要是建立正式的团队,提供团队成员的角色和职责,提供绩效管理方法,向成员提供项目范围和目标。与客户的一个主要会议将是项目启动会议。在这个会议上PM会与客户确立正式的交流渠道,项目综合描述,让项目参与人员相互了解,建立以PM为核心的管理制度。还有一些零零碎碎的东西甚至包括办公场地的大小,电话多少部,所有人的联系方式等等都要在会议上确立,并做会议记录。这都是些非常琐碎的事情,听起来婆婆***,却是非常必要,缺一不可。大概就是所谓三军未动,粮草先行吧。
这时候,作为公司高层,应该向全公司发表申明,正式给PM项目经理任命书和项目授权书。这个动作虽然在别人看来有些形式主义,但是对提高PM本人的士气和责任感是有很大助力的。
三.计划阶段
1.定义结构分工结构图(WBS)
启动阶段结束后,项目进入计划阶段,也就正式进入实施。这里概念可能有些不太对头,其实是翻译的缘故,反正大家明白意思就行,不用拘泥于字面。WBS是一组要提交的项目元素,用来组织定义项目的总体范围,具体包括从工作内容,资源,成本角度考虑项目范围;建立一套系统所需要的分层工作结构;把项目分解成易于管理的几个细目,这概念有些模糊,其实跟资源管理器里分目录是一回事情。可以说,WBS是计划阶段的核心。WBS会详细的分到递交件,包括给自己人用的项目使用的过程文件,给客户用的模块和说明文档,完成每个细目的标准以及如何把这些细目的责任分配到具体的个人。WBS有缩进式和树状式,我这里也没办法画图,大家参考一些项目管理的书籍,里面有详细介绍。我整个文章只挑我觉得需要注意的地方,如非必要,对技术细节或者工具使用不做详细介绍。WBS的细目并不需要分解到同一水平,最下面的细目叫做工作包,分包的依据是个人的责任和可信度,也就是说到每个人头上的任务是否能落实,是否有把握完成;还有就是准备对项目进行控制的程度,程度越深,WBS树也就越深。由于WBS是实用性的东西,根据个人理解也不一样,所以一个项目可能会有几个正确的WBS,看PM的需要和最适合当前团队状态的进行选择。
WBS的定义还是很麻烦的。PM要召开团队进行讨论,向成员提供与项目相关的所有详细资料,并把WBS树分解到二层三层。然后要花上一段时间让成员进行头脑风暴式(BRAININGSTORM)思考,制订工作产出和相应人员的职责,记录每一个工作包的完成标准。在头脑风暴式思考时,会有很激烈的争论,PM要协调关系,调节气氛,从自己能考虑到的各个角度旁推侧敲,提示成员的思维角度和方向并加以总结。尽管很麻烦,制订WBS仍然是非常值得的。如同需求分析一样,WBS准备的越充分,编码的进度越快。
2.风险管理
既然是商业行为,那么项目的风险必然存在,相信阅读这个帖子的朋友不少人都经历过或大或小的风险。有些风险很容易解决,有些风险则大大损害利益。不论什么样的风险,能避免尽量避免,所以有必要对风险进行管理。由于风险的不可预知性,风险管理难度很大,概念也很难讲清楚,只能从一些可行的角度去分析,进行管理。
首先要识别风险。这是个难度很高的活。PM要先召开风险识别会议,这个会议面向公司,高层,跨部门的有经验的人都将参加。然后审核由项目小组生成的风险清单并与重要成员进行风险沟通,检查一些重要的风险源如WBS,成本(时间)预估,人员计划,采购管理等等。最后就要用到PM本身在以前类似项目中得到的经验教训。
识别之后要进行分析。我们可以进行粗略的量化分析(精确分析是不可能的事情)。有经验的人可以一起参加讨论,把提交出来的风险进行分类。首先按发生的可能性分,一般分成高,中,低三个级别,虽然很勉强,但是好歹也有个量化了;然后按耗去的成本分,也是高,中,低三级。我们可以把这两种类别的三个级别进行组合,碰到可能性也高,成本也高的风险就定位为不能接受。碰到这种风险只好让客户修改需求或者增加风险预留成本,否则一旦亏起来不是亏一点点,有可能赔的很厉害。高和中,中和中的搭配都是属于高风险,中和低,低和低搭配属于低,高和低搭配属于中。
篇8
>> 基于软件程序员课程开发的研究 基于高职柔性人才培养模式的教学体系研究 基于“ABC―KAQ双相模式”的医药营销本科人才培养体系的研究 基于德国职业教育评价体系的高职人才培养模式创新研究 基于校企深度合作教育体系的人才培养模式研究 基于“平台+模块”课程体系的制药工程专业人才培养模式研究 基于产学研的软件外包人才培养体系研究 基于工学结合人才培养模式的高职思政课教学体系的构建 基于职业就业的高职人才培养模式研究 基于冰山理论的人才培养模式研究 基于产学研模式的高校人才培养问题研究 基于职业标准的人才培养模式研究 基于知识管理的高校人才培养模式研究 基于“项目式教学”的人才培养模式 基于人才培养模式的教学内容选择 基于人才培养模式改革的人才培养方案研究 基于高素质人才培养的高职院校人才培养模式研究 基于应用型人才培养的旅游管理本科实践教学体系构建研究 基于创新型人才培养的创业实训教学体系研究 基于人才培养的民营医院教学体系建设研究 常见问题解答 当前所在位置:中国 > 政治 > 基于 ATOM教学体系的程序员人才培养模式的研究 基于 ATOM教学体系的程序员人才培养模式的研究 杂志之家、写作服务和杂志订阅支持对公帐户付款!安全又可靠! document.write("作者:未知 如您是作者,请告知我们")
申明:本网站内容仅用于学术交流,如有侵犯您的权益,请及时告知我们,本站将立即删除有关内容。 摘要:本文立足研究高职院校的程序员培养问题,创新提出了“ATOM”即原子教学体系,并提出了基于该体系的分阶段、循环、递进式人才培养模式。目的在于为高职院校解决批量培养低考分工科人才提供经验参考。 关键字:程序员 ATOM CDIO 人才培养模式
随着信息化社会的到来及高速发展,党和政府提出了“坚持以就业为导向,深化职业教育教学改革”的要求,要求学校必须根据市场和行业的需要改革课程体系,更新教学内容,创新教学模式。对于致力于培养软件专业人才的职业教育院校来说,学生层次是制约其教学结果的关键。然而,2009年到2012年黑龙江高职院校录取分数线分别为:180分、170分、200分、170分。处于这一层次的学生,以往的学习阶段基本没有好的学习习惯或者没有好的学习方法,而软件技术类课程本身又存在学习难度大、很枯燥的问题,学生学习兴趣难以持久。
如何能够在教学中有效的引导学生、掌控学生?如何有效的发挥学生的主动性?如何把这样的学生批量培养成才?成了摆在广大高职院校计算机软件教学领域中的一大难题。哈尔滨信息工程学院(原哈尔滨华夏计算机职业技术学院)软件技术系经过多年努力,一直在致力于解决这个问题。
1国内外工程人才教育模式研究现状分析
对于优秀工程人才教育模式的研究,国内外已经取得了很多研究成果,例如:由美国欧林工学院提出的以“欧琳三角”哲学理念为基础的教育模式,由麻省理工学院等四所国际大学提出的CDIO工程教育模式。迄今为止,已有几十所世界著名大学加入了CDIO组织,按CDIO模式培养的学生深受社会与企业欢迎。中国也已经引进了这种优秀的教育模式,并进行了本土化研究及应用。例如,2003年起,江西理工大学创立并迅速发展的 “3+1”创新教育模式,2005 年起,汕头大学工学院提出了全新的 EIP-CDIO 培养模式。2010年,大连东软信息学院提出的T-C教育模式。这些CDIO性质的教学模式以其先进性、实效性与优越性,被国内很多大学认识与接受,被更多的企业认同。
我国这些继承CDIO教育模式的大学都利用这一理论体系培养出了大批优秀的人才。但是,对于全国各大高职院校来说,要把如此低分的学生批量培养成才,目前还是一个难题。
2主要研究内容、研究目标和解决的关键问题 2.1研究目标:
我们在继承CDIO工程教育模式教学研究成果的基础之上,完全以企业需求为目标,从职业定向性的角度以学生批量成才为导向,在阶段性教学实践中已经取得了良好的效果。 2.2研究内容
该课题研究继承COID工程教育模式中提出的“主要让学生以主动的、实践的方式学习工程”这一思想,进行软件工程开发技术的教育模式研究;并在课题体系建设上注意课程之间有机联系,并在此基础之上又进行了课程内部知识点的独立分解。主要从以下几个方面研究。
2.2.1符合优秀IT企业人才培养标准的知识点、能力点的分解
其中包括:把程序员需要的知识结构分解、细化成具体的知识点;把程序员应具备的能力结构分解、细化成具体的能力点;
2.2.2构建具有“责任体制”特色的课程体系和教学方法
我们把自身的这种特色课程体系和教学方法相融合,总结出了一套秉着“有责任感的教师队伍培养有责任感的学生”这一教学宗旨的教学体系。这种教学体系的每个环节都近似于原子中电子群围绕原子核的运动关系,且每个英文首字母组合后恰好是“原子”的英文拼写ATOM,所以定名为ATOM教学体系。
具体解释:
其中A代表“能力和知识的高内聚拆分(Ability and knowledge of high-cohesion split)”,即把一个知识点或能力点及围绕它的理论做为一个原子进行拆分;
T代表“基于团队的教学管理方式 (Team teaching management mode based on)”,即以团队和围绕该团队工作的学生作为一个教学活动的原子单位,实行团队合作的学习方式;
O代表“面向对象的程序设计模块化(Object-oriented program design module)”,即把一个项目拆分成若干个模块,把一个程序模块及围绕该模块组织的教学活动作为一个原子单位,进行实践教学;
M代表“基于责任的因材施教的管理教育(Management education, teach students in accordance with their aptitude based on)”,即以每个学生为单位设计差异化培养内容,把一个学生及围绕该学生的教师团队作为这种管理教育的保障。
2.2.3研究构建基于ATOM教学体系的分阶段、循环、递进式人才培养模式
该研究构建出的人才培养模式包括:a.多轮交替模式。主要以学生训练为主,把项目研发训练课程分成3个阶段,每个阶段都以同一个项目的研发为目标,在递进的过程中,分别采用基本的研发技术、企业级的研发技术、基于框架的企业级研发技术这3个层次,进行项目技术的递进式开发训练;而且每次项目改进都是对原有项目的循环开发。在这个过程中,使学生温故知新,逐步向企业级开发水平靠拢。并在教学过程中,补充以教师关注差异化的学生,并有针对性的对症下药的办法;b、校企合作、工学结合模式。该模式分3个阶段,即1.5年的基础学习,加上0.5年的企业级综合训练,再加上1年的企业实习。
新的培养模式可概括为:
教学宗旨:对学生负责,对家长负责,对企业负责,对社会负责,对结果负责;
教学体系:4个原子化(ATOM);
教学实施方式:阶段性、循环、递进式;
教学过程:3级飞跃,即基础知识积累(1.5年)―>企业级应用实践(0.5年)―>职业人(1年); 2.3解决的关键问题
通过研究,我们解决了以下2个问题:
①基于结果负责为导向的责任体制的改革;
② 低考分学生的批量成才问题;
本课题是2013年黑龙江省高等教育教学改革项目,课题编号:JG2013020017。笔者把研究的主要思想成文,以分享研究心得。
参考文献:
篇9
【目标】
相信和不少朋友一样,有了几年工作经验成为Senior后就开始了面试别人的经历。我在最初这个阶段只是按照自己的想象把”找到基础好的程序员“,”找到算法能力优秀的程序员“,”找到有Android开发经验的程序员“等作为面试的目标。但是,实际的经历告诉我,尤其是按“基础好”,“算法好”这些目标招到的人最终效果并不好。比如,有的面试者基础知识和算法掌握情况不错,进程、线程、内存等概念清晰,基本的Hash,二叉树,快速排序等数据结构和算法也比较熟悉,但是进公司后在实际工作中表现得很糟糕。后来,我才发现原来是我的面试目标出了问题,我原先的面试方法更像是大学的算法或操作系统期末考试,按照这种方法让许多并不合适的人通过了面试,同时也可能错过了许多合适的人。
后来,我的反思是,从公司的角度讲,面试的根本目的是找到"能够干好工作"的人,而“高学历”,“算法好”,“基础好”,“有经验”这些都是表象而不是根本,它们并不能直接和“工作好”划等号。
【方法】
目标明确了,但接下来的问题是假设面试者是一个黑盒系统,“工作好”不是直接可观测变量,你所能直接观测的变量是基础、算法、经验、学历、性格、谈吐、年龄等等。所以,实际上,你只能从“基础好”,“算法好”等可以直接观测的量去推测“工作好”的概率,这就是一个在“X好“条件下"工作好“的条件概率问题:P(工作好 | X好)。
根据这个模型,面试所应该考察哪些方面就很明显了,那就是选择那种最具有区分性的方面来考察。比如,考察面试者的体型特征没有太大意义,因为P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,体型特征不具有区分性,这不是面试所应该关注的内容。
面试官应当结合职位的要求明确哪些因素具有比较好的区分性。比如,如果要招一名技术门槛比较高的3D游戏引擎开发工程师,面试者A具有3D游戏引擎开发的经验,但是在基础知识和算法面试方面表现一般;面试者B相反,基础知识和算法面试表现很好,但没有游戏开发经验,而你只能选择其一。你选谁呢?其实,这就是两个条件概率问题P(工作好|经验好,基础一般,算法一般)和P(工作好|没经验,基础好,算法好)。这个问题就留给面试官来判断了,就我个人而言,对于技术门槛较高需要技术积累的职位,经验更加说明问题,因此,我更倾向于面试者A。
下面,我再结合自己的经验谈谈对面试中常见方面的看法。
【算法】
算法是Google和MS等大公司面试所重点考察的内容。我个人很喜欢算法,曾经参加ACM/ICPC拿过北京赛区的13名。但是,就个人经验来看,我所接触过的绝大多数开发职位而言,算法都不适合作为考察面试者优劣的主要因素。对于普通的非算法性开发职位,考察面试者的算法就相当于考察他打乒乓球好不好一样,与目标“工作好”的相关性太低。就我个人的经验来看,差不多P(工作好|算法好)=50%,也就是算法面试没有太大的区分性。
甚至,还有一种很不好的情况特别多地出现在算法好的面试者身上,我称之为“只磨刀,不砍柴”。什么意思呢?有类人只对什么A*算法,异步编程,JVM类加载机制这种纯技术问题感兴趣,对实现用户需求毫无兴趣。这类人看起来有一定的技术能力,但是对公司来讲贡献十分有限,甚至不如技术一般但认真负责的人。所以,一旦遇到面试者算法好,我就特别留意考察会不会是这种“只磨刀,不砍柴”的人。
另外,虽然我个人不了解Google和MS,但我对于其特别重视考察算法能力的面试策略是持怀疑态度的。即使在这样的世界级大公司,算法虽然重要,但可以想象在项目实施过程所遇到的各种各样问题中,算法问题绝大多数时候不会是主要瓶颈,没有到那种需要每个人都是算法高手的情况。实际上,绝大多数项目真正难点并不是一两个算法瓶颈,甚至也不是单点的技术瓶颈,而是系统性的组织、协调、设计、开发问题,有大量的看起来不是那么有技术含量的脏活累活,也有许多问题是由于信息不足,并不是技术能力强就能克服这些困难。一个团队最好优势互补,有人算法强,有人业务分析能力强,有人擅长后端服务,有人擅长前端界面,有人聪明,有人踏实,这是最好的。如果按照“算法好”的单一标准选材,必定会把许
多优秀的人才拒之门外。
补充:在更多地了解了Google和Facebook等一流公司的面试细节之后,我对这个问题的认识有了一定的改变,实际上这些公司在面试过程中并不完全强调技巧性很强的算法,而是更加注重编码(Coding)能力,只是在进行编码测试的过程中往往是通过一些简单算法题来进行的。我对于这种面试方法越来越欣赏,并且也作为了我们公司面试过程中的重点环节,因为编码能力的测试是十分必要的,它有着知识性问题无法取代的作用,如果一个面试者连“判断一个字符串是否是另一个字符串的子串”这样的题目都无法正确并快速地实现,那么基本上可以直接排除了。我这里所强调的是不必考察高难度的算法问题,并非不重视编码能力测试,请读者不要误解。
【基础】
基础面试是指考察诸如指针使用、进程线程概念等基础知识的面试,十分类似于大学期末考试题。我曾经以为基础面试十分重要,但是现在不这么看了。在工作中基础的确是重要的,但是在面试过程中,它必须具有区分性才有意义,也就是说P(工作好|基础好)的概率要高,那么考察指针使用,进程线程区别这样的基础题目才有它的意义。我的实际经验是,基础面试并不具有很好的区分性,和算法一样, 差不多P(工作好|基础好) = 50%。同时,基础面试是最容易准备的,中国人有长期的应试教育经验,要准备几个把玩指针题目太容易了。
我曾经遇到过这样的面试者,他的C语言基础和编译、链接等原理掌握得非常好,给我留下了深刻的印象,我给的面试结论是:知识面不宽,只会C语言,但基础很扎实,建议录用。后来的事情证明了那个结论的前半部分是对的,但是”建议录用“错了。他在实际工作中表现得一塌糊涂,不理解需求,不理解整体架构;同时,上班时间不是花在项目上,而是花在阅读诸如《程序员的自我修养》之类的书籍上。最后,这位同事由于长期“不出活”离开了公司。
基础不是不重要,而是“基础好”不足以说明面试者能干好工作,因为基础是属于局部性知识,而实际工作需要综合性能力,二者有天壤之别。C语言、操作系统能考高分,但是不会写程序的人在大学我们还见得少吗? 软件开发就像盖房子,综合能力是设计和搭骨架,基础知识是码砖。张小龙原先Foxmail是Delphi开发的,他它不懂C#,你如果要招聘一个开发.NET Email客户端的人,你考察他对CLR掌握得好不好有意义吗? 让张小龙来开发一个C#版的Foxmail真的会有困难吗? 你招一个精通C#但没有Email客户端开发经验的人来真的比张小龙靠谱吗?
我说基础知识不重要,和古人说的“不积洼步无以至千里”是不是矛盾呢?不矛盾!“洼步”与“千里”是一种可累加关系,但再多的“基础知识”都累加不成“综合能力”。学习软件开发要像持续集成一样,一开始就是一个完整的系统,虽然规模不大,问题很多,但它麻雀虽小五脏俱全,从小系统到大系统,从简单系统到复杂系统逐步演化。
所以,基础好本身不足以说明太多的问题,必须进一步考察综合能力。对于基础面试表现不好的面试者,如果时间允许也要进一步考察,有的面试者其实是有能力的,只是没有进行充分的准备。最理想的状态当然是基础和综合能力俱佳,若不能兼顾,应当综合能力优先。
【经验】
这里所说的经验不是通过工作了多少年来衡量的,而主要是指面试者的经历,比如,是否完整地实现过一个软件,或作为主要开发者完成过一个项目。经验的重要性在于它能说明一个人的综合能力。从项目的性质、规模和难度,面试官就可以大致判断出面试者的综合能力。如果一个面试者一直在大公司负责一个小模块的开发维护,那么基本可以判断他不具备独立或作为主要开发者承担一个项目的能力,只适合在另一家大公司做类似的事情。对于门槛较高需要长期技术积累的职位,相关经验更显得尤为重要,比如,Linux内核开发,JVM开发,游戏引擎开发,数据库实现,高级UX等。对于这类职位,没有经验的面试者即使综合素质不错也是需要长时间的学习和积累才能胜任。所以,基本上如果确定了你的职位属于此类,那么相关经验毫无疑问应该成为首选因素,换句话说,P(工作好 | 相关经验好)的概率是非常高的。
通过项目经验判断面试者的优劣比通过基础和算法测试更加靠谱,所以,面试过程中面试官应该花比较多的时间听面试者介绍项目经验,并进行深入地探讨交流,了解面试者的知识面、思维能力、表达能力等。同时,可以结合项目提一些基础知识和算法的问题,比如,如果面试者做过C++相关的项目,那就可以问他如何进行内存管理?是否熟悉智能指针?如果面试者的回答不能令人满意,那么就基本上可以判断他的项目做得不是很好。
要注意的是,经验也是一个多维度的事物。比如,C++股票交易中间件系统,这就涉及(C++,中间件,股票) 3个维度。假如面试者A做过C++股票交易客户端,面试者B做过C的股票交易中间件。从语言角度看,A最匹配,从项目性质看,B最匹配,你如何选择?这就是在多个维度中,哪个维度更重要的问题,就这个例子而言,我个人更倾向于B,因为我认为中间件开发经验是主要矛盾,而从C切换到C++并不是问题。所以,面试官需要判断哪一种经验是主要的,而哪一种经验是次要的。比如,我们招聘Android应用开发,这个职位的Android技术门槛并不高,它的真正难点在于做出好的用户体验(UX)。所以,如果一个面试者没有Android的经验我们是可以接受的,但是我希望他在UX方面有经验,至少做过其他平台的移动应用开发。
【性格】
现在,我来谈我认为最重要的因素:性格。这可能是许多初为面试官的朋友所难以想象的,怎么会是性格最重要呢?说实话,当我意识到这一点时,我自己也很惊讶!说白了,还是 P(工作好|性格好)的概率最高啊。我的实际经验是,如果一个人的性格好,他能把工作做好的可能性是最高的,性格好远比基础好、算法好要靠谱。
一个人如果技术上有缺陷,经验上有不足,但性格好,在团队中是很容易由其他人来补位的,他自己也很容易逐渐补起来;相反,如果一个人的性格不好,所有的技术优势经验优势都发挥不出来,甚至还会起到负作用,而且性格缺点很难改变。我一直谈到实际工作所需要的是综合性的能力,这种综合能力的发挥中性格是至关重要的。项目中不止会遇到技术问题,要涉及沟通、协调,不同的人不同的部门既有合作又有磨擦,如何处理这些事情都需要一个良好的性格。可以说,在开发团队里让你与众不同的不是你从哪个学校毕业,也不是你过去的经验,而是你的性格。
当然,性格是一个复杂的东西,它包含了很多的方面,并非所有方面都是程序员面试所需要关注的。我的经验是可以重点考察这些方面:
1) 态度积极还是消极。有的面试者在谈吐中就会自然给你一种积极上进的感觉,或者你可以在他的经历中发现他积极的因素,这些都不是太难看出来的。相反,有的面试者你能明显感觉到他的消极情绪。积极性在工作中是十分重要的,积极的人能给团队带来朝气,也更易于合作。基本上,如果确定面试者属于态度积极的,他通过我这一关的可能性就会大大增加;相反,如果确定属于态度消极的,即使技术
能力不错我也会十分谨慎。
2) IQ。我的经验是,总体来看,聪明的人在工作中的表现更为优秀。在面试中要考察一个人是否聪明并不一定要像Google和MS那样找些专门测试IQ的智力题,其实,你只需要看他讨论问题是不是很有逻辑性,思考和说话是不是反应敏捷就可以做出大致的判断。另外,眼睛是人心灵的窗户,一个人聪明与否,眼睛是会说话的。不过,聪明也不完全是优点,比如,当公司或项目遇到困难时,往往是聪明人先跑掉了,坚守的往往是IQ一般的人。
3) 语言表达能力。语言表达能力也是程序员十分重要的一项素质,它关系到项目中的沟通是否顺畅。面试官可以看看面试者能否用简明的语言介绍清楚曾经做过的项目,能否抓住要点,能否考虑到听者的相关背景。一般来讲,语言表达能力强的人综合能力都不会太差。(文秘站 )
4) 是否具有用户意识。有人说程序员是做研发的,哪来什么用户?只有销售、市场人员才会和用户打交道。其实,这是完完全全的错误认识。你写一个模块,甚至一个API,只要有别人用,他就是你的用户。有的程序员设计一个模块或是一个软件总是习惯于从使用者的角度来考虑,尽量地方便使用者,这就是一种良好的用户意识。具有良好的用户意识的人更能考虑别人的感受和整体的需要,而不是单纯地从自己和局部来思考问题。当面试者谈及过去的项目经验时,面试官可以常常站在用户的角度对其进行提问,从这个过程中观察其是否具有良好的用户意识。
5) 如何应对质疑和压力。面试官应该对面试者的回答以及以往项目进行合理的质疑,看看他如何应对。曾经有一位面试者谈到做游戏登录服务器的经历,我就问:“如果登录服务器挂了,怎么办呢”?他说原先虽然没有考虑这个问题,但是可以怎么怎么改进。其实,大家都理解项目中有各种不完美,这里面原因很多,只要面对质疑和压力能从容应对努力往好的方向思考解决就可以了,不需要掩饰缺陷,更不应该有情绪。我遇到过有的面试者,一旦你对其项目提出质疑,他马上产生反抗情绪,或不高兴,或不承认有问题,这很容易一下子看出来他在工作中容不得质疑和批评,这种人要想合作就很困难。
6) 个性特点。许多面试者喜欢在简历上写“精通C++/Linux“,这些字眼看得人麻木,如果有人写”喜欢C++/Linux“,我就会有一种眼前一亮的感觉。“精通”是没有感彩的叙述,而“喜欢”包含了面试者的个性,我更愿意看到面试者的个性。我相信对某样东西真正的热情远比你当前对它的掌握程度更为重要。其实,N年的经历告诉我们,同一个班的同学,同一个项目组的同事,虽然每天所学的知识,所接触的工作都是相同的,但其实每个人的成绩和表现差异是十分明显的。那么,到底本质的差异是什么呢?其实,就是每个人的个性。是个性使得有的人业余时间去打球,有的人业余时间去看书,有的人喜欢Linux,有的人喜欢Mac。一个人在团队中扮演的角色也和他的个性有很大的关系。面试官应该引导面试者展现自己的个性,并判断其是否有益于团队。
篇10
关键词 电子信息专业;人才培养模式;应用型人才
中图分类号:G642文献标识码:B文章编号:1671-489X(2012)15-0029-03
1 引言
随着军队院校教育转型建设的不断深入和发展,军事教育呈现精英教育的特质,要求学员不仅应具备基础理论知识和基本任职能力,还应突出个性化发展,强化学习能力和创新能力,主动适应部队岗位发展和战斗力提升的需求。理工大学的电子信息类专业旨在为部队培养能胜任未来信息化军队建设的高素质新型军事气象水文信息处理专业技术军官,应具备专业理论基础、复合知识结构、较强的信息应用能力和开拓创新精神的创新型人才。
军事教育的应用性、创新性以及综合性要求已经逐步在日常教学和学科建设中得到较好的体现和落实。但目前由于教学评价体系单一、教员教学精力投入不足、教学与科研的矛盾以及学习激励机制不完善等方面的客观原因,使得部分教学内容陈旧,教学模式单一,教学方式还存在“大锅饭”的现象,教学活动与部队实际需求脱节,针对性不强,虽采取一些方法,诸如导师制以及大学生科技竞赛等活动,但是还缺乏一个行之有效的与课程体系配套的专业拓展和考核平台,以促进学员综合素质的培养。本文研究以学院电子信息类专业本科人才培养为背景,提出在专业学习阶段建立一套与课程体系配套的专业拓展平台和考核机制,尽可能使课堂的理论教学内容与实践应用和部队岗位需求相对接,切实增强教学效果。
2 个性化人才培养模式
通过积极探索利用各类信息资源和课余教学活动,全方位调动学员的学习主动性和积极性,使每个学员都能根据自己的个性和特长,在完成课程学习的基础上,开展形式多样的专业拓展活动,通过权威专业机构的专业能力认证考核,把理论知识、实践能力与岗位任职紧密集合起来,营造个性化发展的教育氛围,面向部队需求,以提升学员信息技术开发能力、网络应用能力以及新技术和新手段的创新能力为目标,在电子信息类专业人才培养方案的指导下,在相对固定的课程体系之外,辅助以多元化的专业拓展训练和考核方式,课内教学活动和课外专业拓展活动两条线并发推进,相辅相成,互为补充,让学员根据个性特长和兴趣爱好,自主学习,自我提高,积极适应部队战斗力生成模式的转变的新要求。
2.1 建立专业拓展和考核平台
面向部队实际需求,修订学员专业学习阶段的课程学习计划和课外拓展考核规划,建立学习实践的考核机制和激励机制。着力培养学员的信息技术开发能力、网络应用能力和新技术、新手段的创新能力,建立软件开发技术、网络工程应用、大学生科技竞赛项目和专业技能训练等4个课外拓展平台,并相应引入国家软件程序员考试、思科网络国际认证、申请软硬件发明专利以及组织专业技能鉴定等进行学习成果验证考核,学员可以根据自身学习兴趣和爱好,有选择地进行学习。学员学习的成果经过评定可作为人才选拔的重要依据,突破传统学分制的弊端,减少高分低能的状况。
2.2 加强师生互动
充分发挥教员的“引导”和学生的“兴趣”相结合的优势,教员不再以知识的传授者自居,而要进行适当的角色转换,即由“教学”变为“导学”,使学生充分发挥潜能,激发兴趣,使他们更好地将所学的知识转化为实际应用能力,进一步完善本科生导师制。利用专业拓展和考核平台,教员可有的放矢地进行指导,建立教员与学员之间的资源信息共享、优势互补的互动环境。一方面,学员在与教员的互动学习的过程中,能最大限度地将所学的理论知识应用到工程实践中,促进学员自主性和创造性的发挥,有利于学员的学习和成长;另一方面,教员虽然在理论知识和相关科研实践中拥有学术权威,但在教学与学术水平上仍有可提高的空间,而这主要是在师生互动中得到提升的,个性化人才培养模式能够增进教员对自身的认识,强化教员的自我发展和自我完善意识,从而能有效地指导学员将所学知识转化为分析问题和解决问题的能力。
2.3 合理拟定实施方法
紧密结合课程群,合理设计多层次的拓展平台,充分利用和整合现有的教学资源,拟订专业发展平台和考核机制的实施途径和方法。在传统的学分制教学模式管理下,学员更注重的是考试成绩,而忽略对于电子信息类专业尤为重要的专业素质和应用设计能力。因此,鼓励学员根据自身兴趣参加各类专业技术考试,不仅能有效验证学员是否具备相应的专业技术资历,也能切实提高他们的学术水平和创新设计能力。根据实际需求,拟选定以下四方面建立专业拓展学习和考核平台。
1)程序员考试。根据电子信息类专业对学员程序设计能力的要求,学员可报考中级程序员和软件设计师(高级程序员)。其中,通过中级程序员考试的学员能根据软件开发项目管理和软件工程的要求,按照程序设计规格说明书编制程序,写出相应的程序文档,产生符合标准规范的、实现设计要求的、能正确可靠运行的程序,相当于技术员的实际工作能力和业务水平;通过软件设计师考试的学员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,并对软件进行优化和集成测试,开发出符合系统总体设计要求的高质量软件,具有工程师的实际工作能力和业务水平。指导教员应具备大型软件开发的经验,能指导学员能够从系统的角度开发软件,编写高效的程序,相关课程为软件工程、数据结构、操作系统、C语言、数据库技术与应用等。
2)思科认证网络工程师。思科认证网络工程师论证包含CCNA、CCNP以及CCIE等多个层次,在学习初期,可以先引入相对简单的CCNA论证考试,使学员具备初步的网络管理和实施的能力,相关课程为计算机网络等。
3)申请发明专利。根据部队需要,在广泛调研的基础上,紧密结合专业学习,有针对性地进行新技术试验、项目技改和部队科研,在实践中磨练意志,增强能力素质,鼓励学员对所取得的成果申报发明专利和软件著作权。指导教员应具备申报专利或软件著作权的相关经验,指导学员撰写申报文档。
4)职业技能鉴定。职业技能鉴定是一项基于职业技能水平的考核活动,它是由考核机构对考核人员从事某种职业所应掌握的技术理论知识和实际操作能力做出客观的测量和评价。与电子信息类专业相关的鉴定职业为计算机维修员、计算机高级安装调试员等,鉴定级别分为初级、中级、高级,获得职业资格证书的学员能对计算机及外部设备进行检测、调试和维护修理。相关课程为计算机维护、计算机硬件技术基础等。
2.4 提供组织措施保证
研究专业拓展平台和考核机制的组织体系和评估体系,进一步提高教学的集约性、灵活性和有效性。专业拓展平台和考核机制的建立必须有强有力的组织措施为保证,同时要凝聚各方资源和力量,要在提升学员能力与素质上舍得投入,着眼长远和人才培养的大局,建立机关、教研室、学员旅的联动机制,及时沟通学员学习情况,逐个分析影响学习效果的因素,从人力、财力和教学资源等方面进行适当的支持,努力构建以信息技术为主导的完整的新型课程体系和教学体系,提升专业课程信息化建设水平,培养学员基于信息系统的专业应用和实践能力。
2.5 实施重点
1)合理修订电子信息类专业人才培养方案中的培养目标与培养方法,衔接好课程计划的制定与课外拓展项目的选择。由于电子信息类专业课程较多,学时量大,如何合理分配课内学习与课外拓展项目的时间比是搞好课外专业拓展项目的关键。
2)搞好专业拓展和考核平台建设,关键要提升教员的能力和水平,教员要预先进行项目规划并做好充分的准备,在教学资源整理、案例开发、项目设计以及实践条件建设等方面进行深入的研究,以“贴近作战任务、贴近部队实际、贴近岗位需要”理念为导向,使课内教学与课外实践相互补充,全面提升学员的任职和创新能力。
3 总结
本文面向学院的电子信息类本科专业教学,积极探索和实践与专业课程相配套的专业拓展平台和考核机制,在专业课程学习的同时,引进权威教育机构实践性与创新性强的专业拓展与考核项目,全力提升学员的信息技术应用、开发和创新能力,形成常态化的多层次的以学员为主体的能力素质培养机制。本文探讨的个性化人才培养模式可以对现有的人才培养方案进行补充和完善,破除了单纯地依赖考试成绩来衡量和检验学员的学习效果的模式,可以更好地调动学员的积极性,培养学员的实践应用能力,由“考试型”转化为“应用型”人才,为构建一个面向实际需求、强化工程能力培养的应用型人才培养体系打下坚实的基础。
参考文献
[1]易万程,桂颖.浅谈计算机专业应用创新型人才培养[J].信息系统工程,2011(1):75-76.