四川麻将源码
Ⅰ java的自学过程中怎么能有个清晰的学习路线
Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于Java,对C++等其他程序设计语言也一样管用。有编程高手认为,Java也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。
学习路线图可以看看动力节点的,比较清晰,专业性也比较强。下面说说java具体如何学习。
1.1 培养兴趣
兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。
1.2 慎选程序设计语言
男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。
如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。
如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的编程语言。
1.3 要脚踏实地,快餐式的学习不可取
欲速则不达,浮躁是现代人最普遍的心态,能怪谁?也许是贫穷落后了这么多年的缘故。现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。就拿我比较熟悉的大连大工IT职业培训来说吧,居然打广告宣称"20多年的计算机职业教育,辽宁省十佳学校",殊不知中国计算机发展才几年,软件发展才几年,居然去报名的学生不少,简直是藐视天下程序员。培训出来的“程序员”大多不知道OO,OP为何物?社会环境如是,我们不能改变,只能改变自己,闹市中的安宁,弥足珍贵。许多初学者C++/Java没开始学,立马使用VC/JBuilder,会使用VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣告,"我会软件开发了",简历上也大言不惭地写上"精通VC/Java"。结果到软件公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧起《C++编程思想》《Java编程思想》仔细钻研,早知如此何必当初呀。
"你现在讲究简单方便,你以后的路就长了",好象也是佛经中的劝戒。
1.4 多实践,快实践
彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。
从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:"我打算去南海朝圣,你看怎么样?"富和尚说:"这里离南海有几千里远,你靠什么去呢?"穷和尚说:"我只要一个水钵,一个饭碗就够了。"富和尚为难地说:"几年前我就打算买条船去南海,可至今没去成,你还是别去吧!" 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。
这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,"君子动口不动手"对软件开发人员来讲根本就是错误的,他们提倡"动手至上",但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副"比尔盖茨"样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。
1.5 多参考程序代码
程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。
多多参考代码例子,对Java而言有参考文献[4.3],有API类的源代码(JDK安装目录下的src.zip文件),也可以研究一些开源的软件或框架。
1.6 加强英文阅读能力
对学习编程来说,不要求英语, 但不能一点不会,。最起码像Java API文档(参考文献[4.4])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个"金山词霸"。看多了就会越来越熟练。在学Java的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的"周扒皮"。
1.7 万不得已才请教别人
笔者在Martix与Java论坛的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。
你是否在google中搜索了问题的解决办法?
你是否查看了Java API文档?
你是否查找过相关书籍?
你是否写代码测试过?
如果回答都是"是"的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。
1.8 多读好书
书中自有颜如玉。比尔盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔盖茨就已经读完了所有的网络全书,所以他精通天文、历史、地理等等各类学科,可以说比尔?茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。
笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,"天呐,这么多书到什么时候才能看完了","学软件开发,感觉上了贼船"。这时候,我的回答一般是,"别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的",学生当场晕倒。(注:这一部分学生是刚学软件开发的)
1.9 使用合适的工具
工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。
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.5 开发工具的用法
在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对Java技术本身的注意力。过了这一阶段你就可以开始熟悉IDE了。
程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。
从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。
Java开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder占有的市场份额是最大的。JBuilder在近几年来一直是Java集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的Java IDE大战中,以其快速的版本更新击败IBM的Visual Age for Java等而成就一番伟业。IBM在Visual Age for Java上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓"柳暗花明又一村"。浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。
3.1.6 学习软件工程
对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见"软件开发学习路线"小节。
3.2学习要点
确立的学习路线之后,我们还需要总结一下Java的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,
Ⅱ 镵鏄庝汉镄勬濈淮鏂瑰纺閮芥湁鍝浜
銆銆镵鏄庝汉镍傚缑鍒╃敤绯荤粺宸ョ▼镄 镐濈淮鏂瑰纺 锛屾妸浠栨墍瑙傚疗鎺ヨЕ镄勪簨锷″垎鏋愭媶瑙f垚涓涓涓灏忕殑鐜鑺傦纴镰旂┒钖勪釜鐜鑺备箣闂寸殑鍏崇郴浠ュ强镓链夌幆鑺傚规暣浣撶殑褰卞搷;铹跺悗鍒╃敤浠栧圭幆鑺傜殑镰旂┒锛岃揪鍒拌嚜宸辩殑璁炬兂镄勭洰镄勚备互涓嬫槸鎴戜负澶у跺仛镄勬湁鍏宠仾鏄庝汉镄勬濈淮鏂瑰纺镄勬暣鐞嗭纴甯屾湜澶у跺枩娆銆
銆 銆镵鏄庝汉镄勬濈淮鏂瑰纺
銆銆涓銆佷汉闄呭叧绯讳腑“链熸湜鍊肩$悊”镐濈淮
銆銆鍦ㄤ汉闄呭叧绯讳腑锛屽瓨鍦ㄨ繖镙风殑鐜拌薄锛氩湴䦅炴祦姘掳纴绐佺劧骞蹭竴浠跺ソ浜嬶纴鍒欎细杩呴熷缓绔嫔ソ镄勫嵃璞°傝屾湁浜涘悓蹇楋纴骞虫椂琛ㄧ幇鏋佸害浼樼锛屽ぇ𨰾涘敖鍑猴纴棰嗗艰佹眰鍙嶈岃秺𨱒ヨ秺楂桡纴绐佺劧链変竴娆℃弧瓒充笉浜嗛嗗硷纴鍒栾礋闱㈣瘎浠烽殢涔嬭岃捣銆(蹇幂悊瀛︿腑涓嶈儨浠婚櫡阒)銆
銆銆鍦ㄦ劅𨱍呬笂涔熸槸涓镙凤纴濂界敺浜哄钩镞跺舰璞″畬缇庯纴绐佺劧鐘涓娆¢敊璇锛屽氨阆楄嚟涓囧勾(婕旇压鍦堟煇娉)锛屾湁浜涙福鐢风獊铹跺共涓涓や欢鏀瑰杽褰㈣薄镄勪簨锛屽氨濂借瘎濡傛疆銆
銆銆杩栾佹眰鎴戜滑骞虫椂锅氱殑锛屽氨鏄瑕佸︿细镋嫔ぇ𨰾涳纴阃傚害铡嬫姂镊宸辩殑琛ㄧ幇娆插拰铏氲崳蹇冿纴鍏抽敭镞跺椤嚭镓嬨
銆銆浜屻佹ā鍨嬫濈淮
銆銆妯″瀷镐濈淮鍗虫妸鎴戜滑鐭ヨ瘑镣逛互鍙婂勭悊宸ヤ綔涓锛屾濈淮镄勮繃绋嬫彁镣间负妯″瀷镄勮兘锷涖
銆銆渚嫔傚ぇ瀛﹁剧▼閲屾湁涓闂ㄥ緢𨱔镄勮剧▼鍙“鏁板﹀缓妯”锛屽嵆鎶婄敓娲讳腑阆囧埌镄勯毦棰桡纴寤虹珛鎴愭暟瀛︽ā鍨嬶纴𨱒ラ噺鍖栧垎鏋愯В璇汇
銆銆纰板埌蹇幂悊瀛﹂梾棰桡纴鍙浠ュ缓绔嬫垚“浣曚汉浣曟晠鍦ㄤ綍镞朵綍鍦板仛浜嗕綍浜”镄勬濈淮妯″瀷;
銆銆浼佷笟閲屽父鐢ㄧ殑SWOT妯″瀷鍒嗘瀽娉曪细S (strengths)鏄浼桦娍銆乄 (weaknesses)鏄锷e娍锛孙 (opportunities)鏄链轰细銆乀 (threats)鏄濞佽儊銆傝繍鐢ㄨ繖绉 鏂规硶 锛屽彲浠ュ圭爷绌跺硅薄镓澶勭殑𨱍呮櫙杩涜屽叏闱銆佺郴缁熴佸嗳纭镄勭爷绌讹纴浠庤屾牴鎹镰旂┒缁撴灉鍒跺畾鐩稿簲镄勫彂灞曟垬鐣ャ佽″垝浠ュ强瀵圭瓥绛夈
銆銆涓夈佺郴缁熸濈淮
銆銆鐗涗汉閮芥敞閲嶅叧绯诲垎鏋愯屼笉鏄鍏幂礌鍒嗘瀽銆备竴涓浜嬬墿镐绘槸钖屾椂澶勪簬涓や釜缁村害镄勯泦钖堬纴鍐呴儴鍏幂礌镄勫叧绯婚泦钖堬纴浠ュ强瀹冭嚜韬涓涓镟村ぇ绯荤粺閲岀殑缁勬垚鍏幂礌銆
銆銆绯荤粺鍖栨濊冿纴灏辨槸瑕佽ゆ竻杩欎袱涓缁村害镄勫叧绯汇备粠绯荤粺鍜岃佺礌銆佽佺礌鍜岃佺礌銆佺郴缁熷拰鐜澧幂殑鐩镐簰镵旂郴锛岀浉浜掍綔鐢ㄤ腑镐诲拰钥冭槛銆傚畠鍏锋湁鏁翠綋镐с佺粨鏋勬с佺珛浣撴с佸姩镐佹с佺患钖堟х殑鐗圭偣銆
銆銆锲涖佹潬𨱒嗘濈淮
銆銆寰埚氢汉锽沧㈢敤阒垮熀绫冲痉镄 钖嶈█ 锛“缁欐垜涓涓鏀镣,鎴戝氨鑳芥挰锷ㄥ湴鐞!”𨱒ユ弿杩版潬𨱒嗘晥搴斻傝屽湪鐗涗汉镄勭溂涓𨱒犳潌涓嶆㈠彲浠ユ挰锷ㄥ湴鐞冦傛墍链夌殑淇℃伅銆佺墿璐ㄥ拰鑳介噺閮芥槸鍙浠ョ敤𨱒犳潌𨱒ユ挰锷ㄧ殑銆
銆銆浜斻佺粷𨱍呮濈淮
銆銆鍗冲煿鍏讳竴绉崭笉浠ョ墿锽滐纴涓崭互宸辨偛镄勮秴寮虹殑镊鎴戜环鍊艰ゅ悓镒燂纴涓崭互澶栫晫鐜澧冧负杞绉汇
銆銆寰埚氭椂鍊欙纴鎴戜滑娲诲湪涓栦笂锛屾绘槸澶鍦ㄦ剰鍒浜哄硅嚜宸辩殑璇勪环锛屼换浣曡屼负锷ㄦ満閮芥槸涓轰简婊¤冻镊宸辫櫄寮辩殑镊灏婂绩锛岃繖鏄涓绉嶈嚜鎴戣ゅ悓镒熷緢浣庣殑琛ㄧ幇銆傛垜浠骞冲父鐢熸椿涓鏄炬憜锛屽ア渚堟秷璐癸纴缁忎笉璧疯辨儜锛屾祬灏濊缎姝㈣繖浜涜〃鐜伴兘璇存槑浜呜繖涓镣广
銆銆铹惰岋纴涓浜涙瘆杈冩垚锷熺殑浜哄+锛屼粬镄勪环鍊艰ゅ悓镒熷畬鍏ㄦ潵镊鍐呴儴锛屾瘆濡傛潕鍢夎瘹鍦ㄥ勾杞荤殑镞跺欙纴涓轰简锅峰︼纴鎺挜櫎浜嗕竴鍒囧共镓帮纴鍐呭绩浠峰奸珮寰埚己锛屼笉鍙椾换浣曞栫晫镄勫奖鍝嶏纴浠栦滑璁や负镓链夌殑锷锷涘拰浠桦嚭閮芥槸涓轰简链𨱒ョ殑镊宸便傝繖涓绫讳汉锛屾繁鍒诲︿细浜嗕笘鐣岀殑杩愯岃勫垯锛屽弽钥岃兘澶熷仛鍒拌嚜寰嬶纴镫绔嬫濊冿纴鍜屽緢寮虹殑鐩镙囨劅銆
銆銆鍏銆佷环鍊兼濈淮
銆銆鐪嫔緟浜嬬墿镞讹纴姘歌繙涓嶈佸逛簨瀹炲彂𨱔锛岃屾槸镐濊冧簨浠舵湰韬镄勪环鍊笺傛f墍璋掳细灏忓╃湅瀵归敊锛屽ぇ浜虹湅鍒╃泭銆备笉瑕佺洸鐩鍦板仛浠峰煎垽鏂銆
銆銆渚嫔备简瑙f柊闂诲獟浣撶殑锛屽氨鐭ラ亾寰埚氩獟浣撶殑鍒濊》锛屽氨鏄钖稿紩鐪肩悆锛屽垭婵绮剧炪傛墍浠ヤ綘瀹屽叏娌″繀瑕佽佷负涓浜涘崥浜虹溂鐞幂殑鏂伴椈浜嬩欢锛屼箟镒ゅ~鑶恒
銆銆鍙堟瘆濡备互鐭ヤ箮镄勭墰浜“閲囬摐”锛屾彁鍒扮殑瀵逛簬浜嬫儏镄勮瘎浠锋柟娉曡轰妇渚嬶细鐢ㄤ簩缁寸殑镐濈淮𨱒ヨ冭槛锛屼竴鏄鏀剁泭鍊硷纴璇ヤ簨浠跺皢缁欐垜甯︽潵镄勬敹鐩婂ぇ灏(璁ょ煡銆佹儏镒熴佺墿璐ㄣ佽韩浣撴柟闱㈢殑鏀剁泭镄嗗彲璁″叆)锛屼簩鏄鏀剁泭鍗婅“链燂纴璇ユ敹鐩婇殢镞堕棿琛板噺镄勯熷害锛屽崐琛版湡闀跨殑浜嬩欢锛屽规垜浠镄勫奖鍝崭细鎸佺画鍦拌缉涔呰缉闀裤
銆銆鎴戜滑镟村氱殑搴旇ラ泦涓浜庡仛楂樻敹鐩婂笺侀暱鍗婅“链熷拰浣庢敹鐩婂笺侀暱鍗婅“链熺殑浜嬨傝屽逛簬鏀剁泭鍊煎拰鍗婅“链熺殑鍒ゆ柇灏辨簮浜庢垜浠鍐呭绩瀵硅嚜宸辩殑浠峰艰ゅ悓鍒ゆ柇銆傛瘆濡傚湪鐗涗汉鐪间腑链変环鍊肩殑璺虫Ы鍙链変竴绉嶅氨鏄鑳藉姏宸茬粡鎻愰珮镊充竴涓鐩稿綋镄勯珮搴︼纴镓炬洿澶х殑骞冲彴鎴栬呰鎸栬蛋銆
銆銆涓冦“鏀挎不浜洪檯”镐濈淮
銆銆鎴戜滑链夋椂鍊欓兘鎭f湁绀句氦鎭愭儳䦅囷纴闄や简鍜岃嚜宸辩煡镙圭煡搴旷殑链嫔弸鑳藉悙闇插绩澹板栵纴鍦ㄩ檶鐢熶汉闱㈠墠鎴戜滑镐绘槸镐镐镍︽嚘銆
銆銆鍏跺疄锛屾垜浠浜轰汉閮藉勪簬鏀挎不镄勭绣缁滀腑銆傝皥璇濈殑鍐呭瑰线寰鏄鍏舵$殑锛屼汉缇や腑镄勬敛娌诲叧绯绘墠鏄链閲嶈佺殑銆傛湁浜涙椂鍊欙纴浜轰汉閮介渶瑕佹埓镌涓鍓闱㈠叿锛岃皥璇濈殑浠寮忓ぇ浜庡疄璐ㄤ綔鐢ㄣ
銆銆璇瑷鏄纭绔嬫敛娌诲叧绯荤殑涓绉嶅伐鍏凤纴鎴戜滑姹备汉镄勬椂鍊欐槸涓绉嶆敛娌诲叧绯伙纴鐖跺瓙涔嬮棿镄勮皥璇濇槸涓绉嶆敛娌诲叧绯伙纴鐢峰コ涔嬮棿镄勪翰鐤忕▼搴︿篃鏄涓绉嶆敛娌诲叧绯汇
銆銆鍏銆佸归殣钘忎笘鐣岀殑娲炲疗镐濈淮
銆銆蹇幂悊瀛︽湁涓涓镢楀悕镄“鍐板北鐞呜”锛屼簨鐗╁憟鐜扮粰鎴戜滑镄勶纴寰寰鍙鏄寰埚皬镄勪竴閮ㄥ垎锛屾渶澶уご镄勯儴鍒嗛氩父琚鎺╃洊浜嗐
銆銆瑕佸︿细锘瑰吇瀵归殣钘忎笘鐣岀殑娲炲疗鑳藉姏锛屼緥濡傛垜浠阒呰荤殑杩囩▼涓寰寰鍙鏄鐪嫔埌涓浜 鏂囩珷 镄勮〃闱锛岃岀墰浜轰滑浼氱幇鍦“浣滆呮ā寮”涓铡绘濊冮梾棰桡细鍐欎綔镄勮儗鏅銆佸啓浣灭殑锷ㄦ満銆佸啓浣灭殑镓嬫点佸啓浣灭殑绛栫暐绛夛纴涓镞︾啛缁冩帉鎻¤繖绉嶆妧鑳斤纴鎴戜滑鍦ㄥ︿範镄勮繃绋嬩腑灏嗕细杈惧埌浜嫔崐锷熷岖殑鏁堟灉銆
銆銆涔濄侀榾鍊艰嚜鎺ф濈淮
銆銆阒鍊硷细鍗抽喷鏀句竴涓琛屼负鍙嶅簲镓闇瑕佺殑链灏忓垭婵寮哄害銆
銆銆涓句釜渚嫔瓙锛屽湪涓娄釜涓栫邯锛屾垜浠涓锲戒汉瀵规插康镄勮Е鍙戝煎氨寰堜绠锛屽ぇ琛椾笂鐪嫔埌濂充汉绌挎枣琚嶏纴灏辫兘𨱍冲叆闱为潪锛岃屽綋浠婄绣缁沧椂浠o纴宀涘浗 鏁栾偛 鐗囨硾婊ワ纴镓揿紑鐢佃剳婊″睆骞旷殑鐢熸畺鍣ㄥ畼锛屽ぇ瀹堕兘瑙夊缑娌℃湁镒忔濄傚叾瀹炲氨鏄锛屾垜浠瀵圭敓鐞嗘叉湜镄勯榾鍊兼彁楂樼殑缂樻晠銆
銆銆鍙堟瘆濡傦纴濂藉氩崟韬鑵愬コ锛屾矇婧轰簬阔╁浗锅跺儚鍓т笉鑳借嚜𨰾旓纴镞堕棿闀夸简锛屽ぇ鑴戞綔镒忚瘑镄勬嫨锅舵爣鍑嗗氨鎻愰珮浜嗭纴鍒版渶钖庡ょ嫭鍒拌侊纴杩桦湪鑻﹁嫤杩芥眰棰滃奸珮鏅哄晢楂樿缮浼氱収椤句汉镄勯暱鑵挎у反銆
銆銆杩欎竴绉岖幇璞″憡璇夋垜浠镄 缁忛獙 灏辨槸瀛︿细涓瀹氱▼搴︾殑绂佹诧纴镊鎺у拰镊寰嬨
銆銆镵鏄庝汉阆囧埌闂棰樻椂镄勬濈淮鏂瑰纺涓庢垜浠宸鍒鍦ㄥ摢锻
銆銆镵鏄庣殑浜哄“闅”镟撮挐镒燂纴杩欐剰锻崇潃浠栦滑鍙浠ユ洿杞绘涧鍦伴溃瀵归櫋宄镄勫︿範镟茬嚎銆傛墦涓姣旀柟锛屽傛灉鎶婂︿範镟茬嚎鐪嬩綔涓阆挞櫋鍧★纴瀵逛簬浠栦滑𨱒ヨ村彲浠ュ噺鎺30°镄勫捐掞纴铏界劧璧扮殑链蹇呭揩锛屼絾鏄寰堣交𨱒俱傛瘆濡傝村悓镙锋病链夌紪绋嫔熀纭锛屾垜浼氲夊缑rainmeter缂栫▼澶楹荤储钥屾斁寮冿纴浣嗗悓瀛L灏辫夊缑绠鍗曪纴鑺变简涓鏅氢笂鎼炲畾銆傝槠铹朵箣钖庢垜鑺变简涓鏅氢笂涔熷彲浠ユ闷鍑烘潵涓涓妗岄溃锛屼絾鏄鎴戞繁鍒诲湴璁よ瘑鍒版垜鍜屼粬瀵“闅”镄勮よ瘑鏄涓崭竴镙风殑銆傚悓镙风殑杩囩▼阃傜敤浜巅s锛宫atlab锛宑锛宖ortran锛宭atex绛夌瓑锛岃缮链塧symptotic method锛宭aser diagnose绛夌瓑銆傚摢镐曞拰镵鏄庝汉鑺辨帀涓镙风殑镞堕棿鍙浠ュ﹀埌钖屾牱镄勪笢瑗匡纴浣嗘槸瀵规垜钥岃█锛岃繖浜涗笢瑗块毦锛屽逛粬浠钥岃█锛屼笉闅俱傝屼笖寰寰鏄浠栦滑鍙浠ヨ姳镟村皯镄勬椂闂村︾殑镟村氭洿阃忓交銆傛垜𨱍崇┒鍏舵牴链锛屽湪浜庝粬浠瀹炲湪澶涔犳傥杩欑岖▼搴︾殑瀛︿範镟茬嚎锛岃韩缁忕栌鎴樸备笉杩囱繖涓镣圭殑濂藉勫湪浜庯纴杩欐槸鍙浠ュ悗澶╅敾镣肩殑銆傝铏愬埌钖庢潵锛岀湅鍒板緢澶氢笢瑗垮緢楹荤储寰堟兂鏀惧纯锛屾兂鍒拌韩杈圭殑钖屽﹀傛灉鐪嫔埌杩欎簺搴旇ヤ细瑙夊缑寰堢亩鍗曞惂锛屽挰鍜鐗欎篃灏卞︿笅𨱒ヤ简锛岃槠铹跺﹀缑鐪熸槸闱炲父杈涢吀銆伞伞
銆銆绗浜岀偣鍦ㄤ簬浠栦滑鍙浠ユ洿闀挎椂闂村湴淇濇寔娓呮榈镄勬濈淮锛屼笓娉ㄥ湴镐濊冦傚湪涓浠朵簨𨱍呴昏緫阈惧緢闀跨殑镞跺欙纴鎴戝线寰瑕佹柇鎺夊緢澶氭★纴澶崭範寰埚氭★纴镓嶈兘鎶婅繖𨱒$嚎璐阃氾纴浣嗘槸链夌殑浜哄氨鍙浠ユ娊涓濆墺锣э纴鎱㈡浔鏂鐞嗗湴涓姝ユユ妸阃昏緫鎼炴竻妤氾纴鐩存帴鎺ㄧ悊鍑虹粨鏋溿备妇涓渚嫔瓙锛屼竴阆撴暟瀛﹁瘉鏄庨桡纴鎴戠煡阆撴浔浠跺拰缁撹猴纴瑕佸啓璇佹槑杩囩▼銆傜劧钖庢垜寮濮嬫兂浠庢浔浠跺嚭鍙戯纴鍙鑳界敤鍒板畾鐞咥锛岄偅涔堥偅鎴戣缮闇瑕佽瘉鏄嶣锛岀劧钖嶤锛岀劧钖嶥锛岀劧钖庢湁镣归毦锛屽厛缂撶紦銆傛帴镌浠庣粨璁哄掓帹锛屾垜搴旇ョ敤鍒颁简瀹氱悊E锛屼絾鏄杩橀渶瑕佽瘉鏄峄锛岀劧钖庛伞伞傜劧钖庡氨鏂浜嗐
銆銆鎴戝凡缁忔闷涓嶆竻妤氭垜鍦ㄨ瘉浠涔堜简锛屾垜澶磋剳宸茬粡涔辨帀浜嗭纴鍐呭瓨涓嶈冻:鍓嶉溃镄勫缮璁颁简;涓婚戜笉澶:钖庨溃镄勬帹涓嶅姩浜嗭纴铹跺悗涓阆嶉亶澶崭範鎺ㄧ悊镄勮繃绋嬶纴镡熸倝浜嗕箣鍓岖殑姝ラわ纴镓嶈兘缁х画寰涓嬨备絾鏄杩欎簺闂棰桦逛簬涓浜涗汉灏卞緢杞绘涧锛岀涓娆$湅鍒伴桡纴灏卞彲浠ュ緢杞绘涧鍦拌茬粰浣犲惉銆傚ご鑴戝緢娓呮氾纴𨱒$悊鍒嗘槑锛岄昏緫链夊姏锛屾棤娉曞弽椹炽傛垜镟剧粏闂杩囧緢澶氭′腑闂存濊幂殑杩囩▼锛屾渶钖庣殑镒熻Е灏辨槸镵鏄庣殑浜哄彧闇瑕佹渶锘烘湰镄勪竴𨱒″紩鐞嗗氨鍙浠ヨ剼韪忛昏緫鍑岀┖钥岃捣锛岃屾垜闇瑕佷竴𨱒″疄鍦ㄧ殑姊瀛愩傝繖涓镣逛笉浠呮槸鍦ㄩ溃瀵归毦棰樼殑镞跺欙纴鐢熸椿寰埚氱粏鑺傚氨鍙瑙佺鍊锛岀被浼肩殑渚嫔瓙瑙併婄悊𨱍冲浗銆嬨
銆銆绗涓夌偣鍦ㄤ簬浠栦滑瑙佽繃镟存湰璐ㄧ殑涓滆タ锛屾垨钥呰翠粬浠涔犳傥浜庢妸鎻℃洿链璐ㄧ殑涓滆タ銆傜墿鐞嗙殑杩愬姩瀛﹀逛粬浠钥岃█鍙鏄璇翠简涓浠朵簨𨱍呭氨鏄痜=ma锛屽墿涓嬬殑鍙鏄鏁板;瀵规祦锛屼紶瀵硷纴杈愬皠璇村埌搴曞氨鏄绫讳技”涓嶅钩鍒欓福“镄勪竴浠朵簨𨱍咃纴鏂圭▼璁颁笉寰椾简鎸夊父璇嗘帹鎺ㄤ篃灏辨帹鍑烘潵浜;娴佷綋锷涘︽渶钖庡氨鏄鎼揿嚭𨱒ョ殑娑;涓阒剁殑锅忓井鍒嗘柟绋嫔氨鏄娴佺嚎绛夌瓑銆备笉鑳屽叕寮忥纴涓嶈儗鎺ㄨ猴纴甯歌瘑锷犳暟瀛︼纴灏辨瀯鎴愪简浠栦滑镄勬暣涓鐗╃悊瀛︽嗘灦銆
銆銆链钖庣殑鐘舵佸氨鏄锛屼粬浠绋崇ǔ绔椤湪甯歌瘑涔嬩笂锛岄潬镌寮哄ぇ镄勫惛鏀惰兘锷涘拰娓呮榈镄勯昏緫锛屼竴楠戠粷灏桡纴鐩磋呖镶夌溂涓嶅彲瑙併
銆銆銆愯仾鏄庝汉镄勬濈淮鏂瑰纺銆銆銆鍖哄埆灏卞湪浜庯纴镵鏄庣殑浜哄湪浠栦滑镄勮剳娴蜂腑链変竴涓镟寸戝︺佺簿瀵嗐侀珮鏁堢殑“鎶借薄鍦板浘”锛岃繖涓鍦板浘閲岄溃瀛桦偍镄勪笉鏄鍦版爣銆佽竟鐣屻佺嚎璺锛岃屾槸姒傚康銆佺煡璇嗐佷簨瀹炲拰绋嫔簭銆备粬浠璺熸櫘阃氢汉镄勬渶澶у尯鍒灏辨槸--镞㈡嬁镌涓寮犱俊鎭鍙埚氩张鍏ㄧ殑濂藉湴锲撅纴鍙堢壒鍒浼氢粠杩欎簺鍦板浘涓楂樻晥鎻愬彇涓庣粍钖堜俊鎭銆
銆銆浠庨树富链夐檺镄勮〃杩伴噷闱锛屾垜𨱍冲厛阍埚规垜涓嬮溃镄勭殑绛旀堥噷鎻愬埌镄“镵鏄”杩涜屼竴涓嬬晫瀹:
銆銆璇勪环“镵鏄”涓庡惁镄勬爣鍑嗗苟涓嶅畬鍏ㄤ緷闱犳櫤鍟嗭纴钥屾槸鐪嫔叾鑳藉惁姣旇缉楂樻晥鍑嗙‘鍦拌В鍐宠嚜宸辨墍闱㈠圭殑镫鐗归毦棰樸
銆銆“镵鏄”镄勪汉涓嶆槸鍦ㄧ敓娲讳腑姣忎竴涓鏂归溃閮借仾鏄庯纴鎴戞洿镒挎剰灏嗕粬浠鐪嫔仛镆愪釜鎴栨煇浜涢嗗烟镄“涓揿”銆
銆銆杩欓噷涓嶆帰璁ㄩ仐浼犲洜绱犮
銆銆涓嬮溃锛屾垜浠鍏堟潵浣扑细涓涓嬩袱钥呯殑鍖哄埆銆
銆銆涓鍒楃伀杞﹀湪绌胯繃涓搴фí璺ㄥ北璋风殑澶фˉ镞讹纴𨱔杞︿笂镄勪竴涓镞呭浠庣獥鍙d涪涓嬩竴鍧楃煶澶达纴璇烽梾锛岃繖鍧楃煶澶寸殑钀界偣浼氩湪鍝閲?
銆銆链瀹为獙浜1984骞达纴鐢尽cCloskey涓嶬aiser瀵瑰ぇ瀛︾敓琚璇曞姞浠ユ祴璇曘
銆銆姝g‘绛旀堟槸--锻堟姏鐗╃嚎鍧犺惤锛岄櫎浜嗛吨锷涘栵纴鐭冲ご钖屾椂杩樻湁涓庣伀杞﹀悓钖戠殑鍒濆嬮熷害闇瑕佽冭槛銆
銆銆涓夊垎涔嬩竴镄勫︾敓璁や负鐭冲ご浼氩瀭鐩翠笅钀斤纴浜嫔疄涓婃垜鍦ㄧ湅涔︾湅鍒拌繖涓瀹为獙镄勮繃绋嬩腑锛屼篃鏄杩欎箞𨱍崇殑--澶涓嶈仾鏄庝简銆
銆銆鍦“镵鏄庝汉”镄勫ご鑴戜腑锛屾湁鏁堣В鍐抽梾棰(灏ゅ叾鏄镎呴暱鏂归溃镄勯梾棰)镄勮繃绋嬩腑锛屽彲鑳藉拰鏅阃氢汉𨰾夊紑宸璺濈殑鍦版柟链夊备笅杩欎簺:
銆銆璇嗗埆闂棰樼浉鍏充俊鎭:楂树腑镞讹纴链変竴娆℃暟瀛﹁冭瘯镄勪竴阆揿嚑浣曢桡纴寰埚氩钩镞剁殑鏁板︿紭绛夌敓閮藉仛阌欎简銆傚师锲犲嚭浜烘剰鏂欑殑绠鍗--棰桦共閲岀粰鍑虹殑涓涓鐪嬩笂铡诲緢閲嶈佺殑淇℃伅锛屽叾瀹炴牴链灏辫窡瑙h繖阆挞樻病鍏崇郴銆备笉灏戝钩镞ラ噷浠旂粏璋ㄦ厧镄勭敓𨰾夌‖镓镄勫湪镊宸辩殑瑙i樿繃绋嬩腑浣跨敤浜呜繖涓𨱒′欢锛屽弽钥屽艰嚧锅氶敊浜嗛樸傝冭瘯棰橀噷锛屼竴鑸娌″帘璇濓纴浣嗘槸瀹炶返鐢熸椿涓镄勫緢澶氶毦棰桡纴钖屾椂鍙埚嶆潅鍙堢亩鍗曪纴镵鏄庝汉鍙浠ユ洿濂界殑鎻愬彇褰揿墠闂棰樻儏澧冨唴锛屼笌闂棰樼湡姝g浉鍏崇殑淇℃伅銆
銆銆璇涔夌悊瑙:渚嫔傦纴鎴戣佸﹩楠傛垜:“浣犻毦阆扑笉鐭ラ亾镊宸辩珶铹朵竴镣归兘娌℃湁涓嶆画閰蜂笉镞犳儏涓嶆棤鐞嗗彇闂瑰悧!?”濡傛灉鎴戣兘绁为熷弽搴旇繃𨱒ュ簲璇ュ悎鐞嗗簲瀵癸纴闾f垜鏄镵鏄庝汉銆傝仾鏄庝汉瀵瑰緢澶氭儏澧冧笅镄勮瘽璇链変竴绉岖被浼“鎾呰捣灞佽偂灏辩煡阆撴媺浠涔埚睅”镄勭灛闂寸洿瑙夛纴杩涜岄】鎭熻В鍐虫柟妗堛傜粰鎴戠湅婧愪唬镰佷笉濡傛潃浜嗘垜䦅涘揩锛屽傛灉璁 @璧典笘濂囧仛锛屾儏鍐靛簲璇ヤ细濂藉緢澶氾纴锲犱负鍦ㄨ繖鏂归溃锛屼粬鏄涓揿讹纴鎴戜笉鏄銆
銆銆鏁翠綋琛ㄥ緛:钖鏄庣槠涓鍙ヨ瘽链蹇呭氨鐪嬮忎简鏁翠釜闂棰桡纴寰埚氭儏鍐典笅锛屼笉鏄绐ヤ竴鏂戣岀煡鍏ㄨ惫镄勚傝仾鏄庝汉浼氲皟锷ㄦ洿澶“蹇幂悊鍦板浘”涓镄勫唴瀹规潵钖堢悊瑙e喅闂棰樸傛瘆濡傞浮鍏斿悓绗奸梾棰桡纴浣犳槸鍙浠ラ潬浜屽厓涓娆℃柟绋嬩竴绫荤殑锘虹鏁板︾煡璇嗕娇锷插効绠楀嚭𨱒ョ殑锛屼絾鏄链夋洿镵鏄庣殑瑙f硶:楦″拰鍏斿叡15鍙锛屽叡链40鍙鑴氾纴楦″拰鍏斿悇鍑犲彧?锅囱鹃浮鍜屽厰閮借缁冩湁绱狅纴钖逛竴澹板摠锛屾姮璧蜂竴鍙鑴氾纴40-15=25銆傚啀钖瑰摠锛屽张鎶璧蜂竴鍙鑴氾纴25-15=10锛岃繖镞堕浮閮戒竴灞佽偂鍧愬湴涓娄简锛屽厰瀛愯缮涓ゅ彧鑴氱珛镌銆傛墍浠ワ纴鍏斿瓙链10÷2=5鍙锛岄浮链15-5=10鍙銆
銆銆闂棰桦綊绫:灏卞儚鍦ㄤ笘鐣屽湴锲鹃噷闱㈡垒“鍖椾含”锛屼綘闇瑕佸厛镓惧埌“涓锲”镄勫ぇ姒备綅缃銆傚湪蹇幂悊鍦板浘閲岄溃锛屾垒“浜у墠鎶戦儊䦅”鐩稿叧镄勯梾棰桡纴镵鏄庝汉涓崭细绗涓鍙嶅簲灏辨妸鐭ヨ瘑浣撶郴鍜屼笂闱㈡彁鍒扮殑鏁翠綋琛ㄥ緛鐩存帴瀹氢綅鍒“姘旇薄瀛”铡伙纴鐩稿簲镄勶纴浠栦滑浼氱洿鎺ュ畾浣嶅埌“蹇幂悊瀛”锛岀敋镊宠兘鐩存帴绮剧‘瀹氢綅鍒“涓村簥蹇幂悊瀛”锛岃繘钥屽炲姞瑙e喅闂棰樼殑鏁堢巼銆傝繖灏辨槸钥冮獙浣犲ご鑴戦噷蹇幂悊鍦板浘镄勪俊鎭閲忋佺簿搴︺佽嚜宸卞硅嚜宸辩殑蹇幂悊鍦板浘鐞呜В绋嫔害镄勬椂鍊欎简銆傚湪瀹为獙杩囩▼涓锛屾湁镄勫︾敓鐪嬩简棰樼洰镄勫墠鍑犱釜瀛楀氨鑳芥剰璇嗗埌杩欓亾棰樻槸瑕佽“閲嶅姏锷犻熷害”杩欎竴姒傚康锛岃繘钥屽湪璇婚樿В棰樼殑杩囩▼涓鍒绘剰鍦板叧娉ㄤ笌閲嶅姏锷犻熷害链夊叧镄勪俊鎭锛岀敋镊充富锷ㄥ湴闂存帴瀵绘垒缂哄け淇℃伅銆傚悓镞讹纴杩樻湁涓浜涘︾敓鐩村埌璇诲畬浜嗗叏棰桡纴镓嶆縺娲讳简鐩稿叧镄勫绩鐞嗗湴锲俱备笉杩囧湪杩欎竴镣逛笂锛岃缮链変袱镣归渶瑕侀濆栬:涓鏄闂棰桦綊绫昏缁冩湁锷╀簬鎴愮哗鎻愬崌銆1995骞达纴鎴戞瘝镙¤タ鍗楀ぇ瀛︾殑寮犲简鏋楄佸笀镄勭爷绌惰瘉鏄庯纴鍦ㄦ妸36阆撶亩鍗曟暟瀛﹂(锷犲噺涔橀櫎)锅氩畬钖庡苟锷犱互鍒嗙被镄勪竴缁勫︾敓锛屾瘆鍗旷嫭锅氩畬杩欎簺棰樼洰镄勫︾敓链缁埚湪绫讳技鏁板﹂樼殑娴嬮獙涓鎴愮哗瑕佸ソ銆备簩鏄杩囧害镊淇″彲鑳藉艰嚧闂棰桦綊绫诲け璐ワ纴姣斿备綘濂虫湅鍙嬫垒浣犺砀X涔颁简涓鏂板寘鍖呮垚澶╃偒钥锛屼綘阌栾鍦版妸闂棰桦綊绫绘垚“闇瑕佸叡𨱍”锛屼簬鏄鍜屽コ鍙嫔悓锽稾X锛屽叾瀹炲彲鑳芥槸濂冲弸镊宸变篃𨱍宠佷釜鏂板寘--鏄“𨱍冲綋铹”璁╅梾棰桦綊绫婚敊璇锛屽埌浜嗗簲璇ユ彁鍗囧绩鐞嗗湴锲剧簿搴︾殑镞跺欎简銆
銆銆绫绘瘆镐濈淮:杩欐湁镣瑰効镀忎汉浠阃氲繃铦栾潬镰旂┒鍑轰简澹板憪銆傝仾鏄庝汉鏄镎呴暱阃氲繃妗堜緥绫绘瘆𨱒ヨВ鍐抽梾棰樼殑浜恒侴ick鍜孒olyoak鍦1983骞寸殑镰旂┒鍙戠幇锛岀粰琚璇曟彁渚涗袱涓绫讳技镄勯梾棰樻儏澧冿纴姣斿彧缁栾璇曟彁渚涗竴涓𨱍呭冿纴镟存湁锷╀簬琚璇旷悊瑙i梾棰桦拰瑙e喅闂棰樸
銆銆蹇幂悊鍦板浘镄勪俊鎭閲:鎴戝堣〃镓杩囨垜镄勪竴涓杩沧埧鍙斿彅:“XX鐪熸槸镵鏄庯纴 楹诲皢 镓揿缑闾d箞濂姐”鎴戠殑灏忓﹁佸笀涔熻〃镓杩囨垜镄勪竴浣嶅悓瀛:“XX鐪熸槸镵鏄庯纴璞℃嬫瘆涓鑸澶т汉涓嫔缑濂藉缑澶氥”鐢氲呖鍦ㄧ伀杞︿笂锛屼笅阈轰篃琛ㄦ壃浜嗗归溃鍎跨殑鍝ヤ滑:“鍏勫纻浣犵湡镵鏄庯纴娌¤佽繃 鏂楀湴涓 姣斾綘镓撶殑濂界殑銆”1973骞达纴Simon鍜孋hase瀵硅薄妫嫔ぇ甯埚拰璞℃嬫柊镓嬭繘琛屼简涓挞棬镄勭戠爷--璞℃嫔ぇ甯埚彲浠ュ緢蹇锲炲繂5涓囦釜涓嶅悓镄勫吀鍨嬭薄妫嫔畾锷匡纴杩欓噷闱㈡疮涓涓锛屼粬浠闱犲嚑绉掑氨鑳藉洖蹇嗗嚭姣忎竴涓妫嫔瓙镄勪綅缃锛屽拰鍙鑳界殑镎崭綔璧板悜銆--鎴戞兂锛岄夯灏嗐佽薄妫嬨佹枟鍦颁富搴斿綋钖岀悊銆傚湪浠栦滑鑴戞捣閲岋纴鐗岄溃銆佹嫔眬濡傚悓鎴戜滑鑴戞捣涓镓瀛桦偍镄勮瘝姹囥傚氨镀忔垜闂浣“棣栾晧”镄勫崟璇嶆槸浠涔堬纴浣犲彲浠ュ緢蹇鍦拌村嚭𨱒ユ槸“banana”钥岄潪“nababa”銆傛墍浠ワ纴镵鏄庝汉锛岄兘鏄链夊共璐х殑--涓嶆槸鍏ㄩ潬澶╄祴銆
銆銆蹇幂悊鍦板浘镄勭洰褰:镵鏄庝汉链変竴涓镟撮傚悎瑙e喅闂棰樼殑浠庡绩鐞嗗湴锲惧唴鎻愬彇淇℃伅镄勭粨鏋勚傚氨镀忚屾敛鍖哄垝锲句笉鑳藉緢濂藉洖绛斾綘鍏充簬镆愪釜鍦扮偣镄勬捣𨰾旀湁澶氶珮杩欑被闂棰樸傝仾鏄庝汉镄勪俊鎭浠ヤ竴绉嶆洿濂藉湴鏂瑰纺瀛桦偍镌銆侰hietal鍦ㄤ粬镄勫疄楠岄噷锛岃╁ぇ瀛︾敓鍜屼粬浠镄勬暀鎺堢粰涓浜涘熀纭鐗╃悊闂棰樿繘琛屽垎绫伙纴澶у︾敓镄勫垎绫诲吀鍨嬬粨鏋勪箣涓鏄渚濋潬娑夊强镄勫伐鍏:鐢ㄥ埌鏂滈溃锛岀敤鍒版湪鍧楋纴鐢ㄥ埌𨱒犳潌锛岀敤鍒版尝銆备粬浠镄勬暀鎺堢殑鍒嗙被鏂规硶灏遍珮璐靛㖞镩冲氢简:鑳介噺瀹堟亽闂棰桡纴鍧愭爣鍙樻崲鍨嬬墰椤垮师鐞嗛梾棰桡纴锷犻熷害鐩稿叧镄勭墰椤垮师鐞嗛梾棰桡纴锷涘钩琛$姸鍐典笅镄勭墰椤垮师鐞嗛梾棰樸傛偍瑙夊缑锛屽摢涓镟存樉寰“镵鏄”?
銆銆闾d箞锛屾兂鍙樿仾鏄庡摢瀹跺己銆銆鍒涗綔寮忔濈淮鏁欑▼(Proctive Thinking Programs)锛屾潵镊浜嶤ovington銆备富瑕佺粰瀛╁瓙鐢锛岄氲繃渚︽帰 鏁呬簨 鎻愬崌闂棰樿В鍐宠兘锷涚殑銆
銆銆闂棰樿В鍐虫ā寮(Pattern of Problem Solving)锛屾潵镊猂ubinstein銆备富瑕佺粰澶у︾敓浣跨敤缂栧埗镄勶纴阃氲繃涓昏佹潵镊宸ョ▼瀛﹀拰鏁板﹂嗗烟镄勯梾棰桡纴渚濋潬10锻ㄦ椂闂存彁鍗囬梾棰樿В鍐宠兘锷涖
銆銆CoRT(Cognitive Research Trust)锛屾潵镊狣e Bono銆备富瑕侀溃瀵瑰︾敓鍙鑳藉湪镙″栫板埌镄勫叿浣挞梾棰樻儏澧冦
銆銆镐濈淮宸ュ叿寮哄寲鏁欑▼(Instrumental Enrichment)锛屾潵镊浠ヨ壊鍒楃殑Feuerstein锛屾槸鐩鍓嶆渶骞夸负浜虹煡涓旂爷绌跺箍娉涚殑镐濈淮鎶鑳借剧▼锛屼富瑕侀溃钖戞湁涓瀹氲ょ煡鎴栨儏缁闅灭岖殑闱掑皯骞淬
銆銆鏅阃氢汉钖屾墍璋“镵鏄庝汉”涔嬮棿镄勫樊璺濓纴鍦ㄦ垜鐪嬫潵锛屽ぇ鎶靛傛槸浜嗐傚啀娆″己璋冿纴杩欓噷镄“镵鏄庝汉”鐪熺殑涓嶆槸宸茬粡娣峰埌鍑轰汉澶村湴镄勬垚锷熶汉澹锛岃屾槸鎸囧湪鐗瑰畾棰嗗烟链夎秴杩囦竴鑸浜鸿В鍐抽梾棰樿兘锷涚殑鐩稿叧涓揿躲
銆銆銆愬紶瀛愬竻銆
銆銆鍦ㄥ寳澶х殑镞跺欙纴钖杩囧紶缁磋繋鏁欐巿璁插崥寮堣猴纴钥佸疄璇达纴涔熶笉镐庝箞鍑哄僵銆
銆銆鍦ㄥ浗澶栫殑镞跺欙纴钖浜嗗緢澶氲哄栧缑涓荤殑璁插骇锛岃佸疄璇达纴鐪熶笉姣旀垜链绉戞椂鍊欎竴涓璁插笀璁茬殑镟村姞鐢熷姩绮惧僵銆
銆銆浠婂勾骞村埯锛屾垜钖瀹2010骞村寲瀛﹁鸿礉灏斿栧缑涓婚搩链ㄧ珷镄勬紨璁插悗锛屾垜铡诲悗鍙版垒鍒颁粬锛岃皑鎱庣殑闂锛“璇烽梾锛屾垜濡备綍镓嶈兘鎴愪负涓钖嶅儚鎭ㄤ竴镙蜂紭绉镄勫寲瀛﹀?”绫讳技镄勯梾棰桡纴鎴戦梾杩囧緢澶氩湪钖勪釜棰嗗烟链夎繃𨱒板嚭璐$尞镄勪汉锛屽寘𨰾浠ヤ笂镄勫紶缁磋繋锛岄儙鍜稿钩銆
銆銆阈冩湪绔犳暀鎺堢殑铡熻瘽鎴戝凡缁忚颁笉澶ц捣𨱒ヤ简锛屽ぇ姒傛槸:“瀛︿细阃忚繃鐜拌薄鐪嬫湰璐”
銆銆鐪熸g殑镵鏄庝汉锛屾晱浜庝簨钥岃蜂簬瑷锛岃儨浜庢垜浠镄勫湴鏂瑰湪浜:阃忚繃鐜拌薄锛屼互鍏ㄩ溃镄勮呜掑幓灏濊瘯鎺㈢┒浜嬫儏镄勬牴链铡熷洜銆
銆銆灏卞儚鍐嶅勾杞讳竴镣圭殑镞跺欙纴阆囧埌浜嬫儏锛屾绘槸鍏埚ぇ鍙戝畯璁猴纴涔︾敓镒忔皵锛屽ぇ鎶靛傛ゃ傛参鎱㈢殑锛屾墠鍙戠幇锛屽嵆浣挎槸鐢熸椿涓婃渶杞诲井镄勪竴浠朵簨锛屼粠鎴愬洜鍒拌繃绋嬫渶钖庡埌缁撴灉鍜屽奖鍝嶏纴浠ュ强浠婂悗镄勭粡楠屾暀璁锛 镐荤粨 鍙嶆 锛屽矀鏄涓鍙ヤ袱鍙ュ氨鑳界洊妫哄畾璁虹殑?
銆銆绛夊埌鎴戜滑绉绱浜呜冻澶熺殑鐭ヨ瘑锛屾湁浜呜冻澶熷逛互寰绫讳技浜嬩欢镄勯勫垽锛岀劧钖庢墠鑳芥湁涓涓鐩稿瑰嗳纭镄勬兂娉曪纴杩欎釜杩囩▼锛屼笉瑕佽达纴鍙鏄鐢ㄧ湅锛屽幓镐濊冿纴铡昏亚钖锛屽幓娌夋稳锛屽幓鍙嶆濄
銆銆涓嶈佸仛绗涓涓鍙戝0镄勪汉锛岃皨瀹氲屽悗锷锛屽傛よ屽凡銆
鐚滀綘锽沧锛
1. 镵鏄庣殑钖崭汉钖嶈█
2. 镵鏄庤兘骞茬殑钖崭汉钖嶈█
3. 濂充汉镵鏄庣殑缁忓吀璇褰曞ぇ鍏
4. 鎸戞垬镵鏄庝汉镄50涓鑴戠璎镐ヨ浆寮绮鹃夊ぇ鍏
5. 镵鏄庝汉镄勯溃鐩稿垎鏋
6. 镵鏄庝汉镄勪氦闄呭勪簨铡熷垯
7. 2015骞村洓宸濋珮钥冧綔鏂囱寖鏂:锅氢竴涓钥佸疄镄勮仾鏄庝汉
8. 鐖舵瘝鍐欑粰鎭嬬埍涓濂冲効镄勪竴灏佷俊
Ⅲ java学习心得
Java学习心得
引言
软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此,没有捷径可走。梦想象《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰天大叫"天神啊,请赐给我一本葵花宝典吧",殊不知即使你获得了葵花宝典,除了受自宫其身之苦外,你也不一定成得了"东方不败",倒是成"西方失败"的几率高一点。
"不走弯路,就是捷径",佛经说的不无道理。
1.如何学习程序设计?
Java是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于Java,对C++等其他程序设计语言也乱空掘一样管用。有编程高手认为,Java也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。
1.1培养兴趣
兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。
1.2慎选程序设计语言
男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个亏庆角落。
如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。
如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的哗核编程语言。
1.3要脚踏实地,快餐式的学习不可取
先分享一个故事。
有一个小朋友,他很喜欢研究生物学,很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。有一次,他走到草原上面看见一个蛹,便取了回家,然后看着,过了几天以后,这个蛹出了一条裂痕,看见里面的蝴蝶开始挣扎,想抓破蛹壳飞出来。这个过程达数小时之久,蝴蝶在蛹里面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍心,就想不如让我帮帮它吧,便随手拿起剪刀在蛹上剪开,使蝴蝶破蛹而出。但蝴蝶出来以后,因为翅膀不够力,变得很臃肿,飞不起来。
这个故事给我们的启示是:欲速则不达。
浮躁是现代人最普遍的心态,能怪谁?也许是贫穷落后了这么多年的缘故,就像当年的大跃进一样,都想大步跨入***主义社会。现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。就拿我比较熟悉的大连大工IT职业培训来说吧,居然打广告宣称"20多年的计算机职业教育,辽宁省十佳学校",殊不知中国计算机发展才几年,软件发展才几年,居然去报名的学生不少,简直是藐视天下程序员。培训出来的“程序员”大多不知道OO,OP为何物?社会环境如是,我们不能改变,只能改变自己,闹市中的安宁,弥足珍贵。许多初学者C++/Java没开始学,立马使用VC/JBuilder,会使用 VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣告,"我会软件开发了",简历上也大言不惭地写上"精通VC/Java"。结果到软件公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧起《C++编程思想》《Java编程思想》仔细钻研,早知如此何必当初呀。
"你现在讲究简单方便,你以后的路就长了",好象也是佛经中的劝戒。
1.4多实践,快实践
彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。
从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:"我打算去南海朝圣,你看怎么样?"富和尚说:"这里离南海有几千里远,你靠什么去呢?"穷和尚说:"我只要一个水钵,一个饭碗就够了。"富和尚为难地说:"几年前我就打算买条船去南海,可至今没去成,你还是别去吧!" 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。
这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,"君子动口不动手"对软件开发人员来讲根本就是错误的,他们提倡"动手至上",但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副"比尔盖茨"样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。
1.5多参考程序代码
程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。
多多参考代码例子,对Java而言有参考文献[4.3],有API类的源代码(JDK安装目录下的src.zip文件),也可以研究一些开源的软件或框架。
1.6加强英文阅读能力
对学习编程来说,不要求英语, 但不能一点不会,。最起码像Java API文档(参考文献[4.4])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个"金山词霸"。看多了就会越来越熟练。在学Java的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的"周扒皮"。
1.7万不得已才请教别人
笔者在Martix与Java论坛的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。
你是否在google中搜索了问题的解决办法?
你是否查看了Java API文档?
你是否查找过相关书籍?
你是否写代码测试过?
如果回答都是"是"的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。
1.8多读好书
书中自有颜如玉。比尔盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔盖茨就已经读完了所有的网络全书,所以他精通天文、历史、地理等等各类学科,可以说比尔?茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。
笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,"天呐,这么多书到什么时候才能看完了","学软件开发,感觉上了贼船 "。这时候,我的回答一般是,"别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的 ",学生当场晕倒。(注:这一部分学生是刚学软件开发的)
1.9使用合适的工具
工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及。
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.5 开发工具的用法
在学习基础语法与基本的面向对象概念时,从锻炼语言熟练程度的角度考虑,我们推荐使用的工具是Editplus/JCreator+JDK,这时候不要急于上手JBuilder/Eclipse等集成开发环境,以免过于关注IDE的强大功能而分散对Java技术本身的注意力。过了这一阶段你就可以开始熟悉 IDE了。
程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、 Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。
从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。
Java开发使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等几种;而Eclipse、JBuilder 占有的市场份额是最大的。JBuilder在近几年来一直是Java集成开发环境中的霸主,它是由备受程序员尊敬的Borland公司开发,在硝烟弥漫的 Java IDE大战中,以其快速的版本更新击败IBM的Visual Age for Java等而成就一番伟业。IBM在Visual Age for Java上已经无利可图之下,干脆将之贡献给开源社区,成为Eclipse的前身,真所谓"柳暗花明又一村"。浴火重生的Eclipse以其开放式的插件扩展机制、免费开源获得广大程序员(包括几乎所有的骨灰级程序员)的青睐,极具发展潜力。
3.1.6 学习软件工程
对小型项目而言,你可能认为软件工程没太大的必要。随着项目的复杂性越来越高,软件工程的必要性才会体现出来。参见"软件开发学习路线"小节。
3.2学习要点
确立的学习路线之后,我们还需要总结一下Java的学习要点,这些要点在前文多多少少提到过,只是笔者觉得这些地方特别要注意才对它们进行汇总,不要嫌我婆婆妈妈啊。
3.2.1勤查API文档
当程序员编写好某些类,觉得很有成就感,想把它贡献给各位苦难的同行。这时候你要使用"Javadoc"工具(包含在JDK中)生成标准的Java DOC文档,供同行使用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工具,几乎人手一份,除了菜鸟之外。J2SE DOC文档官方下载地址:http://Java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下载。也可以在线查看:http://Java.sun.com/j2se/1.5.0/docs/api/index.html。
对待DOC文档要像毛语录,早上起床念一遍,吃饭睡觉前念一遍。
当需要某项功能的时候,你应该先查相应的DOC文档看看有没有现成的实现,有的话就不必劳神费心了直接用就可以了,找不到的时候才考虑自己实现。使用步骤一般如下:
●找特定的包,包一般根据功能组织。
●找需要使用类,类命名规范的话我们由类的名字可猜出一二。
●选择构造器,大多数使用类的方式是创建对象。
●选择你需要的方法。
3.2.2 查书/google->写代码测试->查看源代码->请教别人
当我们遇到问题的时候该如何解决?
这时候不要急着问别人,太简单的问题,没经过思考的问题,别人会因此而瞧不起你。可以先找找书,到google中搜一下看看,绝大部分问题基本就解决了。而像"某些类/方法如何使用的问题",DOC文档就是答案。对某些知识点有疑惑是,写代码测试一下,会给你留下深刻的印象。而有的问题,你可能需要直接看 API的源代码验证你的想法。万不得已才去请教别人。
3.2.3学习开源软件的设计思想
Java领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归,你心甘吗?对这些工具、框架进行分析,领会其中的设计思想,有朝一日说不定你也能写一个XXX框架什么的,风光一把。分析开源软件其实是你提高技术、提高实战能力的便捷方法。
3.2.4 规范的重要性
没有规矩,不成方圆。这里的规范有两层含义。第一层含义是技术规范,多到http://www.jcp.org下载JSRXXX规范,多读规范,这是最权威准确最新的教材。第二层含义是编程规范,如果你使用了大量的独特算法,富有个性的变量及方法的命名方式;同时,没给程序作注释,以显示你的编程功底是多么的深厚。这样的代码别人看起来像天书,要理解谈何容易,更不用说维护了,必然会被无情地扫入垃圾堆。Java编码规范到此查看或下载http://Java.sun.com/docs/codeconv/,中文的也有,啊,还要问我在哪,请参考3.2.2节。
3.2.5 不局限于Java
很不幸,很幸运,要学习的东西还有很多。不幸的是因为要学的东西太多且多变,没时间陪老婆家人或女朋友,导致身心疲惫,严重者甚至导致抑郁症。幸运的是别人要抢你饭碗绝非易事,他们或她们需要付出很多才能达成心愿。
Java不要孤立地去学习,需要综合学习数据结构、OOP、软件工程、UML、网络编程、数据库技术等知识,用横向纵向的比较联想的方式去学习会更有效。如学习Java集合的时候找数据结构的书看看;学JDBC的时候复习数据库技术;采取的依然是"需要的时候再学"的原则。
4.结束语
需要强调的是,学习软件开发确实有一定的难度,也很辛苦,需要付出很多努力,但千万不要半途而废。本文如果能对一直徘徊在Java神殿之外的朋友有所帮助的话,笔者也欣慰了。哈哈,怎么听起来老气横秋呀?没办法,在电脑的长期辐射之下,都快变成小老头了。最后奉劝各位程序员尤其是MM程序员,完成工作后赶快远离电脑,据《胡播乱报》报道,电脑辐射会在白皙的皮肤上面点缀一些小黑点,看起来鲜艳无比…… 拖起明天的梦想还得靠自己!
Ⅳ 怎么学电脑编程
如何学电脑编程? 笔者发现问得最多的问题莫过于"如何学习编程?JAVA该如何学习?"。类似的问题回答多了,就萌生了写下本文的想法。到时候再有人问起类似的问题,我可以告诉他(她),请你去看看《JAVA学习之路》。拜读过台湾蔡学镛先生的《JAVA夜未眠》,有些文章如《JAVA学习之道》等让我们确实有共鸣,本文题目也由此而来。
软件开发之路是充满荆棘与挑战之路,也是充满希望之路。JAVA学习也是如此,没有捷径可走。梦想象《天龙八部》中虚竹一样被无崖子醍醐灌顶而轻松获得一甲子功力,是很不现实的。每天仰天大叫"天神啊,请赐给我一本葵花宝典吧",殊不知即使你获得了葵花宝典,除了受自宫其身之苦外,你也不一定成得了"东方不败",倒是成"西方失败"的几率高一点。
"不走弯路,就是捷径",佛经说的不无道理。
我们今天来谈谈如何学习程序设计?
JAVA是一种平台,也是一种程序设计语言,如何学好程序设计不仅仅适用于JAVA,对C++等其他程序设计语言也一样管用。有编程高手认为,JAVA也好C也好没什么分别,拿来就用。为什么他们能达到如此境界?我想是因为编程语言之间有共通之处,领会了编程的精髓,自然能够做到一通百通。如何学习程序设计理所当然也有许多共通的地方。
1培养兴趣
兴趣是能够让你坚持下去的动力。如果只是把写程序作为谋生的手段的话,你会活的很累,也太对不起自己了。多关心一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但人要是没有了梦想,你觉得有味道吗?可能像许多深圳本地农民一样,打打麻将,喝喝功夫茶,拜拜财神爷;每个月就有几万十几万甚至更多的进帐,凭空多出个"食利阶层"。你认为,这样有味道吗?有空多到一些程序员论坛转转,你会发现,他们其实很乐观幽默,时不时会冒出智慧的火花。
2慎选程序设计语言
男怕入错行,女怕嫁错郎。初学者选择程序设计语言需要谨慎对待。软件开发不仅仅是掌握一门编程语言了事,它还需要其他很多方面的背景知识。软件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落。
如果你对硬件比较感兴趣,你可以学习C语言/汇编语言,进入硬件开发领域。如果你对电信的行业知识及网络比较熟悉,你可以在C/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C/Linux等等,为Linux内核开发/驱动程序开发/嵌入式开发打基础。如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每个领域要求的背景知识不一样。做应用软件需要对数据库等很熟悉。总之,你需要根据自己的特点来选择合适你的编程语言。
3要脚踏实地,快餐式的学习不可取
先分享一个故事。
有一个小朋友,他很喜欢研究生物学,很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。 有一次,他走到草原上面看见一个蛹,便取了回家,然后看着,过了几天以后,这个蛹出了一条裂痕,看见里面的蝴蝶开始挣扎,想抓破蛹壳飞出来。 这个过程达数小时之久,蝴蝶在蛹里面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍心,就想不如让我帮帮它吧,便随手拿起剪刀在蛹上剪开,使蝴蝶破蛹而出。 但蝴蝶出来以后,因为翅膀不够力,变得很臃肿,飞不起来。
这个故事给我们的启示是:欲速则不达。
浮躁是现代人最普遍的心态,能怪谁?也许是贫穷落后了这么多年的缘故,就像当年的大跃进一样,都想大步跨入共产主义社会。现在的软件公司、客户、政府、学校、培训机构等等到处弥漫着浮躁之气。就拿笔者比较熟悉的深圳IT培训行业来说吧,居然有的打广告宣称"参加培训,100%就业",居然报名的学生不少,简直是藐视天下程序员。社会环境如是,我们不能改变,只能改变自己,闹市中的安宁,弥足珍贵。许多初学者C++/JAVA没开始学,立马使用VC/JBuilder,会使用VC/JBuilder开发一个Hello World程序,就忙不迭的向世界宣告,"我会软件开发了",简历上也大言不惭地写上"精通VC/JAVA"。结果到软件公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧起《C++编程思想》《JAVA编程思想》仔细钻研,早知如此何必当初呀。
"你现在讲究简单方便,你以后的路就长了",好象也是佛经中的劝戒。
4多实践,快实践
彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。
从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:"我打算去南海朝圣,你看怎么样?"富和尚说:"这里离南海有几千里远,你靠什么去呢?"穷和尚说:"我只要一个水钵,一个饭碗就够了。"富和尚为难地说:"几年前我就打算买条船去南海,可至今没去成,你还是别去吧!" 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。
这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,"君子动口不动手"对软件开发人员来讲根本就是错误的,他们提倡"动手至上",但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副"比尔盖茨"样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。
5多参考程序代码
程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。
多多参考代码例子,对JAVA而言有参考文献[4.3],有API类的源代码(JDK安装目录下的src.zip文件),也可以研究一些开源的软件或框架。
6加强英文阅读能力
对学习编程来说,不要求英语, 但不能一点不会,。最起码像JAVA API文档(参考文献[4.4])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个"金山词霸"。看多了就会越来越熟练。在学JAVA的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的"周扒皮"。
7万不得已才请教别人
笔者在网校的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。
你是否在google中搜索了问题的解决办法?
你是否查看了JAVA API文档?
你是否查找过相关书籍?
你是否写代码测试过?
如果回答都是"是"的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。
8多读好书
书中自有颜如玉。比尔·盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔·盖茨就已经读完了所有的网络全书,所以他精通天文、历史、地理等等各类学科,可以说比尔·盖茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。
笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,"天呐,这么多书到什么时候才能看完了","学软件开发,感觉上了贼船"。这时候,我的回答一般是,"别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的",学生当场晕倒。(注:这一部分学生是刚学软件开发的)
9使用合适的工具
工欲善其事必先利其器。软件开发包含各种各样的活动,需求收集分析、建立用例模型、建立分析设计模型、编程实现、调试程序、自动化测试、持续集成等等,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使软件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤人的境界就很高了,无招胜有招,手中无剑心中有剑这样的境界几乎不可企及
Ⅳ 四川麻将出现天胡与地胡的概率
人在四川过年,免不了上桌打麻将,作为一个标准的麻将新手,上桌送钱是免不了的,当然在这个运七技三的游戏中,本民工居然还偶然有一天赢了一点点钱。
于是这个引起了本民工的好奇,实际上民工本人以前开发过斗地主外挂,还搞了三个麻将作弊APP还有配套的蓝牙硬件,有两个是用手机控制麻将出牌,有一个是用手机查看桌上所有人手上牌的(原理是用IC麻将牌)。
所以,一定要远离赌博,珍爱生命!
因为好奇加上正好过年有时间,本民工于是想用实现一个能够自打麻将的小程序,首先是使用图像识别的方法获取出牌和发牌信息,其实模拟按键操作出牌,理论这样种采用图像识别的外挂是封不了的,因为图像识别对本民工来说完全不是事儿,大概2007年时间,已经有一样的方法做了一个自动偷菜外挂。所以难点就只在麻将出牌AI和攻防AI上了,然后先查询了一下当前麻将AI的现况,好象当前基本是采用“有限状态机”和 博弈树alpha-beta 来,实现水平还没有达到人类顶级高手。当然既然已经有了在围棋上大杀四方的狗,麻将应该也不远了,当然狗用的是Deeplearning来做,正好Deeplearning也正好是本民工在玩的东西。所以想尝试弄一个AI玩一下。但是弄下为,实际情况是…
又掉坑里了。
首先是想Deeplearning一下,发现没有样本!
其次,找了很久,网上也没有什么像样的开源库可以直接用,好不容易找到一个算和牌(胡牌)的源码,结果一看,效率低得吓人。世上一切都是有代价的,计算机的基本代价就是空间与时间,算法不优化,很多玩法(主要是笨方法)没得搞。
算了,反正过年闲着,先发明一下轮子吧。
第一步,概率估算。
蒙特卡洛法。本来本民工是想用蒙特卡洛法去生成海量样本的,然后统计出一些有意思的概率,然后把相关概率形成参数表,供后面的 博弈树alpha-beta 搜索优化用。
蒙特卡洛法,原理在这里就不表述了,但是这个的确是一个非常非常优秀的搞法,在处理复合概率问题方面,特别适合本民工这样不喜欢动脑的人。
因此在样本生成的过程中,一些有意思的数据就出来了。
先看一下地胡的概率。
注意一点: 因为出牌AI还没有完成,目前还没有让程序开始自动对弈,本文给的地胡概率并不准确,这个概率只是上手就有可能胡的概率。
以下是三个数据:
总体大概做了十几次发牌测试吧,因为每次要大概十分钟时间,太浪费宝贵时间,还不如多娱乐下别的,所以十几次也够了,出现地胡的概率是46W~116W次这样,抽样中值位置大约是80万。
需要说明的这不是一个严肃学术研究,只是一个有意思的测试。所以本民工的随机发牌程序实际是每家发了14张牌。所以真正有地胡的概率是320万(只有庄家是会起手拿14张牌)。
另外,这个是四川麻将,四川麻将是108张牌,只有万、条、筒。实际上概率大了很多。
结论就是:打四川麻将地胡的概率是320万分之一,这个概率… 比摸百万大奖还要难。简单算了一下,平均一天打10场麻将,大概平均要876年可能搞得上一次地胡。
好了地胡概率算出来了。下面是天胡。
不好意思天胡概率,还没有算出来。
本民工做了大概率四次每次3000万的抽样(每次要搞4个小时左右,太浪费时间),抽样样本是1.2亿次,因为只有庄家有条件天胡,所以实际是抽样4.8亿次没有出现一次天胡。
所以本民工算是明白了,为什么传说中会有老头摸到天胡,激动得那个…,这个概率真是太低了。因为这个概率本民工现在也没有算出来,现在还不敢乱说,那天把发牌和计和程序改成并发后,找台电脑让他去瞎算吧。
但是不论是地胡还是天胡它的实际概率,怎么说呢?远比本民工想象的要低非常多,因为我身边出现过两次,打牌时朋友和我说他的牌是摸了一张就上听,虽然没有地胡上,但实际上320万分之一这个就是四川麻将摸牌上听的概率。我怎么可能有这么好运气呢?当然需要说明的是,从小到大我没有听说身边有人地胡过,也许是身边没有人打作弊麻将吧。
另外,再分享一下,一个有意思的概率。
就是起手有一个对加上3副牌(含两个对)的概率,同时还缺了一门牌的概率,大概是6万分之一。平均一天打10场麻将,大概16年能搞得上来一次。这个似乎比较平民化,打麻将的人人都有机会,不过似乎也比我想象的要低。本民是不是应该检查一下算法的问题了?
说到最后,放个彩弹。
不知道大家没有仔细看图,实际上本民工已经随机抽样出来了天胡牌。请仔细看数据图2。因为只出现了一次,所以没有形成统计样本。