软件开发入门

作者&投稿:郭毓 (若有异议请与网页底部的电邮联系)
学习软件编程怎么入门?~

编写程序是一项系统而繁琐的工作,它不仅需要程序设计人员具有一定的功底,更需要有良好的编程习惯和风格。良好的编程习惯和风格不仅可以使程序代码更易于读懂和修改,更重要的是,它可以使程序的结构更加合理,有助于提高程序的执行效率。下面是我在程序设计中总结的一些经验,供大家参考。设计顺序在我们刚开始学习程序设计的时候,要编写一个程序,总是先进行一番构思,然后就一边写代码一边调试。这种方法一般只适用于非常小的程序,根据软件工程的特点,如果对所有程序都还按这种方法进行设计,是不合理的。其实,设计程序就像我们盖高楼大厦,首先要设计图纸,然后动工。所以,对于个人编写程序来说,应遵循以下步骤:2、结构设计:也就是对程序的整体框架进行设计,设计出我们需要使用的模块等等,并画出流程图。3、用户界面设计:在此,我们要设计出用于与用户交互的输入输出界面。4、代码设计:在这个步骤中,我们要进行代码的编写。5、调试:对程序中正在发生或可能发生的各种错误进行处理。6、维护:通俗地说,维护就是对程序进行升级,对原有错误进行修改。对于以上几个步骤,我想大多数人会认为代码设计最为重要,但如果程序的结构尚未清楚,我们在编写代码的时候就会发生混乱,一个程序性能的好坏,主要还是取决于它的结构是否合理。因此,在程序设计中,我们要尽可能注意这一点,这样才能使我们的程序更加完善。设计环境一个良好的编程环境可以使我们在编写程序时,不至于造成各种资源的紊乱,还可以避免资源的丢失。建议大家要在放源程序的目录下建立“Programs”文件夹;然后再以你要编写的程序名和版本为名建立一个文件夹,用于存放整个源程序以及各种资源;最后,分别建立几个文件夹,“Documents”:用于存放程序文档,包括流程图等;“Resource”:用于存放图片,声音,影片等资源;“Debug”:用于存放调试的程序。“Release”:用于存放最终释放的程序。例如:我们要制作一个英语学习软件,名为“English”,版本为1.0,那么我们的编程环境中应存在以下文件夹:[DRIVE]:\\…\\Programs\\English1\\Debug\\[DRIVE]:\\…\\Programs\\English1\\Documents\\[DRIVE]:\\…\\Programs\\English1\\Resource\\[DRIVE]:\\…\\Programs\\English1\\Release\\另外,最好再建立一个专门的文件夹,用于存放各种模块,以便能实现代码的重用,这样,我们就不用在每次写程序时,都重写所有的模块,编程速度会有很大的提高。设计技巧代码如果写得很乱,程序便不易被阅读与修改,所以,在编写代码时要注意以下几点:(1)注释:写注释虽然要占用一定的时间,但在阅读和修改代码时却会节省很多的时间。所以,建议大家在定义一个函数时,在函数的第一行写出函数的作用,再用一行解释函数的参数,并在每个变量的定义语句后注释出其作用。(2)变量和函数的命名:每个程序都会使用很多的变量和函数,如果随意命名变量与函数,每次使用时还得在变量或函数的定义语句处查出它的数据类型及名称,而且随意命名还会造成变量与函数重复定义。建议大家使用匈牙利命名法,方法是:每个变量或函数的开头都以其数据类型的缩写命名,然后再加上代表这个变量或函数的作用的英文单词简写共同组成变量或函数的名称。例如:要定义用于计数的整型变量count,其定义语句为C\\C++:int icount; Basic:Dim icount as Integer。以这种方法定义,不仅可以有效地避免变量与函数的混乱与重复定义,还可以保证数据类型的匹配。(3)控件命名:如果在Windows下编程,你有可能会大量地使用控件,如果不对控件名严加管理,会造成很大程度的混乱,因此,建议在给控件命名时,以控件类型缩写再加上代表这个控件作用的英文单词的简写共同组成此控件的名称。例如:你要命名一个按钮控件,作用是进行删除操作,那么控件名可以命名为cmdDel。并不是每个人都能成为顶级程序员,但我们都在程序员之路上不断进步,追求更完美、更专业化的程序。不妨好好改造一下你的程序,你会从中感受到很多好处

