首页 > 文库大全 > 精品范文库 > 3号文库

期货学习路线

期货学习路线



第一篇:期货学习路线

期货交易是现有几种能凭借动力,耐力和技巧,以相对较少的资金投入来获得无限潜在利润的投资工具之一。可以说没有任何资本投机像期货交易那样充满投机性,迷惑性,风险性而又前景广阔。

那么如何成功参与期货交易呢?我个人认为有如下几个因素:

一、要对期货市场拥有正确全面的理解:

这方面的知识我认为不用买书,完全可以通过论坛新手学苑以及各大期货论坛的帖子来获得.通过大量的阅读,你要弄明白以下几个问题:

1、期货交易不是一门科学,它更多的是一门艺术。

2、没有捷径,没有菜谱式的公式来获得期货交易的成功。

3、期货市场中九亏一赢,对这样的结果原因知道个大概。

4、如果一个人能清醒认识到交易中亏损的风险,能为获得成功不懈努力并具有自律精神的话,期货交易将为他提供一条通往巨额财富的谋生之路。

有了以上认识后,还需要端正学习态度和坚定信念。

虽然每个人来学习和期货交易的最初动机都不一样,所受到的影响也不一样。但是可以想象的到,大家听到最多的就是期货风险很大很大,几乎没有人能够赚到钱。其实这是偏见,很多人过早被市场消灭,不是因为期货本身的错,而是因为自己的思维和做法错误,想想看,还像股票那样全仓杀入期货,不知道错在哪里,如何改错?不死才怪!在股票里没死,是因为股票是慢慢割杀。就好象那句话说的那样,股票是温水慢慢煮死,期货是开水利马烫死。如此说来两者还有优劣厚重之分吗?

所以,我觉得交易什么不重要,重要的是你对市场对自己的了解有多深!

另外,该不该学习期货?该不该交易期货?这个问题我想没有人可以给出正确的答案。很多人仅仅因为自己或周围人赔钱就告诉新手不可以来交易;也有很多人因为一时的运气就对新手特吹狂吹;更有经纪人自己交易失败不得不退出,却鼓动新手大做特做,这样的行为都很不负责。

适合不适合?如何调整自己?谁也别问,你是自己的主人,对照大作手的话就成.投机,天下最彻头彻尾充满魔力的游戏。但是,这个游戏愚蠢的人不能玩,懒得动脑子的人不能玩,心理不健全的人不能玩,企图一夜暴富的冒险家不能玩。这些人如果贸然卷入,到头来终究是一贫如洗。

二、行情分析方法的学习和掌握

行情分析方法非常重要,针对众多市场是观望还是入市参与交易,都取决于你对市场的准确分析。要想做好分析工作,首先要学习所有的分析方法,然后根据自己的优势,确定自己的分析方法。目前行情分析方法有三种,基本分析,技术分析和心理分析。

基本分析:它要求我们具备经济情势的能力。在新手尤其是股票新手当中,很多人是由此入市操作的。在他们眼里这个分析是最容易进行的,看看新闻,浏览一下某公司的投资报告,注意一下产量和销量就可以操作了。其实这是非常错误的,在各大投资公司,薪水最高的就是基本面研究员,这说明这个分析是非常难的和专业化的,一般的散户无论是资历还是财力是做不到全面及时的基本分析的。这方面请看看<史瓦格期貨基本分析>就会知道我们的无奈。但是这也不能说明我们就要完全放弃基本分析,我们可以学习根据重要事件对市场的影响来判断后续的走势。例如,如果一件重大利好没有造成市场继续上升就是多头减仓或建空仓信号。

技术分析:它是借助于图表和技术指标的帮助来分析市场行为,帮助我们决定何时买入卖出或者不参与,也帮助我们判断走势的正常与异常。它包括:

1、图形分析:头肩,反转,连续,支撑,压力等。这个是最基础的,也是陷阱最多的地方。学习参考书目《期货市场技术分析》《期货交易技术分析》《日本蜡烛图技术》《甘氏理论:形态—价格—时间》《完全技术分析手册》。

2、顺势分析:趋势线,均线。都说顺势操作,可是如何发现趋势的开始,如何确定趋势是否延续?这个太难太难了!学习参考书目《趋势跟踪》《专业投机原理》《股市晴雨表》(《股市晴雨表》中的道氏理论对趋势的理解非常重要)

3、结构分析:季节性,循环,波浪。结构分析是帮助我们确定行情所处的位置,从而确定市场随后的发展,这个学习是很深的,弄不好要陷入迷信的怪圈,大家要小心才好。刚开始可以只做了解,有了一定经验和分析能力后,再来深入研究它。学习参考书目《艾略特波浪理论-市场行为的关键》《应用艾略特波浪理论获利》《江恩华尔街45年》《市场轮廓理论》《驾驭市场--优秀交易商是如何造就的》

4、市场性质:它的重点是判断超买或超卖的行情,主要是用于没有明确方向的震荡行情。学习书目《短线交易秘诀》《我如何从股市中赚得200万》《震荡盘操作策略》《箱型賺錢法》《市場韻律與時效分析》

在期货交易中,技术分析人士占很大一部分,也许就是因为使用的人多,常常使得经典技术信号失灵。

