第一篇:自学java的方法——看java教学视频
自学java的方法——看java教学视频
来源:扣丁学堂
现在学习一门技术,一种程序语言很是不错,所以有很多人想要利用闲暇的时间去学这些东西。既然是想用闲暇的时间去学习,那么首选的学习方法就是线上教育了,通过网络学习应该是现在最省时省力的方法了。关于自学java的方法小编在这里给大家推荐一个,那就是:看java教学视频。
其实自学java的学习方法分两类:
1、看java教学视频:看java教学视频可以说是最省事也是最高效的学习方法,但是看java教学视频学习的时间会比较长,因此同学要有不错的耐心。java教学视频如果想要全部看完估计需要1个半月,基本可以学全开发用的东西。想要通过看java教学视频学习的同学可以去扣丁学堂,扣丁学堂java教学视频全是由资深的高级教师录制,可以很好的保证学员的学习质量。
2、看网上资料、看书:看资料和书籍的速度因人而已,领悟力强的半个月就能搞定,学的东西还是很多的,毕竟学到这阶段都有点基础了,可以研究下程度更深的东西,如果自觉不够聪明就别勉强了,说不定3个月还云里雾里。
关于自学java的方法就要看你自己想要如何学习了,俗话说,师傅领进门,修行在个人。有了明确的java学习路线,再看看java教学视频,然后自己在多动手,程序员的世界中能力远远大于学历,关键的学习还是靠自己坚持不懈的努力下去。
好了,关于自学java的方法就给大家介绍这两种吧,你是去看java教学视频,还是自己看书就要看你自己的选择了,最后祝所有的同学都可以学有所成。
第二篇:自学Java心得
要学好java找一份工作,需要很大的毅力,具体学多长时间就可以找工作,要看个人的悟性和学习能力,以我们宿舍6个人来说,计算机专业大专学历,我比较笨在大学里自学了一年左右的时间,毕业后在北京一家做移动增值的公司上班了。同宿舍的其它5个人,其中一个比较强,自学半年就去深圳华为上班了,2个找了个培训班学了4个月,现在都干上开发了,还有2个家里有关系,工作和计算机没关系。
总的来说,经济不困难的话,找个培训班比较好,学得比较全面,有老师指导学起来也不困难,就业比较顺利。如果经济条件不好,自己又喜欢这行,自学能坚持的话那就自学,老大不小了,总不能老伸手找家里拿钱不是。选择自学的话,基本上要分以下几个阶段:
1、要学java,肯定首先得把Java语言本身给掌握了,万事开头难,学java最难的也是java的入门,学习顺序是先掌握java的语法(多练就行),再掌握java面向对象的思想(封装、继承、多态、接口这些东西是重点,要多理解),接下来就是熟悉java常用的API(集合、IO等,主要是跟着书多写多练),这些东西掌握后,Java语言就算入门了。入门java推荐大家下载张孝祥的《java就业培训教程》视频教程,学java的没有不知道这套视频的,我们宿舍当时都是学这套视频入门的。这套视频最大的好处简单易懂,并引用了很多实用案例,并且还有配套书(书名好像也是java就业培训教程,新华书店有),省得忘了的地方,动不动对着电脑翻视频了。还有一些视频也比较好,例如孙鑫的java视频,马士兵的java视频等。不过对初学者而言,选中一套视频了就跟着好好学,不要下很多视频,东抓一把、西抓一把,最后啥也没学到。
2、有java基础了想马上从事实际开发还是不够的,接下来就需要掌握1-2门数据库技术了,对java来说数据库当然是oracle和mysql。oracle数据库现在还没发现好的视频,不过现在大学都学了数据库,有了数据库基础后,找本好书学oracle也就不难了。这里推荐何明的《从实践中学习Oracle/SQL》,作者来头很大,有非常深的oracle功底,书写得由浅入深,相当不错。对程序员来讲,学数据库关键是把增删改查的sql语句学好了就OK了,不要去抠什么数据库管理方面的东西。学了oracle后,要把数据库和java程序联系起来,这时候就要学jdbc了,jdbc不难,网上很多资料,大概一周时间就可以掌握了。
3、有了上面的基础后,恭喜你已经具备用java开发企业级应用的基础了。这时候你可以学习javaweb试着做点小项目玩了。不过学javaweb需要很多杂七杂八的知识点,比如xml、html、javascript、tomcat服务器等,学了这些后,大家才可以学servlet、jsp。学javaweb推荐大家买《深入体验Javaweb开发内幕-核心基础》这本书,还是张孝祥写的,这本书写的书很有特点,很细很深入,书上还带大量的实验案例,一步步讲得非常清晰,非常适合初学者。学javaweb这本书绝对是首选,并且这本书也有配套视频,在网上有下,不过视频只有前4章,比较可惜,希望张孝祥老师能早日录制全套视频。还有些视频和书也不错,比如李兴华的JSP视频教程、孙鑫的JAVA WEB 开发详解等,这些也不错,在网上都有免费下的。
4、接下来为找工作就要学strutshibernatespringajax这些流行技术了。这些技术我学习的时候没有视频,买的孙卫琴的书学,花了我大半年时间才学明白。现在幸福多了,网上有很多视频,个人推荐大家下传智播客的视频看。这个机构的老师很牛课程很有深度,真正能学到技术,不会误了大家。不过他们的视频里老打广告,很烦。书籍推荐struts看孙卫琴的,hibernate看夏昕的,spring看林信良的,具体书名叫什么忘了,大家google一下就清楚了。
学完上面这些就可以试着找工作了,我找了40天找着了。顺便再说一句,自学不可能不碰到问题,CSDN的论坛很不错,有问题上去问,一般都会有人回答你。要找培训班的话北京的传智播客还不错,我宿舍的2个就在那里,教学质量高,学完后很轻松都上班了,这家机构就是在外地没有分部,想培训要去北京,生活费用高,花费大。北京还有一些培训也不错,达内什么的,可以看看。
第三篇:java自学心得
Java 自学心得体会
学习一门新的知识,不可能指望只看一本,或者两本书就能够完全掌握。需要有一个循序渐进的阅读过程。我推荐Oreilly出版的Java系列书籍。
在这里我只想补充一点看法,很多人学习Java是从《ThinkinginJava》这本书入手的,但是我认为这本书是不适合初学者的。我认为正确的使用这本书的方法应该是作为辅助的读物。《ThinkinginJava》并不是在完整的介绍Java的整个体系,而是一种跳跃式的写作方法,是一种类似tips的方法来对Java很多知识点进行了深入的分析和解释。
对于初学者来说,最好是找一本Java入门的书籍,但是比较完整的循序的介绍Java的语法,面向对象的特性,核心类库等等,在看这本书的同时,可以同步来看《ThinkinginJava》,来加深对Java的理解和原理的运用,同时又可以完整的了解Java的整个体系。
对于Java的入门书籍,蔡学镛推荐的是Oreilly的《ExploringJava,2ndEdition》或者《JavainaNutshell,2ndEdition(针对C++背景)》,我并没有看过这两本书。其实我觉得电子工业出版社的《Java2编程详解》或者《Java2从入门到精通》就很不错。
在所有的Java书籍当中,其实最最有用的,并不是O 'reilly的JavaSerials,真正最最有用处是JDK的Documentation!几乎你想获得的所有的知识在Documentation里面全部都有,其中最主要的部分当然是Java基础类库的API文档,是按照package来组织的,对于每一个class都有详细的解释,它的继承关系,是否实现了某个接口,通常用在哪些场合,还可以查到它所有的public的属性和方法,每个属性的解释,意义,每个方法的用途,调用的参数,参数的意义,返回值的类型,以及方法可能抛出的异常等等。可以这样来说,所有关于Java编程方面的书籍其实都不过是在用比较通俗易懂的语言,和良好的组织方式来介绍Documentation里面的某个package里面包含的一些类的用法而已。所以万变不离其宗,如果你有足够的能力来直接通过Documentation来学习Java的类库,那么基本上就不需要看其他的书籍了。除此之外,Documentation也是编程必备的手册,我的桌面上有三个Documentation的快捷方式,分别是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了这个三个Documentation,什么其他的书籍都不需要了。
对于JavaWeb编程来说,最核心的是要熟悉和掌握HTTP协议,这个就和Java无关了,在熟悉HTTP协议之后,就需要熟悉Java的实现HTTP协议的类库,也就是ServletAPI,所以最重要的东西就是ServletAPI。当然对于初学者而言,直接通过ServletAPI来学习Web编程有很大的难度,我推荐O 'reilly的《JavaServerPages》这本书来学习Web编程。
EJB的书籍当中,《EnterpriseJavaBeans,2ndEdition》是一本很不错的书,EJB的学习门槛是比较高,入门很难,但是这本书完全降低了学习的难度,特别重要的一点是,EJB的学习需要结合一种AppServer的具体实现,所以在学习EJB的同时,必须同步的学习某种AppServer,而这本书相关的出了三本书,分别是Weblogic6.1,Websphere4.0
和JBoss3.0上面部署书中例子的实做。真是既有理论,又有实践。在学习EJB的同时,可以边看边做,EJB的学习会变得很轻松。
但是这本书也有一个问题,就是版本比较旧,主要讲EJB1.1规范和部分EJB2.0的规范。而EdRoman写的《MasteringEJB2.0》这本书完全是根据EJB2.0规范写的,深入浅出,覆盖了EJB编程的各个方面,并且还有很多编程经验tips,也是学习EJB非常推荐的书籍之一。
如果是结合Weblogic来学习J2EE的话,《J2EE应用与BEAWeblogicServer》绝对是首选读物,虽然是讲述的Weblogic6.0,仍然值得购买,这本书是BEA官方推荐的教材,作者也是BEA公司的工程师。现在中文版已经随处可见了。这本书结合Weblogic介绍了J2EE各个方面的技术在Weblogic平台上的开发和部署,实践指导意义非常强。
在掌握了Java平台基础知识和J2EE方面的知识以后,更进一步的是学习如何运用OO的方法进行软件的设计,那么就一定要学习“设计模式”。Sun公司出版了一本《J2EE核心模式》,是每个开发Java企业平台软件的架构师必备的书籍。这本书全面的介绍了J2EE体系架构的各种设计模式,是设计师的必读书籍。
JavaLearningPath
(三)过程篇
每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。
学习Java的第一步是安装好JDK,写一个HelloWorld,其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。
第二步是学习Java的语法。Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《ThinkinginJava》这本书上面是讲了这些概念的。
第三步是学习Java的面向对象的编程语言的特性的地方。比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《ThinkinginJava》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并
没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。
第四步就是开始熟悉Java的类库。Java的基础类库其实就是JDK安装目录下面jrelibrt.jar这个包。学习基础类库就是学习rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O 'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:
首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。
对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That 'all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。
第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:
java.text.*;
java.net.*;
javax.naming.*;
这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。
第六步,JavaWeb编程
Web编程的核心是HTTP协议,HTTP协议和Java无关,如果不熟悉HTTP协议的话,虽然也可以学好Servlet/JSP编程,但是达不到举一反三,一通百通的境界。所以HTTP协议的学习是必备的。如果熟悉了HTTP协议的话,又有了Java编程的良好的基础,学习Servlet/JSP简直易如反掌,我学习Servlet/JSP就用了不到一周的时间,然后就开始用JSP来做项目了。
在Servlet/JSP的学习中,重头仍然是ServletDocumentation。ServletAPI最常用的类很少,花比较少的时间就可以掌握了。把这些类都看一遍,多写几个例子试试。Servlet/JSP编程本质就是在反复调用这些类来通过HTTP协议在WebServer和Brower之间交谈。另外对JSP,还需要熟悉几个常用JSP的标记,具体的写法记不住的话,临时查就是了。
此外JavaWeb编程学习的重点要放在WebApplication的设计模式上,如何进行业务逻辑的分析,并且进行合理的设计,按照MVC设计模式的要求,运用Servlet和JSP分别完成不同的逻辑层,掌握如何在Servlet和JSP之间进行流程的控制和数据的共享,以及WebApplication应该如何配置和部署。
第七步,J2EE编程
以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。
首先一定要学习好JNDI,JNDI是AppServer定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需要看看专门的文档规范了,比如web.xml的写法,ejb-jar.xml的写法等等。针对每种不同的AppServer,还有自己的服务资源配置文件,也是需要熟悉的。
然后可以学习JTA,主要是要理解JTA对于事务的控制的方法,以及该在什么场合使用JTA。这里可以简单的举个例子,我们知道一般情况可以对于一个数据库连接进行事务控制(conn.setAutoCommit(false),....,conn.commit()),做为一个原子操作,但是假设我的业务需求是要把对两个不同数据库的操作做为一个原子操作,你能做的到吗?这时候只能用JTA了。假设操作过程是先往A数据库插一条记录,然后删除B数据库另一个记录,我们自己写代码是控制不了把整个操作做为一个原子操作的。用JTA的话,由AppServer来完成控制。
在学习EJB之前要学习对象序列化和RMI,RMI是EJB的基础。接着学习JMS和EJB,对于EJB来说,最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的,以及在什么情况下要用到EJB。
在学习完EJB,JMS这些东西之后,你可能会意识到要急不可待学习两个领域的知识,一个是UML,另一个是DesignPattern。Java企业软件的设计非常重视框架(Framework)的设计,一个好的软件框架是软件开发成功的必要条件。在这个时候,应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际的编程经验来掌握EJB的设计模式和J2EE的核心模式。
J2EE规范里面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外还有很多很多的企业技术,这里不一一进行介绍了。
另外还有一个最新领域WebServices。WebServices也完全没有任何新东西,它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的调用接口,作为使用者来说,我只要获得服务提供者给我的WSDL(对服务的描述),就够了,我完全不知道服务器提供者提供的服务究竟是EJB组件,还是.Net组件,还是什么CORBA组件,还是其他的什么实现,我也不需要知道。WebServices最伟大的地方就在于通过统一的服务提供方式和调用方式,实现了整个Internet服务的共享,是一个非常令人激动的技术领域。WebServices好像目前还没有什么很好的书籍,但是可以通过在网络上面查资料的方式来学习。
JavaLearningPath
(四)方法篇
Java作为一门编程语言,最好的学习方法就是写代码。当你学习一个类以后,你就可以自己写个简单的例子程序来运行一下,看看有什么结果,然后再多调用几个类的方法,看看运行结果,这样非常直观的把类给学会了,而且记忆非常深刻。然后不应该满足把代码调通,你应该想想看如果我不这样写,换个方式,再试试行不行。记得哪个高人说过学习编程就是个破坏的过程,把书上的例子,自己学习Documentation编写的例子在运行通过以后,不断的尝试着用不同的方法实现,不断的尝试破坏代码的结构,看看它会有什么结果。通过这样的方式,你会很彻底的很精通的掌握Java。
举个例子,我们都编过HelloWorld
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println(“HelloWorld ”);
}
}
很多初学者不是很理解为什么main方法一定要这样来定义publicstaticvoidmain(String[]args),能不能不这样写?包括我刚学习Java的时候也有这样的疑问。想知道答案吗?很简单,你把main改个名字运行一下,看看报什么错误,然后根据出错信息进行分析;把main的public取掉,在试试看,报什么错误;static去掉还能不能运行;不知道main方法是否一定要传一个String[]数组的,把String[]改掉,改成int[],或者String试试看;不知道是否必须写args参数名称的,也可以把args改成别的名字,看看运行结果如何。
我当初学习Java的时候就是这样做的,把HelloWorld程序反复改了七八次,不断运行,分析运行结果,最后就彻底明白为什么了main方法是这样定义的了。
此外,我对于staic,public,private,Exception,try{}catch{}finally{}等等等等一开始都不是很懂,都是把参考书上面的例子运行成功,然后就开始破坏它,不断的根据自己心里面的疑问来重新改写程序,看看能不能运行,运行出来是个什么样子,是否可以得到预期的结果。这样虽然比较费时间,不过一个例子程序这样反复破坏几次之后。我就对这个相关的知识彻底学通了。有时候甚至故意写一些错误的代码来运行,看看能否得到预期的运行错误。这样对于编程的掌握是及其深刻的。
其中特别值得一提的是JDK有一个非常棒的调试功能,-verbose
java–verbose
javac–verbose以及其它很多JDK工具都有这个选项
-verbose可以显示在命令执行的过程中,JVM都依次加载哪里Class,通过这些宝贵的调试信息,可以帮助我们分析出JVM在执行的过程中都干了些什么。
另外,自己在学习过程中,写的很多的这种破坏例程,应该有意识的分门别类的保存下来,在工作中积累的典型例程也应该定期整理,日积月累,自己就有了一个代码库了。遇到类似的问题,到代码库里面Copy&Paste,Search&Replace,就好了,极大提高了开发速度。最理想的情况是把一些通用的例程自己再抽象一层,形成一个通用的类库,封装好。那么可复用性就更强了。
所以我觉得其实不是特别需要例程的,自己写的破坏例程就是最好的例子,如果你实在对自己写的代码不放心的话,我强烈推荐你看看JDK基础类库的Java源代码。在JDK安装目录下面会有一个src.zip,解开来就可以完整的看到整个JDK基础类库,也就是rt.jar的Java源代码,你可以参考一下Sun是怎么写Java程序的,规范是什么样子的。我自己在学习Java的类库的时候,当有些地方理解的不是很清楚的时候,或者想更加清晰的理解运作的细节的时候,往往会打开相应的类的源代码,通过看源代码,所有的问题都会一扫而空。
第四篇:Java自学成长路线
Java自学成长路线
JAVA自学之路 一:学会选择
决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机、嵌入式、游戏、3G、测试等。
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 多实践,快实践
彭端淑的《为学一首示子侄》中有穷和尚与富和尚的故事。
从前,四川边境有两个和尚,一个贫穷,一个有钱。一天,穷和尚对富和尚说:“我打算去南海朝圣,你看怎么样?”富和尚说:“这里离南海有几千里远,你靠什么去呢?”穷和尚说:“我只要一个水钵,一个饭碗就够了。”富和尚为难地说:“几年前我就打算买条船去南海,可至今没去成,你还是别去吧!” 一年以后,富和尚还在为租赁船只筹钱,穷和尚却已经从南海朝圣回来了。
这个故事可解读为:任何事情,一旦考虑好了,就要马上上路,不要等到准备周全之后,再去干事情。假如事情准备考虑周全了再上路的话,别人恐怕捷足先登了。软件开发是一门工程学科,注重的就是实践,“君子动口不动手”对软件开发人员来讲根本就是错误的,他们提倡“动手至上”,但别害怕,他们大多温文尔雅,没有暴力倾向,虽然有时候蓬头垢面的一副“比尔盖茨”样。有前辈高人认为,学习编程的秘诀是:编程、编程、再编程,笔者深表赞同。不仅要多实践,而且要快实践。我们在看书的时候,不要等到你完全理解了才动手敲代码,而是应该在看书的同时敲代码,程序运行的各种情况可以让你更快更牢固的掌握知识点。
1.5 多参考程序代码
程序代码是软件开发最重要的成果之一,其中渗透了程序员的思想与灵魂。许多人被《仙剑奇侠传》中凄美的爱情故事感动,悲剧的结局更有一种缺憾美。为什么要以悲剧结尾?据说是因为写《仙剑奇侠传》的程序员失恋而安排了这样的结局,他把自己的感觉融入到游戏中,却让众多的仙剑迷扼腕叹息。
多多参考代码例子,对JAVA而言有参考文献[4.3],有API类的源代码(JDK安装目录下的src.zip文件),也可以研究一些开源的软件或框架。
1.6 加强英文阅读能力
对学习编程来说,不要求英语, 但不能一点不会,。最起码像JAVA API文档(参考文献[4.4])这些东西还是要能看懂的,连猜带懵都可以;旁边再开启一个“金山词霸”。看多了就会越来越熟练。在学JAVA的同时学习英文,一箭双雕多好。另外好多软件需要到英文网站下载,你要能够找到它们,这些是最基本的要求。英语好对你学习有很大的帮助。口语好的话更有机会进入管理层,进而可以成为剥削程序员的“周扒皮”。
1.7 万不得已才请教别人
笔者在ChinaITLab网校的在线辅导系统中解决学生问题时发现,大部分的问题学生稍做思考就可以解决。请教别人之前,你应该先回答如下几个问题。
你是否在google中搜索了问题的解决办法?
你是否查看了JAVA API文档?
你是否查找过相关书籍?
你是否写代码测试过?
如果回答都是“是”的话,而且还没有找到解决办法,再问别人不迟。要知道独立思考的能力对你很重要。要知道程序员的时间是很宝贵的。
1.8 多读好书
书中自有颜如玉。比尔?盖茨是一个饱读群书的人。虽然没有读完大学,但九岁的时候比尔?盖茨就已经读完了所有的百科全书,所以他精通天文、历史、地理等等各类学科,可以说比尔?盖茨不仅是当今世界上金钱的首富,而且也可以称得上是知识的巨富。
笔者在给学生上课的时候经常会给他们推荐书籍,到后来学生实在忍无可忍开始抱怨,“天呐,这么多书到什么时候才能看完了”,“学软件开发,感觉上了贼船”。这时候,我的回答一般是,“别着急,什么时候带你们去看看我的书房,到现在每月花在技术书籍上的钱400元,这在软件开发人员之中还只能够算是中等的”,学生当场晕倒。(注:这一部分学生是刚学软件开发的)
对于在JAVA开发领域的好书在笔者另外一篇文章中会专门点评。该文章可作为本文的姊妹篇。
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文件中包含的类,我们可以调用类中的方法来完成某些功能或继承它。
那么究竟应该选择什么方向呢?
我的意见是,不要太过相信各种培训机构或是抢手文章的说法(包括我),当你要走向社会的时候,就不要再把自己当成学生,不要把自己的将来交给别人,学会运用自己的眼睛去观察,去了解这个世界吧。
每个培训机构都会宣传自己的好处,并不能说明大的趋势。一些新闻文章很有可能是枪手写的,不必太过相信。国外背景的教师和课程,未必适合你。
那么怎么才能确定自己将来的方向?如何才能从纷繁复杂、或真或假的数据世界中挖出一条路?
我讲一个通过招聘网站的观察方法。
可以到各种招聘的网站上查询信息(可以到google上查询招聘的网站),例如: http:// 得到别人的回答,要懂得感恩。
第五篇:马士兵 Java视频教学顺序
第一部分:J2se学习视频内容包括:
尚学堂科技_马士兵_JAVA视频教程_JDK5.0_下载-安装-配置
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第01章_JAVA简介_源代码_及重要说明
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_递归补充
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第02章_基础语法
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第03章_面向对象
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第04章_异常处理
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第05章_数组
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第06章_常用类
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第07章_容器
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第08章_IO
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第09章_线程
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第10章_网络
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第11章_GUI
尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_专题_日期处理
尚学堂科技_马士兵_JAVA视频教程_J2SE_专题_正则表达式
反射avi
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
第二部分:j2se练习项目视频内容包括: 尚学堂科技_马士兵_在线聊天系统雏形视频教程_java_eclipse
尚学堂科技_马士兵_坦克大战视频教程_java_eclipse
尚学堂科技_马士兵_坦克大战图片版
尚学堂科技_马士兵_JAVA_坦克大战网络版视频教程
尚学堂科技_马士兵_snake_贪吃蛇内部视频
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
第三部分数据库视频
Oracle视频内容包括:01——53讲avi格式
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
第四部分:JDBC和MySQL视频,内容包括:
1_lomboz_eclipse_jdbc
2_mysql_avi
3_连接池的设计思路.avi
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆ 最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
第五部分:HTML & CSS & JAVASCRIPT 视频:
Html & CSS 视频内容简介:
01_html简单介绍和meta标签.avi
02_a_路径问题等等.avi
03_学习方法_其他常用标签.avi
04_1_note.avi
04_表格和表单_1.avi
05_表格和表单_2.avi
06_Frame.avi
07_Dreamweaver.avi
08_CSS_1.avi
09_CSS_2_选择方式.avi
10_CSS_3.avi
11_CSS_4.avi
JavaScript 视频简介:
01_JS初步及调试.avi
02_JS基本语法.avi
03_函数_事件处理_1.avi
04_事件处理_2.avi
05_内置对象_DOM_BOM.avi
06_趣味.avi
07_实用.avi
08_表单验证.avi
09_表单验证_new.avi
10_后台框架.avi
11_后台框架_2.avi
12_TREE.avi
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
第六部分:Servlet & JSP视频——内容包括: tomcat的安装使用,配置 servlet & jsp 视频 1——30节
jsp的练习项目内容包括: 简单bbs项目 2007美化BBS项目 网上商城项目视频 网上商城项目视频讲解视频
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂最好的Java只有尚学堂
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
第七部分:J2EE学习视频包括:
DRP项目
框架视频学习: Struts视频
Hibernate视频
Spring视频 提高部分:
uml统一建模语言视频
SSH项目视频:
oa办公自动化系统视频
crm项目视频
银行系统视频
ejb3.0视频
J2ME_3G简介资料
面试材料:
面试题大汇总+笔记+技巧
学习方法
|_浪曦视频在线_风中叶_学习程序设计方法 |_浪曦视频在线_风中叶_学习岂有无痛之理 |_浪曦视频在线_胡屹_如何获取学习资源
J2SE 基础
|_尚学堂科技_马士兵_JAVA视频教程_J2SE |_尚学堂科技_马士兵_JAVA视频教程_J2SE_专题(可以根据实际情况调整此部分学习)
|_浪曦视频在线_风中叶_JDK5.0新特性 |_浪曦视频在线_风中叶_Java Annotation详解 |_浪曦视频在线_胡屹_SCJP试题解析
|_尚学堂科技_马士兵_项目实战手把手JAVA视频教程-贪吃蛇 |_尚学堂科技_马士兵_项目实战手把手JAVA视频教程-Chat |_尚学堂科技_马士兵_项目实战手把手JAVA视频教程-坦克大战(多个版本,可以全学,也可以有选择)|_浪曦视频在线_J2SE相关内容专题视频
J2EE 基础
|_尚学堂科技_张志宇_SERVLET_JSP_视频教程_第一版 |_尚学堂科技_马士兵_JAVA_系列视频教程_BBS_2007 |_尚学堂科技_马士兵_JAVA_网上商城项目视频讲解 |_浪曦视频在线_不落的太阳_MVC新闻发布系统
J2EE 深入
|_尚学堂科技_王勇_JAVA视频教程_STRUTS |_浪曦视频在线_STRUTS相关内容专题视频(不落的太阳、ZK001、JUSTCODE、TIE等)
|_尚学堂科技_王勇_JAVA视频教程_HIBERNATE(ZK001)|_浪曦视频在线_HIBERNATE相关内容专题视频(ZK001、TIE等)|_尚学堂科技_王勇_JAVA视频教程_SPRING |_浪曦视频在线_ZK001_SPRING技术专题 |_浪曦视频在线_SPRING相关内容专题视频
|_浪曦视频在线_风中叶_Struts2 应用开发详解系列视频 |_浪曦视频在线_J2EE相关内容专题视频
J2EE 项目
|_尚学堂科技_项目实战手把手JAVA视频教程-OA(视频不是很清晰,是否采用自己决定)|_浪曦视频在线_不落的太阳_电脑维修项目视频 |_浪曦视频在线_不落的太阳_车辆管理系统 |_浪曦视频在线_不落的太阳_用户管理之框架搭建 |_浪曦视频在线_SSH整合相关内容专题视频
面试笔试相关(去找工作之前好好看吧)|_浪曦视频在线_风中叶_Java常见笔试、面试系列
其他相关(此部分视频可根据自己的需要插入到各个学习环节)|_尚学堂科技_马士兵_javascript视频 |_尚学堂科技_马士兵_SERVLET_JSP_视频教程 |_尚学堂科技_马士兵_oracle视频
|_尚学堂科技_马士兵_轻松愉快LINUX视频教程 |_尚学堂科技_王勇_XML视频