一个软件从开始到最后一共需要以下几个流程:
  1、计划
  2、分析
  3、设计
  4、编码
  5、测试
  6、维护

  1、计划
  对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
  2、分析
  软件需求分析就是对开发什么样的软件的一个系统的分析与设想。它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。在任何软件或系统开发的初始阶段必须先完全掌握用户需求,以期能将紧随的系统开发过程中哪些功能应该落实、采取何种规格以及设定哪些限制优先加以定位。系统工程师最终将据此完成设计方案,在此基础上对随后的程序开发、系统功能和性能的描述及限制作出定义。
  3、设计
  软件设计可以分为概要设计和详细设计两个阶段。实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。模块,然后进行模块设计。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
  4、编码
  软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的“源程序清单”。充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
  当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
  5、测试
  软件测试的目的是以较小的代价发现尽可能多的错误。要实现这个目标的关键在于设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)。如何才能设计出一套出色的测试用例,关键在于理解测试方法。不同的测试方法有不同的测试用例设计方法。两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。结构错误包括逻辑、数据流、初始化等错误。用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
  6、维护
  维护是指在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。编写软件问题报告、软件修改报告。
  一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持续五年至十年。那么它的维护阶段也是运行的这五年至十年期间。在这段时间,人们几乎需要着手解决研制阶段所遇到的各种问题,同时还要解决某些维护工作本身特有的问题。做好软件维护工作,不仅能排除障碍,使软件能正常工作,而且还可以使它扩展功能,提高性能,为用户带来明显的经济效益。然而遗憾的是,对软件维护工作的重视往往远不如对软件研制工作的重视。而事实上,和软件研制工作相比,软件维护的工作量和成本都要大得多。
  在实际开发过程中,软件开发并不是从第一步进行到最后一步,而是在任何阶段,在进入下一阶段前一般都有一步或几步的回溯。在测试过程中的问题可能要求修改设计,用户可能会提出一些需要来修改需求说明书等。

首先你学C语言,建议你看谭浩强的(C程序设计),把基础打好,再学习C++,你把C语言学好后再看C++Primer,你学完这两本书了就知道自己该怎么走下去

软件开发是有门槛的,基本很难速成,如果要学需要较长的耐心和努力。

现在软件开发语言上有两条路:c/c++, java。 选择语言不同后续需要学的知识也不同。

c/c++: (c++兼顾底层和面向对象思想,建议直接从c++学起,以下可以并行学)
语言入门: 《c++ primer》-->《thinking in c++》 结合大量上机练习,根据自己的效率学好需要0.5~1.5年。
算法入门:《算法导论》或任何一本数据结构相关书籍,0.5~2年。
项目入门:找一个代码超过千行的小项目练一练,一般的c++实践性质的书籍里会有这种项目实例和参考源代码。 1个月
项目练习:如果工作中遇到就顺便了,否则还是从书籍中找项目。一个c++工程师就业前至少有两万行编码经验。
其他:以上学习过程中遇到的问题,可能有很多,比如Linux, 进程线程, 网络通讯, 可视化程序。。。杂七杂八都学完怎么也得1年以上吧。
加起来:3~4年时间。

java: (java好处是学起来很快写起来很快,坏处是因此工资也比较低,但时间有限时还是首选)
语言入门: 任意一本java入门书,要多做练习。 0.5~1年
熟悉开发工具:Eclipse , 1个月
项目入门:找一个代码超过5千行的操作数据库的小项目练一练,一般java实践性质的书籍里会有这种项目实例和参考源代码。 1个月
设计模式:这个东西感觉是无止境的呀,开始时仅作了解就好。
常用框架:struts, spring, hibernate. 这个最好就专门的培训课程,自己学可能有点吃力。只学其中一个的话应该在1~3个月之间。
其他:以上学习中遇到的问题,如数据库,视窗程序原理,jsp,多线程...java封装的比较好,所以很多底层的东西简单了解就好,加起来也得6~12个月来学吧。
加起来:1 ~ 2 年