心理分析:在技术分析中说到,经典技术信号失灵,那么如何解决这问题呢?这就引出了心理分析。心理分析是非常复杂和难以掌握的,因为它没有什么指标可以准确量化,只能说是斗志斗勇吧。

它分为两个方面:

1、自己心理分析:参考书目《重塑证券交易心理》《赢家操作心法》《最佳卖出点》《战胜华尔街--成功投资的心理学与哲学》《股票投资心理分析》

2、大众心理分析:参考书目《大众心理与走势预测 》《逆向思考的艺术 》《乌合之众》《88种股市陷阱》

这里还要特别提到一本书,那就是《行为金融》。重点推荐的理由可在此书内容简介得知。

纯金融理论并不是考虑人们的情感波动,认识偏见和预期,而这些因素常常会导致人们做出并不高明的决策。尽管知道成功的希望渺茫,但对于回报丰厚、获胜概率微小的机会,人们仍然准备下手一搏,这从世界上到处风靡的彩票抽奖活动可以看出。因此,社会的行为方式比数理化理论模型要有用的多,许多人会听从一些传言和小道消息或随大流,而并不想对一些事情做出客观公正的评判。本书的两位作者,一名是经验丰富的金融市场实践者,另一名是在研究市场心理的专家,向我们阐述了行为金融的科学意义。该书探讨了人们在寻求更好的投资机会有关决策的几个问题,决策如何引起证券市场价格波动,投资者如何选择信息和交流信息。

三、形成自己的分析体系并建立交易规则

通过大量的学习后,每个人或多或少拥有了自己的分析方法,但是这时候的方法基本都是书上看到或者别人那里听来的,悟性好的人会知道其中的涵义,悟性稍差或者懒惰的人则根本不知。无论知道与否,别人的方法终究是别人的,依靠它们来操作很难获利可这又是每个人必经之路!那么若想在这个过程少花一点冤枉钱,就先用模拟交易或者历史数据测试去

试验其有效性,然后用最少的资金去实盘。在这两个过程中,根据自己的观察和思考对原有的方法进行更正和完善。

学习参考书目《混沌操作法》《克罗谈投资策略——神奇的墨菲法则》《原版海龟交易法则》《成功交易--与金融大师谈投资》《高績效期貨操作:名家交易策略》《甘氏理论:型态-价格-时间》

四、实现复制性学习到创造性学习的质变

如果说交易学习很难,那么就应该体现在这个过程中了。当人们拥有了属于自己的分析方法进行操作后(太多的人是没有耐心经历验证过程的),他们会慢慢发现,他们所学到的方法在交易中竟然无法让他们赚到钱,当然有一些人刚开始是获利的,但最终也要陷入亏损。于是又学新的方法,但还是不行。这时有的人或者去花高价寻找秘诀,或者责怪自己的心态不好,事实上,这个时候大家关键的问题是操作犯了一个严重的错误,那就是拿来主义----无论什么方法,只要看到了,不问究竟或不懂究竟,拿来就用。

比如最著名的突破买入法,很多人都是在创新高时买入。这个方法在股票中无伤大雅,可是在期货中却常常是非常的被动。因为在期货中,这个方法的最好使用时机应该是高位或低位(常见的是低位)长时间横盘整理后的突破第一笔仓介入。因为这一突破说明了新的趋势很有可能从这里开始。而在趋势形成后的过程中,再用这个方法,却是非常的被动,可以看看伦敦铜,在上升趋势中,有几个突破是没有跌回的?!而且在趋势行进中的突破买入使你的止损点非常的不合理,同时这样的操作会让你多次止损受伤。期货是保证金制度,太宽的止损将使你的这笔交易风险报酬比很不划算,太低的止损又没说明你错了,所以最后的结果你总是受伤。而形态识别更是太多的陷阱在里面。

要解决这些问题必须跳出书本,从理论世界中来到现实世界,每天大量的看盘解盘,这个过程就像《乌合之众》所说的那样:取得成功的条件是判断力,是经验,是开拓精神和个性。观念只有在自然而正常的环境中才能形成。要促进观念的培养,需要在现实中获得大量的感官印象;他得亲眼看到各种工具、材料和操作;他得身临其境。在不知不觉中获得细节,默默推敲,在心中逐渐成形,并且或迟或早会产生出一些提示,然后着手新的组合,简化,创意。改进或发明。

当有一天,你对他人的技术不再是拿来主义,而是详细检查方法和结果,并能通过图表了解到背后人们的情绪因素,那么你的交易也就赢多于亏了。不过这个过程很长,没有失望绝望是无法有这个质变的。好在相对于股票,期货的迷惑时间少很多。勤奋刻苦的人大概1---2年就能熬过去了,股票可就没这么幸运,10年可能还不知究竟。这也是我热爱期货的一个原因所在。

五、培养高超的交易技能和技巧

期货市场是买家和卖家因为某种原因聚集在一起交换货物、进行交易的地方。在这个斗智斗勇的高级游戏中,要获得胜利需要正确的行情分析同时,更需要高超的交易技巧.然而如前辈所说,交易界里同时具备分析能力与交易技巧的人并不多见.因此这项学习既是挑战更是机遇。

