软件因计算机而存在,而计算机的实质是数学,所以计算机的知识本质上就是数学知识,
也可以这么说数学知识也是计算机的基础知识,计算机的基础知识也是软件的基础知识。在。软件发展的过程中,软件的知识也在慢慢地积累,很多软件知识与数学并无直接的联系,而。在这里我们所要说的就是纯软件的基础知识。
我们可以把软件的知识分为两个部分,专业技能知识和领域知识或说行业知识。
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语言,并不需要学习的太深,入个门就好,然后学习java 或是C#,这两个语言可以更快的见到成效,他们都有快速开发的,不过具体情况要看你自身,如果英语好点,可以更快掌握,如果不行,不要着急,经常使用即可
采纳哦
软件开发需要学习什么基础知识
可以通过以下方法解决问题:
1、电脑基础知识和开发软件开发语言基础知识。
关于软件技术的基础知识
软件技术是一个发展变化非常快的行业,软件人才要按照企业和领域需求来确定培养的方向,而针对高职学生,必须坚持以就业为导向的指导思想,强调其技能培养,注重课程安排的合理性。因此,我们一方面定期修订教学计划,保证课程设置与软件技术的发展基本同步,另一方面利用转、合、撤、拆的原则,降低专业课程中理论教学的比例,加强针对性和实用性,优化课程结构,形成合理的、科学的课程体系。
依据培养目标的要求,软件技术专业的课程包括公共课程、专业基础理论课程、专业课程、素质能力提高课程四个部分。
软件技术专业的基础理论课程旨在训练学生的逻辑思维、推理能力,掌握与软件技术关系密切的数学知识,掌握基本的计算机应用技能,以及编写程序的基本方法。为了加强软件技术中涉及的数学知识,从 04级开始将原来两学期的高等数学改为一学期高等数学、一学期计算机数学。目前所开设的基础理论课程包括:计算机数学、计算机导论、操作系统、数据结构。
专业课程由以下三部分组成:
1)编程语言课程(包括Microsoft公司Windows平台开发技术和SUN公司的Java开发技术)
2)支撑课程(如数据库技术、网络技术、XML等)
3)专业技能提高和扩展课程(如软件工程、UML、测试技术等)
对于三年制班与二年制班,由于教学时间及生源上的差别,在课程设计及教学内容上都有所不同。
1、三年制班级(普高生)
主干专业课程均配有相应的课程设计,并且实践教学的课时比例超过了 50%。在课程设置上,对于专业课程进行优化组合,将横向联系密切的课程安排在同一学期,并开设配套的综合性实训课程,以培养学生综合运用知识的能力,学期之间则形成课程链路,以逐步完成职业技能的学习。如第三学期所开设的J2EE、SQL SERVER,以及与之相对应的综合性实训课程(开发SQL SERVER为后台数据库的J2EE应用系统)。
2、二年制班级
根据二年制教学需要,制定了二年制教学计划,为保证减少教学时间的同时,完成专业教学任务,采取以NIIT的核心课程体系(消化吸收迁移其课程模式,自主知识产权的教材/讲义开发)中的技术路线为主线,在通识课程、技术基础课程、毕业设计等环节进行教学计划上整合。一方面,改革目前公共文化课程的设置方法,采用灵活的教学机制,公共课与专业课在整个学制内交错,以便专业课可以前移;另一方面,以一条技术路线(.NET技术)贯穿整个教学计划,以循序渐进的阶段形式递进,主要分为四个阶段:非可视化编程阶段、可视化编程阶段、WEB应用开发及技能提高阶段以及综合实践训练阶段。课程设计上,整合计算机导论、数据结构等技术基础课程,以整合、化整为零为主要办法,一些专业课程则采用了专题形式安排课程,如统一建模语言则涵盖了软件工程、UML使用、UML应用等专题。
学软件开发的基础是什么
没有基础的人,如何学习软件开发? 软件开发之路是充满荆棘与挑战之路,也是充满希望之路。软件学习也是如此,没有捷径可走。
今天我们来谈谈如何学习,希望大家"不走弯路,就是捷径"。
一般学习软件开发都会首先学习一门语言,Java被称为最好的面向对象语言,让我们来看看Java的学习路线。
1 基础语法及JAVA原理
基础语法和JAVA原理是地基,地基不牢靠,犹如沙地上建摩天大厦,是相当危险的。学习JAVA也是如此,必须要有扎实的基础,你才能在J2EE、J2ME领域游刃有余。
2 OO思想的领悟
掌握了基础语法和JAVA程序运行原理后,我们就可以用JAVA语言实现面向对象的思想了。面向对象,是一种方法学;是独立于语言之外的编程思想;是基于组件开发的基础;属于强势技术之一。现在还有AO技术。是OO技术的一种补充。
3 基本API的学习
进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的"不需要重新发明轮子"。我们可以利用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。那么这些类中究竟提供了哪些方法给我们使用?方法的参数个数及类型是?类的构造器需不需要参数?总不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。
4 开发工具的用法
在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对JAVA技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。JAVA开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。
5 学习开源软件的设计思想
JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归,你心甘吗?对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。
6 不局限于JAVA
JAVA不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知
软件技术基础知识总结
不知不觉中9周的《软件技术基础》 这门课课已经结束了,虽然时间有点短, 但这九个星期的学习中我却受益匪浅, 不仅让我系统的了解了许多计算机软件相关的基础知识和一些常用的系统软件, 还让我有了更科学的方法去分析一些软件方面的问题,这对于我今后的学习和工作都是有很大帮助的。 下面来谈谈我对学习这门课的一点点心得。 首先,我们认识到了计算机对现在社会、生活的影响之重,我们要想灵活的应对以后生活中的各种问题,拥有一个好的计算机技术必不可少的,而要想真的学好计算机技术,我们首先就得对计算机的操作、工作原理和规则等有一个清晰的认识。 如今仅仅掌握计算机语言并不能有效地使用计算机,我们必须掌握数据结构和算法方面的知识才能应对众多复杂的应用课题。刚开始学习数据结构时感觉它很抽象,而且感觉它没多大用处,后来发现不然,我们学习的是一些方法、思维,只有学会了这些我们才能解决一些非数值运算的程序设计方面的问题。 以前我们用过数据库比如Access,但我们只是很基础的应用它们,并不懂它的创建和工作原理,自从学习了这门课,我才初步了解了数据处理和数据管理方面的一些知识,并学到了
SQL语言的一些基础知识,这对我以后更深层次的学习计算机技术打下了一个基础。
虽然这门课程已经结束,我们学到的也是很基础的一部分,但它对我们影响很深,让我们以后学习更简单了。当然我仍会继续学习各种关于计算机技术方面的知识,让自己有一个过硬的技术,去应对各方面的问题
软件技术需要什么基础?
很多人都认为,要从事IT行业的难度比较大,必须要有一定的编程基础,英语及数学能力才能学好这门课。数学基础不好不代表你的逻辑能力不好,因为数学重点在于后天的培养。以前没学好可能是学习方法不对或没有兴趣。其实后期学习中很少涉及数学的具体知识,那就不存在因为数学不好而影响学习软件开发了。至于英语,计算机中有一些常用的命令,会涉及到一部分英语知识,总共就5、600个单词,只要你掌握好了,记住这些单词,会应用就可以了,不需要你的英语水平多高。况且老师反复的讲,让你们反复的练,不需要特别记忆,自然而然就记住了。咱们针对于没有基础的同学也会在正式开课前开设预科班,给大家普及JAVA基础,咱们这边有挺多跟你情况类似的学生,过来之后都学的很好,相信你也一定可以的。 一哥
采纳哦
零基础学习软件开发需要掌握哪些基础知识
对于初学者,建议从基础的C语言入门,C语言作为基础语言,大多数的高级编程语言都是从C语言的基础上改进而来的,而且,高级编程语言种类繁多,不同的开发需要的编程语言也不同,在选择高级编程语言之前还要选择自己的技术方向,在没有选择技术方向之前,建议还是从C语言开始掌握。学习C语言推荐谭浩强老师的C语言教材,是一本很好的入门教材。学习中还应当重视实际操作的重要性,多练习。
转载请注明出处51数据库 » 软件开发的技术基础知识 软件开发的基础知识