时间的脚步是无声的,它在不经意间流逝,你是否对未来感到迷茫呢?趁现在为自己做一个详细的职业规划吧。想必许多人都在为如何写好职业规划而烦恼吧,该页是可爱的小编帮大伙儿分享的软件工程师职业规划书精选3篇,欢迎借鉴,希望对大家有所帮助。
一、前言:
大学曾是我梦想中的天国,因为这里将是我们走向社会的门槛,也是人生一大转折点。在科技高速发达的21世纪,大学生也是越来越多,市场上的竞争也是越来越大,随着中国在国际上的地位的提升,我国越来越需要那些能和国际接轨具有专业素质的人才。记得葛优在电影《非诚勿扰2》里说过:“21世纪什么重要?——人才!”是的,在这个社会,我们只有不断的提升自己的能力,以便于更好的适应高速发展的潮流。高中三年的苦读,终于来到了大学,现在也是时候对自己的人生做出一定的规划。
二、职业发展目标:
成为一名的软件工程师。以下是我对自己实现目标的要求分析:
首先必须学好软件工程相关知识,积累丰富的软件设计与开发经验,这有助于理解并解释所进行的设计是如何映射到实现中去。
其次培养领导能力与团队协作技能,软件工程师必须是一个得到承认的技术领导,能在关键时候对技术的选择作出及时、有效的决定。这点我欠缺的太多。以后一定要加倍的努力学习。
再次是具有很强的沟通能力,其时这一点好像什么角色都具备,软件工程师需要与各路人马经常打交道,而且在很多角色之间还要起沟通者的作用。
1、近期规划:
①规划年限
大学四年(20xx~20xx)+大学毕业后三年(20xx-20xx)=7年
②目标慨述
大学期间在掌握软件专业知识之外,进一步了解策划学和经济管理学,同时积极参与学校活动,全面提高自己的分析能力,管理协调能力,形成果断、独立的处事风格。为将来成为一名出色的设计师和经理人打好基础。在大四职业选择阶段有的放矢,力争进入自己感兴趣的行业。工作后尽快适应工作环境,做事积极主动,认真负责,协调各方关系,培养自己的专业素质。争取在职业成长阶段做出;一定的成绩,获得上级赏识为晋升和加薪增添筹码。也为职业成长后期的升迁奠定良好基础。
(1)阶段目标——职业准备期
大学一年级(20xx-20xx):探索期
目标:学业及职业生涯认知和规划
实施方案:适应由高中到大学生的转变,重新确定自己的学习目标和要求,开始接触职业和职业生涯的概念,重点了解自己将来希望从事的行业或与自己所学专业。在此阶段参加系学生会的工作,建立广泛的人际关系,提高交际沟通能力,认真做事,争取获得大家的认可,为大二竞选部长奠定基础。开始尝试兼职和社会实践活动。
大学二年级(20xx-20xx):定向期
目标:初步确定自己努力的方向以及相应能力与素质的培养。特别是算法数据结构,计算机专业英语。做好专业方向选择的准备。根据我校情况,软件工程专业分为DotNET技术、JAVA技术两个专业方向。
其中DotNET技术主要有如下课程、高级应用、C#Windows、.NET移动开发、.NET平台XML及WEB服务开发、C#Windows高级应用、应用开发等。
JAVA技术主要课程有:JavaWeb编程基础、JavaWeb高级编程、J2ee企业级应用开发、系统架构和设计模式、XML、JDBC、团队开发与项目配置管理、WebService、J2me等。
实施方案:经过大学一年的学习,适时对自己做出客观的总结,扬长避短,积极改进,努力调整。认清自己的需要和兴趣,确定自己的价值观、职业观,考虑自己的毕业方向。在学业方面,在学好自己专业知识的基础上,好好准备自己的专业方向选择。以研究中国乃至世界未来经济发展和软件事业的发展趋势,做好服务社会的准备。
大学三年级(20xx-20xx):准备期
目标:掌握职业技能,顺利就业做好充分的准备。
实施方案:卸掉学生工作的职务,由以工作为重心转向以学习为主;由以集体事务为重转向以考虑个人为主。此阶段加强专业知识学习的同时,参加一些招聘会,获得应聘经验,为以后应聘做准备
大学四年级(20xx-20xx):冲刺期
目标:顺利就业。
实施方案:争取上学期做好毕业论文规划,下学期写好毕业论文,完成大学的学业,顺利拿到毕业证和学位证。然后从多渠道了解自己目标职业的公司,尝试投递简历,争取与之进一步接触。重视实践机会,在实习中做个有心人,通过实习检验自己各方面的能力,也通过实习从宏观上了解单位的工作方式,运作模式、工作流程,从微观上明确个人在岗位上的职责要求及规范。
(2)阶段目标——职业成长前期
大学毕业后一年(20xx):适应稳定期
目标:适应工作环境,稳定工作状态,找到努力方向,争取能够独立。
大学毕业后两年(20xx):调整提升期
目标:拥有自己团队,获得主持项目策划和亲身实践的机会。
实施方案:经过一年的工作,已经深入了解了工作流程和工作环境了,此时要努力表现自己,当然也要协调好与同事之间的关系,务实工作争取获得好的成绩得到上级的认可和注意,获得更多的项目负责机会。同时积极考取助理设计师资格。
大学毕业后三年(20xx年):转折、实现期
目标:成为软件管理人员,能运用工程思想组织设计、开发、维护、管理符合功能、性能要求的软件产品。
三、职业分析
软件工程师从扮演的角色来看大致可以包括以下这些:一种是既懂技术又懂管理的软件高级人才,他们更注重项目进度管理统筹;另一种是系统分析及设计人员,主要职责是分解一个项目或程序,使之变成一个一个相对独立的模块交程序员开发,后还负责集合所以功能模块,还有统一项目中的所有规范等。还有一种就是称为一般的软件工程师或程序员。软件工程师是在IT中普通的职位,几乎每个IT企业不论你做什么内容,或多或少都需要这样的人才。而且它主要进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这些风险,然后开始进行软件的开发,后期对软件的进度做相关的评估。重要是的软件工程需根据客户所需求的、所达到的目标而设立,也要考虑用户的用途、习惯、项目进行前期评估。
1、企业对软件工程师的要求
①随着外包开发行业快速发展,对“人才”在代码和文档方面的规范性、技能和工具的熟练程度要求越来越高;
②Java和。NET技术在市场上平分秋色,都有大量的岗位需求,同时值得庆幸的是二者在应用层面上的技术差异越来越少;
③软件开发企业对开发人员的基本技术素养强调得越来越多,例如:面向对象的程序设计思想和代码组织方法、HTML/CSS/javascript客户端技术;
④为了保证质量和工期,企业中大量使用各种框架技术,要求开发人员至少熟悉一种框架技术;
⑤CMS,MIS、OA、ERP、CRM、系统集成、物流、进销存、电子政务、网站建设这一类B/S系统,成为软件工程师需求的业务领域。
2、成为软件工程师所要具备的能力
(1)见习程序员
①计算机相关专业毕业;英语通过国家四级。
②具有较强的学习能力,可以编写代码,达到公司的工作要求。
(2)初级程序员
①本科学历,半年以上工作经验;英语通过国家四级。
②达到工作承担要求;具有一定的沟通能力和工作责任心。
专业技能要求
①负责编写代码,掌握一种主流语言/开发工具,一种主流操作系统,一种主流数据库。
②了解和掌握开发作业(PD设计、编码和测试等)的规范和技巧。
③所编写的代码质量较好。
④能够按照要求编写文档,文档结构条理清晰,内容详实准确。
⑤具有独立理解所担当模块的业务理解能力和问题阐述能力。
⑥能阅读非中文技术文档。
(3)高级程序员
①获得程序员资格1年以上;或满足程序员级别标准,2年以上相关行业工作经验。
②完成年度工作量指标;具有较强的沟通能力和责任心。
③所承担的项目满意度达到满意以上
专业技能要求
①精通一种主流语言及对应的开发工具;精通数据结构。
②具有较好的业务理解能力和技术调查能力。
③编写高质量代码并具有代码审查能力。
④具有详细设计能力。
⑤熟悉系统测试工具,对系统问题具有改善的能力。
⑥能够带领2个以上员工开展工作,成功领导过3个以上不少于5人月的项目/模块的团队项目。
⑦了解质量管理体系和项目管理知识。
(4)软件工程师
①获得高级程序员资格2年以上;或满足高级程序员级别标准,4年以上相关行业工作经验。
②完成年度工作量指标;具有较强的客户沟通能力。
③担当过一个20人月以上的项目或累计超过60人月项目的技术负责工作。
④所负责的项目客户满意度达到满意以上。
专业技能要求
①精通并熟练运用2种以上的开发工具,至少一种数据库知识,至少一种操作系统知识。
②能够很快完成新项目的技术调查工作,能够完成复杂算法的设计,能够设计可重用的和柔韧的软件结构。
③具有系统设计能力及系统提案能力。
④对系统或项目的技术框架有深入的认识和较丰富的经验。
⑤具有某一领域的行业知识。
⑥具有项目领导能力。
⑦掌握质量管理体系和项目管理知识。
(5)资深软件工程师
①获得软件工程师资格2年以上;或满足软件工程师级别标准,6年以上相关行业工作经验。
②完成年度工作量指标;具有较强的客户沟通能力。
③担当过一个50人月以上的项目或累计超过100人月项目的技术负责工作。
④带领的项目客户满意度满意以上。
⑤完成年度培训工作。
专业技能要求
①精通并熟练运用2种以上的开发工具,至少一种数据库知识,至少一种操作系统知识。
②具有整体系统设计能力及系统提案能力。
③具有较强的技术筹划能力、技术指导能力和处理疑难问题的能力。
④深入了解某一领域的行业知识。
⑤具有大型项目领导能力。
⑥熟练掌握质量管理体系和项目管理知识,并能够推过程改进。
(6)主任软件工程师
①获得资深软件工程师资格2年以上;或满足资深软件工程师级别标准,8年以上相关行业工作经验。
②5年项目负责人以上经验,累计超过120人月的技术负责人工作。
③带领的项目客户满意度满意以上。
④完成年度培训工作。
⑤具有很强的沟通能力,问题判断与解决能力,创新能力。
专业技能要求
①精通至少一种主流编程语言。掌握至少一种数据库或至少一种中间件。熟练掌握至少一种操作系统。
②熟练掌握软件需求分析/大型项目的策划。
③熟练掌握软件的系统设计。
④熟悉软件的高级项目管理和质量控制,具有分析和规避重大质量问题的能力。
⑤精通至少一种部门项目相关的业务知识。
⑥职称管理工作和相关标准将随着公司的发展而不断调整完善。
四、结束语
毕业以后先到一线城市的一家差不多的软件公司干几年积累经验,然后回到自己的家乡去扎根。当然肯定能做到怎样就做到怎样,尽自己的努力。软件工程是一个随着时间的变化,每时每刻都会有新的技术诞生,所以在工作和学习的过程中我会经常关心国内外关于这些新技术的发展。让自己适应这个动态的职业。参加工作后,一定要努力扎实的去工作,不能忘记在工作中学习,吸取经验与教训。与同事与老板好好相处,多向他们学习,为自己以后的路打基础。
一、初级测试工程师
刚入门拥有计算机科学学位的个人或具有一些手工测试经验的个人。开发测试脚本并开始熟悉测试生存周期和测试技术。
二、测试工程师/程序分析员
具有1~2年经验的测试工程师或程序员。编写自动测试脚本程序并担任测试编程初期领导工作。拓展编程语言、操作系统、网络与数据库技能。
三、高级测试工程师/程序分析员
具有3~4年经验的测试工程师或程序员。帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其他初级的测试工程师或程序员充当顾问。
四、测试组负责人
具有4~6年经验的测试工程师或程序员。负责管理1至3名测试工程师或程序员软件工程师个人职业规划软件工程师个人职业规划。担负一些进度安排和工作规模/成本估算职责。
五、测试/编程负责人
具有6~10年经验的测试工程师或程序员。负责管理8至10名技术人员。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。
六、测试/质量保证/开发(项目)经理
具有10多年的工作经验。管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。
七、计划经理
具有15年以上开发与支持(测试/质量保证)活动方面的经验。管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。
软件测试人员的三大发展方向:
“软件测试人员一般有三大发展方向。”微软公司的陈宏刚博士介绍说,一是走软件测试的技术路线,成长为高级软件测试工程师。二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位。三是可以换职业,做项目管理或做开发人员软件工程师个人职业规划职业规划。
经过软件测试岗位洗礼的人才往往是行业中的多面手,在技术、管理、市场甚至其他非IT领域都能得到良好的发展。当然这首先要取决于从业者是否具备长远眼光,对自己的职业生涯进行合理规划。
当问程序员为什么选择。NET软件工程师方向时,经常听到一些这样的回答:当你在开发语言和工具方面不知道怎么选择的时候,那么你只要跟着微软走就行了。所以最终选择了。NET软件工程师职业。
当经历过数年之后,一些人在。NET软件工程师的某方面成为了专家,有些人精通数据库方面,有些人精通web界面设计,有些人精通系统架构。还有一些人是什么都会,但不管哪一方面都算不上精通。当然还有另一些人,他们没有选择。NET软件工程师,他们选择了java,在若干年之后,他们说:java程序系统比。net系统更稳定之类。
下面就介绍下。NET软件工程师职业规划。
1.选择研究方向后不要动摇
对。net好还是java好的问题,我一向的观点是:它们都好,它们都是软件开发领域的杰出工具,它们都能够做出非常出色的系统。评价一个系统好与不好的标准不在于开发语言,而在于系统本身,更多地在于这个系统的开发者-程序员本身。只要你是一个出色的程序员,你完全可以用你擅长的开发语言开发出高质量的系统,而不管这种开发语言是。net还是java。而如果你过度地徘徊在研究它们到底谁更好的时候,甚至不断地在二者之间辗转的时候,你损失的将是宝贵的时间。
2.尽量缩小研究范围
.net只是一个大方向,你应尽量将自己的研究范围缩小,比如专注于数据库,专注于xml方面,专注于ajax,只要你专注任何一个区域深入研究,当你成为专家之后,都不会愁饭吃。反之如果你什么都会,而没有一样真正精通,那么你可能永远只能做一个普通程序员。
3.找到正确的入门方法
不管做什么事,方法很重要。特别是入门时的方法。正确的入门方法将大大加快你学习的进度。了解语言本身和前提技术是最先要做的事情,比如你选择c#方向的,那么你必须先学习c#基础语法,和基础知识,并实际写小程序测试你学习的成果。当学会基本语法后马上找到的官方入门指导。微软做得很好的一个地方就是他的帮助系统做得很好。新人容易入门,建议首先从入门教程开始,这个东西就在你的机子上,在FrameworkSDK的菜单里面。强烈建议把这个教程全部学会。
4.多看别人的成果(源代码)
这个很重要,如果你是一个团队的新成员,那么看他们写好的代码将是非常好的学习途径,因为那些都是成功的代码经验。如果你还没有加入团队,是自学,那么找一个好的学习网站,多看上面的源代码也是很好的方式。另外一个强烈推荐的途径:仔细研究微软的。netStarterKit,个人认为这是。net入门学习途中最大的收获。
5.敢于接受新项目挑战,敢于尝试
主动承担公司的开发任务,敢于在项目中尝试你最新的研究成果将对你自身技术水平提高带来非常大的帮助。记得当初我在做一个建站平台项目时有过这样的经历,之前公司开发的项目大都在原有技术积累下面用成型的框架做开发,那时我也正在学习,不过那个项目我是主程序员,因此在开发上有很大自主性。于是1.0时我尝试将所有用户文章保存在web服务器的xml文件里,而不是像传统项目那样保存在数据库里,以希望减少web服务器和db服务器之间的数据传输。结果1.0系统实际运行时确实达到了我的目的,虽然随着数据量的大量增加,最终导致了IO瓶颈。但通过后来对IO瓶颈的优化解决,我在文件系统、服务器进程、xml应用、代码规范和性能优化等方面学到了很多东西,倘若当初按原来的模式写程序,将错过学习这些知识的很好机会。
6.不断推翻自己,敢于重构
这是对程序质量的要求,我认为只有不断地优化和改造自己的程序代码,才能最终写出高质量的程序,做出高质量的系统,最终使自己的技术水平提高。通常我会把实现一个功能的代码量作为衡量代码质量的标准,代码越少,越精简,同时又具有良好的可读性,就越理想。重构需要几个前提:首先是项目时间允许,然后是确实找到更好的代码组织逻辑,如一种很好的结构模式,更合理的面向对象调用方式等等。只要找到更好的解决办法,那么勇敢地推翻原来的程序框架,重构它,经过不断地重构后,有一天你回过头去看之前自己写的程序时会有一个感叹:哇,怎么以前我的程序写的这么烂阿。
7.跟上技术更新的脚步
软件技术更新速度有时真的让人很郁闷,经常听人说,刚学会。net1.0,马上就出了1.1,1.1刚完成一两个项目,又出了2.0,用2.0不到一年已经出了3.5,但现实就是这样,你必须得跟上脚步,当使用的时候,你就不能再像以前用asp那样去写程序,当使用。net2.0的时候,你要敢于使用masterpage,skin去代替原来的usercontrol模式,原来的网站皮肤实现模式。而现在出3.5了,你必须马上学习vs20xx,学习Silverlight。只有跟得上技术更新的步伐,你才永远保持自己的技术领先地位。