成功稳健的交易是由一系列环节组成:买(卖)什么--何时买(卖)--怎么买(卖)--买(卖)入量占资金组合的比例多大--买(卖)入后的监控--何时加仓--加仓后的监控--何时平仓--对不可预知的意外情况防范措施--错误的处理--系统无效时的行为等。这其中的任何一个环节,初学者都不能很好的完成,甚至说有了几年交易经验的老手也都很难做到。想要掌握它,一方面通过冥想,在交易前尽可能把所有环节中自己的处理方式想象出来,这个过程要细致,不能

有纰漏;另一方面用最小量去实盘交易,在实盘中对自己的执行能力和自己的优点弱点进行最严格的检验和修正。

有专家说:“技能的高低在于熟练的程度”。一个司机车开的好坏,在于他开车的时间长短,在于他对车况的熟悉程度,在于他应对不良路况反映的灵敏度,关键的一样就是熟练的程度。你能想象一个未经练习,就直接开车上路的后果吗?交易技能的高低虽然涉及不到生命安全问题,但是势必会影响到交易绩效。

<体育运动心理学>曾说,对于一种运动技能,如弹琴、打字、驾驶汽车等,要达到熟练必须经过1000-1500小时的练习。这仅是一般性的熟练而言,至于在竞技运动领域,要形成一种能够在比赛中灵活运用的技巧,显然要经过更长的时间。

体育如此,交易也是这样。国债交易员查理D曾说,当你经过了5000笔交易后,你才会把交易中所有可能遇到的各种情况经历了。5000笔---这是什么样的概念啊?!因此到了这个阶段,如果波段交易技巧能够比较成熟的掌握,那么可以用最小的仓位从趋势波段过渡到短线甚至日内。在短线和日内的不断交易中,执行能力和技术水平会得到很大的锻炼和提高,最终交易绩效也将取得明显提高。《精准获利K线战技》说的好:理性而熟练的操作技巧,是来自惨痛教训。某些人的反应敏锐,可以很快从这类失败中吸取教训。归纳出一套胜算较高的运作方法。可是并不是每个人都具有敏锐的反省能力,否则市场上就不会有那么多失败者。

六、在学习和交易中培养严格的自律和谦卑精神

常听说以交易为生很难,我想该是体现这以后的过程中。因为没有任何一行像保证金交易这样严格要求我们人格的完整性。

当我们千辛万苦有了不错的方法,用起来也得心应手时,却常常发现交易成绩还是不稳定,时好时坏,甚至损失惨重,造成这样的原因主要是缺乏自律和谦逊心态。一方面因为这样那样的原因没有按照计划执行,任由情形任意发展;一方面因为过于自大,或者固步自封,或者交易过量。回顾过去众多前辈,他们的惨败不是因为缺少方法,也不是缺少技巧,就是因为缺乏自律和对市场的谦卑,比如大作手。

不是吗?每个拥有丰富交易经验的人都或多或少拥有这样的经历,常常犯些十分愚蠢的错误,过后想起来都不能原谅自己。这就是《十年一梦》所说的那样:明明知道,却做不到。要做到理性,就要先承认非理性。只有承认自己的不足,才会去想完善措施,这个过程是一生一世的。惟独你的素养和境界都提高上去了,那么你的交易才是真正的交易,没有情绪,没有自大。正如前辈们所说的那样:交易好的人,为人也一定好!这个阶段可以学习交易前辈的回忆录,各行各业顶尖人物访谈以及陶冶情操方面的书,在学习他们的过程中,你会找到自己没能成功的真正原因。

我刚开始交易时,把交易想的十分简单,成为百万富翁只是近在咫尺的事情。经过7年学习和磨练后,我一次又一次感叹自己的不足和欠缺。当我们想取得交易大师的成绩时,请扪心自问一下,我们拥有了大师的心态,素养和技巧了吗?电影《泰坦尼克号》有这样一个画面:当那些男人把女人和孩子送到救生船后,他们没有一丝的恐慌和悲哀,继续安详的演奏,和船一起慢慢沉没。试问这个境界有几人能达?!这样的人做什么不能做成呢?!

七、永远保留学习的好习惯

无论你之前的交易多么成功,切不可放弃学习。一方面交易环节细致全面,市场也不断变化之中,就算人性本质不变,但人们的表达和应变方式却是与时俱进的,这一切都需要我们时时关注和领会;另一方面人是充满惰性的,稍微放纵和膨胀自己,就会给交易带来无比的祸害。

为保持最敏锐的头脑,要时刻关注市场最近观念和操作方法。这个可以从知名人士的相关文章和最近图书取得。另外要对之前的经典书籍不定期回顾和体会,随着自己水平的不断提高,你一定会有更深的感悟和启迪。

至此,这个帖子似乎可以结束了。但是,交易并不是这么简单的线条,这几个过程几乎没有明显的界限。这里,我只能说在交易的初级和中级阶段,方法和技巧更重要一些,在交易的高级阶段,心态和自律更重要一些。(转)

第二篇:大数据学习路线

大数据学习路线

年薪30W大数据学习路线图:

一、Hadoop入门,了解什么是Hadoop

1、Hadoop产生背景

