《{管理信息化信息化知识}软件工程师的素养与成长》由会员分享,可在线阅读,更多相关《{管理信息化信息化知识}软件工程师的素养与成长(30页珍藏版)》请在金锄头文库上搜索。
1、软件工程师的素养与成长,2010年3月 王浩,目录,1.向内看:软件工程师的定位与发展,3. 向前看:我们的未来,2. 向上看:优秀软件工程师的素养与成长,面临的挑战,新技术层出不穷 Ajax、SilverLight、Flex、JSF. 新概念铺天盖地 SOA、云计算、Web 3.0、物联网、敏捷开发. 新诱惑迎面而来 新的工作机会,高薪酬的诱惑.,莫让浮云遮望眼,常见的困惑,你是否听说过:,程序员只能做到35岁,软件行业技术更新太快,学到的技术很快过时,在中国做技术没有前途,只有去做管理、销售,难道他们说的都是真的吗?,如何实现可持续发展?,软件工程师的典型职业路线,建立自己的职业发展目标,
2、立长志,而不是常立志 对自己的职业发展目标要充分了解 看上去很美? 你真的考虑清楚了吗? 将个人目标与群体目标进行匹配 切忌 虽然志当存高远,但制定遥不可及的目标并不能增加你的幸福感,只能增加挫折感,如 做中国的比尔盖兹 下一个马云,对自身能力的认真分析,你适合做软件工程师吗? 你热爱技术吗?你拥有激情吗? 你梦想用创意和产品改变世界,改变人们的生活吗? 你在学校里学习C语言时,对指针概念理解透彻吗?,你能够正确认识你自己吗? 你能列举出自己的核心优势吗? 你能列举出距离你的目标还有哪些差距吗? 你知道如何才能实现目标吗?,切忌 过高估计自己,以我的智商和能力,往前推三百年,往后推三百年,总共
3、六百年没有人超过我 -罗玉凤,机会面前,裹足犹豫,我可以吗?我能行吗? 上次我失败了,这次肯定也会失败,如何设立个人工作计划,里程碑式的迭代过程 长期(三年)计划、年度计划、六月计划、月度计划、周计划 必须符合SMART原则 Specific: 必须是具体的 Measurable:必须是可以衡量的 Attainable:必须是可以达到的 Relevant:必须和岗位发展目标具有相关性 Time-based:必须具有明确的截止期限 定期回顾计划与总结,目录,1.向内看:软件工程师的定位与发展,3. 向前看:我们的未来,2. 向上看:优秀软件工程师的素养与成长,什么是软件工程师?,IT民工?,自由
4、散漫、不修边幅的技术怪人?,优秀软件工程师的形象,得体的个人形象 衣着整洁 举止得体,扎实的技术能力 丰富的工程实践经验 强烈的自信心,严谨的工作作风 一切以事实和数据说话 工作有记录、有统计、有分析、有总结,对质量的高标准 质量从来都是设计和开发出来的 对自己的工作成果有强烈的自豪感和责任感,优秀的文档、演示和谈吐水平 良好的文档是正规研发流程中非常重要的环节 恰当的谈吐是获得认可的重要因素 演示能力是展示自身工作成果的主要机会,软件工程师需要什么样的素养?,团队精神和协作能力,稳定的高生产力,结构化的思考方式,计划与执行能力,学习与总结能力,表达与沟通的能力,如何提升自己的技术水平,对工作
5、精益求精的”狂热” 成为一个优秀的软件工程师的关键是对工作产物的热情! 抽象化的思考能力 抽象化思考是区分一个平凡与伟大软件工程师的重要特质 打下扎实的技术功底 参加各种在线竞赛,将基本功化作条件反射 积极分析成熟开源代码 学习新技术的最佳方式就是分析应用了这个新技术的开源产品 做好个人知识管理 积累个人复用代码库 使用知识管理工具,如何提升自己的生产力,什么决定了软件工程师的生产力?,软件工程师的生产力差距有多大?,一个顶尖工程师和一个普通工程师之间的生产力可以有百倍的差距 代码的品质和效率也有同样的落差,扎实的基本功 + 知识/经验 + 分析/解决问题的方法 + 工具,善用已有工具或者自行
6、开发工具是提升生产力的重要手段,我们每日工作存在太多重复劳动,我们鼓励大家善于”偷懒”,不要轻易对当前的工作方式满足 善用已有工具/自行开发工具是提升技术水平的重要手段 顶尖工程师的重要特征之一就是自行开发大量合手的工具,如何进行学习,教学式学习 当你能跟别人讲解清楚的时候,你肯定已经了解透彻了 在项目中学习 学习的目的是为了应用 小步快跑,逐步提高 需要善于总结、归纳 系统的学习 阅读书籍及在线文章(吸收别人的) 写读书笔记、做技术讲座及记Blog(分享自己的) 有目的的学习,克服随意浏览或下载的冲动,如何解决问题,首先是心态,相信 商品软件开发领域没有什么问题是解决不了的 即使正面由于某些
7、限制,无法解决,也有办法绕过去 要自己“想尽办法” 确定问题最根源的原因 最准确、精确的描述问题 进行结构化的思考 总结 包括当初为什么没有找到这个原因 一次成功的解决难题,就是一次提升的机会 写成记录或者报告,将解决的过程与心得体会与同事分享,什么是结构化的思考方式?,混乱是思考的大敌 对于复杂的问题,分而治之是最好的处理方式 建立分析的框架 在框架下分析问题 脑图是帮助你理清思路的有效工具 举例: 项目文档目录 软件需求分析过程,如何进行时间管理,时间管理 常常感觉时间不够? 感觉手头要处理事情太多,工作压力很大? 时间本身不是问题,因为每人所拥有的时间一样多 所以,导致“时间不够”的重点
8、不是时间,而是在于自己如何善用和分配自己的时间,如何进行时间管理,如何管理工作压力? 压力不是来自任务本身,而是任务在大脑里的混沌塞积,造成心理的焦虑和抵触 只有将你心中所想的所有的事情都写下来并且安排好下一步的计划,你才能够心无挂念,全力以赴地做好目前的工作,提高效率 提高工作效率的技巧 全心投入手头工作,一次专心处理一件事情 在完成手头工作时关闭你的IM和邮件客户端,避免将时间切割成碎片,持续改进,计划 执行 不执行的计划没有任何意义 在执行过程中要进行记录和度量 检查 计划一定要检查 检查不是为了“惩罚”,而是为了了解进度、发现问题、调整计划 评估的目的是持续改进 行动 找出最佳的做法
9、将最佳做法进行标准化,进行推广,什么是持续改进,Plan(计划) for change,Do(执行) changes on a small scale to trial them,Check(检查) to see if change works,Action(行动),建议大家研究一下PSP(个人软件过程),新员工如何融入团队,新进同事快速融入团队 拿到通讯录 通过欢迎会认人 操作现有产品,了解现状,考虑如何改进 主动与领导、辅导员、主管、同事吃饭聊天 了解公司、部门的历史和现状 了解大家的想法和做事方法 充分利用你的辅导员 充分利用你的领导 找准突破点 实战中成长 带着任务去学习 报表一般是认
10、识现有系统的最好手段 了解数据的来源 了解数据的结构和关系 了解业务的流程 提出改进建议和意见,争取短期内出彩,如何提升表达与沟通的能力,如何提建议 提建议是在工作中脱颖而出的重要方法 成功就是比别人多往前走一步 发现问题并不困难,困难的是解决问题 站在提建议对象的角度考虑问题 确保你的建议是可行的,做过了充分的调研 如何提问题 邮件发出前,要自己读1遍,重要的邮件(包括给领导的邮件)要至少读2遍,确保 说清楚了问题的背景 要站在对方的角度考虑,如果自己是对方的话,能听懂你的问题吗? 语句通顺、用词贴切、主谓宾没有缺失、没有错别字 最好把邮件附件的内容黏贴到邮件正文里 如何与领导沟通 尊重你的
11、领导 将领导作为职业发展的教练和助推器 不要给领导带来惊讶,不要让领导成为最后一个知道问题的人 主动向领导进行汇报, 不要让领导来问你 如何提升文档能力 首先要重视文档工作,文档水平是区别工程师与编码爱好者的重要标准 语句要顺畅,写好之后打印出来自己再读两遍,保证语句通顺、用词贴切、主谓宾没有缺失、没有错别字 表达的内容要无二义性,不能有含混的说法,如“系统要具备高可用性” 站在读者的角度考虑文档内容,确保你的读者能够看懂你的文档并迅速抓住重点 注重表现形式,文档的格式非常重要(封面、目录、修订记录、图表、字体、颜色) 不要害怕写文档,多写文档是最好的锻炼方式 要留心收集和学习别人好的文档,目录,1.向内看:软件工程师的定位与发展,3. 向前看:我们的未来,2. 向上看:优秀软件工程师的素养与成长,信息产业的未来,与整个人类的发展历程相比、与传统科学技术相比,信息产业的历史才刚刚开始书写,我们正置身其中,未来有无限的可能.,公司的未来,用了5年时间,我们实现了梦想,但发现舞台不够大了,于是,我们又做梦了,现在我们的竞争对手变了,盛大、腾讯、迅雷、360,公司成立时的梦想-做中国最好的网吧维护平台,互联网娱乐大卖场,为了美梦成真,大家努力!,我们的未来,世界级的研发能力 一流的软件开发工程师团队 走入千家万户的最知名产品,相关资源,