分享

程序员进阶| 从编程小白到能扛项目的老司机

 yazhongwang 2016-10-28
小蒜见到过很多初学者苦恼于虽然学会了一门程序设计语言,但是当他开始进行软件开发的时候却总是无处下手,经常搞得一团糟。如果跟其他人协作更是难上加难。

小蒜想告诉你们,不要怕!计蒜客《CS 200: 程序设计方法与习惯》已经上线啦!这门课将会从软件开发和团队协作等角度带你成为老司机~

无论是一个网站、一个手机 App 还是一些系统运维工具,我们都需要通过严密的软件开发过程来实现。

提到软件开发,很多人会觉得软件开发就是写代码,就是把一个明确的问题用代码来解决。的确,在学习程序语言基础、或设计某个特定的算法时,写出一个简洁、高效的程序就基本达到要求了。但是,如果想要完成一个有一系列功能的程序,我们就需要依照一套成熟的流程进行开发。

不少人认为,只有当一个项目的参与人数多起来以后才会需要开发流程,因此小团队不需要开发流程。事实上,这是一个非常错误的观点——哪怕是一个人的项目,按照流程执行软件开发的每个过程,将大大的提高开发的效率和代码的可维护性。

根据卡内基梅隆大学(CMU)的专家们提出的一套模型:个人软件过程(Personal Software Process, PSP),其中有 77 个基本的开发阶段。

和很多人之前认为的不一样,这七个阶段的第一个并不是开发,而是对要开发的过程进行 规划(planning),例如对开发、测试的时间分别进行预估。完成规划之后,我们才会开始实际的 开发(development) 过程。开发完成后,我们还需要依次进行 记录用时(record time spent)、撰写测试报告(test report)、计算工作量(size measurement)、事后总结(postmortem) 并在开发过程的最后提出 过程改进计划(process improvement plan)。

而对于其中第二步的开发过程呢,我们通常会将其分为:需求分析(analysis)、撰写设计文档(design spec)、设计复审(design review)、制定代码规范(coding standard)、详细设计(design)、编码(coding)、代码复审(code review)、测试和修正(test)。这里需要注意的一点是,测试会一直与开发交替循环进行。

根据调研,成熟的工程师相比于刚入门工程师会花更多的时间在“需求分析”和“测试”这两个步骤,而在编码上的用时则会少很多。显然,成熟的工程师并不会没完没了地写程序,而会把更多的时间花在对项目开发效率的改进和质量的把控上。

程序设计方法与习惯关注如何让初级入门的学生在接触程序设计伊始就养成较为良好的习惯。本课程的内容包括个人开发流程与工程师成长、工程开发的版本管理、程序设计的代码风格、程序重构入门、软件测试基础、工程开发的协作方法这六个部分。


完成本课程后,你将对个人开发流程有一个基本的了解,掌握多人协作开发工具 Git 的基本操作,并能初步掌握代码重构、软件测试的技能,为工程开发打下良好的基础。
导师介绍
在平时我们建议你使用课程中的问答功能进行提问,请注意在提问时将问题背景、具体问题和你试图解决的方法都陈述清楚,这样助教和其他同学在对问题进行回答时才能有所针对,快速解决问题。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多