2、Hadoop在大数据、云计算中的位置和关系

3、国内外Hadoop应用案例介绍

4、国内Hadoop的就业情况分析及课程大纲介绍

5、分布式系统概述

6、Hadoop生态圈以及各组成部分的简介

7、Hadoop核心MapReduce例子说明

二、分布式文件系统HDFS,是数据库管理员的基础课程

1、分布式文件系统HDFS简介

2、HDFS的系统组成介绍

3、HDFS的组成部分详解

4、副本存放策略及路由规则

5、NameNode Federation

6、命令行接口

7、Java接口

8、客户端与HDFS的数据流讲解

9、HDFS的可用性(HA)

三、初级MapReduce,成为Hadoop开发人员的基础课程

1、如何理解map、reduce计算模型

2、剖析伪分布式下MapReduce作业的执行过程

3、Yarn模型

4、序列化

5、MapReduce的类型与格式

6、MapReduce开发环境搭建

7、MapReduce应用开发

8、更多示例讲解,熟悉MapReduce算法原理

四、高级MapReduce,高级Hadoop开发人员的关键课程

1、使用压缩分隔减少输入规模

2、利用Combiner减少中间数据

3、编写Partitioner优化负载均衡

4、如何自定义排序规则

5、如何自定义分组规则

6、MapReduce优化

7、编程实战

五、Hadoop集群与管理,是数据库管理员的高级课程

1、Hadoop集群的搭建

2、Hadoop集群的监控

3、Hadoop集群的管理

4、集群下运行MapReduce程序

六、ZooKeeper基础知识,构建分布式系统的基础框架

1、ZooKeeper体现结构

2、ZooKeeper集群的安装

3、操作ZooKeeper

七、HBase基础知识,面向列的实时分布式数据库

1、HBase定义

2、HBase与RDBMS的对比

3、数据模型

4、系统架构

5、HBase上的MapReduce

6、表的设计

八、HBase集群及其管理

1、集群的搭建过程讲解

2、集群的监控

3、集群的管理

九、HBase客户端

1、HBase Shell以及演示

2、Java客户端以及代码演示

十、Pig基础知识,进行Hadoop计算的另一种框架

1、Pig概述

2、安装Pig

3、使用Pig完成手机流量统计业务

十一、Hive,使用SQL进行计算的Hadoop框架

1、数据仓库基础知识

2、Hive定义

3、Hive体系结构简介

4、Hive集群

5、客户端简介

6、HiveQL定义

7、HiveQL与SQL的比较

8、数据类型

9、表与表分区概念

10、表的操作与CLI客户端演示

11、数据导入与CLI客户端演示

12、查询数据与CLI客户端演示

13、数据的连接与CLI客户端演示

14、用户自定义函数(UDF)的开发与演示

十二、Sqoop,Hadoop与rdbms进行数据转换的框架

1、配置Sqoop

2、使用Sqoop把数据从MySQL导入到HDFS中

3、使用Sqoop把数据从HDFS导出到MySQL中

十三、Storm

1、Storm基础知识:包括Storm的基本概念和Storm应用

场景,体系结构与基本原理,Storm和Hadoop的对比

2、Storm集群搭建:详细讲述Storm集群的安装和安装时常见问题

3、Storm组件介绍: spout、bolt、stream groupings等

4、Storm消息可靠性:消息失败的重发

5、Hadoop 2.0和Storm的整合:Storm on YARN

6、Storm编程实战

第三篇:嵌入式学习路线

语言基础 1.C 与 C++ A.《c reference》 B.《c++ 编程思想》 C.《effective c++》 D.《more effective c++》 E.《effective c++ stl》 2.软件设计 A.《UML 2.0 Reference》 B.《设计模式-可复用的面向对象软件的基础》 C.《重构》 D.《修改代码的艺术》 E.《面向模式的软件体系结构》卷 1,卷 2,卷 3,卷 4,卷 5 3.Linux 开发基础 A.《鸟哥的 linux 私房菜》 B.《GNU make reference》 C.《Shell 编程》 D.《unix 高级环境编程》 E.《linux kernel development》 F.《深入理解 Linux 内核》 G.《Linux 驱动程序开发》 H.《Unix 网络编程》 I.《Linux 进程间通信》 4.嵌入式开发基础 A.《ARM 体系结构》 B.《ARM 程序分析与设计》 C.《ARM 嵌入式系统基础教材》周立功 D.《嵌入式操作系统μC/OS》 E.《嵌入式 Linux 基础教材》 F.《嵌入式系统设计》 G.《嵌入式硬件设计》 H.《Qt4 图形设计与嵌入式系统开发》 I.《嵌入式系统中的实时概念》 J.《实时设计模式》 5.专业选看 A.FPGA 设计 B.《高性能嵌入式计算》 C.数字图像处理,视频编解码基础 MPEG4,H.264,AVS D.Android,iphone,symbian 开发。


第四篇:Java学习路线

怎么学习Java,这是很多新手经常会问我的问题,现在我简单描述下一个Java初学者到就业要学到的一些东西:

