??xml version="1.0" encoding="utf-8" standalone="yes"?>99久久er热在这里只有精品66,国产无套粉嫩白浆在线2022年,日本护士...精品国http://www.aygfsteel.com/ly04160218/理想成ؓ软g架构师!zh-cnWed, 18 Jun 2025 14:44:56 GMTWed, 18 Jun 2025 14:44:56 GMT60- 转:Java学习之\Q不走弯路,是捷径http://www.aygfsteel.com/ly04160218/archive/2007/04/08/109195.html天才球?/dc:creator>天才球?/author>Sun, 08 Apr 2007 02:02:00 GMThttp://www.aygfsteel.com/ly04160218/archive/2007/04/08/109195.htmlhttp://www.aygfsteel.com/ly04160218/comments/109195.htmlhttp://www.aygfsteel.com/ly04160218/archive/2007/04/08/109195.html#Feedback1http://www.aygfsteel.com/ly04160218/comments/commentRss/109195.htmlhttp://www.aygfsteel.com/ly04160218/services/trackbacks/109195.html 软g开发之路是充满荆棘与挑战之?也是充满希望之\。Java学习也是如此Q没有捷径可走。梦惛_《天龙八部》中虚竹一栯无崖子醍醐灌而轻松获得一甲子功力Q是很不现实的。每天Ԓ天大?天神啊,误l我一本葵花宝典吧"Q殊不知即你获得了葵花宝典Q除了受自宫其n之苦外,你也不一定成得了"东方不|"Q倒是?西方p|"的几率高一炏V?
"不走弯\Q就是捷?Q佛(jng)l说的不无道理?
1Q如何学习程序设计?
Java是一U^収ͼ也是一U程序设计语aQ如何学好程序设计不仅仅适用于JavaQ对C++{其他程序设计语a也一L用。有~程高手认ؓQJava也好C也好没什么分别,拿来q。ؓ什么他们能辑ֈ如此境界Q我x因ؓ~程语言之间有共通之处,领会了编E的_NQ自然能够做C通百通。如何学习程序设计理所当然也有许多共通的地方?
1.1 培养兴趣
兴趣是能够让你坚持下ȝ动力。如果只是把写程序作生的手段的话Q你会活的很累,也太对不赯׃。多兛_一些行业趣事,多想想盖茨。不是提倡天天做白日梦,但h要是没有了梦惻I你觉得有味道吗?可能像许多深x地农民一P打打dQ喝喝功夫茶Q拜拜胦爷Q每个月有几万十几万甚x多的q帐Q凭I多Z"食利阶层"。你认ؓQ这h味道吗?有空多到一些程序员论坛转{Q你会发玎ͼ他们其实很乐观幽默,时不时会冒出智慧的火花?
1.2 慎选程序设计语a
h入错行Q女怕嫁错郎。初学者选择E序设计语言需要}慎对待。Y件开发不仅仅是掌握一门编E语a了事Q它q需要其他很多方面的背景知识。Y件开发也不仅仅局限于某几个领域,而是已经渗透到了各行各业几乎每一个角落?
如果你对g比较感兴,你可以学习C语言/汇编语言Q进入硬件开发领域。如果你对电(sh)信的行业知识及网l比较熟(zhn),你可以在C/C++{之上多花时_以期q入?sh)信软g开发领域。如果你Ҏ(gu)作系l比较熟(zhn),你可以学习C/Linux{等,为Linux内核开?驱动E序开?嵌入式开发打基础?
如果你想介入到应用范围最q泛的应用Y件开发(包括?sh)子商务电(sh)子政务pȝQ的话,你可以选择J2EE?NETQ甚至LAMPl合。每个领域要求的背景知识不一栗做应用软g需要对数据库等很熟(zhn)。MQ你需要根据自q特点来选择合适你的编E语a?
1.3 要脚t实?快餐式的学习不可?
先分享一个故事?nbsp;
有一个小朋友Q他很喜Ƣ研I生物学Q很想知道那些蝴蝶如何从蛹壳里出来,变成蝴蝶便会飞。有一ơ,他走到草原上面看见一个蛹Q便取了回家Q然后看着Q过了几天以后,q个蛹出了一条裂痕,看见里面的蝴蝶开始挣扎,x破蛹壳飞出来?q个q程达数时之久Q蝴蝶在蛚w面很辛苦地拼命挣扎,怎么也没法子走出来。这个小孩看着看着不忍心,想不如让我帮帮它吧Q便随手拿v剪刀在蛹上剪开Q蝴蝶破蛹而出?但蝴蝶出来以后,因ؓ膀不够力,变得很臃肿,飞不h?
q个故事l我们的启示是:Ʋ速则不达?
躁是现代h最普遍的心态,能怪谁Q也许是贫穷落后了这么多q的~故Q就像当q的大跃q一P都想大步跨入***MC会。现在的软g公司、客戗政府、学校、培训机构等{到处I漫着躁之气。就拿我比较熟?zhn)的大q大工IT职业培训来说吧,居然打广告宣U?20多年的计机职业教育Q辽宁省十佳学校"Q殊不知中国计算机发展才几年QY件发展才几年Q居然去报名的学生不,直是藐视天下E序员。培训出来的“E序?#8221;大多不知道OO,OPZ物?C会环境如是Q我们不能改变,只能改变自己,闹市中的安宁QI珍c许多初学者C++/Java没开始学Q立马用VC/JBuilder,会用VC/JBuilder开发一个Hello WorldE序Q就忙不q的向世界宣告,"我会软g开发了"Q简历上也大a不惭地写?_NVC/Java"。结果到软g公司面试时要么被三两下打发走了,要么被驳的体无完肤,无地自容。到处碰壁之后才知道捧v《C++~程思想》《Java~程思想》仔l钻研,早知如此何必当初呀?
"你现在讲I简单方便,你以后的路就长了"Q好象也是佛(jng)l中的劝戒?br> 1.4 多实?快实?nbsp;
彭端淑的《ؓ学一首示子侄》中有穷和尚与富和尚的故事?
从前Q四川边境有两个和尚Q一个IP一个有钱。一天,I和对富和说Q?我打去南v朝圣Q你看怎么P"富和说Q?q里dh几千里远Q你靠什么去呢?"I和说Q?我只要一个水钵,一个饭就够了?富和ؓ隑֜_"几年前我打买条船dP可至今没LQ你q是别去吧!" 一q以后,富和还在ؓU赁船只{wQ穷和尚却已l从南v朝圣回来了?
q个故事可解MؓQQ何事情,一旦考虑好了Q就要马上上路,不要{到准备周全之后Q再d事情。假如事情准备考虑周全了再上\的话Q别人恐怕捷_M。Y件开发是一门工E学U,注重的就是实践,"君子动口不动?对Y件开发h员来讲根本就是错误的Q他们提?动手至上"Q但别害怕,他们大多温文雅Q没有暴力們Q虽然有时候蓬头垢面的一?比尔盖茨"栗有前辈高h认ؓQ学习编E的U诀是:~程、编E、再~程Q笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要{到你完全理解了才动手敲代码Q而是应该在看书的同时敲代码,E序q行的各U情况可以让你更快更牢固的掌握知识点?
1.5 多参考程序代?
E序代码是Y件开发最重要的成果之一Q其中渗透了E序员的思想与灵。许多h被《仙剑奇侠传》中凄美的爱情故事感?(zhn)剧的结局更有一U缺憄。ؓ什么要以?zhn)剧结?据说是因为写《仙剑奇侠传》的E序员失恋而安排了q样的结局Q他把自q感觉融入到游戏中Q却让众多的仙剑qh腕叹息?
多多参考代码例子,对Java而言有参考文献[4.3],有APIcȝ源代?JDK安装目录下的src.zip文g)Q也可以研究一些开源的软g或框架?
1.6 加强英文阅读能力
对学习编E来_不要求英? 但不能一点不?。最L像Java API文档(参考文献[4.4])q些东西q是要能看懂?q猜带懵都可以;旁边再开启一?金山词霸"。看多了׃来熟l。在学Java的同时学习英文,一双雕多好。另外好多Y仉要到英文|站下蝲Q你要能够找到它们,q些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有Zq入理层,q而可以成为剥削程序员?周扒??
1.7 万不得已才请教别?
W者在Martix与Java论坛的在U辅导系l中解决学生问题时发玎ͼ大部分的问题学生E做思考就可以解决。请教别Z前,你应该先回答如下几个问题?
你是否在google中搜索了问题的解军_法?
你是否查看了Java API文档Q?
你是否查找过相关书籍Q?
你是否写代码试q?
如果回答都是"?的话Q而且q没有找到解军_法,再问别h不迟。要知道独立思考的能力对你很重要。要知道E序员的旉是很宝贵的?
1.8 多读好书
书中自有颜如玉。比盖茨是一个饱ȝ书的人。虽然没有读完大学,但九(ji)岁的时候比盖茨就已经d了所有的癄全书Q所以他_N天文、历双Ӏ地理等{各cdU,可以说比?茨不仅是当今世界上金q首富Q而且也可以称得上是知识的巨富?
W者在l学生上评时候经怼l他们推荐书c,到后来学生实在忍无可忍开始抱怨,"天呐Q这么多书到什么时候才能看完了"Q?学Y件开发,感觉上了D"。这时候,我的回答一般是Q?别着急,什么时候带你们ȝ看我的书房,到现在每月花在技术书c上的钱400元,q在软g开发h员之中还只能够算是中{的"Q学生当场晕倒。(注:q一部分学生是刚学Y件开发的Q?
1.9 使用合适的工具
工欲善其事必先利其器。Y件开发包含各U各LzdQ需求收集分析、徏立用例模型、徏立分析设计模型、编E实现、调试程序、自动化试、持l集成等{,没有工具帮忙可以说是寸步难行。工具可以提高开发效率,使Y件的质量更高BUG更少。组合称手的武器。到飞花摘叶皆可伤h的境界就很高了,无招胜有招,手中无剑心中有剑q样的境界几乎不可企及?br> 2QY件开发学习\U?nbsp;
两千多年的儒家思想孔孟之道Q中庸的思想透入骨髓Q既不冒q也不保守ƈ非中怹道,而是扑֯学习软g开发的正确路线与规律?
从Y件开发h员的生规划来讲Q我们可以大致分Z个阶D,软g工程?#8594;软g设计?#8594;架构设计师或目理师。不惛_元帅的士兵不是好士兵Q不惛_架构设计师或目理师的E序员也不是好的E序员。我们应该努力往上走。让我们先整理一下开发应用Y仉要学习的主要技术?
AQ基理论知识Q如操作pȝ、编译原理、数据结构与法、计机原理{,它们q不重要。如不想成ؓ计算机科学家的话Q可以采?用到的时候再来学"的原则?
BQ一门编E语aQ现在基本上都是面向对象的语aQJava/C++/C#{等。如果做WEB开发的话还要学习HTML/JavaScript{等?
CQ一U方法学或者说思想Q现在基本都是面向对象思想QOOA/OOD/设计模式Q。由此而衍生的Zlg开发CBD/面向斚w~程AOP{等?
DQ一U关pd数据库,ORACLE/SqlServer/DB2/MySQL{等
EQ一U提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET{?
FQ一UUML建模工具Q用ROSE/VISIO/钢笔q行建模?
GQ一UY件过E,RUP/XP/CMM{等Q通过软gq程来组lY件开发的众多zdQ开发流E专业化规范化。当然还有其他的一些Y件工E知识?
HQ项目管理、体pȝ构、框架知识?
正确的\U应该是QB→C→E→F→G→H?
q需要补充几点:
1Q.对于A与C要补充的是,我们应该在实践中逐步领?zhn)~程理论与编E思想。新技术虽然不断涌玎ͼ更新速度令hD燎ؕN看花Q但万变不离其宗Q编E理Z~程思想的变化却很慢。掌握了~程理论与编E思想你就会有拨云见日之感。面向对象的思想在目前来讲是相当关键的,是强势技术之一Q在上面需要多投入旉Q给你的回报也会让你惊喜?
2Q.对于数据库来说是独立学习的,q个时机q你来军_吧?
3Q.~程语言作ؓ学习软g开发的ȝQ而其余的作ؓ辅线?
4Q.软g工程师着重于B、C、E、DQY件设计师着重于B、C、E、D、FQ架构设计师着重于C、F、H?
3Q如何学习Java?
3.1 Java学习路线
3.1.1 基础语法及Java原理
基础语法和Java原理是地基,地基不牢靠,犹如沙地上徏摩天大厦Q是相当危险的。学习Java也是如此Q必要有扎实的基础Q你才能在J2EE、J2ME领域游刃有余。参加SCJPQSUN公司认证的JavaE序员)考试不失Z个好Ҏ(gu)Q原因之一是ؓ了对得v你交?200大洋考试费,你会更努力学习,原因之二是SCJP考试能够让你把基打得很牢靠,它要求你跟JDK一L(zhn)Java基础知识Q但是你千万不要认ؓ考过了SCJP有多了不vQ就能够获得软g公司的青睐,p够获取高薪,q样的想法也是很危险的。获?真正"的SCJP只能证明你的基础q过得去Q但d际开发还有很长的一D\要走?
3.1.2 OO思想的领(zhn)?nbsp;
掌握了基语法和JavaE序q行原理后,我们可以用Java语言实现面向对象的思想了。面向对象,是一U方法学;是独立于语言之外的编E思想;是CBDZlg开发的基础;属于强势技术之一。当以后因工作需要{到别的面向对象语a的时候,你会感到特别的熟(zhn)亲切,学v来像喝凉水这么简单?
使用面向对象的思想q行开发的基本q程是:
●调查收集需求?
●徏立用例模型?
●从用例模型中识别分析类及类与类之间的静态动态关p,从而徏立分析模型?
●细化分析模型到设计模型?
●用具体的技术去实现?
●测试、部|Ӏȝ?
3.1.3 基本API的学?
q行软g开发的时候,q不是什么功能都需要我们去实现Q也是l典名言所说的"不需要重新发明轮?。我们可以利用现成的cR组件、框架来搭徏我们的应用,如SUN公司~写好了众多cdC些底层功能,以及我们下蝲q来的JAR文g中包含的c?我们可以调用cM的方法来完成某些功能或承它。那么这些类中究竟提供了哪些Ҏ(gu)l我们用?Ҏ(gu)的参C数及cd是?cȝ构造器需不需要参敎ͼM可能SUN公司的工E师打国际长途甚至飘z过h告诉你他~写的类该如何用吧。他们只能提供文档给我们查看QJava DOC文档Q参考文?.4Q就是这L文档Q它可以说是E序员与E序员交的文档?
基本API指的是实C一些底层功能的c,通用性较强的APIQ如字符串处?输入输出{等。我们又把它成ؓcd。熟(zhn)API的方法一是多查Java DOC文档Q参考文?.4Q,二是使用JBuilder/Eclipse{IDE的代码提C功能?
3.1.4 特定API的学?
Java介入的领域很q泛Q不同的领域有不同的APIQ没有h熟?zhn)所有的APIQ对一般h而言只是熟?zhn)工作中要用到的API。如果你做界面开发,那么你需要学习Swing/AWT/SWT{APIQ如果你q行|络游戏开发,你需要深入了解网lAPI/多媒体API/2D3D{;如果你做WEB开发,需要熟(zhn)Servlet{API啦。MQ需要根据工作的需要或你的兴趣发展方向去选择学习特定的API?
3.1.5 开发工L用法
在学习基语法与基本的面向对象概念Ӟ从锻Da熟练E度的角度考虑Q我们推荐用的工具是Editplus/JCreator+JDK,q时候不要急于上手JBuilder/Eclipse{集成开发环境,以免q于xIDE的强大功能而分散对Java技术本w的注意力。过了这一阶段你就可以开始熟(zhn)IDE了?
E序员日常工作包括很多活动,~辑、编译及构徏、调试、单元测试、版本控制、维持模型与代码同步、文档的更新{等Q几乎每一Ҏ(gu)动都有专门的工具Q如果独立用这些工L话,你将会很痛苦Q你需要在堆满工具的Q务栏上不断的切换Q效率很低下Q也很容易出错。在JBuilder、Eclipse{IDE中已l自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等{,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更L。应该说IDE发展的趋势就是集成Y件开发中要用到的几乎所有工兗?
从开发效率的角度考虑Q用IDE是必l之路,也是从一个学生到一个职业程序员转变的里E碑?
Java开发用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans{几U;而Eclipse、JBuilder占有的市Z额是最大的。JBuilder在近几年来一直是Java集成开发环境中的霸主,它是由备受程序员敬的Borland公司开发,在硝烟I漫的Java IDE大战?以其快速的版本更新击|IBM的Visual Age for Java{而成׃番伟业。IBM在Visual Age for Java上已l无利可图之下,q脆之贡献l开源社区,成ؓEclipse的前w,真所?x花明又一?。ʎ火重生的Eclipse以其开攑ּ的插件扩展机制、免费开源获得广大程序员Q包括几乎所有的骨灰U程序员Q的青睐Q极具发展潜力?
3.1.6 学习软g工程
对小型项目而言Q你可能认ؓ软g工程没太大的必要。随着目的复杂性越来越高,软g工程的必要性才会体现出来。参?软g开发学习\U?节?
3.2学习要点
立的学习\U之后,我们q需要ȝ一下Java的学习要点,q些要点在前文多多少提到过Q只是笔者觉得这些地方特别要注意才对它们q行汇总,不要嫌我婆婆妈妈啊?
3.2.1勤查API文档
当程序员~写好某些类Q觉得很有成感,x它A献给各位苦难的同行。这时候你要?Javadoc"工具Q包含在JDK中)生成标准的Java DOC文档,供同行用。J2SE/J2EE/J2ME的DOC文档是程序员与程序员交流的工P几乎人手一份,除了菜鸟之外。J2SE DOC文档官方下蝲地址Qhttp://Java.sun.com/j2se/1.5.0/download.jspQ你可以到google搜烦CHM版本下蝲。也可以在线查看Qhttp://Java.sun.com/j2se/1.5.0/docs/api/index.html?
对待DOC文档要像毛主席语录,早上起床念一遍,吃饭睡觉前念一遍?
当需要某功能的时候,你应该先查相应的DOC文档看看有没有现成的实现Q有的话׃必劳费心了直接用就可以了,找不到的时候才考虑自己实现。用步骤一般如下:
●找特定的包Q包一般根据功能组l?
●找需要用类Q类命名规范的话我们q的名字可猜出一二?
●选择构造器Q大多数使用cȝ方式是创建对象?
●选择你需要的Ҏ(gu)?
3.2.2 查书/google->写代码测?>查看源代?>h别h
当我们遇到问题的时候该如何解决Q?
q时候不要急着问别人,太简单的问题Q没l过思考的问题Q别Z因此而瞧不v你。可以先找找书,到google中搜一下看看,l大部分问题基本p决了。而像"某些c?Ҏ(gu)如何使用的问?QDOC文档是{案。对某些知识Ҏ(gu)疑惑是,写代码测试一下,会给你留下深ȝ印象。而有的问题,你可能需要直接看API的源代码验证你的x。万不得已才去请教别人?
3.2.3学习开源Y件的设计思想
Java领域有许多源代码开攄工具、组件、框ӞJUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等{多如牛毛。这些可是前辈给我们留下的瑰宝呀。入宝山而空手归Q你心甘吗?对这些工兗框架进行分析,领会其中的设计思想Q有朝一日说不定你也能写一个XXX框架什么的Q风光一把。分析开源Y件其实是你提高技术、提高实战能力的便捷Ҏ(gu)?
3.2.4 规范的重要?nbsp;
没有规矩Q不成方圆。这里的规范有两层含义。第一层含义是技术规范,多到http://www.jcp.org下蝲JSRXXX规范Q多读规范,q是最权威准确最新的教材。第二层含义是编E规范,如果你用了大量的独特算法,富有个性的变量及方法的命名方式Q同Ӟ没给E序作注释,以显CZ的编E功底是多么的深厚。这L代码别h看v来像天书Q要理解谈何Ҏ(gu)Q更不用说维护了Q必然会被无情地扫入垃圾堆。Java~码规范到此查看或下载http://Java.sun.com/docs/codeconv/Q中文的也有Q啊Q还要问我在哪,请参?.2.2节?
3.2.5 不局限于Java
很不q,很幸q,要学习的东西q有很多。不q的是因学的东西太多且多变,没时间陪老婆家h或女朋友Q导致n心疲惫,严重者甚臛_致抑郁症。幸q的是别抢你饭碗l非易事Q他们或她们需要付出很多才能达成心ѝ?
Java不要孤立地去学习Q需要综合学习数据结构、OOP、Y件工E、UML、网l编E、数据库技术等知识Q用横向U向的比较联想的方式d习会更有效。如学习Java集合的时候找数据l构的书看看Q学JDBC的时候复习数据库技术;采取的依然是"需要的时候再?的原则?
4Q结束语
需要强调的是,学习软g开发确实有一定的隑ֺQ也很辛苦,需要付出很多努力,但千万不要半途而废。本文如果能对一直徘徊在Java殿之外的朋友有所帮助的话Q笔者也ƣ慰了。哈哈,怎么听v来老气横秋呀Q没办法Q在?sh)脑的长期辐之下,都快变成老头了。最后奉劝各位程序员其是MME序员,完成工作后赶快远ȝ(sh)脑,据《胡播ؕ报》报道,?sh)脑辐射会在白皙的皮肤上面点~一些小黑点Q看h鲜艳无比…… (文章提到的大q大工IT培训。本人没有Q何攻ȝ意?

]]>
վ֩ģ壺
|
|
̨|
ƽ|
|
̳|
|
ʯʨ|
Դ|
|
|
γ|
|
|
˶|
|
|
|
|
|
|
˴|
|
|
廪|
ƽ|
ɽ|
|
ɽ|
|
ʩ|
ɽ|
|
ӱ|
|
|
|
|
|
ƽ|
|