《2022年《程序员岗前培训手册》.doc》由会员分享,可在线阅读,更多相关《2022年《程序员岗前培训手册》.doc(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、程序员岗前培训手册北京应用技术大学目录(CONTENTS)前言面试是双向选择软件公司研发技术岗位与岗位职责如何快速融入技术团队(程序员入岗的考前须知)优秀程序员应具有的质量与习惯谈谈学习方法外包软件、商品软件、工程软件简介前言 同学们通过在北京应用技术大学两年的学习,都满怀向往地向往程序人生的开场,也对马上走上的工作岗位和环境充满了期待,期待通过程序来证明自我的价值。程序员,相信在特别多同学眼中是一个有趣、特别、高薪、充满艰苦而又特别神奇的职业,由于手下那一行行跳动的代码不仅实现了生动的功能,同时也表达着程序员对人生的理解和追求。当程序员实现了一个独到的创意之后预备熄灯休息时,天已蒙蒙亮.当程
2、序员看着用户纯熟地操作本人的软件处理一个个复杂事件时,脸上那写满成就的微笑.确实在这个行业里出现了太多的英雄人物和企业,而每一个英雄的事迹和成就都足以让我们热血沸腾、摩拳擦掌 在同学们马上步入程序员岗位之前,需要对软件研发相关职位的职责范围与工作特点有所理解,掌握一些入职的根本技巧和考前须知,检查本人的技能与行为习惯,有的放矢,提高面试和就业的成功率。入职后能尽快地融入到技术团队,近而快速成长,成为团队技术骨干和最优秀的职员。在工作中养成积极而良好的行为习惯和职业素养,为本人的职业开展制造一个良好的开端。 本手册从面试、技术岗位职责、如何快速融入技术团队、优秀程序员的质量与习惯、学习方法、外包
3、软件/商业软件/工程软件简介等几个方面阐述了同学们在踏入工作岗位之前应该理解的知识和考前须知。面试是双向选择一般同学都会误认为面试时应聘者处于弱势,要接受招聘者的选择,从而从心理上承受特别大的压力,而妨碍本人正常的发挥和才能展示。事实上大可不必,由于面试是双向的,选人和择业是平等的。况且如今市面上的用人单位或招聘岗位也是良莠不齐,甚至还有一些骗子公司,这就要求同学们在应聘时擦亮眼睛,留意分辨。所以大多数公司都是良性的,他们要么是已具规模,各部门及岗位功能分工特别明确,他们会依照业务的开展或作为人才储藏而有针对性的招聘相关技术人员,而有的公司可能是刚刚成立,业务与核心技术还未构成,他们需要招聘到
4、能为他们提供处理方案或创意的技术人员,因而关于这些类型的公司,他们对人才的渴求也都不亚于同学们对工作岗位的渴求,假设是聘到一个优秀的技术人员对业务或工程的推进将会使公司获得更大的利益,或者使公司的开展少走弯路甚至能改变一个公司的命运。相反,假如招不到适宜的人才或者使用一个较差的技术人才,不但不能推进工程的进展,还要花费几个月的培养时间和费用,甚至阻碍业务开辟甚至工程搁浅。因而当同学们想得到一个工作岗位的同时,也要看到企业更需要一个优秀的员工,二者是平等的。在面试时,同学们在一种特别平和的心态下,充分发挥,尽可能地展示本人已经掌握的技能,展示学习才能和开展潜能;另一方面也要尽可能地提早理解公司的
5、背景和业务以及应聘岗位的职能,从而加以区分和选择。一旦本次面试不能成功,说明要么岗位不合适你,要么你不合适岗位,或者由于你本次的表现不佳,这都是特别正常的,一定不要有挫败感,要及时总结面试时的表现方式以及沟通技巧,假设感受本人确实能够胜任该岗位,只是由于本人的临场发挥不佳而没有展示出本人的实际水平,也可及时和招聘公司联络,经询咨询确认对方没有找到适宜人选的情况下,说明诚意,恳求复试时机。总之,假设本次失败,一定不要妨碍下一次的面试,要积极总结,为一下次面试作预备。正常运营的公司因业务的不断开展,人才需要不断的更新、补充和储藏,因而他们不断都需要人才,况且公司每次组织招聘都会花费一大笔费用,也希
6、望能够找到适宜的人才,因而公司面试时一般不会出太吊钻的咨询题来为难你,同学们也不要过分担忧。另一方面,同学们在深信“天生我才必有用”的同时,也要正确对待如今的就业情势,对第一份工作也不要过于理想化,要摆正心态,坚持从基层做起,先就业再择业,职场上“骑驴找马”也未必不是一种现实的理性选择。总之,面试是双向性的,是招聘单位与同学们互相展示、互相认识、互相选择的一次沟通过程。同学们 在求职的过程中,要正确对待面试,放下思想包袱,充分注重,充分预备,沉着应对。软件公司研发技术岗位与岗位职责一般中小型软件公司设置的技术岗位有:研发总监、工程经理、需求分析人员、系统架构与分析人员、数据库设计人员、程序员、
7、工程助理与文档专员、测试人员、技术支持(售前/售后)、美工或网站前台人员等,这些职位的工作联络特别亲密,依照公司规模的大小,以上职位可由一人或多人兼任,比方一个小型的软件公司可能只有一个人完成软件的总体设计、架构、编码、测试、文档等工作。这些岗位的职责范围大致是:研发总监:全面负责研发及技术部门的整体工作。工程经理:在整个工程开发过程中组织工程所需的各项资源,对工程的范围、工程的质量、工程时间以及工程本钱进展治理与操纵。依照工程范围、质量、时间与本钱的综合要素的考虑,进展工程的总体规划与阶段计划,保证工程组目的明确且理解一致;在工程生命周期的各个阶段,跟踪、检查工程组成员的工作质量;保证工程在
8、预算本钱范围内按规定的质量和进度到达工程目的。需求分析人员:工程前期与客户方打交道最多的人,关于客户来说,他能够代表整个工程组,关于工程组成员来说他的意见能够代表客户方的意见,工程组内所有与客户需求相关的事情必需得到他的认可。他的工作主要是:1、 在工程前期依照需求调研计划对客户进展需求调研。2、 搜集整理客户需求,负责编写用户需求说明书。3、 代表工程组与用户沟通与工程需求有关的所有事项。4、 代表客户与工程组成员沟通工程需求有关的所有事项。5、 负责用户需求说明书得到用户的认可与签字。6、 负责将完成的工程模块给客户做演示,并搜集对完成模块的意见。7、 完成需求变更说明书,并得到用户的认可
9、与签字。8、 协助工程组有关人员对需求进展理解。系统架构与分析人员:是工程的总体设计师,组织构建新产品的开发与集成、新技术体系等,也能够理解为技术总监。是在技术上对所有重要事情做出决定的人。系统架构在整个软件开发过程中都起着特别重要的作用,并随着开发进程的推进而其职责或关注点不断地变化。 1、在需求阶段,负责理解和治理非功能性系统需求,比方软件的可维护性、功能、复用性、可靠性、有效性和可测试性等。审查客户和市场人员所提出的需求,确认开发团队所提出的设计;组织开发团队成员和开发过程的定义;协助需求分析师完成用户需求说明书、需求变更说明书等。2、在设计阶段,负责对整个软件架构、关键模块、接口的设计
10、。对系统进展分析与建模,完成系统架构说明书、系统概要设计说明书、系统详细设计说明书。3、编码阶段,成为程序员的参谋,负责重点代码检查,同时经常性地要举行一些技术研讨会、技术培训班等;4、测试及施行阶段,随着软件开场测试、集成和交付,集成和测试支持将成为工作重点;数据库设计人员:依照系统架构说明书负责进展数据库选型与建模。由于数据库是整个系统运转的核心,数据库设计的好差直截了当妨碍着整个系统的开发效率和系统运转的优劣。他是工程组中唯一能对数据库进展直截了当操作的人,对数据库构造的每一次改动都要得到他的认可。主要职责:1、依照数据库建模结果,绘制数据库关系图。进展数据库建库以及数据库进展初始化操作
11、。2、对数据库进展维护、备份、恢复、同步。3、负责客户数据的导入导出。4、依照系统详细设计说明书编写对应的视图、存储过程、函数、触发器等。5、对工程组其它成员进展SQL方面的指导。6、为测试建立相关测试数据。程序员:负责系统的最终代码实现。主要职责:1、参与需求调研、工程可行性分析、技术可行性分析和需求分析。2、协助完成系统详细设计说明书,并依照系统详细设计说明书进展编码实现;3、对本人代码进展复查,并进展简单的测试。4、撰写相关技术实现或功能描绘文档。5、负责向工程经理及时反应软件开发中的情况,并依照实际情况提出改良建议。6、参与软件开发和维护过程中严重技术咨询题的处理。 工程助理或文档专员
12、:协助工程经理在工程日常治理和数据分析方面的工作,进展与工程有关的协调工作,编写工程进度报表,参与组织工程协调会,组织工程非技术文档的编写、传递与归档,以及与市场人员或其他部门的日常沟通,协助工程资源协调工作。跟踪工程进展。工程或软件包的打包、发布以及受权锁的制造等工作。测试员:负责施行软件测试。测试是整个工程系统中特别重要的一个环节,工程质量的保证,他的主要工作确实是找到工程中存在的不合理、不合格的部份,并要求工程其它成员按其给定的工程质量完成工程。保证了系统功能实现是否与功能设计和需求定义一致。主要职责:1、依照软件工程标准编写测试计划,设计测试数据和测试用例。2、采纳适宜的测试方法施行软
13、件测试,构成各阶段的测试报告,并对软件咨询题进展跟踪分析和反应,推进测试中发觉咨询题及时合理地处理。3、完成对产品的集成测试与系统测试,对产品的功能、功能及其他方面的测试负责。4、协助程序员进展软件代码检查,提出对软件的进一步改良的要求。技术支持人员:主要负责软件产品或工程在技术层面上与客户的交流,依照工作重点分为售前支持和售后支持。l 售前支持:是销售人员和开发人员的桥梁,协调销售人员、用户、开发人员的关系,制造产品功能演示PPT文档或多媒体材料,将公司的技术实力向用户展示,技术标书的撰写,定期采集、分析和整理用户的需求,配合销售制订产品销售策略,从技术上支持市场销售业务等。l 售后支持:负
14、责编写用户手册、操作手册,制造系统操作视频教程等多媒体培训教材;负责系统施行(包括系统安装、用户培训、系统试运转等),协助用户进展“用户确认测试”和编写确认测试报告;通过、网络、及时通讯等多种渠道解答用户在使用中的咨询题,提供售后效劳。搜集、整理用户的建议等。美工或网站前台人员:负责完成软件设计师安排的功能界面设计和简单网站的设计。1、负责对工程整体色彩的调配。2、向系统分析师提出工程美化的建议。3、为BS 工程提供一套或几套CSS款式表及HTML构造表4、为CS工程提供符合工程内容的静态、动态图片。5、并为程序员提供界面指导。如何快速融入技术团队程序员入岗的考前须知 同学们刚刚完毕学校的集体
15、生活,面对新的工作环境、新领导、新同事、新任务、新的制度、新的生活节拍,特别多的变化需要你尽快习惯,特别多的事情需要你独挡一面,而又有许多事情需要你与同事通力协作来完成以下是新程序员入职后尽快融入技术团队应留意的事项:1、 认真学习公司的开展背景与历程、主营业务以及规章制度。进入公司前可能对公司已经有了一些理解,入职后,相关人力资源治理部门会组织培训,解读公司文化,介绍公司开展背景、主要职能部门以及主要业务特点,学习公司考勤、人事、办公等治理规定和规章制度。有些新入职的程序员或技术人员,认为这些不含技术成分没有必要花精力去学习,事实上这种认识是错误的,公司文化及各种制度是整个公司的灵魂,是公司
16、正常运营活动保障和员工行为的一种商定,新职员只有对公司的开展背景和运营状态有充分的理解,接受公司文化,高度认同公司的核心价值观,严格恪守各种规章制度,才能自觉地标准本人的行为习惯,在工作学习中才有主动性,遇到工作压力时也能坦然地接受,不会有抵触心理,从而能更快地推进本人的工作。2、 积极学习业务知识、类库及现有程序资源,把握学习的技术方向。程序员入职后,假设有一个成熟的开发团队,一般都会有一个老职员来带着学习,这一阶段主要有三个方面的学习任务,第一是公司业务知识,由于程序员只有对业务知识熟悉了,才能更好的理解和把握功能需求,比方做通讯方面的软件,你要学习一些通讯行业知识;假设做财务软件,你要理
17、解一些财务知识。第二,现有的类库是公司开发部门积累的程序资源,学习和使用它能够标准统一程序的风格,提高开发的速度,掌握并能使用这些资源,可使你尽快与老职员有程序上的共同语言。第三,学习并加强在此领域的编程技能,由于在学校学习的是通用的知识,掌握的是一种知识导入与学习的方法,那么在公司应用方面也许要求你某一个方面特别通晓,比方网站的前台、数据库、图形处理、多媒体、网络编程等某些方面的技能需要强化。案例:小张(男)和小胡(女)是同一个大学毕业的应届生,在2005年4月份同时进入公司做技术支持,当时两人的工资都是每月1500元,而两年后的今天小胡已是研发部的一个程序员,工资是每月4300元,而且是公
18、司重点培养的对象之一。小张如今依然在做技术支持,工资是每月2600元,他们两人能够说是起点一样,但两年的开展却让他们有了明显的差距,小胡比拟爱学习,工作特别踏实,对业务知识也掌握得特别通晓,而且在做技术支持工作的时候,业余时间学习编程,由于做技术支持与程序员交流比拟多,小胡抓住了这个学习编程的时机,但她从不在公司上班时间学习程序,在做技术支持工作时,她上班时间研究业务知识、软件需求、学习程序实现的思想,业余时间练习代码。在做技术支持一年后,她通过了研发部的考核,进入研发部开场做编程。而小张与她比照就不同了,他只是做好本质工作,没有潜心学习,对业务知识、软件知识只是一般理解,工作上特别业绩平平,
19、总体上不出色也没出大的过失。工资涨得所以也慢,小张和小胡的起点一样,但小胡比拟主动学习,特别明显他们两个在职场上的差距就拉开了。3、 展示进步,创新考虑,表达价值。入职之初,通过积极的学习与习惯,应该说进步是特别快的,要及时的总结,并把工作学习的总结和进步程度及时向主管汇报(口头、邮件、书面),阶段工作总结应包括以下几点:已经完成的工作、技术上的进步、业务上的进步、从学生到职员心态上的转变、八小时之外的学习状态等。如此一方面能够疏理一下知识构造,把握本人的学习阶段,一方面让主管依照你的知识构造和技能状态有针对性地给你分配适宜的任务。另外在工作当中也要注重考虑,对工作进展适当的改良,并提出改良意
20、见,如此能更快是表达出你的进步和工作价值。4、 积极参加团队活动,习惯团队文化,制造与团队成员友好而积极的协作气氛。能尽快习惯团队文化,与同事友好沟通是任何岗位都需要的职业素养,只是在研发团队里要显得尤为重要,由于研发工作的重要与特别性,假设在软件商品化和产品化的开发阶段,不良的沟通协作可能导致工程的流产。另外,部分程序员写程序久了都会特别注重与机器或代码交流,有的不容易与新职员交流,有的他们因有大量的工作任务而顾不上,有的是由于他们有太多的思想与创意,和一个新来的职员没有共同语言,有的是人为设置“技术壁垒”(因担忧新职员威胁到本人的岗位,而不愿传授一些知识)。那么新职员一定不要由于他们没有主
21、动与你交流而放弃交流,或者认为本人被冷落而与逐步远离团队,而是要在适当的时间与他们主动交流,主动向他们请教,积极参加团队的集体活动,制造与同事交流合作的良好气氛。要尽可能地为团队多做奉献,不要由于多干一些工作或多加一点班,就有不良的情绪,从而妨碍正常的沟通与交流。另外,在研发团队里的沟通与协作,还表达在代码上,本人设计的功能模块是否能为别人提供良好的说明和程序接口。总之,与同事友好愉快的协作,尽快融入研发团队,是新入职的程序员技术快速进步和稳定职位的重要要素。5、 正确面对工作压力,学会释放“厌职”情绪。许多同学进入一个新的工作环境,面对的是特别多新事物,感受工作节拍太快,工作压力太大。事实上
22、新职员有工作压力也是正常的,从职业生涯开展的角度来看,这种工作压力是特别必要的。同学们在进入公司后,要勇于接受工作压力,把这种压力作为进入初职锻炼的良好时机,树立良好的心态,不要躲避,更不要产生“厌职”情绪,公司还正在培养你,你却选择退缩而自炒“鱿鱼”。工作中要学会积极与同学沟通,留意工作方法,释放和减轻压力。事实上我发觉一些新职员说工作压力大,做事不顺心,细心分析之后能够发觉他们感受的工作压力大与“不合群”有特别大的关系。有些同学到公司后,一坐下确实是八小时,语言和行为与同事格格不入导致他不敢言语不敢行动,下班时间到了,事实上他不是工作学习本身的累,他们感到更累的是“心”。这些新职员在工作中
23、总是希望别人主动接近本人,本人却不会主动与人交流,时间长了,同事觉得他“不爱说话”,也就逐步放弃了与他的交往,这时他又会感到被排斥,感到孤单,心理压力就会增大。另外技术上单打独斗,不能利用别人的资源,因而完成一样的工作,付出的努力和压力就要比其他同事大得多。因而新职员在入职之初,一定要正确对待工作上正常的工作压力,学会与团队成员友好相处,制造一种“如鱼得水”的工作气氛,那么真正技术上的压力都不会成为咨询题的。假如公司还没有成熟的开发团队,需要你一个人承担开发工程,着手组建开发团队,那么就要求你充分一切时间,利用网络资源,有技术难点及时到网络上寻求协助,同时与相关部门人员亲密合作,保持动态及时的
24、沟通,及时报告工作进度,争取尽快拟出处理方案或产品。优秀程序员应具有的质量与习惯l 擅长理解与把握需求 程序员的劳动成果确实是满足需求的程序,那么在动手写代码之前,只有完好地理解一个模块的需求才能做出好的程序,优秀的程序员在分析需求的根底上,应该能抓住咨询题的关键技术,从而能够建立适宜的数据模型,尽量在代码中少走“弯路”。l 擅长学习与总结所以擅长学习,是对任何行业任何职业的最根本的要求,关于程序员,这种要求就更加高了。事实上研发部门招聘程序员,事实上并不一定注重你如今能做什么,而更注重的是你的学习才能、你的编程潜力,由于程序员是特别容易被淘汰,特别容易落伍的职业,一种技术可能仅仅在三两年内具
25、有领先性,假设你不能跟进新的技术,不学习新的技能,那么不断出现的新技术会使你显得特别笨拙。擅长总结,也是学习才能的一种表达,每次完成一个研发任务,完成一段代码,都应当有目的的跟踪该程序的应用情况和用户反应,随时总结,找到本人的缺乏,如此逐步提高,才能成长起来。 l 标准化的编码习惯养成良好的编码习惯,比方:变量命名明晰,语句嵌套明确,函数具有独立功能,适当注释等等,由于这些不但有助于代码的移植和纠错,也有助于不同人员之间的协作。l 良好的文档习惯良好的文档是正规研发流程中特别重要的环节,作为代码程序员,30的工作时间写技术文档是特别正常的,而作为高级程序员和系统分析员,这个比例还要高特别多。缺
26、乏文档,一个软件系统就缺乏生命力,在将来的查错,晋级以及模块的复用时就都会遇到极大的烦恼。l 代码复用性,模块化思维才能复用性设计,模块化思维确实是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想看该模块是否能够脱离这个系统存在,是否能够通过简单的修正参数的方式在其他系统和应用环境下直截了当援用,如此就能极大防止重复性的开发工作,假如一个软件研发单位和工作组能够在每一次研发过程中都考虑到这些咨询题,那么程序员就不会在重复性的工作中耽搁太多时间,就会有更多时间和精力投入到创新的代码工作中去。l 团队精神与沟通协作才能这是程序员应该具备的最根本的,也
27、是最重要的安身立命之本。软件或工程的各模块功能需求的理解精确,一个功能实现的修定,是否会妨碍其他模块等,没有充分及时的协作对一个工程来说几乎是不可想象的。我做了几年开发,感受沟通确实太重要了,事实上软件研发过程中最重要的不是技术咨询题,而是治理中的沟通咨询题,比方初级程序员或许是碍于面子或其他缘故,不明白的咨询题也不想咨询,总是把咨询题掖着藏着,而高级程序员又不理解初级程序员的开发任务总是完不成,事实上可能是高级程序员不理解初级程序员的真正困难,或者没有把要实现的逻辑和思路讲解清晰。合作起来总会有一些不透彻,要么一个咨询题讨论屡次仍然是咨询题没有结果,要么是有些咨询题根本不反映,大家都掖着藏着
28、,报喜不报忧,待到咨询题暴露已无法挽回,严峻的阻碍了工程的进度。因而我最好的建议确实是,高级程序员应该把咨询题讲到明白为止, 初级程序员应该把咨询题咨询到明白为止,同时不仅仅是口头上讲明白、听明白,还一定要构成文字,如今网络特别方便,公司都会有企业邮箱,把咨询题的讨论过程通过mail的方式记录保存,明确确认,如此障碍才能去除,工程才能得以顺利进展。案例1:陈某是北京某重点大学自动化专业的毕业生,编程根底知识特别扎实,在学校学习期间也有许多代码积累,从技术上说应该是特别有潜力的,但他性格有点孤僻,不太容易与同事沟通,当时录用他时公司是看在他的编程根底特别好,以为在研发部大家多带动他,应该会好些的
29、。进公司有两个多月了,一次在做某油田工程中负责其中一个小模块的开发,在开发过程中我经常询咨询他有没什么咨询题,他每次都有些模糊地说没有。可当工程交付的时候,发觉他做的某一功能与当初功能定义不符,客户就抓住这一点说与合同中需求描绘不符,由此延期支付28万的余款,使该工程后期维护起来特别被动。而导致这一结果确实是陈某在做程序时有咨询题本人绕过去了,没有及时与工程组成员交流,而单独采纳了他熟悉的一种处理方法。工程汇报会刚完毕,人事部门就通知陈某交接工作,到财务结算工资.文摘:下面这故事请按一下九层我不断和我的同事们分享。是读者中的一篇文章:这是全市最忙的一部电梯,上下班顶峰时期,和公共汽车差不多,人
30、挨着人。上电梯前和公司的人力资源总监相遇,说笑间,电梯来了,我们随人群一拥而进。每个人转转身子,做一小小的调整,找到了一种相对融洽的关系。这时,一只胳膊从人逢中穿过来,出如今我的鼻子前头。我扭头望去,一个小伙子隔着好几个人,伸手企图按电钮。他够得特别辛苦,好几个人刚刚站踏实的身子不得不前挺后撅,发生了一阵小小的骚动。那个人力资源总监咨询道:“你要去哪一层?”“九层。”有人抬起一个手指头立即帮他按好了。没有感谢。下午在楼道里又碰到那个人力资源总监。“还记得早上电梯里那个要去九层的小伙子吗?”她咨询我。“记得呀,是来应聘的吧?”九层,人力资源部所在地。“没错,挺好的小伙子,可我没要他。”“为什么?
31、”“缺少合作精神。”她露出一副专业HR的神情,“开口恳求正当的协助对他来说是件特别困难的事情,得到协助也不明白得感谢。这种人特别难让别人与他合作。”我点头称是。假如那个小伙子坦然而自信地说一句“请按一下九层”,结果会怎么样呢?大家不但不会反感他的打搅,而且协助他的人还会心生助人的欢乐,最后他也能得到想要的工作。这个故事说明,良好沟通不仅仅表达在礼貌地说声“请”、“感谢”,而是一个职员能够制造愉快、高效、和谐工作气氛的素养和习惯。l 时刻修定本人的认识和行为与公司的核心价值观(短期目的、长期目的)保持一致公司或研发团队在什么时段做什么样的工程,或者依照工程进度的计划,在什么时间做什么功能模块,作
32、为程序员要高度地与这些目的保持一致,不要在关键时刻“掉链子”,这是最重要的。案例: 小张是公司里的转正不久的程序员,特别聪明,对新技术接受特别快,缺点确实是特别的贪玩,对工程组的事缺乏主动性和责任心,平时的工作中主管已经提示过他屡次要留意工作的责任心,但他都不太放在心上,对事仍然是敷衍。一次在做上海铁通的工程中,小张负责工程中的一个模块,当软件架构出来以后,需要出差上海为客户现场演示和进一步确认需求,由于合同还没有正式签下来,因而此行的技术交流对公司能不能签下这个工程至关重要,公司派由我和小张在内的工程组4人出差上海,临行前我们屡次开会研究方案,确保拿下这个工程,下午到了上海之后约好第二天上午
33、与客户见面,正当大家为第二天的交流捏一把汗,积极预备的时候,小张却说是第一次到上海,要求先去外滩看夜景,在得到工程组的否认之后,小张竟一个人偷偷到外滩看夜景至到深夜才回到宾馆。第二天的技术交流会上,小张负责的模块咨询题最多,尽管最后整个工程的交流还算成功,公司总算签下了这个工程,但小张也被辞退了。缘故特别简单,小张不断没有把公司的事放在心上,工程组出差第一目的是与客户交流好,拿下工程,而小张出差上海的第一目的是看一下外滩。因而象小张如此的技术上不管有多么出色,但总在公司的关键时刻“掉链子”,被公司辞退也是早晚的事。就在写此案例的前几天,在地铁上我偶遇小张,谈话中得知他被辞退后半年内又经历了一家
34、公司。而此刻他又在匆匆地找工作。谈谈学习方法说起学习的方法,事实上每个人都有本人的学习方法,也许这种方法对我来说有用,但不见得就对所有的人有用。因而,不要盲目的跟着别人的学习方法学习,要考虑属于本人的学习方法。但以下几个原则是要恪守的:l 坚持学习。首先要有毅力,对编程的狂热也能够在一定程度上起到协助。学习编程应该说要经历好奇困难容易郁闷成就感困惑轻松的几个阶段的循回,不管哪个阶段都需要天天学习,坚持每天都要进步,不能半途而废,培养一种坚持克服困难的毅力。案例:记得开发团队里有一个根底不是太好的程序员,刚入职两个多月,表现一般,有一天早上他眉飞色舞地在讲述昨天电视中的一个情节,我听到后就说了一
35、句:“你还好意思说你看电视?”。他立即明白了,就没说什么。从此他的进步是能够说是突飞猛进的,代码的质量和工作效率明显上了一个台阶,对工程的推进也是有目共睹的。几个月后的一次公司庆典上,他被评为“进步最快员工奖”,奖金3000元。奖后在他给我的Mail中发觉了这句话:“你说我看电视的那句话改变了我的学习状态.我如今是马桶上、公交车内都在看书或笔记。”l 坚持实践。当你学到了一种新的技术或知识时,多实践是稳固学习的一种最好最有效的方法。这个实践不是照著书上的例子做一遍,而是依照本人的才能,给本人出题,然后去完成它。只有如此,你才能发觉本人的缺乏,同时又增加了编程经历。要成为合格的程序员,光会写代码
36、是远远不够的,更重要的是在实践中考虑创新。实践的多少决定着“高手”和一般程序员界限,高手们并不是天才,他们是在无数个日日夜夜中磨炼出来的。成功能给我们带来无比的喜悦,但实践的过程却是无比的单调乏味。l 掌握编程思想。学一门语言,不能仅仅是语言,还要注重语言背后的思想方法,获得提出咨询题,分析咨询题,处理咨询题的才能,不是为编程而学习,由于编程语言和我们日常所说的语言一样,日常所说的语言是一种思想的表达,而编程语言是一种功能的实现。要学习它是如何来处理某一咨询题的,为什么要如此去做,他总是要符合客观事实的,存在某种逻辑,数据的组织,信息的传递,然后看该如何样用编程语言来表达本人的办法。l 多咨询
37、、多总结、多记笔记。“三人行必有我师”,也许在一次和别人不经意的谈话中,就能够迸出灵感的火花。著名的交换苹果理论说的是:“你有一个苹果,我有一个苹果,当我们互相交换苹果后,我们仍然互得一个苹果;你有一个办法,我有一个办法,当我们互相交换办法,我们则互得两个办法”。遇到咨询题,上网查看一些技术论坛,看看别人对同一咨询题的看法,会给你特别大的启发。在这个网络时代,材料四处都有,不管什么先进的技术,你能够咨询周围的高手,咨询网上的同仁,只要查到材料,快的学上几天慢的一两个月也能学会,学会后总结出技术要点记下来,可写在本子上也可写在Blog上,编程技能的提高靠的是代码的积累,把所有本人的代码保存起来,
38、并附有适当的笔记,如此,到用到时才能信手拈来,才能获得踏踏实实的进步。因而如今已没有写不出的程序了,写不出不是由于不够聪明,而是由于你没有耐心和找 BUG 的细心。l 不钻“牛角尖”,只抓主要咨询题,一些不妨碍工作的难点只要会用就行,这也表达了OOP的思想,你只要明白一个技术能完成什么功能就能够,至于它是如何实现的可临时放一放,有时回过头来再看就不是什么难点了。当你遇到技术障碍的时候,不妨临时远离电脑,看看窗外的风景,听听轻音乐,和朋友聊聊天。当重新开场工作的时候,我会发觉那些难题如今居然能够迎刃而解。外包软件、商品软件、工程软件的操作方式简介软件外包确实是一些兴旺国家的软件公司将他们的一些非
39、核心的软件工程通过外包的方式交给人力资源本钱相对较低的国家的公司开发,以到达降低软件开发本钱的目的。由于软件开发的本钱中70%是人力资源本钱,因而,降低人力资源本钱将有效地降低软件开发的本钱。软件外包已经成为兴旺国家的软件公司降低本钱的一种重要的手段。软件外包的大幅度增长为人力资源本钱相对较低的印度和中国带来了新的开展时机。企业与企业之间的外包确实是:企业(A)为了专注核心竞争力业务和降低软件工程本钱,将软件工程中的全部或部分工作发包给提供企业(B)完成;商业软件商业软件(又叫“商品软件”)确实是由商业公司在调研大多数行业用户的需求上开发的软件,该软件根本上能满足这些用户的需求,而且它的功能不
40、会因个别或少数用户的要求而改动。随着互联网的兴起和软件受权销售方式的普及,商品软件的销售可软件公司直销、代理销售、专业下载网站销售等多种渠道,软件受权许可的销售方式往往是依照使用商品软件的用户数和安装该软件的计算机数来收取许可费用。工程软件确实是软件公司专门为某个客户开发的软件系统,该系统由委托开发的客户配合调研需求,“量体裁衣”,在关键阶段双方可派技术人员互相“浸透”,亲密合作,共同完成系统的开发和施行以及运转。工程软件与外包软件的操作方式有一样性也有不同性。产品经理与工程经理简单地说,产品经理是做正确的事,其所领导的产品是否符合市场的需求,是否能给公司带来利润的。而工程经理是把事情做正确,把事情作得完满,在时间,本钱和资源约束的条件下完成目的。工程经理要对某个产品进展开发的治理,负责开发的进度,开发过程中的协调等有关开发方面的咨询题,他最大的目的是时间第一、立工程标达成第一。并不会特别尊重产品本身的市场需求以及业务逻辑的咨询题。而产品经理是横向治理的,也确实是说他将负责某个产品或者某个产品线从商业计划市场竞争开发需求推行方案渠道策略等各个方面。产品经理一个产品线从头到尾的重要参与人。