首先要明白Java体系设计到得三个方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 Platform Standard Edition,我们经常说到的JDK,就主要指的这个,它是三者的基础,属于桌面级应用开发,这部分如果学得好很容易拓展J2EE和J2ME。J2ME,The Micro Edition of the Java 2 Platform。主要用于嵌入式Java,如手机,PDA等等。J2EE,Java 2 Platform,Enterprise Edition,就是所谓的企业级Java,适合企业的大型应用开发。

J2SE:

新手最初学习的时候先要从J2SE开始学起,所包含的内容主要分为:面向对象概念的理解、Java基本语法的学习,Java桌面图形界面应用程序的开发,掌握常用的Java API等(关键是要学会怎样查阅)。

重点:Java基本语法(循环结构,数据类型,数组,运算符等)、Swing,awt,事件机制、文件输入输出流处理等

难点:面向对象思想的理解(接口、类等)、线程、socket网络编程等

视频教程推荐:孙鑫的Java基础视频教程、张孝祥的Java基础视频教程,讲的都很细,而且这两位老师在教学方面都有很好的经验。

J2EE:

在学习了J2SE之后,你可以尝试着慢慢过渡到J2EE,当然,学习J2EE海需要很多非JAVA技术的支撑,比如数据库技术,网页编程技术等等,待会我会详细介绍这两方面的内容。J2EE有三个必学的框架,如果你说你学了J2EE,但又不会这三个框架的话,那会让人笑掉大牙,这三个框架分别是Struts、Spring和Hibernate,虽然这三个框架应用很广,但不代表这三个框架就代表了J2EE,J2EE还有很多其他的东西,比如EJB,作为一款重量级(此重量级不是指重量级选手那个意思,此重量级非彼重量级)框架,虽然这个应用慢慢的再被其他框架所取代,但EJB3.0的出现也给它带回一些生机,作为一个分布式应用的框架,也是大家要去学习和了解的知识。

当然,刚才说到J2EE包含的范围很广,即使我把我所了解的所有技术说出来,也并不能代表J2EE,这是一个很深很广的学问,需要大家以后再工作的时候慢慢去发现了。我所了解的还包括:

JDBC:Java数据库连接对象,基础中的基础,Hibernate也只是对它的封装而已 JNDI: Java 命名与目录接口,J2EE重要规范之一 EJBS: 上面已经提到过了

RMI: 提供远程调用方法的支持,主要用于程序分布式开发 JMS: Java消息服务,中间件技术

JAVA IDL: 提供J2EE平台与CORBA交互能力和互联能力的技术 JTS: 组件事务监视器 JTA: 事务划分的一个技术 JAVAMAIL: Java中的邮件技术 JAF: Java启动框架,没研究过 Log4j,一款日志处理的框架应用

Junit:单元测试的好帮手

freemarker、velocity:两款不错的模板引擎

与Flash的交互Flex:目前很多的SNS应用就是使用到了这个技术

Web services:想知道我们论坛天气预报的效果是怎么做的吗?请关注这个技术 SOA:面向服务架构,未来技术发展的趋势之一 ……

不过前面介绍到得这些都不是J2EE的基础,是属于框架应用级别的.要真正把上面说到的知识掌握好,还是的学习J2EE最核心的东西:JDBC、JSP、servlet和JavaBean,后面三个也是学习SSH的基础(StrutsSpringHibernate的简称).鉴于J2EE的内容太过复杂,建议大家最初只学习: JSP, servlet和JavaBean,等这个基础掌握好再把SSH学习了,再对其他J2EE技术有个大致的了解就可以出去找工作了。当然,找工作的前提除了把Java学习好,还会有一些其他的技术也是必须要掌握的。数据库技术:

数据库几乎是程序中不可或缺的一部分,在整个软件开发中更是占据了重要作用.数据库在整个软件中扮演的是地基的角色,你要修房子,就要先打好地基,你要做软件,就要先设计好的数据库.目前数据库几乎都是关系型数据库,代表的有: SQL Server,目前最新的好像是2008,我不是很喜欢追赶时髦,用的还是2005,不过也很不错了,在此之前还有2000.MySQL,最知名的开源数据库之一,我很喜欢它的小巧耐用,学过SQL SERVER数据库再学它,无师自通,易如反掌.ORACLE.甲骨文公司的产品,大型数据库,正版的一般公司买不起.只有看看了,不过现在Java开发60%都是会使用到这个数据库,再加上现在甲骨文已经把sun公司收购了,JAVA和ORACLE得关系更加暧昧,各位得多花些时间在这上面了.除了这些,你还应该了解一些桌面应用软件开发用到的数据库,比如说sqlite。你在制作安装程序的时候可以把这个数据库打包进你的安装程序。

网页编程基础:

网页编程基础要学的内容也比较多,但主要集中在以下这三个技术之上,大家每天看的各种样式的网页都是它们呈现的: HTML:超文本标记语言 CSS:层叠样式表

Javascript:浏览器客户端脚本语言

现在更是流行各种JavaScript库,比如:Jquery、ExtJs等,你要是会其中的某一个库的使用,找工作so easy。

J2ME:

