软件开发的基础知识
软件因计算机而存在,而计算机的实质是数学,所以计算机的知识本质上就是数学知识,也可以这么说数学知识也是计算机的基础知识,计算机的基础知识也是软件的基础知识。
在。
软件发展的过程中,软件的知识也在慢慢地积累,很多软件知识与数学并无直接的联系,而。
在这里我们所要说的就是纯软件的基础知识。
我们可以把软件的知识分为两个部分,专业技能知识和领域知识或说行业知识。
1,专业技能知识 一门编程语言及库 你可以在书店里找到各色各样的关于编程方面的书籍,但是我建议你只需要深入地掌握 一门便可,而且任何程序员都需要熟悉C语言。
你所深入掌握的语言可有多种选择。
如果你从事的是驱动程序开发,我想必须要掌握汇编语言,C语言也是个不错的选择,而如果是做UI的话C++也许更好,Java语言比较适合网络程序的开发,当然JavaScript在google肯定很受推崇。
对于程序员来说,编程语言就相当于游侠手中的武器,可以是长剑,也可是以是短剑,可以是大刀,也可以是匕首。
这些武器各有所长,而要发挥这些武器的长处必须基于一套路数上,那么对于程序员来说就是基于某一种编程语言的代码库。
如GNUC的库就是libc或ulibc。
如果你是用C语言,而且你是在类UNIX平台下开发,那么你就必须正确理解libc的工作原理,你代码里所调用的每一个函数的输入与输出,可能的错误,可能的歧义,对系统可能产生的影响。
比如某一个函数是否是可再入的,还是不可再入的,如果出现了多线程同时调用的情况会发生什么错误等等细节上的问题。
一种编程思想 全世界都惊叹于***的领导和军事才能,而在他的才能表象之后是什么,是他的革命 精神,是他的睿智的思想。
编程也一样,如果没有了编程思想就没有了指导前进的动力,就没有了创造的灵感的土壤。
软件知识发展到现在比较常用的编程思想就是结构化(模块化)和面向对象化(设计模式)。
有些语言是在模块化大行其道的历史背景下被发明出来的,如C语言,而有些语言则是为了满足面向对象的编程思想而构造出来的,如C++。
有一部分程序员会认为C语言是结构化的编程语言无法实现面向对象的编程思想。
其实不然,C语言同样可以很好地实现面向对象的编程思想,只不过有些面向对象的工作由程序员来做而已。
同样,面向对象的编程语言也可以用于写模块化的程序。
一种信仰 就我所接触过的系统里,Windows我只会安装,使用,VC/VB也只能做一些简单的开发,而MACOS体验过一次安装,不过最终还是失败了,iPhone的系统还没有机会体验过。
曾经在AIX下做过开发,目前正在Fedora9下做开发,目标板的CPU是SH4,将来也可能是MIPS。
不管是MACOS,Windows,UNIX,Linux等都有各自的追随着,我把这种现像称为信仰。
就拿我自己来说,我信仰Linux,Linux内核的源代码对于我来说就是神话。
我觉得在Linux下工作是一件很娱悦的事情。
如果你每每解决一些比较棘手的问题,都会 有一种成就感,这是在Windows平台下感受不到的。
所以对于这一信仰,我觉得至少需要知道它的安装,启动,配置,安全,如引导程序GRUB,ftp,telnet,sshd,smbd,named等等服务器的配置,网络安全的配置等等。
如果你要在Linux下进行开发,你必须了解Linux的API,标准库,也就是libc。
如果你 的程序是多线程的,你还得掌握libpthread.so里的函数使用方法。
GCC,GDB,LD,AS,AR,以 及Makefile和make等等工具的使用。
如果你能掌握find,awk,sed,grep,od,nm,objdump 等实用工具的话,将会大大提高你的工作效率。
这,就是我的信仰。
总之一句话,一种编程语言及库,一种编程思想和一种信仰。
一切OK! 2,领域知识/行业知识 我记得我的第一份工作是银行的交易开发程序员,当时是一家外包公司把我外派到工商 银行,我对工商银行的业务一无所知。
不过初出茅庐不怕虎,硬是一个人完成了一个我一无所知的项目,而仅凭我对自己技术实力的自信。
但事后我却有些后怕,因为我并不明白,为什么那个整数要乘以个0.456存入到数据库,也不知道银行对数据的精确度是多大,等等细节上的问题我一无所知。
那我只能求上天保佑,哪天不要多扣了人家的钱,天啊,这事我也做了?!当然不至于那么严重:) 后来我确实发现自己对于银行这套业务系统了解起来比较吃力,我宁愿花点时间写些小 的C程序也不愿花时间去肯那些苦涩的业务流程文档。
所以在那家公司呆満一年后我辞职了。
我想,大部分程序员都想做一些相对技术含量高的开发工作,像那种整天与数据和数据 库打交道的开发工作,随便有点志向的程序员也不愿意去做,当然如果钱足够多的话我还是愿意的:) 但现在我发现我错了。
因为这部分也是软件知识的一部分。
就拿我目前的工作来说,技术上不会有太大的困难,但是蓝光规格以及其涉及到的规格相当的多,恐怕没有十年时间无法做到精通。
这就是领域知识或说是行业知识。
有些人一生只做一件事,还不一定能做好,而我现在只做了不到两年,虽觉时间不长但也不短,纵是一无所获。
所以,我觉得自己仍不是一名合格的开发者。
软件开发的基础知识包括专业知识和行业 知识,如...
软件开发怎么学,要什么基础
首先要说的是 计算机专业是个好专业 前景很好 如果你看不到好的前景 只能说明你层次和实力不够 而不是计算机学科的问题 因为现在是个学校它就能够开计算机专业 平时如果你有足够的时间和精力想入门 我推荐一本书,绝对适合你:C程序设计 (清华大学出版社,谭浩强主编) 先吃透此书 此书适合入门并且立志投身计算机专业的学生非常经典的教材 国外的教材也好 但是高中阶段时机不成熟 不具备良好的英文阅读材料 当然 你是NB人的话另当别论 培养对计算机兴趣的话可以做个FLASH动画片,用PHOTOSHOP玩个图片之类的,可以增强信心.切记以数理化英语为重点 千万不要为了计算机连大学不上 这就有点偏激了哈 接下来说重点:基础课很重要 如果你侧重软件方面,例如软件开发,软件测试,等等以下课程务必用心学好 离散数学(核心基础课) 高等数学 线性代数 概率统计 数据结构(核心基础课) 算法设计 (核心基础课) 操作系统 C程序设计(核心基础课) 以及精通一门面向对象语言(例如C++,JAVA等) 汇编语言程序设计 在软件里如果是网络安全(对数学功底要求很高) 则增加:网络技术(核心基础课) LINUX操作系统以及信息编码 如果你侧重硬件方面 例如嵌入式系统,计算机体系结构等等 那么以下基础课程务必用心学好 离散数学(核心基础课) 数据结构(核心基础课) 操作系统 C程序设计(核心基础课) 以及精通一门面向对象语言(例如C++,JAVA等) 数字电路(核心基础课) LINUX(此操作系统必须熟练掌握) 计算机组成原理(核心基础课) 微型计算机原理与接口技术 汇编语言程序设计 (注:国外的经典教材比我们国家自己的大学教材要好的多,除过极个别经典教材外) 如果你分软硬确定的话 以上课程能够很好的掌握 说实话你内功基本上就差不多了 内功一旦练好 那么什么什么基于LINUX下的ARM处理器开发,什么.NET等等看似花哨的东西 其实完全是切菜 什么感觉?就比如你是一个英国人 做我们中国学生高考的英语阅读理解一样 感觉很轻松~~~既然轻松了 自己硬了 那么其他之事是水到渠成的 (例如就业,创业等等) 千万不能好高骛远 上面基础打不好 那个流行学那个 以后你会慢慢体会到学习和运用工具的艰难之处 例如 可能你学概率统计的时候感觉没什么用 但是当你面对一个真正的开发实例时,你会发现数学工具是那么的好,而且是那么的有用。
还有一重点 数学并不是对计算机相当重要 因为计算机硬件方向对数学方面的要求不时很高 看个人的资历如何.但,英语很重要,一定要相当重视. 还有就是 不管学软硬件 一定要动手去做 动手去尝试 哪怕失败 一定要积累经验 很重要!!! PS :口吃对于计算机专业的学生来说不用担心.因为它主要是人和机器间的交流,而不时人与人之间的交流,因此,坦然面对,拥有信心.补充:目前,高端的三维CAD系统主要包括UG NX、CATIA、PRO-E。
中端主流的三维CAD系统主要包括SolidWorks、SolidEdge、Inventor。
国产的三维 CAD系统有Solid3000和CAXA实体工程师。
而我国流行的二维CAD系统主要包括AutoCAD、CAXA、中望、浩辰等。
软件开发要从什么开始学
展开全部 一、重视基础课的学习计算机虽然是高科技的象征,但又受到其它专业发展的制约。
计算机专业知识的学习同样要加强一些相关知识的学习。
计算机学习过程往往是由硬件开始,走向软件,但最终又会走向硬件。
一个软件开发高手非常注重程序效率,而效率却往往与计算机硬件知识是紧密相关。
因此高等数学、离散数学、线性代数等数学知识的学习也有一定需求。
尤其是软件开发高手,开发过程会涉及数学方面往往会更多一些。
要自始自终地加强英语的学习。
因为目前的计算机程序设计语言主要是外国开发的,编代码的主要语句往往是英文,中文通常是做解释和说明用。
有一定的英文基础,在计算机学习上可以事半功倍。
二、重视编程基本功的学习学习软件需要什么?一个优秀的程序员也不是十天半个月就能够造就出来的,必须要扎扎实实学好编程基础知识,要经历一个漫长且辛苦的学习和程序开发过程。
因此计算机专业学生,首先要做好吃苦的准备。
当我们在学习一些基础课如java,C语言等,我们会感觉到似乎这些没什么大作用,这些近似于低级语言的东西好像再努力也难成大器呀!计算机教育应该重视代码编程的教育,专业学生也不能忽视代码开发的学习。
如果你要问C语言这种代码开发功能具有多大的用处,大名鼎鼎的UNIX操作系统就是使用C语言书写的。
而且我们玩的所有游戏几乎也是使用C语言编写的。
学习C语言的难度比学习汇编语言的难度小多了,而且C语言是一门“必修课”所以每一位立志成为电脑编程者的用户都必须征服C语言这座山峰。
三、 理论联系实践学习编写程序,不仅要领悟老师的各种知识点,多看教材,还要结合课程重视上机的练习。
很多学生在理解老师知识点和看教材上花了很多时间,却不重视上机的练习,最终会走向“书呆子”类,很难在软件开发中占有一席之地。
在看教材、听课的同时,要将知识点在上机过程中做第二消化,这样便比光消化课本会强得多。
当然每次上机应该做好准备,很多学生是无目标的上机,其学习效率当然会很低。
上机前要计划一下上机做些什么,要有一些新思路来设计和调试程序。
只有在上机过程中不断发现问题,解决问题,才能逐步迈向程序员之路。
又一些同学光重视上机,忽视理论的学习,这些同学刚开始好像进步快,但到了一定的层次,就会停滞不前了。
因此,实操要与理论同步,紧密结合,方可为编程打下扎实的基础。
总结学习软件需要什么?软件编程需要实践。
四、 深入学习,练就高手经过一定时间的学习、实践,你已经具备了较扎实的计算机编程方法和技巧。
正因为你有了上面的基础,学习起新的语言来更是轻车熟路。
总之,学习软件需要什么?实际和其他的一些技术错不多,只要你肯吃苦,没什么学不成的,所以只有想不到没有做不到,告诫软件爱好着要想掌握它,就要实践、实践、再实践。
当学到了一种新的技术或知识时,多实践是巩固学习的一种最好最有效的方法。
软件开发基础是零,需要学习什么?
有毅力可以自学,没有得到还是报个班吧(青鸟什么的),报班有老师教和解答问题,有同学烘托气氛,学的快。
自学的话先从C或C++开始吧,选学学基础的逻辑。
学完基础就要想想学什么语言了,现在比较多的是Web,可以学Java,.net,Php等,还要学Html和JScript等网页界面语言。
也可以学C/S的,如QQ、360这样的软件,语言有C++和C#,都不错,只不过WEB的越深越偏向现实的业务逻辑,什么ERP、OA之类,而C/S越深一般越偏向架构,因为C/s的架构和传输大多都是自己写的。
之后还有驱动和算法之类的,做这个的挣的比较多,也比较有难度,但是招的人少,没工作经验很难找到好点的工作。
计算机专业基础课程
如果只是想做个一般的HACKER,那就先学学一些工具的应用。
然后搞清楚一些基本的东西,比如端口,比如简单的漏洞,什么端口对应什么漏洞……但是如果你想更深层的学习,就必须掌握网络基础,建议你报个网络基础的班,把基础打好。
起码你要知道网络是怎么搭建的,那些东西能用,那些不能用...其次就是编程了。
一个高深的hacker必须掌握的语言就是汇编,因为大多操作系统都会用到,所以…………就算是天书,也要啃上以啃.给你推荐两本书:《80x86汇编语言程序设计教程》《Inside Windows 2000》。
不要一味的看教程,不懂的及时弄清楚。
其实干什么都是贵在坚持,只要你能坚持下去,就一定能成功的。
上面的可能不够详细,那我再给你粘一份吧..:Hacker初学者2007年06月21日 星期四 03:29 P.M.【Hacker初学者应懂得】 我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。
我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。
而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。
C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。
96,97级的不少大学生都去做Web 了。
当然我没有任何歧视某一行业的意识。
我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远的。
几个误区:初学者对C#风潮的追赶其实也只是学习过程中经常遇到的几个误区之一。
我将用一些实际的例子来说明这些现象,你可以按部就班的看看自己是不是属于其中的一种或者几种:认为计算机技术等于编程技术: 有些人即使没有这个想法,在潜意识中也有这样的冲动。
让我奇怪的是,许多信息学院的学生也有这样的念头。
认为计算机专业就是编程专业,与编程无关的,或者不太相关的课程他统统都不管,极端的学生只要书上没带“编程”两个字他就不看。
其实编程只是计算机技术应用过程中一种复杂性最低的劳动,这就是为什么IT业最底层的人是程序员(CODER)。
计算机技术包括了多媒体,计算机网络,人工智能,模式识别,管理信息系统等等这些方面。
编程工作只是在这些具体技术在理论研究或者工程实践的过程中表达算法的过程。
编程的人不一定对计算机技术的了解就一定很高。
而一个有趣的现象是,不少大师级的计算机技术研究者是不懂编程的。
网上的炒作和现实中良好的工作待遇把编程这种劳动神秘化了。
其实每一个程序员心里都明白,自己这些东西,学的时候并不比其它专业难,所以自然也不会高档到哪里去。
咬文嚼字的孔已己作风: 我见过一本女生的《计算机网络原理》教材,这个女生象小学生一样在书上划满了横杠杠,笔记做得满满的,打印出来一定比教材还厚。
我不明白的是,象计算机网络原理这样的课程有必要做笔记?我们的应试教育的确害了不少学生,在上《原理》这一类课程的时候许多学生象学《马列原理》一样逐字背诵记忆。
这乃是我见过的最愚蠢的行为。
所谓《原理》,即是需要掌握它为什么这样做,学习why,而不是how(怎样做)。
极端认真的学生背下以太网的网线最大长度,数据帧的长度,每个字段的意义,IP报头的格式等等,但是忘了路由的原则,忘了TCP/IP协议设计的宗旨。
总之许多人花了大量的时间把书背得滚瓜烂熟却等于什么也没学。
在学习编程的时候这些学生也是这样,他们确切的记得C++语法的各个细节。
看完了C++教程后看《Thinking in C++》(确实是好书),《Inside C++》,《C++ reference》,this C++, that C++……,然后是网上各种各样的关于C++语法的奇闻逸事,然后发现自己又忘了C++的一些语法,最后回头继续恶补…。
有个师弟就跟我说:“C++ 太难了,学了这里忘了那里,学了继承忘了模板。
”我的回答道:“你不去学就容易了”。
我并没有教坏他,只是告诉他,死抠C++的语法就和孔已己炫耀茴香豆的茴字有几种写法一样毫无意义。
你根本不需要对的C++语法太关心,动手编程就是了,有不记得的地方一查MSDN就立马搞定。
我有个结论就是,实际的开发过程中对程序语法的了解是最微不足道的知识。
这是为什么我在为同学用Basic(我以前从没有学过它)写一个小程序的时候,只花了半个小时看了看语法,然后再用半个小时完成了程序,而一个小时后我又完全忘记了Basic 的所有关键字。
不顾基础,盲目追赶时髦技术:终于点到题目上来了。
大多数的人都希望自己的东西能够马上跑起来,变成钱。
这种想法对一个已经进入职业领域的程序员或者项目经理来说是合理的,而且IT技术进步是如此的快,不跟进就是失业。
但是对于初学者来说(尤其是时间充裕的大中专在校生),这种想法是另人费解的。
一个并未进入到行业竞争中来的初学者最大的资本便是他有足够的时间沉下心来学习基础性的东西,学习why 而不是how。
时髦的技术往往容易掌握,而且越来越容易掌握,这是商业利益的驱使,为了最大化的降低软件开发的成本。
但在IT领域内的现实就是这样,越容易...
软件开发的基础知识
展开全部 软件因计算机而存在,而计算机的实质是数学,所以计算机的知识本质上就是数学知识,也可以这么说数学知识也是计算机的基础知识,计算机的基础知识也是软件的基础知识。
在。
软件发展的过程中,软件的知识也在慢慢地积累,很多软件知识与数学并无直接的联系,而。
在这里我们所要说的就是纯软件的基础知识。
我们可以把软件的知识分为两个部分,专业技能知识和领域知识或说行业知识。
1,专业技能知识 一门编程语言及库 你可以在书店里找到各色各样的关于编程方面的书籍,但是我建议你只需要深入地掌握一门便可,而且任何程序员都需要熟悉C语言。
你所深入掌握的语言可有多种选择。
如果你从事的是驱动程序开发,我想必须要掌握汇编语言,C语言也是个不错的选择,而如果是做UI的话C++也许更好,Java语言比较适合网络程序的开发,当然JavaScript在google肯定很受推崇。
对于程序员来说,编程语言就相当于游侠手中的武器,可以是长剑,也可是以是短剑,可以是大刀,也可以是匕首。
这些武器各有所长,而要发挥这些武器的长处必须基于一套路数上,那么对于程序员来说就是基于某一种编程语言的代码库。
如GNUC的库就是libc或ulibc。
如果你是用C语言,而且你是在类UNIX平台下开发,那么你就必须正确理解libc的工作原理,你代码里所调用的每一个函数的输入与输出,可能的错误,可能的歧义,对系统可能产生的影响。
比如某一个函数是否是可再入的,还是不可再入的,如果出现了多线程同时调用的情况会发生什么错误等等细节上的问题。
一种编程思想 全世界都惊叹于***的领导和军事才能,而在他的才能表象之后是什么,是他的革命精神,是他的睿智的思想。
编程也一样,如果没有了编程思想就没有了指导前进的动力,就没有了创造的灵感的土壤。
软件知识发展到现在比较常用的编程思想就是结构化(模块化)和面向对象化(设计模式)。
有些语言是在模块化大行其道的历史背景下被发明出来的,如C语言,而有些语言则是为了满足面向对象的编程思想而构造出来的,如C++。
有一部分程序员会认为C语言是结构化的编程语言无法实现面向对象的编程思想。
其实不然,C语言同样可以很好地实现面向对象的编程思想,只不过有些面向对象的工作由程序员来做而已。
同样,面向对象的编程语言也可以用于写模块化的程序。
一种信仰 就我所接触过的系统里,Windows我只会安装,使用,VC/VB也只能做一些简单的开发,而MACOS体验过一次安装,不过最终还是失败了,iPhone的系统还没有机会体验过。
曾经在AIX下做过开发,目前正在Fedora9下做开发,目标板的CPU是SH4,将来也可能是MIPS。
不管是MACOS,Windows,UNIX,Linux等都有各自的追随着,我把这种现像称为信仰。
就拿我自己来说,我信仰Linux,Linux内核的源代码对于我来说就是神话。
我觉得在Linux下工作是一件很娱悦的事情。
如果你每每解决一些比较棘手的问题,都会有一种成就感,这是在Windows平台下感受不到的。
所以对于这一信仰,我觉得至少需要知道它的安装,启动,配置,安全,如引导程序GRUB,ftp,telnet,sshd,smbd,named等等服务器的配置,网络安全的配置等等。
如果你要在Linux下进行开发,你必须了解Linux的API,标准库,也就是libc。
如果你的程序是多线程的,你还得掌握libpthread.so里的函数使用方法。
GCC,GDB,LD,AS,AR,以及Makefile和make等等工具的使用。
如果你能掌握find,awk,sed,grep,od,nm,objdump等实用工具的话,将会大大提高你的工作效率。
这,就是我的信仰。
总之一句话,一种编程语言及库,一种编程思想和一种信仰。
一切OK! 2,领域知识/行业知识 我记得我的第一份工作是银行的交易开发程序员,当时是一家外包公司把我外派到工商银行,我对工商银行的业务一无所知。
不过初出茅庐不怕虎,硬是一个人完成了一个我一无所知的项目,而仅凭我对自己技术实力的自信。
但事后我却有些后怕,因为我并不明白,为什么那个整数要乘以个0.456存入到数据库,也不知道银行对数据的精确度是多大,等等细节上的问题我一无所知。
那我只能求上天保佑,哪天不要多扣了人家的钱,天啊,这事我也做了?!当然不至于那么严重:) 后来我确实发现自己对于银行这套业务系统了解起来比较吃力,我宁愿花点时间写些小的C程序也不愿花时间去肯那些苦涩的业务流程文档。
所以在那家公司呆満一年后我辞职了。
我想,大部分程序员都想做一些相对技术含量高的开发工作,像那种整天与数据和数据库打交道的开发工作,随便有点志向的程序员也不愿意去做,当然如果钱足够多的话我还是愿意的:) 但现在我发现我错了。
因为这部分也是软件知识的一部分。
就拿我目前的工作来说,技术上不会有太大的困难,但是蓝光规格以及其涉及到的规格相当的多,恐怕没有十年时间无法做到精通。
这就是领域知识或说是行业知识。
有些人一生只做一件事,还不一定能做好,而我现在只做了不到两年,虽觉时间不长但也不短,纵是一无所获。
所以,我觉得自己仍不是一名合格的开发者。
软件开发的基础知识包括专业知识和行业知识...
零基础学习软件开发需要掌握哪些基础知识
对于初学者,建议从基础的C语言入门,C语言作为基础语言,大多数的高级编程语言都是从C语言的基础上改进而来的,而且,高级编程语言种类繁多,不同的开发需要的编程语言也不同,在选择高级编程语言之前还要选择自己的技术方向,在没有选择技术方向之前,建议还是从C语言开始掌握。
学习C语言推荐谭浩强老师的C语言教材,是一本很好的入门教材。
学习中还应当重视实际操作的重要性,多练习。
软件开发的基础是什么?
软件开发是生产制造软件;软件测试是验证开发出来软件的质量。
类比传统加工制造企业,软件开发人员就是生产加工的工人,软件测试人员就是质检人员。
关系应该是:1、没有软件开发就没有测试,软件开发提供软件测试的对象。
2、软件开发和软件测试都是软件生命周期中的重要组成部分3、软件开发和软件测试都是软件过程中的重要活动。
4、软件测试是保证软件开发产物质量的重要手段。
###嗨,这个还用问么,软件测试是软件开发的一个子过程,软件在经历了“业务前景分析”、“需求分析”、“总体设计”、“详细设计”、“实现”后紧接着就是“测试”、“发布”、“维护”等等软件测试现在也成了软件工程的一个方向,也有很多这方面的考试和岗位。
###一个是创造一个是找毛病###软件开发的内容是:需求、设计、编程和测试!软件开发包括测试又不全包括
转载请注明出处51数据库 » 软件开发 专业基础课
n薋-堏