??xml version="1.0" encoding="utf-8" standalone="yes"?>国产香蕉尹人视频在线,www.色综合,yw视频在线观看http://www2.blogjava.net/javainthinking/category/1497.html熊炼的个性空间和java学习(fn)之旅zh-cnWed, 28 Feb 2007 18:37:59 GMTWed, 28 Feb 2007 18:37:59 GMT60q期需要修炼的相关东东如下Q?/title><link>http://www.aygfsteel.com/javainthinking/archive/2005/07/16/7812.html</link><dc:creator>熊炼的个性空间和java学习(fn)之旅</dc:creator><author>熊炼的个性空间和java学习(fn)之旅</author><pubDate>Sat, 16 Jul 2005 06:14:00 GMT</pubDate><guid>http://www.aygfsteel.com/javainthinking/archive/2005/07/16/7812.html</guid><wfw:comment>http://www.aygfsteel.com/javainthinking/comments/7812.html</wfw:comment><comments>http://www.aygfsteel.com/javainthinking/archive/2005/07/16/7812.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javainthinking/comments/commentRss/7812.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javainthinking/services/trackbacks/7812.html</trackback:ping><description><![CDATA[<P>Log4jpdQ?BR><BR><A >Log4j     <1></A><BR><BR>Java IOpdQ?BR><BR><A ><STRONG>JAVA - IO包的学习(fn)引导文章</STRONG><BR></A><span id="wmqeeuq" class=atitle><A >d转变?gu)?nbsp;<1></A><BR></SPAN><span id="wmqeeuq" class=atitle><A >d转变?gu)?nbsp;<2></A></SPAN><BR></P> <P>Excel操作pdQ?BR><BR><A >jxl <1></A><BR><A >POI<1></A><BR><A >POI<2></A><BR><BR>IDEA<BR><A >IDEA的用技?/A><BR><BR>其它Q?BR><A ><span id="wmqeeuq" class=ccwheading02>JSP+XML构架|站的实?/SPAN> </A><BR><A ><span id="wmqeeuq" class=ccwheading02>jspSmartUpload上传下蝲全攻?/SPAN> </A><BR><BR>*********************************<BR>调试      部v    数据库SQL操作Q旧目中的SQL借鉴Q?BR>**********************************</P><img src ="http://www.aygfsteel.com/javainthinking/aggbug/7812.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javainthinking/" target="_blank">熊炼的个性空间和java学习(fn)之旅</a> 2005-07-16 14:14 <a href="http://www.aygfsteel.com/javainthinking/archive/2005/07/16/7812.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>修炼一名程序员的职业水?/title><link>http://www.aygfsteel.com/javainthinking/archive/2005/07/06/7200.html</link><dc:creator>熊炼的个性空间和java学习(fn)之旅</dc:creator><author>熊炼的个性空间和java学习(fn)之旅</author><pubDate>Wed, 06 Jul 2005 07:53:00 GMT</pubDate><guid>http://www.aygfsteel.com/javainthinking/archive/2005/07/06/7200.html</guid><wfw:comment>http://www.aygfsteel.com/javainthinking/comments/7200.html</wfw:comment><comments>http://www.aygfsteel.com/javainthinking/archive/2005/07/06/7200.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javainthinking/comments/commentRss/7200.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javainthinking/services/trackbacks/7200.html</trackback:ping><description><![CDATA[<P><FONT color=#993300>假设你是一名Y件专业毕业的本科学子Q如何在工作中修炼成Z名有较高职业水准的程序员呢,本文试图ȝ作者从?5qY件开发工作的感想Q希望对有志成ؓ(f)职业E序员的人有所帮助Qƈ借此Z(x)感谢原昆明工学院计算机系的和智玲老师和张怀宁老师Q特别感谢我的硕士导师,南京大学计算机系的博导郑国梁教授?BR><BR>注:(x)本帖a辞尖刻,乃作者脾气秉性?dng)如果你看着有气Q就请多多见谅,放下别看?jin)?BR><BR><BR>E序是一pd按步骤进行的操作序列Q它有好多种U别Q比如最低的微E序、次低的汇~程序、高U的各种~程语言E序、最高的脚本语aE序Q也许我列的不对Q但没关p,我要说的是不是那个U别的程序,其本质都是操作的逻辑序列。大多数pȝ和应用程序都是徏立在高~程语言上的Q比如C、C++、CQ、FORTRAN、BISIC、JAVA{等Q就让我们只xq一U的~程能力吧。因此如果一个程序员的逻辑能力不高Q他永远都不能成Z名具有合D业水准的E序员,我们在下面的讨论有关~程能力的方斚w面,最l都是ؓ(f)?jin)最大程度地提高和实C名程序员的逻辑能力?BR><BR>一、掌握基知识Q十六年寒窗的持l积?BR><BR>?岁读学Pl过16q的学习(fn)Q你从Y件专业本U毕业后Q必d成以下几门专业课E的学习(fn)Q计机l成、操作系l原理、汇~语a、数据结构、编译原理、数据库原理、Y件工E、结构性设计语a(PASCAL、C)、面向对象设计语a(CQ+、CQ?、计机|络{,你最好还懂一些算法分析、分布式pȝ、计机囑Ş学、Ş式逻辑、h工智能原理、Y件设计模式、Y件构?框架{研I生的课E,16q来Q你U篏的除?jin)知识,更重要的是Ş成最适合自己的学?fn)方法和工作?gu)。这些是你具备程序员职业水准的基能力Q不要受什么计机软g怪杰之类传奇的媄(jing)响,那不q是概率事Ӟ而且q些怪杰们就没有读qY件本U和研究生,也往往自学?jin)大多数专业评Q很可能比在校学?fn)的学生对这些课E的_N部分理解的更好,q有他们的工作方法和思维方式是特别而高效的Q但普遍性差Q可以借鉴Q不宜模ѝ好Q所以现在你只需要问问自己,那些评和知识都学会(x)q掌握了(jin)吗?如果是,那就准备好进行实践了(jin)?BR><BR>二、在实践中提高:(x)成ؓ(f)一名高水^的Coder<BR><BR>好了(jin)Q你毕业?jin),在校功课都不错,也找了(jin)一个专业对口的工作Q你惛_展`图了(jin)Q可是别急,你的膀q不够硬Q不信我们说来看看?BR><BR>通常Q你在工作中都会(x)用到某一U单?公司固定的操作系l和~程语言开发环境,比如Windows、UNIX、LINUX{操作系l,又比如用VC、VB、PB、Delph、JAVA、Motif/XWindow、QT、OpenGL、OpenInventor{编E语a和开发环境,我们在后面把它们合称为开发环境。就在校学习(fn)的有兛_发环境的知识而言Q大概你距工作需要的差距是不的Q当某个操作pȝ和编E语a环境成ؓ(f)你的饭碗Ӟ׃应也不能用通过评/认证考试之类的眼光和要求来评价你的能力,即你能?00分。你需要深入地学习(fn)该操作系l和~程语言环境的各cd发手册的所有内容,你会(x)说大多数你都用不上,其实你既对又不对Q对的是单从使用的角度而言Q你实用不上开发手册的大多数内容,比如庞大的VC开发类库和复杂的开发环境,你在实际工作中能用到的不到L?/10?/5Q不对的地方在于Q你用到的部分不是孤立存在的Q它们是整个体系中的一部分Q只有对整个体系有了(jin)一个较完整的了(jin)解,才能得心(j)应手、随?j)所Ʋ地用好你用到的部分Q你才算初步具备在这U开发环境下q行Coding的职业水?q远不够E序员的职业水准?Q而这只是刚开始。如何才能真正掌握一U开发环境的全面的知识呢Q最原始的办法就是读开发指?教程、参考手册,一般来Ԍ学习(fn)开发指?教程Ӟ你如果是一个认真的人,都会(x)完成5/10~7/10左右内容的学?fn)和l习(fn)Q如果你x业选手Q就应该完成9/10以上内容的学?fn)和l习(fn)。参考手册不同,大多数所谓的“程序员”们只是用到?jin)才ȝQ这差的太远?jin),你应该象d发指?教程一P每个环节都要读,比如VCQ参考手册中的每个类Q类的每个函敎ͼ都要M几遍Q它们往往是一伙一伙地纠~在一起用的Q开始时d你毫无头l、心(j)?ch)意乱,不要紧,q有一手呢Q如果你开发环境安装的全面Q它们往往都有开发商做的demo例子可看Q你p入另一个境界了(jin)Q开始时你关注demo中的具体技术,后来你发现这些demo的程序写的都q算不错Q结构简单但合理Q如果你真的用心(j)Q就一定能发现一些个别的demo是极品,它所展现的程序逻辑l构是你设计不出来的Q你现在有点更关?j)它的程序设计构Ӟ甚于对你原始目?某种相关的技?技?的关注,q时的你Q开始了(jin)从一名Coder向一名Programmer的{变,你会(x)忍不住要看看开发商提供的源E序Q比?h?cppQ通常你会(x)扑ֈinclude路径下所有的.hE序Q你才知道,哇!好多好多东东在参考手册中都没提到Q你要学的太多了(jin)Q没旉֏(qing)其它的业余爱好了(jin)Q现在知道ؓ(f)什么程序员是年Mh的职业了(jin)吧,你要有够多的时间才行,即你的智商?60。如果你走到q一步,在你工作的团队中Q已l是l常有h向你h技术问题,l常有hh你帮忙debugQ你已是公认的“高手”了(jin)Q别得意Q因Z仍然是个CoderQؓ(f)什么这么说呢,你想惻I你已深入?jin)解了(jin)这个开发环境中的各U技能,知道一名Coder如何用好q些东西Q可是你能设计的出提供给C(j)oder们用的东西吗Q唔……,你想?jin)想Q可能还不太行。对?jin),是q样Q你q是一名小我境界的E序员呢Q本质是个CoderQ当然已是一名高水^的Coder?jin),然而你需要进一步登堂入室才能成Z名真正的E序员?BR><BR>让我们l吧Q通常你都是从_N一U编E环境开始的Q假设你已经较ؓ(f)_N在Windows下用VC开发Y件了(jin)Q这时在技术和技巧方面你面临一一大两个挑战,W一个小挑战是如果公?单位Ҏ(gu)?jin)开发环境,比如用LINUX下的QT交互语言工具q行开发,你不q是把前面掌握VC的过E再来一遍,׃在主观上l历?jin)VC工具的学?fn)过E,在客观上各种开发环境都有太多相似的斚wQ这回你掌握的应该较快。要心(j)Q在q时W一ơ诱惑之门打开?jin),因?f)你感觉良好,看!q回q么快,我就q么好地掌握?jin)新的开发环境,你开始关注其它暂时还用不到的同类环境Q比如VB、Delph、JAVAQ如饥似渴地掌握各种开发工P证明自己的学?fn)能力和价|但你忘了(jin)一点,你仍然是个CoderQ只不过是一个在好多开发环境下都能~程的CoderQ就像你生活在中国,因而精通了(jin)汉语Q工作需要你又掌握了(jin)pQ然后你来?jin)劲Q把俄语、日语、阿拉伯语、拉丁语Q等{等{,都学?fn)个遍,我只能说Q有点BT。你忘了(jin)自己是个职业人,同一cȝ东西工作中用得到才需学习(fn)Q太多太多的Coder们喜Ƣ在一h较和炫耀自己?x)掌握?jin)几种开发工P不信你看看招聘时的求职书q道了(jin)QsighQ他们中l大多数人永q都只能停留在这个层ơ上Q心(j)气w,一生都再也当不成真正的E序员了(jin)。ȝ一下,其实你在q时需要的是对自己掌握新开发环境的能力的自信,而不是一遍遍地重复来证明自己。第二个大挑战就是你明白?jin)只掌握VC是不够的Q你发现自己有点薄Q有很多东东你会(x)用但你不太懂Q很多方面支持VC~程的知识你都没掌握Q比如操作系l的源码、网l协议知识、Windows 的注册表、进E和U程的基知识、硬仉动方面的知识、ActiveX、Windows 庞大?APIQ又是一个等{等{,q些基础知识的学?fn)和掌握可是要花费大量时间的Q你再一ơ深切地感到旉太不够用?jin),因?f)q时的你大概有许多俗务缠w了(jin)Q所以有Ҏ(gu)丧,q不用提IT业每天不知有多少C西在发布QKAOQ永q都跟不上,拉远?jin)。哎Q别气馁Q振作一点,你还是忘C(jin)自己是个职业人,既然好多东东在工作中你永q都没机?x)用Q那么干嘛要学呢Q用什么才学什么,最多预到马上要用什么,先一步学什么好?jin),要知道没有h是真正的、无所不精的全U大夫,除非你是,但如果你q在耐着性子看这文章,你肯定是个h嘛?BR><BR>OKQ一般工作后三五q_(d)你经历了(jin)上述q程Q经受了(jin)诱惑和考验Q终于明白了(jin)一个道理:(x)你要的是强劲的学?fn)知识的能力Q是Ҏ(gu)UY件知?技能的有深度的_N,一U摸到它的根的深度,而不是已掌握的技能的U类和数量。这时无用他掌握?jin)多种你不会(x)的技能来吓唬你都没用Q你对他的层ơ只有蔑视。通过几年的学?fn)和工作Q要C最重要的一点,永远最重要Q对自己学习(fn)IT知识能力的自信,一个程序员一生都要不停地q行高强度的学习(fn)Q用?j)问问自己,有没有这个自信?别用虚荣心(j)来骗自己哦Q如果没有的话,那就不必p你宝늚旉向下看了(jin)Q作者在此感谢你有耐心(j)看到q里Q现在徏议你关闭q篇文章Q趁着q轻Q当机立断{行吧Q?BR><BR>三、注重逻辑Q成Z名职业程序员<BR><BR>好,再前q一点点Q你p成ؓ(f)一名职业程序员?jin),让我们l来完成q个d吧!我们在前一节提到过Q“你发现一些个别的demo是极品,它所展现的程序逻辑l构是你设计不出来的Q你现在有点更关?j)它的程序设计构Ӟ甚于对你原始目?某种相关的技?技?的关注”,其实你是在关注这个demoE序作者的思维逻辑Q所有程序的本质是逻辑。技术你已经较好地掌握了(jin)Q但只有完成逻辑能力的提高,你才能成Z名职业程序员。打一个比方吧Q你?x)十八般武艺Q刀枪棍都很精通,但就是力气不够,所以永q都上不?jin)战场,q个力气对程序员而言是逻辑能力(其本质是一个h的数学修养,注意Q不是数学知?。逻辑能力也是逐步提高的,开始时你一定是用直观的逻辑能力来编E的Q怎么惛_怎么~,不对再改,在改q中提高自己的逻辑能力Q从直观逻辑能力提高到抽象逻辑能力Q这是很正常的。提前说一句吧Q到N辑能力的至高境界,其表现是用数学语a来描q问题和问题的解军_法,高度抽象Q好Q说回来吧,你要提高逻辑能力Q最快的办法是d人写的结构优U的程序。优U的代码是百读不厌?q句话是我抄来的)Q暂时放攑֯其中某种技术和技巧的x吧,你要推导和学?fn)的是这些好E序的逻辑l构Q它们是被精?j)设计出来的。你可以先捂住这个demoE序Q自p计一个功能相同的E序l构Q然后比较一下demo的程序结构,如果差距较大Q那你就不应单地改进一下,而是要把demo作者设计的q程在心(j)里复原一遍,做到q一点也许有点困难,但这U事q的多了(jin)Q你׃(x)干快Q越来越得心(j)应手Q你的逻辑能力飞速提升,你能看得上的逻辑l构优秀的程序开始不多了(jin)Q下一步就是练?fn)。从工作中开始吧Q如果你有空Ԍ你需要做臛_两类l习(fn)Q一cL法l习(fn)Q所有的l典法都是l典的逻辑Q题目有的是Q像个好学生一样吧Q每q的国内国际~程竞赛都有逻辑要求非常高的题,你可以只选一两道N来做做。当你可以把复杂的单递归E序(只有A调A)变成非递归E序Ӟ已经不错?jin),如果你能看得懂双递归E序(A调A、A调B、B调A、B调B都有)Q我Z鼓掌Q你不必往下看?jin),我有点不好意思啦――班门弄斧,你快滚蛋吧!另一cL把以前和当前你工作中你不满意的程序推倒重新设计一遍,q非帔R要,省时省力Q因Z熟?zhn)需求,技术上也没问题Q目的就是改q程序的逻辑l构Q很划算哦,唯一要克服的是Q你Ҏ(gu)M前工作中那点小成就的心(j)理障,如果你真想优UQ说句粗话:(x)q点?j)理障碍个屁,一遍遍反复地推倒已有的成果只能使自己快速进步,放手q吧Q没什么好可惜的,马恩早就在《共.?党宣a》里说过?jin)?x)在这个过E中Q你失去的只有锁?锢你思想的锁??BR><BR>让我们来ȝ一下,l过自我否定后,再生的你管对过ȝ“业l”还有一些眷恋,但已是一个初步具备职业水准的E序员了(jin)Q掌握了(jin)相应的技术和技巧,具备?jin)较高的抽象逻辑思维能力Q最主要的特征是Q能自觉地自我否定,不断地追求更高水q的逻辑能力?BR><BR>在这个过E中Q如果你能注意以下一些小的方面,你前q的步伐也许?x)快一些?BR><BR>l 从编译原理的角度来理解你工作中用的高语言Q如果你做到q一点,臛_有两个好处,W一个好处是避免一大堆低水q重复出现的~译错误。一名优U的Coderq_在一个工作日中应该完?00行以上的源码Q其~译错误应该控制?个以下,要知道这200行源码不是一ơ完成的Q所以大多数情况下你都要q求一ơ编译通过Q而一名职业水准的E序员,应该q一步做到即使用purifyq类的工h(g)查源码,也不?x)存在严重的内存泄露。第二个好处是可以提高源码的可读性和效率。规范地~写你的代码使你自己的逻辑清晰Q因Z明白多加几个括号和空行、多换行寚w、多注释Q编译器是会(x)自动识别的,不媄(jing)响程序执行的效率Q反q来Q控制好递归调用和@环内的if语句才是提高E序效率的关键,要全力避免递归Q但要深ȝ解递归Q能通过自己建立堆栈来把递归E序转换成非递归E序Q要求还是较高的哦!<BR><BR>l 避免思维陷阱Q只要你是h׃定有自己的思维惯性,q一定又?x)表现在你的E序逻辑中,有时你就是从q个惯性中跳不出来(谁都有这个时?Q但要心(j)里有数才行,所以你需要帮助,如果你有几个水^相若或更高的职业伙伴Q太好了(jin)Q当遇到?0分钟q打不下的bugӞ别费旉?jin),找他们吧Q最要紧的是能思\清晰明确地表qC的问题,通常你自己在q个q程中或者伙伴中有人把问题解决?jin),又快又好。另外,有几个可以良性竞争的职业伙伴是h生的一件幸事,1+1>2Q大家各有所长,你最好做到及(qing)时公开你的成果Q技不压w嘛QIT发展的这么快Q你再优UQ那点东东也没有什么值得隐藏的,所以你可以技术或水^不够高,但千万不可以让真正具有职业水准的选手鄙视你的职业品质和行为?BR><BR>l 有自己debug的特点,下面的说法作者不敢太肯定Q只是经验之谈。即使在VCq种高度完善的开攄境下Q你仍然应该要求自己仅凭打印语句pdebug。这也有两点好处Q第一个好处是Q遇到bug你会(x)认真想问题所在,而不是用debug工具一步步单地q踪卡在哪儿?jin),你定位bug范围的方式是从大到小、从_到_,q是一U自向下的思维方式Q而用工具q踪Q容易Ş成自底向上的思维方式Q这不算好,你应该先看到林Q再看到?wi)木。我反复提及(qing)Q程序就是逻辑q程Q大多数E序从main函数开始,是由数据l构和功能子E序l成的一个树(wi)形结构的逻辑q程(要认清即使是面向对象的程序语a也是一L(fng))Q它的执行过E是深度优先的,但你定位bug应该是广度优先的Q好好想惌一点,嗯?W二个好处是你思考ƈC而不是用工具看到调用q程Q你大脑的抽象逻辑思维能力和胳膊上肌肉的力量一P都是l出来的Q如果你的bug是程序结构上的逻辑错误引v的,q一点就非常重要?jin),Z说一句,最难打的bug是E序逻辑l构错误D的bug。你要是真正明明白白地认识到q儿?jin),那我没什么东西可以告诉你?jin)。MQ程序员的职业水准:(x)生效率和程序质量,主要是取决于源码中bug的数量和debug的速度Q而不是取决于~写源码的速度。给你一个我自己定义的考查一个职业程序员的指标:(x)一个合格水准的职业E序员,~程的时间如果算一份的话,其篏计debug的时间不能超q一份,真正职业高手累计debug的时间应该控制在0.5份以下,如何Q你关上门?zhn)?zhn)问问自己,你花费在~程和debug上的旉比例是多?如果你把E序员作׃生的职业Q那么就永远都要牢记一点:(x)q求做一? bug的优UE序员!q是M一个想成ؓ(f)职业E序员的人的理想Q请怿Q坚忍不拔地q求实现q个理想让你出cL萃!<BR><BR>l 做好E序的单元测试,q是另一考查你是否是一名具有合D业水准的E序员的一个必要指标。其实在你拿到需求的时候就要准备单元测试用例了(jin)Qƈ且这些用例将直接影响你的详细设计(有关软g设计本来是该攑֜W四节讲?。我们还是打比方吧,当你拿到一个需求时Q除?jin)分析它静(rn)态的功能外,q应明确它动态的操作/执行q程Q把q个动态过E明地用流E图d来,比如分ؓ(f)A~Z?6步,其中A又可以进一步分解ؓ(f)A1~A5?步,直到不能再分解ؓ(f)止。又比如说A3步不可分解了(jin)Q那么你应该把A3步的正常操作和所有五花八门的异常操作都列出来Q确保正常的操作肯定正确Q异常的操作L(fng)E序不退出才行。这样你p写好多好多的试用例Q说句老实话,我也从来不写Q但我一般会(x)列一个提UԌ比如A3步有正常的操作a、b、c、d、e?,异常的操作有f、g、h、i、j、k、l、m、n?,你在q行单元试旉应该跑一遍,q样的程序都q不敢说质量如何好,但v码可以说较稳定吧Q如果要惛_q行单元试时干得快、效率高Q那么在q行详细设计Ӟ你就应该把A3步中Ҏ(gu)有正常操作和异常操作的判断都设计好,在编E实现A3步时Q得程序的l构合理高效Q对不对Q所以,如果你在工作中是割裂地看待Y件工E中从需求、分析、设计、编E、测试等各个环节Q恐怕水q_有限喔!但如果你在分析需求时p看到试的问题,q改q设计和实现Qؓ(f)此做好相应的准备工作Q嘿嘿,整个软g开发过E你的效率会(x)高很多,通常你在一个开发团队中׃(x)高度自信的,你已过当一名偏颇、露骨的高手的境界,成ؓ(f)一个^?rn)的高手Q这可是The best in the bestQ,用周星星的话_(d)(x)是高手之高高手,因ؓ(f)别h看不Z高在哪儿Q没见你有什么高招或Ҏ(gu)命干Q但反正你就是干得又快又好、又省力。关于进行单元测试还有很多复杂的Ҏ(gu)Q在此本文只提到?jin)最基本的一点,目的是让你在工作上考虑周全、安排有序,其它的自q吧Q没有h能替你吃饱饭Q?BR><BR>l 如果你是用CQ+~程Q我再简单谈谈有兛_层释攄一个小技巧,是Ҏ(gu)有你~写的类Q在构造和析构函数中加打印语句Q统计每个类在运行程序时构造和析构的地方,如果是配对的Q那么v码没有对象类一U的内层在程序运行结束时没有释放Q然后你可以把打印语句删掉?jin),招数虽土Q但用Q?BR><BR>l q有其它一些好?fn)惯Q在q里我随W写一些,你要是有不同看法也请一W过之吧。编E时应该寚w~进Q一个羃q用一个tab键,一般是4个空|严格遵守开发团队的~程规范也是非常重要的。一个子E序不应过30?不算I)Q其内多重@环不应超q?层,否则都应该分裂成两个子程序,个别法E序可以长一些,但也不宜过200行。通常一个类的所有成员函数d不宜过1500行,多了(jin)应该考虑分解成两个类(q个工作最好在设计时就完成)。每完成一段E序Q比?5?0行,q即编译运行,不要假装高手Q先敲它一大堆E序Q再~译q行Q妄想一ơ成功,体验一U假爽的、虚荣的快感Q或炫耀l别人看Q这么做只能证明自己是一个不折不扣的?c)Q装酯(g)已。因为只要有一ơ不成功Q你׃(x)p大量的时间来调程序,别h的进度在q时pq地过你了(jin)Q^常心(j)是道Q还是修炼真功夫吧!孙子光|里关于这一Ҏ(gu)明确的阐qͼ我就不引用了(jin)Q但你真的不要这么干Q除非你实是q样L一ơ就成功的天才,那你q看q篇文章q什么呢Q我又不是写l你们这些天才们看的。再是有学?x)买好书、读好书Q关于计机和Y件方面的书太多了(jin)Q时间有限,比如有一个叫侯捷的家伙,几乎写的每本书都不错Q张国峰的CQ+~程也不错,q只是我的个人意见啊Q好书多着呢,列出来比q篇文章长好多倍,我就不多说了(jin)。还有一招,要是你运气好Q能搞到一些著名Y件系l的源码Q好好读dQ在此我只能告诉你,Linux操作pȝ的一些源码不错,是开攄Q你可以合法地搞刎ͼ其它的不要说是我你R犯知识版权啊Q?BR><BR>四、天生神力:(x)成ؓ(f)pȝ分析?BR><BR>本来pq如何成Z名职业程序员而言Q本文已基本完成d?jin),但《菜根K》有aQ竭世机枢,g滴投于巨壑,I玄辩Q若一毫置于太虚。既已乘兴到此,何妨多置一毫于太虚呢,作者不才,q脆兴写算?jin)?BR><BR>你要是运气好Q直接进入了(jin)一个严D范生产的软g企业׃Q刚开始就应该是按别h做好的Y件设计来实现~程Q你可以有机?x)直接学习(fn)Y件设计,当你U篏的够多?jin),能够对其中的一些设计提出好的改q徏议,而且q得又快又好Q就?x)渐渐地展露头角Q我怿你终有一天成Z名Y件设计h?注意Q不是Y件品设计h?Q步入系l分析员的行列,但这q需其它的一些条件和自我修炼。如果你在一个不规范的Y件企业工作,那也不错Q你很可能直接就有机?x)进行Y件设计,然后开发、测试,甚至q不得不自己定义需求,把Y件开发过E的各个环节C个遍Q当然这样对你的要求更高Q而且你也不容易得到及(qing)时有益的指点Q在正态分布的情况下,你应该是成长的很慢。但不管׃的单位如何,如果你决?j)要成?f)尖软g职业选手Q通常什么客观困NL不了(jin)你,然而你个h的因素可能会(x)L你的前进。下面提出的观点U属一׃见,伤h自尊之处作者在此提前道歉,q徏议你除非Ҏ(gu)文有强烈的兴,否则p直接看第五节或放下别看了(jin)。丑话已说在前头?jin),在各UY件开发组l的发展q程中的事实也证明,只有数E序员能成ؓ(f)pȝ分析员,我想q一点不是我杜撰的吧Q因此你要是在看接下来的部分时感到气愤难当,那也实在没着Q纯属活该,因ؓ(f)作者只是在说明自己的观点而已Q你最多可以呲之以鼻,表示一下你的轻蔑好?jin),但没有Q何理由可以骂人!<BR><BR>作者自己没有到微Y面试q,但n处Y件行业,关于微Y的许多东东当然还是有耳闻的,据说微Y招聘一名程序员要过五个已经成ؓ(f)微YE序员的面试养I而且是一否军_Q又据说大多数面试题q~程Q而是一些有关逻辑和智力的题,作者私下也做过许多传的微软面试题QƈҎ(gu)做法׃为然。程序的本质是逻辑Q所以几十年前就有h提出~程是一门艺术,而艺术是要靠天䆾的,q一点少有h反对。一个h的逻辑能力可以不断提高Q但其能到达的终极逻辑能力的层ơ必定ؓ(f)其天生智力所限制Q这一点就让h不易接受?jin)。好W啊Qh们可以公开承认自己没有某种或全部的艺术天䆾Q但要说自己逻辑天䆾不够Q换句话说承认自q、IQ不够高,往往是要怒发冲冠的,其实q又有什么区别呢Q话都说到这儿了(jin)Q再ơ徏议你如果不够自信Q就跌q一节吧Q直接看W五节,好吗Q?BR><BR>好了(jin)Q把话题说回来,你已l成Z门合格的职业E序员了(jin)Q如果要xZ事Y件系l设计的职业pȝ分析员,W一件事是(zhn)?zhn)找一个标准智商测试的|站或其它渠道,严格认真的测一自q智商Q如果IQ低于130 (正常智商?10)Q就请别费劲?jin),打消掉成为系l分析员的念头吧Q好Q好Q先请你冷静(rn)一下,好好xQ其实微软面试时是在测你的智商和逻辑数学素质呢,q就是本节的标题为“天生神力”的原因Q因计就是从无到有地q行创造,无论是Y件还是其它行业都一P可以有借鉴的,没有现成的,设计是创造!如果你I(yng)Q?30以上Q又军_(j)要当一名职业Y件系l分析员Q其实你不过是要准备好吃更大的苦而已Q有什么好虚荣的呢Q?BR><BR>修炼q是从基本功开始的Q过E和成ؓ(f)一名职业程序员差不多。必M用设计工兯一Ҏ(gu)不用多说的。在工作中,你基本上遇到的是两类方式的设计,一个是l构化设计,另一个是面向对象设计Q就个hl验而言Q面向对象的设计更好。如果你工作中不得不采用l构化的设计Q你必须熟练地掌握数据流囑֒控制图的分析和设计Q一般来Ԍ如果你把一个Y件中用到的数据模型设计好?jin),针对功能化的程Q不难设计出数据图Q但下一步设计控制流图才是挑战,如果你按照需求走不通设计好的控制流图,那么你或别h在按照这个设计编E实现时Q必定也C通,没有奇迹?x)发生,q是在设计阶D严D求吧Q又有一炚w要牢讎ͼ(x)q工是最慢的。当你在q行控制图的设计时Q也不要妄想得到需求h员提供给你明的指点Q通常他们要是能够把需求的功能和操作次序写完整的话Q你应该感恩戴德了(jin)Q从需求中整理出功能、操作的拓扑ơ序和条件是你作为系l分析员的职责。看看,要是没有一点图论的基础和拓扑学的入门知识,你是当不好一个职业系l分析员的,即你天赋不错,必要的数学和逻辑素质仍然不可或缺。也不用气馁Q永q没有最好的设计Q只有更好的设计Q反复地q行设计q代Q勇于推L的设计,你将快速进步。如果你在工作中是采用面向对象进行设计的Q那更有利?jin),有关面向对象设计的书太多了(jin),不用作者在此多费口舌,_读一本经典的书,比如北大늻忠等~译的《面向对象的分析》,有些Ҏ(gu)和技巧可能过Ӟ但其逻辑的基本原理是非常正确的,其本质是Q你在逻辑上是如何认识q个世界的,你就是如何设计Y件体pȝ构的Q然后读d它书Q触cL通,自己创造机?x)多实践Q成功自然会(x)到来的,MQ不是l构化设计还是面向对象设计,评h(hun)一下自q软gpȝ设计Ҏ(gu)吧,有好多指标呢Q比如是否均匀和^衡?局部独立性强不强Q有没有歧异的结构?有没有层ơ太多或太少Q有没有某个层次太大、太q?是不是逻辑l构先复杂了(jin)再化的?q是只会(x)设计单的Q复杂不h(q一Ҏ(gu)W哦Q如果出现多ơ,请你不要意气用事Q{行吧)Q最重要的一点,是否Ҏ(gu)理解、实现和改进Q你自己?x)得(gu)L(fng)。如果有Z(x)看到别h的设计,一定不要错q学?fn)的Z(x)Q自己推g遍,认真比较比较Q获益会(x)较多?BR><BR>走到q一步,你就应该x设计模式?jin),首先q是学习(fn)Q这斚w的好书有的是Q但一般在工作中用到的设计模式较ؓ(f)单一Q应该多试一下其它的设计模式。其ơ必要明白设计模式不是设计思\Q也不能代替设计思\Q比方你要从A到B修一条\Q设计模式只是让你选择Q是修水泥的q是柏a(b)的?是高架\q是普通的Q但U\必须你自己定Q而线路就是设计思\Q模式对思\是有影响Q但不能代替Q所以如果你的智商高?50Q我怿你直接用汇编语言也能写出面向对象的程序来。第三在此有一个陷阱,很多pȝ分析员生搬硬套设计模式,全然不懂如何融会(x)贯通,在你的一具体工作中Q往往是以一U设计模式ؓ(f)主,其它模式的,思维不拘泥于形式才是关键Q而且也ؓ(f)你到达更高的软g设计的境界做好准备?BR><BR>唉!都不知该怎么向下写好?jin),因?f)已达C者水q的极限?jin),我胡p一点,你凑合看吧。Y件设计最l的层次是:(x)以无法ؓ(f)有法、以无限为有限,q句话是李小龙说的,不是我说的。再拾h牙慧一把,cL一个故事吧Q金大侠在《倚天屠龙记》里讲到张无忌初学太极,学会(x)的标志是把刚学的招数全忘?jin),C的是太极的道理和_Q和李小龙有些相似喔QY件设计也一P忘记所有的设计模式Q随?j)所Ʋ进行设计才是至高境界,所以你能到辑֤高的软g设计的境界最l将取决于你的哲学素质,q一点实在是不好写啊Q你自己领?zhn)吧!作者只有祝了(jin)Q?BR><BR>五、职业h的终极目标:(x)全面修炼Q成为Leader<BR><BR>q一节更不好写,涉及(qing)到太多其它非技术方面的因素Q特别是个h人生观和世界观的修炼Q如果本帖的点击率超q作者私下期望的一个数|那我׃取尽力厚着脸皮再补上吧。我只说一句,虽然大家都知道Y件开发是一个团队性的工作Q但q求参与一个大型Y件系l的成功开发,是一名Y件h员的本能Q就像拿破仑说的不想当元帅的士兵不是好士兵,所以不q求实现大系l的软g人员Q也不是一个好的职业Y件h员,但你只有成ؓ(f)LeaderQ领g个优U的Y件开发团队,才有Z(x)实现q个l极职业目标Q对不对Q?BR><BR>好吧Q不你现在的感受如何,我都谢谢你能dq里Q我不习(fn)惯假歉虚Q就不说什么作者水qx限,本文抛砖引玉Q欢q大家批评斧正之cȝ客套话了(jin)Q虽然作者水q确实有限。所以我认ؓ(f)你尽有权砸砖,但实在没必要搞回帖、或回骂、或之cȝ玩意儿,我只是尽兴写一点多q从事Y件开发工作的体验Q因此接下来我就高挂免战牌,不回复Q何回帖了(jin)。再ơ谢谢你能有耐心(j)dq里Q希望本文对你有所裨益Q祝你成功!再见Q?/FONT><BR><BR></P><img src ="http://www.aygfsteel.com/javainthinking/aggbug/7200.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javainthinking/" target="_blank">熊炼的个性空间和java学习(fn)之旅</a> 2005-07-06 15:53 <a href="http://www.aygfsteel.com/javainthinking/archive/2005/07/06/7200.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>?j)态决定着学习(fn)Java的不同历E…?/title><link>http://www.aygfsteel.com/javainthinking/archive/2005/05/30/5325.html</link><dc:creator>熊炼的个性空间和java学习(fn)之旅</dc:creator><author>熊炼的个性空间和java学习(fn)之旅</author><pubDate>Mon, 30 May 2005 03:23:00 GMT</pubDate><guid>http://www.aygfsteel.com/javainthinking/archive/2005/05/30/5325.html</guid><wfw:comment>http://www.aygfsteel.com/javainthinking/comments/5325.html</wfw:comment><comments>http://www.aygfsteel.com/javainthinking/archive/2005/05/30/5325.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javainthinking/comments/commentRss/5325.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javainthinking/services/trackbacks/5325.html</trackback:ping><description><![CDATA[以前一直以非常急进的心(j)态学java.H然却发觉这样往往使自pȝzR不能java学习(fn)溶入生活当中Q的心(j)情经常躁?q失在生zMؓ(f)?jin)什么当中…?BR>今,醒然?BR>以开阔和q静(rn)的心(j)态去学习(fn)Q也怼(x)获得更多……(q求的激情永q都不会(x)灭Q,因ؓ(f)不能溶入生活的东西,l究?x)被生活所累?BR>今在此胡apQ不知所?<img src ="http://www.aygfsteel.com/javainthinking/aggbug/5325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javainthinking/" target="_blank">熊炼的个性空间和java学习(fn)之旅</a> 2005-05-30 11:23 <a href="http://www.aygfsteel.com/javainthinking/archive/2005/05/30/5325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>历史的教训是沉痛的…?/title><link>http://www.aygfsteel.com/javainthinking/archive/2005/05/28/5292.html</link><dc:creator>熊炼的个性空间和java学习(fn)之旅</dc:creator><author>熊炼的个性空间和java学习(fn)之旅</author><pubDate>Sat, 28 May 2005 05:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/javainthinking/archive/2005/05/28/5292.html</guid><wfw:comment>http://www.aygfsteel.com/javainthinking/comments/5292.html</wfw:comment><comments>http://www.aygfsteel.com/javainthinking/archive/2005/05/28/5292.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/javainthinking/comments/commentRss/5292.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/javainthinking/services/trackbacks/5292.html</trackback:ping><description><![CDATA[1.林彪不抽烟不喝酒只活?3?<BR>2.周恩来只喝酒不抽烟,zM(jin)73?<BR>3.毛泽东只抽烟不喝酒,zM(jin)83?BR>4.邓小q_抽烟又喝酒,zM(jin)93?<BR>5.而张学良老将军吃喝嫖赌博h都来Q活?03?<BR>历史的教训是沉痛的…?img src ="http://www.aygfsteel.com/javainthinking/aggbug/5292.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/javainthinking/" target="_blank">熊炼的个性空间和java学习(fn)之旅</a> 2005-05-28 13:57 <a href="http://www.aygfsteel.com/javainthinking/archive/2005/05/28/5292.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JAVA开发者应该去?0几个英文|站 http://www.aygfsteel.com/javainthinking/archive/2005/05/21/5034.html熊炼的个性空间和java学习(fn)之旅熊炼的个性空间和java学习(fn)之旅Sat, 21 May 2005 08:07:00 GMThttp://www.aygfsteel.com/javainthinking/archive/2005/05/21/5034.htmlhttp://www.aygfsteel.com/javainthinking/comments/5034.htmlhttp://www.aygfsteel.com/javainthinking/archive/2005/05/21/5034.html#Feedback0http://www.aygfsteel.com/javainthinking/comments/commentRss/5034.htmlhttp://www.aygfsteel.com/javainthinking/services/trackbacks/5034.html[http://www.javaalmanac.com] - Java开发者年鉴一书的在线版本. 要想快速查到某UJava技巧的用法?qing)示例代? q是一个不错的d.
[http://www.onjava.com] - O'Reilly的Java|站. 每周都有新文?
[http://java.sun.com] - 官方的Java开发者网?- 每周都有新文章发?
[http://www.developer.com/java] - 由Gamelan.com l护的Java技术文章网?
[http://www.java.net] - Sun公司l护的一个JavaC֌|站.
[http://www.builder.com] - Cnet的Builder.com|站 - 所有的技术文? 以JavaZ.
[http://www.ibm.com/developerworks/java] - IBM的Developerworks技术网? q是其中的Java技术主?
[http://www.javaworld.com] - 最早的一个Java站点. 每周更新Java技术文?
[http://www.devx.com/java] - DevXl护的一个Java技术文章网?
[http://www.fawcette.com/javapro] - JavaPro在线杂志|站.
[http://www.sys-con.com/java] - Java Developers Journal的在U杂志网?
[http://www.javadesktop.org] - 位于Java.net的一个Java桌面技术社区网?
[http://www.theserverside.com] - q是一个讨论所有Java服务器端技术的|站.
[http://www.jars.com] - 提供Java评论服务. 包括各种framework和应用程?
[http://www.jguru.com] - 一个非常棒的采用Q&A形式的Java技术资源社?
[http://www.javaranch.com] - 一个论坛,得到Java问题{案的地方,初学者的好去处?
[http://www.ibiblio.org/javafaq/javafaq.html] - comp.lang.java的FAQ站点 - 攉?jin)来自comp.lang.java新闻l的问题和答案的分类目录.
http://java.sun.com/docs/books/tutorial/] - 来自SUN公司的官方Java指南 - 对于?jin)解几乎所有的java技术特性非常有帮助.
http://www.javablogs.com] - 互联|上最z跃的一个Java Blog|站.
http://java.about.com/] - 来自About.com的Java新闻和技术文章网?

另外Q?A >www.theserverside.com

www.apache.org

http://sourceforge.net/



熊炼的个性空间和java学习(fn)之旅 2005-05-21 16:07 发表评论
]]>
学j2ee应该按照什么步?曄的水木的_֍Z的帖? http://www.aygfsteel.com/javainthinking/archive/2005/05/21/5030.html熊炼的个性空间和java学习(fn)之旅熊炼的个性空间和java学习(fn)之旅Sat, 21 May 2005 04:39:00 GMThttp://www.aygfsteel.com/javainthinking/archive/2005/05/21/5030.htmlhttp://www.aygfsteel.com/javainthinking/comments/5030.htmlhttp://www.aygfsteel.com/javainthinking/archive/2005/05/21/5030.html#Feedback0http://www.aygfsteel.com/javainthinking/comments/commentRss/5030.htmlhttp://www.aygfsteel.com/javainthinking/services/trackbacks/5030.html
1.学j2ee应该按照什么步?/FONT>:

     先要有一些Java的经验,然后开始看EJB的代码和例子?nbsp;
     然后多做一些Servletl合EJB的东西, 
     然后多看设计模式Q?nbsp;
     然后玩命M码,写代?nbsp;
     然后在jarkata上找点事情做 
     然后成ؓ(f)大虾Q开始狂赚钱Q?/FONT> 


2.  Java2q_企业版(J2EEQ的13U核?j)技术:(x)

   JDBC,   JNDI,   EJBs,   RMI,   JSP,   Java servlets,  XML,  
  
   JMS,    Java IDL,    JTS,    JTA,   JavaMail   ?nbsp;  JAF?BR>




















]]>
如何才算掌握Java Q?别h观点http://www.aygfsteel.com/javainthinking/archive/2005/05/21/5029.html熊炼的个性空间和java学习(fn)之旅熊炼的个性空间和java学习(fn)之旅Sat, 21 May 2005 04:36:00 GMThttp://www.aygfsteel.com/javainthinking/archive/2005/05/21/5029.htmlhttp://www.aygfsteel.com/javainthinking/comments/5029.htmlhttp://www.aygfsteel.com/javainthinking/archive/2005/05/21/5029.html#Feedback0http://www.aygfsteel.com/javainthinking/comments/commentRss/5029.htmlhttp://www.aygfsteel.com/javainthinking/services/trackbacks/5029.html别h观点Q如何才掌握Java
时常看到一些h说掌握了(jin)JavaQ但是让他们用Java做一个实际的目可能又困N重,在这里,W者根据自q一点理解斗胆提?gu)q一些对掌握Javaq个说法的标准,当然对于新手Q也可以提供一个需要学?fn)哪些内容的参考。另外这个标准仅限于J2SE部分QJ2EE部分的内Ҏ(gu)旉再另说?BR>1、语法:(x)必须比较熟?zhn)Q在写代码的时候IDE的编辑器Ҏ(gu)一行报错应该能够根据报错信息知道是什么样的语法错误ƈ且知道Q何修正?BR>2、命令:(x)必须熟?zhn)JDK带的一些常用命令及(qing)其常用选项Q命令至需要熟(zhn):(x)appletviewer、HtmlConverter、jar、java、javac、javadoc、javap、javaw、native2ascii、serialverQ如果这些命令你没有全部使用q,那么你对java实际上还很不?jin)解?BR>3、工P(x)必须臛_熟练使用一UIDE的开发工P例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者WorkshopQ包括进行工E管理、常用选项的设|、插件的安装配置以及(qing)q行调试?BR>4、APIQJava的核?j)API是非常庞大的Q但是有一些内容笔者认为是必须熟?zhn)的,否则不可能熟l的q用JavaQ包括:(x)
    1Q、java.lang包下?0Q以上的cȝ功能的灵z运用?BR>    2Q、java.util包下?0Q以上的cȝ灉|q用Q特别是集合cMpR规则表辑ּ、zip、以?qing)时间、随机数、属性、资源和Timer?BR>    3Q、java.io包下?0Q以上的cȝ使用Q理解IO体系的基于管道模型的设计思\以及(qing)常用IOcȝҎ(gu)和使用场合?BR>    4Q、java.math包下?00Q的内容?BR>    5Q、java.net包下?0Q以上的内容Q对各个cȝ功能比较熟?zhn)?BR>    6Q、java.text包下?0Q以上的内容Q特别是各种格式化类?BR>    7Q、熟l运用JDBC?BR>    8Q、java.security包下40Q以上的内容Q如果对于安全没有接触的话根本就不可能掌握java?BR>    9Q、AWT的基本内容,包括各种lg事g、监听器、布局理器、常用组件、打印?BR>    10Q、Swing的基本内容,和AWT的要求类伹{?BR>    11Q、XML处理Q熟(zhn)SAX、DOM以及(qing)JDOM的优~点q且能够使用其中的一U完成XML的解析及(qing)内容处理?BR>5、测试:(x)必须熟?zhn)使用junit~写试用例完成代码的自动测试?BR>6、管理:(x)必须熟?zhn)使用ant完成工程理的常用Q务,例如工程~译、生成javadoc、生成jar、版本控制、自动测试?BR>7、排错:(x)应该可以Ҏ(gu)异常信息比较快速的定位问题的原因和大致位置?BR>8、思想Q必L握OOP的主要要求,q样使用Java开发的pȝ才能是真正的Javapȝ?BR>9、规范:(x)~写的代码必ȝ合流行的~码规范Q例如类名首字母大写Q成员和Ҏ(gu)名首字母写Q方法名的第一个单词一般是动词Q包名全部小写等Q这L(fng)序的可读性才比较??/DIV>

]]> վ֩ģ壺 ֦| ¸| ʡ| ֹ| | | | | | ʯ| | 㽭ʡ| | ɽ| | | Ͱ| ˴| | | ƽԶ| | ר| | | | ˮ| | IJ| | ̨| ˮ| Ӣɳ| Т| ̨| | ͷ| | | ɽ| ũ|