如果你在学习了以上技术还不过瘾,可以再学习手机程序的开发,就我个人看来,开发手机程序技术其实蛮简单的,难点在于优化,比如怎么让你写的程序尽量的节约手机资源,“代码诚可贵,手机价更高“,所以不得不比PC机多考虑很多成本和实用性问题。J2ME的学习的话,切忌不要单纯的再模拟器上测试,一定要找真机测试,真机和模拟器的效果之间差别是很大的。更多手机开发技术,有兴趣的朋友可以和我一起探讨。

开发工具:

开发工具的选择主要还是看大家的习惯,我个人比较喜欢使用eclispe,功能很强大,也很好拓展其他的功能。当让初学你也可以选择JCreator,或者最好就直接用记事本。等你熟悉了Java代码之后,就可以使用JBuilder、eclispe或者netbeans这一类的工具了。

先说到这里先,以后大家一起完善这个帖子。尽量再给大家整理一些学习的资源在这里。也欢迎大家一起整理我文章中提到的一些技术资源和开发工具。最后,再和大家分享一句话:生命欣欣向荣,唯奋斗不息。也和大家分享一幅Java学习路线图:

第五篇:JAVA学习路线

Java是一个通用的编程语言,其实可以干很多事,怎么学Java就看怎么用了。

但有一些一般的步骤:

1.熟悉一种文本编辑器,比如vim, eclipse, notepad++, textmate等。知道哪些是开源的,哪些是闭源的,哪些要收费。养成不用盗版软件的习惯。

2.安装JDK(建议用你的Linux发行版自带的软件包管理器安装openjdk,过程中可能需要读发行版特定的文档)

3.写一个Java的Hello world程序,并用命令行工具javac编译,再用java命令运行这个程序。过程中熟悉源代码、字节码、虚拟机这些东西,以及Java的包(package)对.class文件所在的路径的影响。

3.5.如果这两个命令行工具使用熟练了,可以开始选一个喜欢的集成开发环境,比如Eclipse。当然,养成不用盗版软件的习惯。熟悉一下如何建立“工程”,以及快捷键的使用。

4.学习Java的面向过程编程,包括基本数据结构、表达式、语句、控制流、函数调用。

5.学习Java的面向对象编程,包括类、引用类型和值类型的区别、成员、方法、访问控制、继承、多态、接口、接口实现。顺便学习一下面向对象的基本思想,即对象、消息、封装、继承、多态等,这些通用的内容不是Java特有的。

5.5 这时候应该已经涉及了Java的垃圾回收。要留意即使有垃圾回收的情况下也会发生的内存泄露(如自己设计数组容器,元素是引用,逻辑上删除了元素,但并没有清成null)。

6.学习Java的异常处理,但更重要的是学习什么时候用特殊返回值而不使用异常,什么时候应该抛出异常而不处理异常,知道什么是pokemon catch及其危害,了解为什么Java的checked exception是一个糟糕的特性。如果愿意,同时学习一下Java1.7的try-with-resource语句和AutoCloseable接口。

7.熟悉Java常用的数据结构,如基本的数组类型,以及泛型容器(java.util.*),尤其是java.util.List接口和java.util.ArrayList实现;以及java.util.Map接口和java.util.HashMap实现。(java1.5以前的没有泛型参数的就不用碰了)同时留意一下基本类型int, double等和装箱类型Integer和Double的区别,以及它们是如何自动转换的。

8.熟悉Java标准库里的各种工具,包括日期时间、字符串格式化、IO等。知道文件要自己在finally子句中close(),或者用Java1.7的try-with-resource,不要妄想垃圾回收器会帮你关掉文件。

9.学习一下Java的命名习惯,以及JavaBeans的常规,知道为什么getter/setter比直接操作成员变量好。按这种方式给Java的变量、方法命名。同时看看你的IDE能不能自动帮你生成getter和setter。

10.使用一个第三方的库(比如Apache Commons Lang通用工具库),让你的程序依赖于它的二进制jar包(而不是直接拷贝源代码),用命令行编译、运行(注意classpath等);也熟悉一下如何用你的集成开发环境添加第三方依赖。感受一下手动管理依赖关系的麻烦。

11.学习Maven的使用,试着让Maven帮你解决依赖关系,再试着让Maven帮你创建一个Eclipse工程。再试试用Maven打包发布。

12.学习软件测试,以及JUnit的使用,以及怎么在IDE中使用JUnit。有空看一下coverage工具。

13.读读四人帮写的《设计模式》(这本书是用C++和Smalltalk语言为例子的,但仍然适合Java)。具体的是这本书,http:///Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612 图书馆应该能还借到英文原版,因为我借到过。

接下来就看具体要做哪方面的应用了,看需求。比如(下面的没有顺序)

【....】如果学Java学得不舒服了,学Python。

* 如果对面向对象编程的概念有点不习惯,学Smalltalk。(Ruby也行,但不如Smalltalk经典。Ruby的文档是一大硬伤。)

* 如果嫌Java太啰嗦,学Python

* 如果嫌Java太啰嗦,又想用JVM,自己又有精力,学Scala

* 如果对对象之间的关系有点晕,学一学UML,以及它的一些图,可以对程序和运行进行直观的建模。你的IDE也许有插件可以生成UML图。但是不要太沉迷于这些方法论。

【调试和辅助工具】学习一下你的集成开发环境提供的调试工具,加一些断点试试

