程序设计 2010年06月29日
程序设计=数据结构+算法
程序设计(Programming)是指设计、编制、调试程序的方法和过程。它是目表明确的智力活动。因为程序是软件的本体,软件的质量重要通过程序的质量来体现,在软件研究中,程序设计的工作异常重要,内容涉及到有关的基本概念、工具、方法以及方法学等。程序设计通常分为问题建摸,算法设计,编写代码和编译调试四个阶段。
按照结构性质,有结构化程序设计与非结构化程序设计之分。前者是指具有结构性的程序设计方法与过程。它拥有由基本结构形成复杂结构的档次性,后者反之。按照用户的要求,有过程式程序设计与非过程式程序设计之分。前者是支使用过程式程序设计语言的程序设计,后者指非过程式程序设计语言的程序设计。按照程序设计的成分性质,有顺序程序设计、并发程序设计、并行程序设计、分布式程序设计之分。按照程序设计作风,有逻辑式程序设计、函数式程序设计、对象式程序设计之分。
程序设计的基本概念有程序、数据、子程序、子例程、协同例程、模块以及顺序性、并发性、并行性、和分布性等。程序是程序设计中最为基本的概念,子程序和协同例程都是为了便于进行程序设计而建立的程序设计基本单位,顺序性、并发性、并行性和分布性反应程序的内在特征。
程序设计规范是进行程序设计的具体划定。程序设计是软件开发工作的重要部分,而软件开发是工程性的工作,dota 结果用鸟去买完遗物,所以要有规范。语言影响程序设计的功效以及软件的牢靠性、易读性和易维护性。专用程序为软件人员提供合适的环境,便于进行程序设计工作。
程序设计语言 (Programming Language)
是用于编写计算机程序的语言。语言的基础是一组记 和一组规矩。根据规则由记 构成的记 串的总体就是语言。在程序设计语言中,这些记 串就是程序。程序设计语言包含三个方面,即语法、语义和语用。语法表示程序的结构或形式,亦即表示构成程序的各个记 之间的组合规则,但不涉及这些记 的特定含义,也不涉及使用者。语义表示程序的含意,亦即表示按照各种方法所表示的各个记 的特定含义,但也不涉及使用着,语用表示程序与使用的关系。
程序设计语言的分类 程序设计语言的基本成分有:①数据成分,用于描述程序所波及的数据;②运算成分,用以描写程序中所包含的运算;③把持成分,用以描述程序中所包含的节制;④传输成分,用以表白程序中数据的传输。
程序设计语言程序设计 程序设计语言 盘算机 IT依照语言级别可以分为初级语言和高级语言。低级语言有机器语言和汇编语言。低级语言与特定的机器有关、功能高,但使用庞杂、繁琐、费时、易出错误。机器语言是表示成数码情势的机器基本指令集,或者是操作码经由符 化的根本指令集。汇编语言是机器语言中地址部门符 化的成果,或进一步包含宏结构。高等语言的表示方法要比低级语言更濒临于待解问题的表示办法,其特色是在一定水平上与详细机器无关,易学、易用、易保护。
程序设计语言按照用户的要求有过程式语言和非过程式语言之分。过程式语言的主要特点是,用户可以指明一列可顺序履行的运算,以表示相应的计算过程,如FORTRAN、COBOL、PASCAL等,情感 现在想想啥也~。
按照顾用规模,有通用语言与专用语言之分。如FORTRAN、COLBAL、PASCAL、C语言等都是通用语言。目的单一的语言称为专用语言,如APT等。
按照使用方式,有交互式语言和非交互式语言之分。具有反映人机交互作用的语言成分的语言成为交互式语言,如BASIC等。不反映人机交互作用的语言称为非交互式语言,如FORTRAN、COBOL、ALGOL69、PASCAL、C语言等都长短交互式语言。
按照成分性质,有顺序语言、并发语言和散布语言之分。只含次序成分的语言称为顺序语言,如FORTRAN、C语言等。含有并发成分的语言称为并发语言,如PASCAL、Modula和Ada等。
程序设计语言是软件的重要方面,其发展趋势是模块化、扼要化、形式化、并行化和可视化。
竞争给予了每个人同样的机会,竞争会带走弱者,留下强人。如果不想被淘汰,你独一的办法就是要比别人强。
因为不少企业都会裁员,无论是为了缓解经济压力,解除企业面临的生存危机,仍是因业务变化而导致内部组织机构重组,裁员目的都是为了使企业运行更加高效,赢取更多利润。作为一名一般员工,你又以什么来迎接随时可能呈现的职业危机呢
智联招聘人力资源专家表示,面对裁员浪潮,职场人首先要通过各种门路提高个人综合能力,此外,选择职业前景好、寿命长的行业,也能帮助求职者防止职业生涯中可能出现的危机。
据懂得,游戏行业在海内正处于成长期。企业对游戏行业的日益器重带动了游戏人员需求的激增,然而由于我国游戏行业起步较晚,专业人才造就道路尚不健全,每年培养的专业人才不到万人,与IT企业宏大的人才需求量比拟简直是百里挑一,游戏专业人才供需涌现严峻失衡。据智联招聘调查数据显示,目前我国游戏行业人才需求量已冲破60万人并逐年扩展,有实力、有经验的游戏行业人员更是备受京、沪、粤三地游戏企业青眼。
业内人士表现,企业的竞争方法已经在朝以各类资源整合为目标的购并、重组和同盟改变。在这所有举动的背地,人才将成为企业关注的焦点。
相关行业消息 游进入高速发展期 游戏行业就业机遇大增 游戏专业人才缺口大 游戏企业掣肘发展 深圳 游企业敏捷突起 年销售额已靠近2亿元 广揽人才凝集力气 深圳 游盘踞国内市场半壁山河
1.如何学习程序设计Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅实用于Java,对C++等其余程序设计语言也一样管用。有编程高手认为,Java也好C也好没什么分辨,拿来就用。为什么他们能到达如斯境界想是由于编程语言之间有共通之处,懂得了编程的精华,天然能够做到一通百通。如何学习程序设计天经地义也有许多共通的处所。
1.1 培育兴致兴趣是可以让你保持下去的能源。如果只是把写程序作为营生的手腕的话,你会活的很累,也太对不起本人了。多关怀一些行业趣事,多想想盖茨。不是倡导每天做白日梦,但人要是没有了幻想,你感到有味道吗能像很多深圳本地农夫一样,打打麻将,喝喝工夫茶,拜拜财神爷;每个月就有几万十多少万甚至更多的进帐,凭空多出个”食利阶层”。你以为,这样有滋味吗空多到一些程序员论坛转转,你会发明,他们实在很乐观风趣,时不断会冒出智慧的火花。
1.2 慎选程序设计语言男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨严看待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他许多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经浸透到了各行各业几乎每一个角落。如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及 络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。如果你想参与到利用范畴最普遍的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每个领域请求的背景知识不一样。做运用软件需要对数据库等很熟悉。总之,你需要依据自己的特点来选择合适你的编程语言。
1.3 要兢兢业业,快餐式的学习不可取 先分享一个故事。有一个小朋友,他很爱好研讨生物学,很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。有一次,他走到草原上面看见一个蛹,便取了回家,而后看着,过了几天以后,这个蛹出了一条裂缝,看见里面的蝴蝶开始挣扎,想抓破蛹壳飞出来。这个过程达数小时之久,蝴蝶在蛹里面很辛苦地拼命挣扎,怎么也没方法走出来。这个小孩看着看着不忍心,就想不如让我帮帮它吧,便顺手拿起剪刀在蛹上剪开,使蝴蝶破蛹而出。 但蝴蝶出来以后,因为翅膀不够力,变得很臃肿,飞不起来。 这个故事给我们的启发是:欲速则不达。浮躁是古代人最广泛的心态,能怪谁许是贫困落伍了这么多年的缘故,就像当年的大跃进一样,都想大步跨入共产主义 会。现在的软件公司、客户、政府、学校、培训机构等等到处洋溢着急躁之气。就拿笔者比拟熟悉的深圳IT培训行业来说吧,竟然有的打广告声称”加入培训,100%就业”,居然 名的学生不少,几乎是鄙弃天下程序员,守护甜心。 会环境如是,我们不能转变,只能改变自己,闹市中的安定,弥足可贵。许多初学者C++/Java没开始学,立马使用 VC/JBuilder,会使用VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣布,”我会软件开发了”,简历上也大言不惭地写上”精晓VC/Java”。结果到软件公司口试时要么被三两下打发走了,要么被驳的遍体鳞伤,汗颜无地。到处碰壁之后才知道捧起《C++编程思想》《Java编程思想》细心研究,早知如此何必当初呀。 “你现在讲求简单便利,你以后的路就长了”,好象也是佛经中的劝戒。
1.4 多实践,快实践 彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。从前,四川边疆有两个和尚,一个贫穷,阳神 www.365zw.com,一个有钱。一天,穷和尚对富和尚说:”我打算去南海朝圣,守护甜心,你看怎么样富和尚说:”这里离南海有几千里远,你靠什么去呢穷和尚说:”我只有一个水钵,一个饭碗就够了。”富和尚难堪地说:”几年前我就盘算买条船去南海,可至今没去成,你还是别去吧!” 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。这个故事可解读为:任何事件,一旦考虑好了,就要立刻上路,不要等到预备周全之后,再去干事情。如果事情筹备考虑周全了再上路的话,别人恐怕疾足先得了。软件开发是一门工程学科,重视的就是实践,”正人动口不动手”对软件开发人员来讲基本就是过错的,他们提倡”动手至上”,但别惧怕,他们大多出言不逊,没有暴力偏向,虽然有时候不修边幅的一副”比尔盖茨”样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞成。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完整懂得了才着手敲代码,而是应该在看书的同时敲代码,程序运行的各种情形可以让你更快更坚固的掌握知识点。
1.5 多参考程序代码程序代码是软件开发最重要的结果之一,其中渗入渗出了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的恋情故事激动,悲剧的终局更有一种缺憾美。为什么要以悲剧结尾说是因为写《仙剑奇侠传》的程序员失恋而部署了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹气。多多参考代码例子,对Java而言有参考文献[4.3],有API类的源代码(JDK装置目录下的src.zip文件),也可以研究一些开源的软件或框架。
1.7 万不得已才讨教别人笔者在ChinaITLab 校的在线辅导体系中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。求教别人之前,你应当先回答如下几个问题。你是否在google中搜寻了问题的解决方法你是否查看了Java API文档你是否查找过相干书籍你是否写代码测试过果回答都是”是”的话,而且还没有找到解决办法,再问别人不迟。要晓得独立思考的才能对你很主要。要知道程序员的时光是很可贵的。
2.软件开发学习路线两千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒进也不守旧并非不偏不倚,而是找寻学习软件开发的正确路线与法则。从软件开发人员的生活计划来讲,我们可以大抵分为三个阶段,软件工程师→软件设计师→架构设计师或项目管理师。不想当元帅的士兵不是好士兵,不想当架构设计师或项目管理师的程序员也不是好的程序员。我们应该努力往上走。让我们先收拾一下开发应用软件需要学习的主要技术。
A.基础理论知识,如操作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机迷信家的话,可以采用”用到的时候再来学”的准则。
B.一门编程语言,现在基本上都是面向对象的语言,Java/C++/C#等等。如果做WEB开发的话还要学习HTML/JavaScript等等。
C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。
D.一种关联型数据库,ORACLE/SqlServer/DB2/MySQL等等
E.一种提高出产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。
F.一种UML建模工具,用ROSE/VISIO/钢笔进行建模。
G.一种软件过程,RUP/XP/CMM等等,守护甜心,通过软件过程来组织软件开发的众多活动,使开发流程专业化标准化。当然还有其他的一些软件工程知识。
H.名目治理、系统构造、框架知识。
准确的路线应该是:B→C→E→F→G→H。 还需要弥补几点:
1).对于A与C要补充的是,我们应该在实际中逐渐领悟编程理论与编程思想。新技术虽然不断出现,更新速度令人目眩燎乱雾里看花;但万变不离其宗,编程理论与编程思想的变更却很慢。把握了编程实践与编程思想你就会有拨云见日之感。面向对象的思想在目前来讲是相称要害的,是强势技术之一,在上面需要多投入时间,给你的回 也会让你惊喜。
2).对于数据库来说是独立学习的,这个机会就由你来决议吧。
3).编程语言作为学习软件开发的主线,而其余的作为辅线。
4).软件工程师着重于B、C、E、D;软件设计师侧重于B、C、E、D、F;架构设计师着重于C、F、H。
3.如何学习Java
3.1 Java学习路线
3.1.1 基础语法及Java原理基础语法和Java原理是地基,地基不坚固,如同沙地上建摩天大厦,是相称危险的。学习Java也是如此,必需要有扎实的基础,你才能在J2EE、 J2ME领域熟能生巧。参加SCJP(SUN公司认证的Java程序员)考试不失为一个好方法,起因之一是为了对得起你交的1200大洋考试费,你会更努力学习,原因之二是SCJP测验能够让你把基础打得很牢靠,它要求你跟JDK一样熟悉Java基础知识;然而你千万不要认为考过了SCJP就有多了不起,就能够失掉软件公司的青睐,就能够获取高薪,这样的主意也是很危险的。取得”真正”的SCJP只能证实你的基础还过得去,但离实际开发回有很长的一段路要走。
3.1.2 OO思维的领悟控制了基本语法跟Java程序运行原理后,咱们就能够用Java语言实现面向对象的思惟了。面向对象,是一种方式学;是独破于语言之外的编程思想;是 CBD基于组件开发的基础;属于强势技巧之一。当当前因工作须要转到别的面向对象语言的时候,你会觉得特殊的熟习亲热,学起来像喝凉水这么简略。
使用面向对象的思想进行开发的基础进程是:
●考察收集需求。
●建立用例模型。
●从用例模型中辨认分析类及类与类之间的静态动态关系,从而建立分析模型。
●细化剖析模型到设计模型。
●用详细的技术去实现。
●测试、安排、总结。
3.1.3 基本API的学习进行软件开发的时候,并不是什么功能都需要我们去实现,也就是经典名言所说的”不需要从新发现轮子”。我们可以应用现成的类、组件、框架来搭建我们的应用,如SUN公司编写好了众多类实现一些底层功能,以及我们下载过来的JAR文件中包含的类,我们可以调用类中的方法来完成某些功能或继续它。那么这些类中毕竟提供了哪些方法给我们使用法的参数个数及类型是的构造器需不需要参数不可能SUN公司的工程师打国际长途甚至飘洋过海来告诉你他编写的类该如何使用吧。他们只能提供文档给我们查看,Java DOC文档(参考文献4.4)就是这样的文档,它可以说是程序员与程序员交流的文档。基本API指的是实现了一些底层功能的类,通用性较强的API,如字符串处置/输入输出等等。我们又把它成为类库。熟悉API的方法一是多查Java DOC文档(参考文献4.4),二是使用JBuilder/Eclipse等IDE的代码提醒功能。
3.1.4 特定API的学习 Java介入的领域很广泛,不同的领域有不同的API,没有人熟悉所有的API,对正常人而言只是熟悉工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT等API;如果你进行 络游戏开发,你需要深刻了解 络API/多媒体API/2D3D等;如果你做WEB开发,就需要熟 悉Servlet等API啦。总之,需要根据工作的需要或你的兴趣发展方向去选择学习特定的API。
3.1.6 学习软件工程 对小型项目而言,你可能认为软件工程没太大的必要。跟着项目的复杂性越来越高,守护甜心,软件工程的必要性才会体现出来。参见”软件开发学习路线”小节。
3.2学习要点 确立的学习路线之后,我们还需要总结一下Java的学习要点,这些要点在前文多多少少提到过,只是笔者认为这些地方特别要留神才对它们进行汇总,不要嫌我婆婆妈妈啊。
3.2.1勤查API文档当程序员编写好某些类,觉得很有成绩感,想把它奉献给各位苦难的同行。这时候你要使用”Javadoc”工具(包含在JDK中)天生尺度的Java DOC文档,供同行使用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交换的工具,几乎人手一份,除了菜鸟之外。J2SE DOC文档官方下载地址: ●找特定的包,包普通根据功效组织。 ●找需要使用类,类命名规范的话我们由类的名字可猜出一二。 ●选择构造器,大多数使用类的方式是创立对象。 ●选择你需要的方法。
3.2.2 查书/google->写代码测试->查看源代码->请教别人 当我们碰到问题的时候该如何解决时候不要急着问别人,太简单的问题,没经过思考的问题,别人会因而而瞧不起你。可以先找找书,到google中搜一下看看,绝大部分问题基本就解决了。而像”某些类/方法如何使用的问题”,DOC文档就是谜底。对某些知识点有怀疑是,写代码测试一下,会给你留下深入的印象。而有的问题,你可能需要直接看 API的源代码验证你的设法。万不得已才去请教别人。
3.2.3学习开源软件的设计思想 Java领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是先辈给我们留下的珍宝呀。入宝山而空手归,你心甘吗这些工具、框架进行分析,体会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,景色一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。
3.2.4 规范的重要性 没有规则,不成方圆。这里的规范有两层含义。第一层含义是技术规范,多到
3.2.5 不局限于Java 很不幸,很幸运,要学习的货色还有很多。可怜的是因为要学的东西太多且多变,没时间陪老婆家人或女朋友,导致身心疲乏,重大者甚至导致抑郁症。荣幸的是别人要抢你饭碗绝非易事,他们或她们需要付出很多能力达故意愿。 Java不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、 络编程、数据库技术等知识,用横向纵向的比较联想的方式去学习会更有效。如学习Java聚集的时候找数据结构的书看看;学JDBC的时候温习数据库技术;采取的仍然是”需要的时候再学”的原则。
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92337 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!