软件开发好学吗
回答这个问题答案很明确,就一个字:难!而且非常难!为什么难?为什么有很多人却说不难?比如有一期微软公司总裁来作客什么节目谈及软件开发对初学者说软件开发只有加加减减,非常有意思。
吸引众多人对学软件趋之若鹜...我只想说:这些说法都是不负责任的人在对你说的忽悠,仅此而已,他们根本没写过一行代码没学过一天C++编程语言,就大言不惭,实在让人为他们脸红?软件开发难吗?这和学武术差不多,谁都喜欢动作电影里的动作明星,谁都想要一点好身手。
那你问一问格斗家说学武难吗?你想他们会跟你说武术一点也有不难,只要有悟性即可...软件开发也一样,难度丝毫不比学武术低,即不有趣,也不好玩。
而且需要一定的智商悟性,智商不足怎么办?只有比人家付出十倍百倍的努力来学习获得经验了,所以说这行的难度跟其他行业比起来就是一个天上一个地上,网吧收银员可以看着电影混过一天,一个有经验的老中医懂了家传绝活之后可以吃一辈子。
但软件开发不行,入门写个helloworld可能简单点,但稍一深入,你就会发现它的深奥费解之处了。
做不做软件开发,关键看你喜不喜欢这行了,软件开发非常有魅力,就像天堂来的天使一样吸引着很多求知的年轻人,工资很高回报极其丰厚,但学习和开发的难度和工作压力跟其他行业相比不可同日而语,那可不是闹着玩的。
如果热爱软件开发就坚持下去吧,不过没完没了的环境搭建,各种天书一样的疑难BUG,内存泄漏和近乎无解的三天两头学习新技术新工具新SDK,上google,baidu和英文网站搜解决方案在等着你,那可不是什么只有加加减减,你解决不了问题随时会被公司开除,公司老板不懂开发不了解开发难度,他们只想要什么问题都能瞬间秒解的高手,所以软件开发需要智商的。
同时更需要坚持,没有圣斗士星矢的执著是坚持不下去的。
自学软件开发要多长时间
为什么不可能列,不过在此之前,建议你先去仔细的了解下现在软件行业的行情,发展等,看是否要进入这一行,这行的付出是很大的,不仅是入门之前要学,入门之后还是要学,工作后也要学,熟练后还是要学,学无止尽,因为技术在不断更新,人们需求也在不断提高.如果确实要入这行,首先选门基础的语言学习,C,C++,java,C#这些都可以,编程语言没有什么界限,你选哪种语言都可以,他们虽然语法或者一些函数库不同,但是大体都是一样的.当你学到一定程度后就会感觉到了,比如说你学java,后来又要接触C#你就会发现他们有很多一样的地方.很多人都说,先学C等语言,那是因为它简单,比较适合从来没有接触过编程的人.再学其他语言,在思想或者说思维上容易接受些.这是我觉得最最基础的。
之后就可以去接触其他东西了,比如给予WEB开发的J2EE,.NET等等,这些关键字,你也可以再百度百科里找到.
手机应用开发真的这么简单吗?
不难,也没那么简单。
易点开发没用过,不过看官网确实比较容易(就像易语言,入门快但是真用起来也是蛮复杂的而且效率什么的都很难说),你可以下载个SDK试试。
。
。
不过还是学习下Java吧,也不难,三个月——如果你认真学的话,开发个小应用没问题的。
。
。
楼上的,软件有没有人用看的是创意、质量、用户使用习惯等,你那是神马逻辑??
软件开发是什么
软件开发的内容是:需求、设计、编程和测试!需求:不仅仅是用户需求,应该是开发中遇到的所有的需求。
比如,你首先要知道做这个项目是为了解决什么问题;测试案例中应该输入什么数据......为了清楚地知道这些需求,你经常要和客户、项目经理等交流。
设计:编码前,肯定有个计划告诉你要做什么,结构是怎样等等。
你一定要按照这个来做,否则可能会一团糟。
编程:如果在项目截止日,你的程序不能跑起来或达不到客户的要求,你就拿不到钱。
测试:目的是让你知道,什么时候算是完成了。
如果你聪明,你就应该先写测试,这样可以及时知道你是否真地完成了。
否则,你经常会不知道,到底有哪些功能是真正完成了,离预期目标还差多远。
软件开发中,客户和开发人员都有自己的基本权利和义务。
客户: 定义每个用户需求的商业优先级; 制订总体计划,包括用多少投资、经过多长时间、达到什么目的; 在项目开发过程中的每个工作周,都能让投资获得最大的收益; 通过重复运行你所指定的功能测试,准确地掌握项目进展情况; 能随时改变需求、功能或优先级,同时避免昂贵的再投资;能够根据各种变化及时调整项目计划; 能够随时取消项目;项目取消时,以前的开发工作不是一堆垃圾,已开发完的功能是合乎要求的,正在进行或未完成的的工作则应该是不难接手的。
开发人员: 知道要做什么,以及要优先做什么; 工作有效率; 有问题或困难时,能得到客户、同事、上级的回答或帮助; 对工作做评估,并根据周围情况的变化及时重新评估; 积极承担工作,而不是消极接受分配; 一周40小时工作制,不加班。
软件开发过程可以包括以下6个阶段:计划 对所要解决的问题进行总体定义,包括了解用户的要求及现实环境,从技术、经济和社会因素等3个方面研究并论证本软件项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如计算机硬件、系统软件、人力等)成本,可取得的效益和开发进度作出估计。
制订完成开发任务的实施计划。
分析 软件需求分析就是回答做什么的问题。
它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言(形式功能规约,即需求规格说明书)表达出来的过程。
本阶段的基本任务是和用户一起确定要解决的问题,建立软件的逻辑模型,编写需求规格说明书文档并最终得到用户的认可。
需求分析的主要方法有结构化分析方法、数据流程图和数据字典等方法。
本阶段的工作是根据需求说明书的要求,设计建立相应的软件系统的体系结构,并将整个系统分解成若干个子系统或模块,定义子系统或模块间的接口关系,对各子系统进行具体设计定义,编写软件概要设计和详细设计说明书,数据库或数据结构设计说明书,组装测试计划。
设计 软件设计可以分为概要设计和详细设计两个阶段。
实际上软件设计的主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。
可以是一个函数、过程、子程序、一段带有程序说明的独立的程序和数据,也可以是可组合、可分解和可更换的功能单元。
模块,然后进行模块设计。
概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。
详细设计的首要任务就是设计模块的程序流程、算法和数据结构,次要任务就是设计数据库,常用方法还是结构化程序设计方法。
编码 软件编码是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的"源程序清单"。
充分了解软件开发语言、工具的特性和编程风格,有助于开发工具的选择以及保证软件产品的开发质量。
当前软件开发中除在专用场合,已经很少使用二十世纪80年代的高级语言了,取而代之的是面向对象的开发语言。
而且面向对象的开发语言和开发环境大都合为一体,大大提高了开发的速度。
测试 软件测试的目的是以较小的代价发现尽可能多的错误。
要实现这个目标的关键在于设计一套出色的测试用例(测试数据和预期的输出结果组成了测试用例)。
如何才能设计出一套出色的测试用例,关键在于理解测试方法。
不同的测试方法有不同的测试用例设计方法。
两种常用的测试方法是白盒法测试对象是源程序,依据的是程序内部的的逻辑结构来发现软件的编程错误、结构错误和数据错误。
结构错误包括逻辑、数据流、初始化等错误。
用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果。
白盒法和黑盒法依据的是软件的功能或软件行为描述,发现软件的接口、功能和结构错误。
其中接口错误包括内部/外部接口、资源管理、集成化以及系统错误。
黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。
黑盒法。
维护 维护是旨在已完成对软件的研制(分析、设计、编码和测试)工作并交付使用以后,对软件产品所进行的一些软件工程的活动。
即根据软件运行的情况,对软件进行适当修改,以适应新的要求,以及纠正运行中发现的错误。
编写软件问题报告、软件修改报告。
一个中等规模的软件,如果研制阶段需要一年至二年的时间,在它投入使用以后,其运行或工作时间可能持...
软件测试和软件开发哪个更好一点?
多了,开发可视化,实现高效率 软件已经渗透到我们身边的每个角落,汽车需要它来发动、飞机需要它来飞行、电话需要它来连接、医院的病人需要依靠它来帮助康复。
因此,软件正快速成为越来越多行业的竞争点。
特别是在电信、汽车、航天及军事领域。
加上许多市场的全球化和非正常化进程使得这种竞争异常激烈。
鉴于软件成为了现代社会的基础,在关键时刻不能失败成为绝对重要的头等大事。
更多、更快、更好的软件。
这就是我们面临的挑战。
同时,软件开发人员需要使用手工编程技术和有限的人力创造奇迹,结果就使软件开发周期拉的太长而且不灵活。
开发人员周旋于修改错误代码而不是集中精力在项目的体系结构和设计上,结果产品质量和最终交货时间都受到影响。
根据Standish Group International , Inc.2000 年的报告,23%的软件开发项目是失败的,49%是“被质疑的”—— 这些项目超时限、超预算或没有实现足够的功能。
在这种情况下,公司就会面临失去竞争优势和市场份额的巨大风险。
业界需要的是相对于以手工编码和以代码为中心的开发方法以外的另一种选择,否则他们就无法满足现今市场对开销、质量和产品周期的要求。
Telelogic TAU 第二代- 让你迈出下一步 幸运的是,业界已经在多年前就认识到,这种情况正变得无法忍受,已经启动了很多尝试,目的是要形成一个全新的、有能力且可靠的技术标准,可以帮助公司在现代系统和软件开发中迎接这些挑战。
业界已经期待很久了,现在这些技术已经首次出现在市场上了。
这是一套面向实时及其他复杂系统与软件开发的集成的、灵活的工具,即Telelogic TAU 第二代。
TAU 第二代包含三个最新的、最强大的技术用来加速大规模软件开发和测试:统一建模语言 (UML) 及它的许多最新修订版本中的特性,UML2.0 ; 功能强大的测试语言TTCN-3 和新的构造系统的方法:Model Driven Architecture (模型驱动构架)。
这三个新的业界标准结合成TAU 的已经过认可的软件开发平台,形成了一个系统,一个一流的稳定可靠的工具解决方案。
TAU 第二代是系统与软件开发解决方案的一个突破,它把业界从使用了太长时间的手工、易出错、以代码为中心的方法中释放出来,自然而然地迈向下一步,一个更加可视化、自动化及可靠的开发方法。
结果是如何呢?它改进了项目的可预测性,提高了质量,大大地缩短了开发周期,显著地节约了成本。
Telelogic TAU 第二代- 加速先进系统和软件开发 TAU 第二代是一套集成的工具集系列,能够简化、自动化及加速复杂系统和软件的开发。
使得TAU 鹤立鸡群的是它更着重于帮助用户解决大多数复杂实时系统和其他先进系统开发中的问题。
TAU 为项目经理、分析员、系统工程师、设计人员、开发人员及测试人员提供了一套集成的开发平台和许多独特性能。
一个共享的开发环境 现代开发项目的成功要依靠许多团队成员:系统分析员、软件设计师、编程人员、测试人员等。
TAU第二代可以让公司在整个开发组织中应用一个共享的工具环境,统一了团队并使项目延期、工作交接等风险降低到最小。
为不同用户群定制的工具 TAU 第二代提供一系列基于角色的工具,为不同项目成员的需求量身定制。
由于这一点,项目参与人员可以在合适的时间获得恰当的信息,这样就简化了开发环境并加速了日常工作。
而且,这一点可使公司不必为不需要的功能多付钱,同时又提供了全面的灵活性。
先进的UML 系统建模 TAU 第二代提供了一个先进的可视化建模环境,让工程师使用最新的业界标准可视化开发语言UML2.0 来无歧义地描述系统构架、设计和行为。
这一强大的新语言综合了传统编程的灵活性和建模语言的快速性。
为系统工程师和软件开发人员建立了一个“通用语言”,加强了沟通和协调能力。
基于模型的可视化验证和仿真 TAU 第二代支持模型驱动开发,用户只需专注于构架和设计而不是实现的细节。
不仅如此,使用TAU 第二代,开发人员还可以在开发的初期仿真系统。
系统的行为可以被跟踪和分析,让开发人员了解与纠正复杂的动态行为,并且这时发现与消除错误最容易,花费也最少。
最新的现代化用户界面 在TAU 第二代工具集中的所有工具都遵从最新的微软Visual Studio 用户界面模式,形成了一个熟悉的,容易学习并且高效的开发环境。
内置的即时语法和语义检查提高了质量,减少了错误并支持一种边学边用的方式。
自动生成应用程序 对于先进实时软件系统,TAU 第二代可以从可视化模型自动生成精简的产品级质量的应用程序。
这一功能包括生成完全C 代码的应用程序和扩展的C++应用程序,无论是通用系统,还是小的嵌入式系统,把工程师从烦躁的,容易出错的手工编程中解放出来,让他们专注于他们最擅长的工作:解决高层次的问题和增加新的有价值的功能。
强大的可扩展性和团队支持 今天的开发机构往往是分布式的,这对工具解决方案有很高要求。
TAU第二代包括对基于团队的开发的强大支持,如对基于组件开发方法的支持,灵活的文件存储结构,先进的图形比较和归并功能和与领先的配置管理系统的无缝集成。
还有,通过独到的方法,工具还允许用...
软件开发是什么呢?
你好!首先我得跟你说明,我是软件开发新手。
呵呵。
关于你的问题,似乎我可以说两句.英语数学好当然很好,因为电脑语言(特别是高级语言)接近人类语言(英语),这样将对电脑语言的感知非常有利。
数学好也是好事,对于一些工程软件,用到的主要是计算能力和数学知识,另外,我要提醒你的是物理,也就是逻辑思维。
虽然说起来好像很简单,但是对于一个庞大的软件来说,逻辑和层次却显得非常重要。
想想国外63KB能作出时长达2小时的动画文件,这才是精华,就像写文章一样,字数上千上万,结果都没写到主题,这样的文章有人看吗?还有,要想学好软件开发,一定要勤快。
多看,多练,多想。
这似乎是最重要的。
看看别人的代码,想想是怎么做出来的,你可不可以作得出来,除了这种办法还有没有其它更好的办法实现等等,没事多练练手,这样可以更有效的写程式。
总之,学软件开发不是心血来潮,头脑发热,一气呵成的事情。
不是说你今天开始学软件就代表你走上这条路了。
这条路很长,需要的是耐力,毅力,当然还需要天份。
就写这么多,希望对你有帮助。