* 试试用jconsole或者VisualVM监控另一个jvm的状态。

* 用profiling工具寻找程序中慢的地方。Eclipse有profiling工具。VisualVM也有这样的功能。(如果不介意使用闭源软件的话,也试试JProfiler和YourKit)

* 有的JVM允许在运行时更新代码。Eclipse可以和某些JVM集成。这样你可以频繁修改代码而不用频繁重启JVM。对于某些“重型”工程很有用。(如果不介意使用闭源软件的话,也试试jRebel)

【多线程】学习Java的多线程编程以及lock、condition的用法(包括传统Java的synchronized语句以及新加的java.util.concurrent.*),学习一下如何让线程停下来,以及为什么要频繁确认isInterrupted()而不要用Thread.stop()。了解一下多核处理器、缓存、内存的关系,以及为什么多线程编程这么难。

* 如果还舒服,学习一下Runnable的用法,以及自带的Executer等基本多线程工具。* 应该已经留意到java.util里面的很多容器不是线程安全的,但是java.util.Collections可以帮你创建一些安全的版本。另外关注一下java.util.concurrent里面有ConcurrentMap等容器可供使用。

* 如果有空的话,看看memory model(内存一致性模型)和无锁同步(见java memory model和java.util.concurrent.atomic)。

* 如果还有空,再了解一下除了“共享内存多线程编程”以外有没有别的模型(多进程multi-processing、消息传递message passing等)。

【反射、元编程】学习Java的反射机制,以及Annotation的用法。

* 如果还舒服,试试java.lang.reflect.Proxy的用法。

* 如果仍然还舒服,玩一玩CGLib(一个第三方的库)。

【网络编程】学习一下IP, TCP协议(计算机专业的应该学过,复习一下),学习Socket编程(注意垃圾回收器不会帮你关掉Socket)。

1.如果不是很关心HTTP,看看java.nio,学习单线程轮询式IO复用(Selector)。

* 如果有点不明白nio的意图的话,了解一下c10k问题。

* 如果身体没有异样的话,大概了解一下操作系统(包括C语言)提供的select, poll, epoll, kqueue等接口。

* 如果身体仍然没有异样的话,试着用java.nio写一个文件服务器。

* 如果还有精力的话,上网扒一扒有没有其他的通信库,如netty等。

2.如果关心Web还有HTTP,就学习一下HTTP协议,以及用Java进行HTTP的客户端编程。

* 如果还舒服,学学HTML,写写HTML的静态网页(不需要Java)

* 如果还舒服,用Java写一个基于DOM、XPath或者CSS Selector的网页解析器(爬网页)。

* 如果还舒服,学学Java的Servlet接口(先别学jsp)进行Web服务器端编程。学学标准的Servlet容器怎么用,包括web.xml的用法以及listener、filter等概念。以及某个Servlet容器(如Jetty或者Tomcat)的具体用法。

* 如果仍然还舒服,试着学一种模板语言(如haml, velocity, freemarker,【还有其他更好的框架吗?我不知道】, String.format,如果真的想学JSP的话JSP倒是也行,但不推荐)。* 如果仍然觉得舒服,学学Spring框架中的Web框架,或者Struts,看你的口味。* 如果还舒服,看看Spring Bean Container以及里面各种乱七八糟的工具。

* 如果还舒服,或者有需求,了解一下什么是RESTful Web Service,复习一下HTTP,找找适合的Java工具。

* 你可能会觉得Jackson是一个解析JSON用的好用的东西。

【数据库】学习一下关系数据库(计算机专业的应该学过,复习一下),包括SQL。选一个数据库管理系统熟悉一下(比如MariaDB,或者(如果你不讨厌Oracle的话)用被Oracle收购了的MySQL。先脱离Java单独学学)。然后看它们的官方文档教你怎么用Java连接这种数据库。这中间会涉及到JDBC接口。同时一定要知道SQL注入安全漏洞,以及掌握如何用PreparedStatement防止注入!。建议看 http://bobby-tables.com/

* 可能中间会涉及“事务”问题,让你不知不觉地开始去了解java transaction api(JTA)。* 如果还舒服,学一学对象关系转换(如Hibernate)。

* 也可以学学非关系数据库,以及如何用Java访问它们。

【日志记录】学习一下slf4j和logback的用法。

* 如果有精力的话,以及大概知道世界上有多少种Java日志框架,以及slf4j是怎么桥接这些框架的。

【构建(build)系统】学习一下Ant的用法。

* 如果还舒服的话,学习一下用Ivy从Maven的仓库里下载软件包,解决依赖关系。

【版本控制】学习一种分布式版本控制器(如Git、Mercurial、Bzr、Darcs等,推荐Git)的基本用法,以及如何用它管理Java工程。希望你已经开始使用Maven了。然后了解一下如何在IDE中使用(Eclipse自带Git插件)。

* 如果感觉很舒服的话,为你们实验室搭建一个Linux+SSH+Git服务器,装个GitLab(一种Web界面)。并说服同事们不要再用SVN、CVS或者SourceSafe等老旧的“集中式版本控制器”了。

* 开设一个GitHub账户。如果你不喜欢Git,就用BitBucket等。

