当前位置: 首页 > 新闻中心 > 【正版书】软件开发大讲堂:visualc 从入门到精通第2版

【正版书】软件开发大讲堂:visualc 从入门到精通第2版

发布时间:2024-04-01 3:11:20

  1. 软件开发需要学习什么基础知识
  2. 软件开发都有哪些课程?
  3. 软件开发的基础知识

一、软件开发需要学习什么基础知识

1、基础知识

学习软件开发需要大量与数学、英语打交道,所以需要有一定的数学、英语基础。有了这个基础,学起来可以事半功倍。当然,对数学、英语的要求也没有想象中的那么高。

2、基础编程语言

编程语言是学软件开发的钥匙,初学者好根据自身的喜好或者职业规划选择语言。目前主流的编程语言包括java、php、.net、c#语言等,新手建议从c语言开始,是基础也实用的语言,之后也可以慢慢扩展。其实很多编程语言之间有所互通,比如数据类型、变量、常量等。在学习实践过程中,了解编程内涵,养成编程思维,这样跨语言学习会非常快。

3、数据库(sql server)知识

除了基础学习,数据库相关的也是必不可少的。数据的存储、调用在软件开发运行过程中必不可少

4、web相关知识

主要分为html、cs

经过这四个阶段,基本就掌握了完整的开发基础了。很多人可能会说,内容太多,无法全部掌握怎么办?不用担心,现在专业的软件开发公司,也是团队分工协作,跨语言、跨岗位非常少。如果有一些计算机编程基础,3个月就能打开软件开发的大门,如果是零基础,少需要一个月,而且软件开发更新速度比较快,需要跟着时代不断学习进步。

软件开发必备技能

1、熟练一门语言

熟练一门语言可以帮助你看懂前人的代码,熟悉语言的特性,用更好的方式实现功能,同时避免一些意外并且你认为神奇的错误。总而言之,熟练一门语言是你进入开发的第一步。

2、面向对象设计

为了应对软件开发中的面向对象设计思想,开发人员也需要学习一种面向对象的语言。

面向对象设计是一种设计复杂程序的方法,它将代码分成了单独的类和对象(类的实例),这些类和对象封装了一些特定的功能。

3、linux基础

开发都是基于类unix系统的,所以lunix必定需要接触,命令通用;而且几乎所有的后端服务器用的都是lunix系统,同时即使你只做前端,也需要很多的接触系统相关的东西。

4、源代码管理

管理源代码是任何软件开发项目不可或缺的组成部分。在使用源代码之前,应该有一个网络来共享项目的所有文件。

源代码管理工具最基本的功能,是保留软件项目中对文件所做更改的历史记录。它还允许多个开发人员同时处理相同的代码, 并将这些处理代码融合在一起。中国的软件行业规模不是很大,有些软件企业在软件制作上,也只是采用了一些软件工程的思想,距离大规模的工业化大生产比较还是有一定的差距;原因有管理体制的问题,市场问题,政策问题,也有软件工程理论不全面和不完善的问题。所以软件工程的研究和应用,以及中国软件行业的进一步发展,都需要一定的既有软件工程的理论基础和研究能力,又有一定的实践经验的软件工程科学技术人员来推动。软件工程的前途是光明的。

软件服务外包属于智力人才密集型现代服务业。大量著名外包企业落户宁波。主要就业去向包括软件外包与服务企业、信息产品与服务企业,担任程序员、软件测试员、项目经理等工作岗位。

软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量

二、软件开发都有哪些课程?

计算机科学与技术专业(软件工程方向、网络技术方向、信息安全方向) 主要课程: 汇编与接口技术、计算机组成原理、操作系统、数据结构、软件项目管理、软件测试技术、java高级程序设计、软件工程、电子技术、局域网与组网技术、tcp/ip与广域网、linux基础及技术、网络管理与维护、计算机网络与通信、数据库原理与应用、信息安全概论、现代密码学、入侵检测与安全扫描、计算机病毒原理与防治、信息安全技术、容错与可信恢复技术等。 就业方向:在企业、事业单位从事软件工程应用技术、计算机网络、信息安全等工作,或从事相关的教学科研工作。 2、电子信息科学与技术 主要课程:模拟和数字电路、高频电子线路、电子技术自动化、信号与系统、数字信号处理、通信原理、算法与程序设计、微机原理与接口技术、单片机应用、现代通信技术、传感器与测量技术等。 就业方向:毕业生可以到企事业单位、行政、教育部门从事研究、教学和信息的维护与管理工作;也可在现代制造业、通信行业、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程序也不愿花时间去肯那些苦涩的业务流程文档。所以在那家公司呆満一年后我辞职了。

我想,大部分程序员都想做一些相对技术含量高的开发工作,像那种整天与数据和数据

库打交道的开发工作,随便有点志向的程序员也不愿意去做,当然如果钱足够多的话我还是愿意的:)

但现在我发现我错了。因为这部分也是软件知识的一部分。就拿我目前的工作来说,技术上不会有太大的困难,但是蓝光规格以及其涉及到的规格相当的多,恐怕没有十年时间无法做到精通。这就是领域知识或说是行业知识。有些人一生只做一件事,还不一定能做好,而我现在只做了不到两年,虽觉时间不长但也不短,纵是一无所获。

所以,我觉得自己仍不是一名合格的开发者。软件开发的基础知识包括专业知识和行业

知识,如果基础知识不完整,那么这个程序员不会是一个合格且高效的程序员。