安卓手机软件开发好入门吗?
但是很多人都觉得自己是非计算机专业的,学能学好吗?软件培训网告诉大家,安卓手机软件开发很好入门。下面,中科英才就为大家普及一下安卓软件开发入门知识。一、初级阶段要学习的内容 1.配置环境:全部采用做新版本SDK、ADT、ECLIPSE、JDK。二、编写或者运行教学示例 这时间主要运行的示例如HELLO WORLD,...

前端开发如何入门
1、了解前端 2、基础 3、动态 4、尝试 5、学习新的知识 方法\/步骤 了解前端:前端开发其实严格说起来是所有开发里面最容易学的,其实也说不上容易,前端是一个先易后难的东西,如果你准备好以后要吃苦的话,那么请接着往下看。基础:前端的基础东西就是HTML和CSS,也有人叫做DIV+CSS,这个是静态...

软件开发初学者应该看什么书
一个由C转向C++的程序员,从来没有系统的学习过C++的语法,往往是用到的什么学习什么。如果要系统入门,《C++ primer》倒是不错。设计类《代码大全》:《重构-改善既有代码的设计》《代码整洁之道》《实现模式》《程序员应该知道的97件事》这几本书一般讲的是函数以及更低层次的设计。《代码大全》...

嵌入式开发如何入门
嵌入式开发是什么意思嵌入式开发的意思是指利用分立元件或集成器件进行电路的设计和结构的设计,然后进行软件编程与实验,再经过多次设计修改与制作,最终完成整个系统的开发。嵌入式开发就业前景嵌入式开发前景是非常广阔的,由于嵌入式开发的入门门槛比较高,所需开发人才也相对的紧缺,其待遇相比其他行业也要...

如何入门软件开发或者软件测试
你想学软件开发的话,建议你还是去参加一些培训。个人自学的话,你是很难突破的。而且这样子走的弯路也会比较多。再来,软件工程师是技术含量相当高的,想无师自通的话恐怕是不容易哦~建议有兴趣的话还是参加培训,并且在选择培训机构方面也要慎重,不少机构是夸大其词的,建议选择办学时间长,历史...

自学嵌入式开发应该先要学些什么?
嵌入式开发的学习其实并没有那么难,只要了解学习的体系,掌握正确的学习方法,学习起来并不难。来讲一下嵌入式开发都要学些啥!嵌入式开发的主要学习内容:C,Java核心编程:c语言核心编程,Java核心编程;Linux核心操作与算法:Linux系统使用,Linux-c编程核心技术,精品数据结构,Linux-c编程精髓;核心...

学习软件开发,入门是不是要先学算法啊?要学数学啊?
软件开发 首先要学一门语言 比如c java 然后要学集成开发环境 就是开发工具 算法也是必须的 数据结构也是必须的 数据库也是必须的 操作系统知识 网络也要懂一点 还有一门很重要的科目是软件工程 而且有时候还要学各种框架和开发包 数学吗 一般的应用开发用不到 除非图像识别啊 搜索引擎啊 科学计算...

嵌入式开发如何入门
嵌入式开发主要有两种,像STM32、飞思卡尔等系列5261单片机属于无操作系统的,直接对寄存器或者利用库函数操作的,这种学习来难度相对小一些,就业前景也不错。还有一些像ARM9,或者CortexA8、A9系列的可以运行Linux或者安卓操作系统的嵌入式软件系统开发,由于需要学习的内容较多,学习时间较长,那么学习起来就...