【持续集成】自己(或者为你们实验室)搭建一个持续集成(Continuous Integration)服务器,定期编译你的程序。

【零碎工具】淘一淘java.nio.files里面有什么好用的东东,然后再淘一淘Apache Commons Lang和Commons IO里有什么好用的工具。Commons Logging就不要再用了,用SLF4j和Logback。

【XML】学学XML、DOM、XPath。XML这东西到处都可能用到。也可以用它写自己的配置文件。

* 如果觉得不舒服了,就学学JSON和YAML。

* 如果还是不舒服,就学学文本文件解析。

【语法分析和编译器】学学Antlr或者别的Parser Generator的用法

* 如果觉得舒服,自己写一个计算器。

* 如果还觉得舒服,自己写一种Domain-Specific Language(DSL)。

【高效容器】学学FastUtil或者Trove,如果你需要进行大量数值运算的话。

【分布式计算】学学MapReduce的思想以及它的实现。

* 如果还舒服,学学Scala语言以及号称比MapReduce快得多的Apache Spark。

【进程间通信】看看ActiveMQ、MINA和RMI。

【其他语言(JVM)】学习另一门跑在JVM上的语言或者实现(如Groovy、Scala、Clojure、JRuby、Jython、JavaScript……)

* 如果还舒服,学一学Java Scripting API(注意不是JavaScript。给个链接: http://docs.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/),然后试着在自己的Java程序里嵌入脚本。

【其他语言(非JVM)】学习另一门通用脚本语言(如Python、Ruby,其实perl也行,但不推荐),知道什么时候Java不是最好的选择。

【Java语言和Java虚拟机】通读一遍(一目十行地读,不用细读)Java Language Specification,以及Java Virtual Machine Specification。

* 了解以下解释器(interpreter)、编译器(compiler)、即时编译器(just-in-time compiler)和优化器(optimiser)的概念。

* 如果对编译器的话题不感到畏惧,了解一下method JIT和tracing JIT的概念和区别。

【内存管理】学学垃圾回收的几种基本算法,包括mark-sweep、mark-compact、semi-space、generational、mark-region等,各自的性能,以及为什么朴素的reference counting是不完整的。知道为什么finalizer性能很糟糕,而且标准并不要求finalizer在程序退出前一定会执行。* 如果还舒服,了解一下如何设置Java虚拟机的堆大小限制(如HotSpot虚拟机的-Xmx选项等)。

* 了解一下Java里的WeakReference以及SoftReference和PhantomReference,以及它们什么时候有用,以及为什么它们实现起来有些困难。

* 如果有精力,了解一下Hotspot虚拟机的内存管理算法是什么样的。

【动态装载】学学Java的动态装载(class loading)

* 如果还舒服的话,学学OSGI以及它的一种实现(如Felix或者Equinox)

* 如果仍然很舒服的话,学学写基于Eclipse平台的程序。不是Eclipse集成开发环境,只是利用他们的图形框架,写自己的应用程序。

* 如果还觉得舒服的话,写Eclipse集成开发环境的插件。

【本地/外语接口】学习一下Java Native Interface(JNI),试着写一个Java和C语言混合编程的程序。

* 如果觉得不舒服了或者觉得欲仙欲死,就学一学Java Native Access(JNA),试一试不用任何胶水代码而从Java直接装载C库,直接调用C函数。

* 如果连JNA也懒得学,就学一学SWIG,自动生成绑定。

* 如果觉得舒服,就学一学Java Virtual Machine Tooling Interface(JVMTI),用C程序来监视JVM的状态。

【密码学】学一学密码学,包括编码、密码分析、攻击、对称密钥、公钥系统、数字签名、哈希算法等,看看Java有没有实现。

* 如果觉得有点不舒服(你应该不会觉得舒服吧,除非你是学密码学的,要不然总会觉得自己写的程序有安全漏洞),就写一个“人品计算器”来放松一下,要求每次输入同一个姓名,得到的人品值是固定的,但又要让人无法用别人的人品值猜自己的人品值。

【移动终端】学一学Android开发。

* 如果有精力的话,看看Dalvik虚拟机是怎么回事。

* 建议买一个iPhone或者iPad,或许你再也不想用Android手机或者平板了。

【历史】如果觉得有些无聊,就去挖一挖历史上比较火的可能和Java相关技术,比如:* Applet,想想它比起html5+css3+javascript的缺点在哪里。

* AWT、Swing,想想为什么很少有人用Java写图形界面程序。你觉得Swing的程序看上去舒服吗?中国人和残疾人喜欢用Swing程序吗?

* JNDI,想想它比起Spring Bean Container的缺点在哪里。

* JSP,想想它比起MVC结构的缺点在哪里。

* WSDL/SOAP,把它们和XML-RPC、RESTful Web Service比较一下。

* XSLT,以及为什么它是图灵完备的。可是它真的比Java本身更好用吗?

* Log4j、java.util.logging、Apache Commons Logging,各自有什么问题,以及Log4j的作者本人为什么又开发了SLF4j和Logback?

* Java最早是为什么设计的?

* Type erasure是怎么回事?为什么ArrayList不行但ArrayList就可以?挖一挖历史。

相关内容

热门阅读

最新更新

随机推荐