WNCG 软件组第一次培训大纲
tags:
培训规划
一图总结:
培训与总结安排 每周有总结,总结上周内容,答疑,安排下周学什么 每周培训讲上周总结时安排的内容,完成周志
培训会给大家讲什么、为什么要强调团队合作
- 软件工程教学现状与我们想做的尝试
- 我们的现状:野路子,单打独斗、依靠个人能力编程,缺少文档,缺少合作,别人觉得代码乱,自己也觉得代码乱
- 软件工程现状:经典瀑布流教学,上课做完作业就完,学完课程没有任何收获,图完成学分
- 我们的尝试:人数少,手把手教写代码,规划正规路线,讲授更亲近,
- 表明教练与学员的关系,说明负担情况,相互竞争原则,知识是构建的,提问辩证能帮助构建
- 为什么需要课堂:自然的、有批判精神的学习环境
- 团队合作的必要性:项目不是由一个人来完成的
- 团队的必要条件:成员在作为码农的能力是合格的 (用以解决中层次及高层次问题,而非低层次语法问题)
- 团队需要一定的流程来管理开发活动
团队合作怎么做 有哪些流程
团队开发解决了什么?
- 首先解决了工作量的问题
- 提高了软件开发、运营、维护的效率,提升软件的可靠性、可维护性 每个具体的开发者在团队中都有各种各样的角色担当,开发、测试、美工、管理等 把工作有序的组织起来就是团队流程 每个人应该被团队需求
通常流程
- 分析需求
- 设计模块
- 团队讲解项目 (成员有必要了解子系统、模块及他们之间的关系)
- 分模块任务安排 (初步)
- 合作开发 (通过文档沟通接口,做好单元测试)
- 记录开发进程、未完成事项、遇到的问题 (项目管理工具)
- 负责人通过每个人进度及能力调整部分任务分配 (细节)
- 相互提交模块代码 (pull request)
- 讨论问题
- 管理者合并代码 (merge)
- 集成测试
- 功能测试 (需求变动)
- BUG 修复
- 部署
- 完成交付
个人学习规划
初级软件工程师成长
- 积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力)
- 积累问题领域的知识和经验(例如:对前端或后台的了解)
- 对通用的软件设计思想和软件工程思想的理解
- 提升职业技能(区别于技术技能)
- 实际成果
软件推荐
- 本地搜索神器:Everything
- 文本编辑: UltraEdit Notepad++ SouceInsight
- 版本控制:Git
- Markdown编辑器:Typora
- 笔记管理:印象笔记
- 思维导图:Xmind
- 搜索引擎:Google GitHub 百度
- 科学上网:SS (难,稳定) Green (易,稳定性一般)
- 项目管理工具:GitHub Worktile
书籍推荐
- 《XXXX 从入门到精通》
- 《XXXX 编程指南》
- O'reilly 动物书
- 《大话设计模式》
- 《大话数据结构》
- 《操作系统原理》