嵌入式软件开发入门前应该掌握哪些知识?
计算机组成与系统结构的大致理解;对汇编和c等编程语言的大致理解;对数字电子电路的大致理解;有不太糟糕的英文阅读能力;当然,还得有兴趣和耐心,加上不错的指导(比如杭州的 JulianTec )这些都是基础,有些东西也许现在没有,但经过一段时间的强化是可以 入门的。但要把自己的心态准备好,没办法一...

嵌入式开发入门--系统学习方案
嵌入式系统开发学习--从入门到精通 很多新手学习嵌入式系统,不清楚那么多方向舵知识和参考书,该从哪里开始学习。入手了,却又在该先学习什么后学习什么上失去方向。这里有你想要的答案,帮你指点迷经。这是我在ITjob培训网上找到的课程大纲,觉得作为嵌入式系统开发的学习步骤,按部就班地去施行和学习...

容城县13337766663: 软件开发需要有什么基础?
佘冒普司: 1、计算机基础:操作系统、计算机组成原理、计算机网络、数据库原理、数据结构等;2、选择几门计算机语言:软件开发分为java、c++、 c# 、WEB开发 、数据库管理、网络系统管理、软件测试等;你可以都去试试,找到一名自己感兴趣的...

容城县13337766663: 软件开发如何开始学习
佘冒普司: 学软件开发的入手途径有:1、开始自学软件编程课程;2、熟悉算法和数据结构;3、附加技能的学习;4、动手能力的培养.1、开始自学软件编程课程编程语言种类繁多,各有千秋,在学习之前需要明确自己要学习哪一门编程语言.确定之后...

容城县13337766663: 软件开发入门 -
佘冒普司: 首先你学C语言,建议你看谭浩强的(C程序设计),把基础打好,再学习C++,你把C语言学好后再看C++Primer,你学完这两本书了就知道自己该怎么走下去 软件开发是有门槛的,基本很难速成,如果要学需要较长的耐心和努力.现在软件开...

容城县13337766663: 学软件开发需要有什么基础?
佘冒普司: 1、基础知识 学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础.有了这个基础,学起来可以事半功倍.当然,对数学、英语的要求也没有想象中的那么高.2、基础编程语言 编程语言是学软件开发的钥匙,初学者...

容城县13337766663: 学软件开发需要有什么基础?
佘冒普司: 1、基础知识 学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础.有了这个基础,学起来可以事半功倍.当然,对数学、英语的要求也没有想象中的那么高.2、基础编程语言 编程语言是学软件开发的钥匙,初学者...

容城县13337766663: 学软件开发需要有什么基础?
佘冒普司: 软件开发需要学习什么基础知识 初级软件开发一般有两个方向,一个是java体系,需要学习的内容有:java、j2EE、ORACLE\DB2\MYSQL(包括JAVA的延伸技术 JS、 JSP、 AJAX等).另一个方向就是.NET体系,需要掌握的是:ASP.NET...

容城县13337766663: 学软件开发需要有什么基础?
佘冒普司: 1、基础知识 学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础.有了这个基础,学起来可以事半功倍.当然,对数学、英语的要求也没有想象中的那么高.2、基础编程语言 编程语言是学软件开发的钥匙,初学者...

容城县13337766663: 学软件开发需要有什么基础?
佘冒普司: 1、基础知识学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础.有了这个基础,学起来可以事半功倍.当然,对数学、英语的要求也没有想象中的那么高.2、基础编程语言编程语言是学软件开发的钥匙,初学者好...

容城县13337766663: 学软件开发需要有什么基础?
佘冒普司: 1、基础知识 学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础.有了这个基础,学起来可以事半功倍.当然,对数学、英语的要求也没有想象中的那么高.2、基础编程语言 编程语言是学软件开发的钥匙,初学者...

容城县13337766663: 学软件开发需要有什么基础?
佘冒普司: 1、基础知识 学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础.有了这个基础,学起来可以事半功倍.当然,对数学、英语的要求也没有想象中的那么高.2、基础编程语言 编程语言是学软件开发的钥匙,初学者...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网