木主's profile你好,我叫木主。PhotosBlogLists Tools Help

Blog


    November 24

    Java学习的30个目标

    对Java的喜爱是从什么时候开始的呢?已经不记得了。当我了解到Java没有那烦人的指针类型,那跨平台特性,那美好的发展前途时,我就决定要学习Java了。但是对Java有了一定的了解后,知道要成为一个Java程序员是不容易的。
    今天在网上看到了一个关于学习Java的目标:

      1.你需要精通面向对象分析与设计(OOA/OOD)、涉及模式(GOF,J2EEDP)以及综合模式。你应该十分了解UML,尤其是class,object,interaction以及statediagrams。
      2.你需要学习JAVA语言的基础知识以及它的核心类库(collections,serialization,streams,networking, multithreading,reflection,event,handling,NIO,localization,以及其他)。
      3.你应该了解JVM,classloaders,classreflect,以及垃圾回收的基本工作机制等。你应该有能力反编译一个类文件并且明白一些基本的汇编指令。
      4.如果你将要写客户端程序,你需要学习WEB的小应用程序(applet),必需掌握GUI设计的思想和方法,以及桌面程序的SWING,AWT, SWT。你还应该对UI部件的JAVABEAN组件模式有所了解。JAVABEANS也被应用在JSP中以把业务逻辑从表现层中分离出来。
      5.你需要学习java数据库技术,如JDBCAPI并且会使用至少一种persistence/ORM构架,例如Hibernate,JDO, CocoBase,TopLink,InsideLiberator(国产JDO红工厂软件)或者iBatis。
      6.你还应该了解对象关系的阻抗失配的含义,以及它是如何影响业务对象的与关系型数据库的交互,和它的运行结果,还需要掌握不同的数据库产品运用,比如:oracle,mysql,mssqlserver。
      7.你需要学习JAVA的沙盒安全模式(classloaders,bytecodeverification,managers,policyandpermissions,
    codesigning, digitalsignatures,cryptography,certification,Kerberos,以及其他)还有不同的安全/认证 API,例如JAAS(JavaAuthenticationandAuthorizationService),JCE (JavaCryptographyExtension),JSSE(JavaSecureSocketExtension),以及JGSS (JavaGeneralSecurityService)。
      8.你需要学习Servlets,JSP,以及JSTL(StandardTagLibraries)和可以选择的第三方TagLibraries。
      9.你需要熟悉主流的网页框架,例如JSF,Struts,Tapestry,Cocoon,WebWork,以及他们下面的涉及模式,如MVC/MODEL2。
      10.你需要学习如何使用及管理WEB服务器,例如tomcat,resin,Jrun,并且知道如何在其基础上扩展和维护WEB程序。
    11.你需要学习分布式对象以及远程API,例如RMI和RMI/IIOP。
      12.你需要掌握各种流行中间件技术标准和与java结合实现,比如Tuxedo、CROBA,当然也包括javaEE本身。
      13.你需要学习最少一种的XMLAPI,例如JAXP(JavaAPIforXMLProcessing),JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。
      14.你应该学习如何利用JAVAAPI和工具来构建WebService。例如JAX-RPC(JavaAPIforXML/RPC),SAAJ (SOAPwithAttachmentsAPIforJava),JAXB(JavaArchitectureforXMLBinding),JAXM(JavaAPIforXMLMessaging), JAXR(JavaAPIforXMLRegistries),或者JWSDP(JavaWebServicesDeveloperPack)。
      15.你需要学习一门轻量级应用程序框架,例如Spring,PicoContainer,Avalon,以及它们的IoC/DI风格(setter,constructor,interfaceinjection)。
      16.你需要熟悉不同的J2EE技术,例如JNDI(JavaNamingandDirectoryInterface),JMS (JavaMessageService),JTA/JTS(JavaTransactionAPI/JavaTransactionService),JMX (JavaManagementeXtensions),以及JavaMail。
      17.你需要学习企业级JavaBeans(EJB)以及它们的不同组件模式:Stateless/StatefulSessionBeans,EntityBeans(包含Bean- ManagedPersistence[BMP]或者Container-ManagedPersistence[CMP]和它的EJB-QL),或者 Message-DrivenBeans(MDB)。
      18.你需要学习如何管理与配置一个J2EE应用程序服务器,如WebLogic,JBoss等,并且利用它的附加服务,例如簇类,连接池以及分布式处理支援。你还需要了解如何在它上面封装和配置应用程序并且能够监控、调整它的性能。
      19.你需要熟悉面向方面的程序设计以及面向属性的程序设计(这两个都被很容易混淆的缩写为AOP),以及他们的主流JAVA规格和执行。例如AspectJ和AspectWerkz。
      20.你需要熟悉对不同有用的API和frame work等来为你服务。例如Log4J(logging/tracing),Quartz (scheduling),JGroups(networkgroupcommunication),JCache(distributedcaching), Lucene(full-textsearch),JakartaCommons等等。
    21.如果你将要对接或者正和旧的系统或者本地平台,你需要学习JNI (JavaNativeInterface) and JCA (JavaConnectorArchitecture)。
      22.你需要熟悉JINI技术以及与它相关的分布式系统,比如掌握CROBA。
      23.你需要JavaCommunityProcess(JCP)以及他的不同JavaSpecificationRequests(JSRs),例如Portlets(168),JOLAP(69),DataMiningAPI(73),等等。
      24.你应该熟练掌握一种JAVAIDE例如sunOne,netBeans,IntelliJIDEA或者Eclipse。(有些人更喜欢VI或EMACS来编写文件。随便你用什么了:)
      25.JAVA(精确的说是有些配置)是冗长的,它需要很多的人工代码(例如EJB),所以你需要熟悉代码生成工具,例如XDoclet。
      26.你需要熟悉一种单元测试体系(JNunit),并且学习不同的生成、部署工具(Ant,Maven)。
      27.你需要熟悉一些在JAVA开发中经常用到的软件工程过程。例如RUP(RationalUnifiedProcess)andAgilemethodologies。
      28.你需要能够深入了解加熟练操作和配置不同的操作系统,比如GNU/linux,sunsolaris,macOS等,做为跨平台软件的开发者。
      29.你还需要紧跟java发展的步伐,比如现在可以深入的学习javaME,以及各种java新规范,技术的运用,如新起的web富客户端技术。
      30.你必需要对opensource有所了解,因为至少java的很多技术直接是靠开源来驱动发展的,如java3D技术。

    要完成这30个目标不是一朝一夕可以办到的事情,但我会尽我所能。

    November 18

    暴风雨

    突然间 暴风雨来临
    忽然间 暴风雨离去
     
    来得是那么突然 那么狂暴
    路灯亮着 路上却少又人烟
    只有街道在接受着洗礼
    只有树木在享受着滋润
    没有什么能与之相比
    心里害怕着
     
    去得是那么无声 那么安静
    路灯亮着 路上人来人往
    树木停止了欢呼
    街道已经冲洗干净
    连空气都被净化了
    偶尔有几下闪电
    但已经远去
     
    暴风雨过后
    是惊人的宁静
    以前竟然没有发现
    November 06

    哦,我的第一次

        万里无云的蓝天下,拥挤的人群中,我的第一次就这样献出去了。
        大家不要想歪了,我的第一次不是指你们想的第一次,因为你们估都估不到,我的第一次是指第一次捐血。大家不要激动,看完后面才激
    动好了。
        今天下午4点30分,我们——我和黄子键和他的second——来到第一饭堂门口等车。因为捐血站在广大,所以有专车接送。专车不是指拉砖的车,不过也好不了多少,因为要等半个小时才来一次,一次只能载三十人。等到最后,我们还是自己乘车去的,去到就已经六点半了。唉,总之就是好事多磨啦。
        在中国,有一个特有的现象,就是做什么事情都要排队,验血要排队,捐血也要排队。排队不算什么,有那么多人捐血都是好事,大家都
    很有爱心。看着一个一个人去捐血,渐渐轮到我们了,心情越来越紧张,毕竟是第一次啊。不过好戏还在后头。
        终于轮到我啦。带着一点点紧张一点点兴奋的心情,坐上捐血椅,于是,我最不想发生的事发生了。就是我的血管太细了,护士姐姐找不
    到。不过最后,护士姐姐还是把针头插上我的手臂。但是,最搞的就是这时了,我的血液好像很留恋我的身体,不愿意流出来。护士姐姐这下
    子就着急了,不断地把针头插进取一点又拔出来一点,还不断地撵我的手臂。最后终于轰动全场,护士姐姐和另外的两位工作人员围来我身边
    ,就像是在做什么大手术。护士姐姐一边对我说,要一起努力啊,一边就叫人灌我喝水,我躺在那里,能做的就只有苦笑了。经过漫长的等待
    ,200毫升血就这样离我而去。随便说一下,这个等待真是很漫长,别人捐200毫升血只要3分钟,我好像是用了10分钟。在这10分钟里,护士姐姐一直在插那个针头和撵我的手,我就不断的喝水,搞到我之后上了三次厕所。经过这全场唯一的服务后,我的第一次终于献了出去。
        其实捐完那200毫升血后,是没什么感觉的,除了有点疼和内急。之后为了补回那200毫升血,我们去了广大的商业中心的美食城吃饭。虽
    然那个护士姐姐叫我们吃的清淡一点,我们还是吃了招牌盐焗鸡炖饭和炖汤。我坐在黄子键和他的second旁边,发热发亮。
        就是这样,我的第一次就没有了。
    November 04

    020304科计系交流会

        风和日丽的深秋,阳光明媚的日子,在教学楼C202,顺利的召开了020304级科计系交流会。
        作为大学城中大东校区的拓荒者,我们在这里就只能是师兄师姐,我们就只能自己探索大学的学习生活。而这一次,是我们的师兄师姐来
    和我们交流,是我们作为师弟的身份来交流,对于我们来说,是有着重大意义的一次盛会。
        下午三点多,在我们的万分期待中,在我们的热烈掌声中,姗姗来迟的师兄师姐们步入了教室,交流会随即开始。首先是主持人李宏伟同
    学致辞表示对师兄师姐的期待和欢迎,接着就是师兄师姐们逐个上台来谈他们自己的一些经验。这些师兄师姐有的已经找到了不错的工作,有
    的正在准备考研,有的就已经是保研了的。其中,已经就业的师兄向我们讲述了一些他们去考公务员,去面试,去从事IT行业工作的经历和经
    验,而考研保研的师兄师姐就传授了一些他们经验和建议。
        对于已经开始工作的师兄,他们的经验对我们来说是受益匪浅的,因为我们大部分人在明年的这个时候,就要准备去找工作。师兄们讲述
    了考公务员的细节,面试时要有平静的心态,工作时要以顾客为先的精神,这些都是我们不知道的。师兄们的经验就像是一层层的阶梯,引领
    我们这些井底之蛙开阔视野。对于考研和保研,也是许多同学关注的热点问题。师兄师姐们建议我们,一些连续两年都拿到奖学金的名列前茅
    的同学,可以去申请保研,有可能的话,好可以尝试去联络别的高校的老师,保研去被的高校深造。
        在这个交流会上,我领悟到的最为深刻的一件事就是:一定要学好数学!我们是信息与计算科学的,我们将来的发展有两方面:计算机和
    计算科学。考研保研这些就不用说啦,数分和高代是一定要学好的,我们就拿IT行业来说——这是我以后想要从事的理想行业——数学也是很
    重要的。对于一个程序员来说,光学算法是远远不够的(即使要学会算法也是要有数学基础的),要有自己的东西,要有不断的创新。如果没
    有数学做基础,这是绝对不可能实现的。所以,学好数学是我们现阶段的主要任务。
        会后,我们和师兄师姐一起到了饭堂三楼用餐,最后师兄师姐们又和我们交谈了许久才离开。
        这一天,我们真是获益良多啊,似乎在茫茫大海中看到了一片陆地。