主页 > 电子产品 >
部分 1提出想法
1
头脑风暴,想出好点子。 一个好的程序的目标是让人们的生活更方便。可以看一下现在已有的帮你完成工作的程序,是否有可以简化或优化的地方?一个成功的程序一定是能让用户感到非常实用的。
- 检查一下你每天用电脑完成的工作, 是否有一些任务是可以让程序自动帮你完成的?
- 把每个想法都写下来。即使这么做会显得有点傻。说不准哪天这些想法就变成了伟大的创新。
2
分析其他程序。它们做了什么事?怎样才能做的更好?它们是否错过了什么?回答这些问题可以帮你更好的提出自己的想法。
3
编写设计文档。设计文档应当勾画出产品的主要功能和你完成它的方式,而且它能使你在开发过程中保持专注并更有计划。你可以查阅一些关于如何写设计文档的资料。此外设计文档还能帮你找出最适合你的项目的编程语言。
4
从最简单的部分做起。如果你是刚开始接触计算机编程的话, 你应该从最简单的东西做起并不断进步。如果你用一段简单的程序实现一个具体的目标,你将会学到很多东西。
部分 2学习一门语言
1
下载一个好用的文本编辑器。几乎所有的程序都是在文本编辑器中写好然后被编译和运行的。你可以使用像是记事本、TextEdit这样的程序来写代码,但我更建议你下载一个支持语法高亮的编辑器,比如Notepad++, JEdit或Sublime Text。这样的编辑器会让你的代码看起来一目了然。
- 有些语言,比如说Visual Basic,自己的安装包中就带有编辑器和编译器。
2
学习一门编程语言。 所有的程序都是通过编码实现的。如果你想要开发自己的程序,那么你必须熟悉至少一种编程语言。哪种语言更适合你取决于你想要实现的程序的类型,然而最常用和重要的语言有以下几种:
- C语言 - C语言是一门低级语言,这意味着它和计算机硬件的交互更为紧密。C语言已经有很长的历史了,但它仍然被广泛使用。
- C++ - C语言最大的弊端是它不是面向对象的,因此产生了C++。 C++是现在世界上最流行的变成语言了。许多常用程序,比如Chrome,Firefox,Photoshop都是用C++开发的。在视频游戏领域C++也非常流行。
- Java - Java可以说是C++的进化版, 同时它的可移植性极强。绝大部分计算机,不论安装了什么操作系统,都可以运行Java虚拟机,因此Java程序几乎可以在所有计算机上运行。它在视频游戏和商务软件中被广泛使用,因此被很多人视为必不可少的语言。
- C# - C#是一门基于Windows平台的语言,也是Windows程序开发中用到的主要语言之一。他和Java和C++的关系很紧密,如果你对Java已经很熟悉了那么学习C#会很简单。如果你要开发Windows或Windows Phone程序,你需要好好学习下这门语言。
- Objective-C - 这是C语言家族中的又一成员, 它被专门设计用于苹果系统的开发。如果你想要开发iPhone或iPad应用,学习这门语言就对了。
3
下载编译器或解释器。 对于像C++和Java这样的高级语言,你需要有一个编译器来把你的代码翻译成计算机可以直接使用的格式。根据你使用的语言的不同,有许多不同的编译器可供选择。
- 有一些语言是解释性语言,它们不需要编译器。作为替代,它们需要计算机上安装一个解释器, 然后这样的程序就可以直接运行了。Perl和Python都是解释性语言的代表。
4
学习基本的编程概念。 无论你选择了哪种语言,你都需要了解一些基本和通用的变成规范。弄清楚语言的语法规范能帮助你创建更为强大的程序。这些通用的概念包括:
- 声明变量 - 变量是用于存储你程序中的数据的。这些数据可以被存储,修改,操作和再被读取。
- 使用条件语句(诸如if, else, when等) - 这些语句是程序的基本功能之一,他们决定了程序的逻辑。条件语句是以”true”和”false”为中心的。
- 使用循环。 循环让你可以一直重复一段过程直到收到结束指令为止。
- 使用转义符 - 这些指令可以让你创建新行、空白、引号等。
- 添加注释 - 注释对于帮你记住代码的功能、帮其他程序员理解你的代码以及暂时屏蔽代码片段都很有用。
- 理解正则表达式。
5
看一些编程语言相关的书籍。无论你是编程新手还是大牛,总有适合你看的书。你可以在附近的实体书店或者网上书店找到这样的书。手边有一本书以便工作的时候翻一翻是非常有用的。
- 除了实体书之外,别忘了网络上还有数不清的指南和教程,那都是你的宝贵财富。你可以在51CTO, CSDN, 网易云课堂等网站上找到许多有用的指南。
6
参加一些课程。 虽说只要用心每个人都可以自学编程, 但如果能有老师和教室这种环境也是大有裨益的。一位计算机专家一对一的辅导将会大幅度加快你掌握编程基础知识和概念的速度。这些课程还能帮你进一步学习数学和逻辑等只是,这对于复杂的程序来讲也是很有必要的。
- 上课是要花钱的,所以你要确保你上的课能让你学到想学的东西。
7
多提问题。 互联网可以让你很方便的和其他开发者去的联系。 如果你在项目中遇到了棘手的问题,不妨到诸如StackOverflow这样的网站上去寻求帮助。不过请确保你在提问之前已经尝试了一些解决方法,并且你的问题描述应当清晰明确。
部分 3创建原型
1
先写一段简单的程序,包含最基本的功能即可。 这就是你的程序原型,它表明了你最终想要实现的程序的功能。原型应当快速迭代,直到你找到了有效的设计模型。比如说,如果你想要开发一个日历程序,那么你的原型应该是一个简单的日历(带有正确的日期)并能向其添加事件。
- 在开发过程中你的原型会经常变化,因为你常会想到更好的解决问题的办法或是想要添加新的功能。
- 原型不需要很完美。事实上,艺术和设计上的工作是你最不需要关心的。还拿日历的例子来说,你的原型看起来就像是纯文本的也没关系。
- 如果你要做一款游戏,你的原型一定要有趣。如果原型都不有趣的话,很可能最终的结果也不会有趣。
- 如果你的原型无法体现你真正的想法,那么也许你需要重新设计一个了。
2
建立一个团队。 如果你只靠自己一人开发程序,你不妨用程序原型帮你组建一个团队。团队合作能帮你更快的追踪bug,迭代功能,和设计视觉效果等。
- 对于小项目来说团队并没有什么必要,但也能显著的减少开发耗时。
- 要管理好一个团队是个复杂和困难的过程,需要有高超的管理技巧和合理的团队架构。你可以查阅一些关于如何领导一个团队的指南。
3
必要时从零做起。 一旦你掌握了一门语言,你就可以在短短几天内建立你的原型并让它运行起来了。 因为原型是用于快速迭代的,所以如果你觉得它不能让你满意,就请大胆的推翻自己的想法重新开始吧。
4
多写注释。 除了程序中最基本的部分都尽量写上注释吧!这能帮你在不得不把你的项目搁置一段时间之后想起来你写了什么,还能帮其他开发者理解你的代码。当你在一个团队中工作时这一点尤为重要。
- 在测试代码时你还可以用注释暂时屏蔽掉代码中的一部分。只需简单的在你想屏蔽的代码周围加上注释符号它们就不会再被编译了。当你把注释符号删除时他们马上就恢复了。
部分 4阿尔法测试
1
在阿尔法测试阶段(阿尔法测试阶段是指软件开发过程中最早的阶段,这时产品还没有发布给用户,由开发团队内部进行测试并修复bug——译者注),测试团队可以很小。一个小的团队可以让你获得更有用的反馈,并让你和测试人员一对一的交流。每次你对程序原型作出改进时,新的程序版本都要发送给阿尔法测试人员。测试人员会测试全部的功能并尽全力把程序搞崩溃,并记录下所有的结果。
- 如果你在开发商业软件,你最好保证你的测试人员都签署了保密协议。这能防止他们把你的程序泄露给其他人、用户或媒体。
- 抽出时间建立一个良好的测试计划。要确保你的测试人员能够很方便的汇报问题和获得最新的程序版本。GitHub或其他代码仓库都是好用而且简单的处理这个问题的工具。
2
一遍又一遍的测试你的原型。 Bug是所有开发者都会有的烦恼。错误的代码和不正确的用法都会导致各式各样的问题,即使你的产品已经快完成了。所以你应当继续修改你的原型,一遍又一遍的测试它。尝试各种可能的办法把它搞崩溃,然后再想办法修复,让它在将来不会再崩溃。
- 如果你的程序要处理日期,就尝试输入一些古怪的日期。因为很久以前或很久以后的日期都可能让程序出现奇怪的问题。
- 输入错误类型的变量。比如说如果你有一个表格是让用户填写年龄的,就填几个字进去看看程序会如何处理。
- 如果你的程序有图形界面,就把每个地方都点一遍。看看当你回退到上一个界面,或者点击的顺序错误时会发生什么。
3
按照重要性处理问题。 当修正一个阿尔法版本的程序时,你要花许多时间修改有问题的功能点。当你处理来自测试人员的问题报告时,它们应当按照两个标准排序:严重性和优先级。
- 问题的严重性是衡量一个问题所能造成的危害的大小的标准。那些能让程序崩溃、写入错误数据、让程序终止运行的bug是阻碍性的,必须第一时间被修复。那些不能正常工作或返回了错误结果的功能点是很严重的问题,然后那些让程序很难看或者很难用的问题也是重要问题。除此之外还有一般、小问题和微不足道的问题几个标准,这些问题影响的是小模块或不重要的部分。
- 问题的优先级决定了当你解决bug时下手的顺序。软件开发中修复bug是很耗时的一个过程,会占用你开发新功能和优化现有功能的时间。因此,你必须考虑bug的优先级以便在最后的截止时间前完工。所有阻碍性和严重级别的问题都必须是最高优先级的, 有时会被叫做P1级。 P2级的bug则是指已计划要修复但不会阻碍产品发布的重要问题。P3和P4级的bug不一定会被修复,属于"如果有了会更好"的范畴。
4
增加更多功能。 在阿尔法阶段,你需要为你的产品增加更多的功能以使它更加接近你的设计文档描绘的样子。阿尔法阶段是你的程序原型不断进化为完整的程序的过程。当这一阶段结束时,你的程序应当实现了所有的功能。
- 不要偏离你最初的设计文档太远。软件开发中的一个常见问题是"功能狂",就是说把太多新的想法加入到产品中,导致最开始的关注点已经丢失了,把开发时间浪费在太多不同的功能上。你的程序应该把它要做的事情做到最好,而不是变成一锅大杂烩。
5
测试你添加的每个功能。在阿尔法阶段,每当你添加新功能时,都要把最新的程序版本发给测试人员。版本更新的频率完全取决于你的团队的规模以及功能完成的进度。
6
阿尔法阶段结束后不要再添加新功能。 一旦你完成了你程序所需的所有功能,你就可以结束阿尔法阶段了。这时不应该再加入任何新的功能了,并且要保证已有的功能可以正常工作。然后你就可以进行进一步的测试和优化,或者叫贝塔阶段。
部分 5贝塔测试
1
扩大测试人员的人数。在贝塔阶段,程序将被分发给更多的测试者。 有些开发者会将贝塔阶段公开,或称为公开贝塔阶段。这将允许任何人注册和参加产品的测试。
- 你可以采用公开贝塔测试,也可以不用,这取决于产品的需求。
2
连接性能测试。随着程序被越来越多的人使用,可能你的程序的性能将取决于到服务器的连接数。贝塔测试让你可以确认你的程序在很大的负载下是否还能正常工作,从而确保程序发布时是可用的。
3
优化你的软件。 在贝塔阶段,也不应该增加新的功能。所以你应该把注意力放在提高程序的美感和可用性上。在这个阶段, 用户界面的设计变的十分重要。要保证用户在浏览程序和使用各项功能时没有障碍。
- 用户界面设计和功能的结合是非常困难和复杂的。有些人就是全职做用户界面设计的。只要保证你自己的工程是简单易用、看起来舒服就行了,毕竟专业的用户界面是需要资金和团队的支持的。
- 如果你有相应预算,还是有许多从事图形设计的自由职业者可以为你设计一个用户界面的。如果你有一个很棒的项目并期待它取得巨大成功,那就找一个用户界面设计师加入你的团队吧!
4
继续找问题。 在整个贝塔阶段,你都应该给用户汇报的问题做归类和定优先级。因为有更多的测试者测试了产品,很可能会发现新的问题。牢记项目的最终截止日期,按照问题的重要性把他们干掉吧。
部分 6发布你的程序
1
做好市场规划。 如果你想要获取用户,你就得保证他们能知道你的程序的存在。就好像任何其他产品一样,你需要做一点广告,好让人们知道有这回事。市场推广活动的广度和深度取决于你程序的功能(你的程序是专业性的还是大众性的?)和你可用的预算。下面有一些简便的提高你的程序的知名度的方法:
- 在相关的论坛上发帖子。要保证你遵守了发帖的论坛的规定以防你的帖子被屏蔽。
- 给一些科技媒体发送你的程序样例。找一些适合你的程序的博客或网站,给他们的编辑发一个样例程序详细介绍一下你的程序。别忘了带上几张截图。
- 在视频网站上上传一些视频。如果你的程序是用来完成某种特定工作的,就做一些视频来演示一下它是怎么工作的,上传到视频网站上,并把他们标记为"如何做。。。"类的视频。
- 在社交媒体上创建主页。你可以在微信、人人网上免费创建一个账号或主页来介绍你的程序,也可以在微博上发布一些跟你的程序或公司相关的新闻。
2
把你的程序放在你的网站上。对于小的程序,你大可以把程序文件放在你的个人网站上。如果你想要对用户收费的话你还需要引入一个付费系统。如果你的程序开始流行,你可能需要把程序文件放在服务器上以便让更多用户下载。
3
创立支持服务。一旦你的程序公之于众,你总是会收到来自用户的各种技术性问题,比如不知道该如何使用你的程序等。你的网站应当有全面的文档和某种形式的支持服务,比如说论坛、电子邮件、人工服务或它们的组合。当然了,你能提供的服务取决于你的预算。
4
一直保持更新。几乎所有的程序在最初发布一段时间之后都要打补丁和更新。这些更新可能会修复一些严重的或不严重的问题,升级安全协议,提高稳定性,或者添加新功能,甚至重制用户界面。不断更新你的程序能帮你提高竞争力。
样例代码
样本C++程序,样本MATLAB程序- 上一篇:如何将蓝牙音箱连接到笔记本电脑
- 下一篇:没有了
- 01-16如何在YouTube赚钱
- 01-29如何在线添加文件到Google云端硬盘
- 01-29如何解锁浏览器
- 01-29如何在网上发短信
- 01-16如何更改Exe文件的图标
- 01-30如何链接Twitter到Facebook
- 01-30如何在Facebook上屏蔽别人
- 01-31如何联系WhatsApp客户服务
- 01-29如何在LinkedIn上撰写推荐信
- 01-30如何查看安卓设备上正在运行的应用程
- 01-16如何升级Garmin Nuvi
- 01-16如何让笔记本电脑运行速度更快
- 01-16如何删除苹果账户
- 01-16如何修复坏扇区
- 01-16如何查看XML文件
- 01-16如何在HTML中插入空格
- 01-16如何在谷歌Chrome浏览器允许弹出窗口
- 01-16如何用电子邮件发送大的视频文件
- 01-16如何连接台式机和笔记本电脑
- 01-16如何在Snapchat上添加好友