作为一名大四的毕业生,大学三年过,有得有失。作为一个喜欢编程,喜欢JAVA的人,自学其实是一件美事,很有意思的事。要是能再找个女朋友一起学。嘿嘿,就不枉在大学走了一遭啊!
    要离开学校了,还是想留下些什么东西,自己自学两年JAVA,走过不少冤枉路,浪费了很多时间,做过很多笨事,迷茫过,怕过,也开心过,最开心的事莫过于认识了HAKU,夕阳,326,还有好多的朋友。废话不多说了,我就说些我自己的经验吧。

一.学习编程的习惯:
    1.要多动手,程序员是代码堆出来的,你懂多少,你学了多少,不重要,关键是你能写多少。很多代码想似很简单,但是你去写写就知道了。好的程序员是敲出来的。
    2.很多基础要看,刚开始学一个东西说不定很抽象,很难,特别是java这种完全面向对象的语言。不过要坚持,多写写代码,书上的例子自己能背着先打出来就打出来,再去看它的。后面的练习题尽量做,可以拿上来大家一起分享。别人对你的代码指点的越多,你的成长就越多。
    3.代码的规范一定要从一开始养成,我就是吃了这个亏。代码规范很重要,说句题外话,我现在看着我们公司老外工程师写的代码,就头疼。至于具体的规范我后面再写,很多规范其实书上也有讲的。
    4.多去看看文档,JDK文档是个好东西啊。熟练查阅,这个很重要。
    5.英语,嘿嘿,至少能看懂,能写吧。我现在每天看东西,写邮件,有时候聊天都全是英语,咋搞呢?好的资料都是在外国的网站现出来的,没办法,我现在也在学英语啊。
    6.熟练使用工具,能像李兴华那张架构师(程序员的终极目标吧,我的目标)只用记事本工具的,全世界只有5%。推荐jcreator,notpad++,editplus,ultraedit都可以,不过最终的是eclipse或者是netbeans,公司基本都只用这两个。

二.学习JAVA 的路:
    1.JAVA基础要学吧,J2SE,这个是基础,java所有的基础都是这个来的。包括现在的J2EE(JAVA WEB开发,大中型企业开发,包括网站开发和B/S开发)。Android大家都懂吧,这个也是介于J2SE之上的。
    J2SE至少要学好七大块:
1.基础语法。(像循环啊,变量啊,运算啊,方法,这些和C++差不多的)
2.面向对象。(这个很抽象,面向对象的三大特征,封装,继承和多态,花了我一年多的时间才领悟到真谛。接口,抽象类,对象,类等等都是需要好好掌握的,java的核心,后面的io和类集都是介于这个之上。学这个慢慢来,有时间写给大家,其实这个方面的可以多看看书)。
3.java的io操作(主要是文件操作,但也不全是。流操作也是这个)。
4.java的类集,像链表啊,map啊这些,要很熟练操作,熟练应用的。
5.JDBC,java连接数据库。必需品啊,要不然java学了都没用的,不过也简单,说白了就是几句话而已。
6.线程(如果学android开发的话,web端倒不是很重要,不过也有可能用得)。
7.socket,java的网络编程(android的必须啊)。

看了上面的。怕了吧,晕了吧,嘿嘿,不要怕。要想学好,去网上下孙鑫的java视频,李兴华的,(马士兵的不建议,个人感觉废话太多)。推荐李兴华和孙鑫的视频,边看便敲吧,绝对比你看书给力。视频看完了就回去看书吧,看几本书就好了。
    如果上面的掌握了差不多了,后面就轻松多了。java swing(java的图形界面) 不要去学,基本上没有公司要用得。(我们公司是一个例外,我也不知道为什么我们公司的外国工程师会喜欢这个),这个swing,浪费了我多半年的时间,让我纠结了很久。

接下来数据库吧,oracle,好像是现在程序员出去面试必须的吧。更多的建议使用mysql,不过两个数据库只要sql语法学好了,都差不多的,oracle用得熟练的人,学好mysql,最多十五分钟。个人觉得可以看视频,看书的话,屁话太多。
    学oracle,去看看李兴华的视频吧,这个不错。数据库就增删改查几句话而已,说白了,就是sql语法,sql熟了,学什么数据库都是浮云。

数据库学完了啊,嘿嘿,差不多能做很多东西了啊。够了吗??。。。。NO,才冰山一角。
后面要学的东西我先列出来,至于每门要学什么,待下回分解哈!!

JAVA WEB开发的路:
    J2SE-->Oracle(mysql)-->html(css+div)-->javascript-->jsp-->ajax(jquery)-->struts-->hibernate-->spring-->....(还有很多,不过学了前面的,基本上差不多了,剩下都是工具的使用。想到了再补充哈),

至于设计模式,必学的东西,我也不知道放哪儿好。但是如果你一旦对面向对象有很深的了解了话,嘿嘿,就去看吧。如果对面向对象不了解,嘿嘿,你浪费时间了。(推荐大话设计模式和headfirst这两本书,不过我只看了一点,很不错,图书馆有得)。

Android的学习路:
    强烈建议是学完java web开发,一直到spring后面再来学android,因为有两条路。

    最好的路:
    J2SE-->Oracle(mysql)-->html(css+div)-->javascript-->jsp-->ajax(jquery)-->struts-->hibernate-->spring-->Android(SDK)-->......这个是最完满的路,也是最好的路。

快速的路:
    J2SE-->Oracle(mysql,sqlite)-->html(css+div)-->javascript(jquery)-->Android.
    如果这样学的话开发出来的东西缺陷太多,复用性,扩展性,结构性都没有上面的好,不过学习时间很短哦。呵呵..看你自己怎么选择。

最后吧,推荐基本书——那就是没有书。呵呵,多看看视频,不顾后面还是会回归书本的,像think in java,effective java,linux菜鸟私房菜,这些,呵呵,必须看的。不过初学还用不着的。

先写这么多吧,以后想到了再写吧!反正,给大家一句话,迷茫,浮躁,有那个时间和闲心,还真不如打断代码,代码就是你的第二个女朋友。我去年也浮躁,迷茫,定心写代码吧,只要在学习,成长,总有一天你会像夕阳一样,呵呵。。。希望大家永远像我一样,有好的心态,开开心心,学习倍儿快。。。

欢迎去MoMo的博客3momo.net,有更多的东西和大家分享O(∩_∩)O~!

Java之路——敬JAVA初学者(作者:MoMo)的更多相关文章

  1. (转)如何学习Java技术?谈Java学习之路

    51CTO编者注:这篇文章已经是有数年“网龄”的老文,不过在今天看来仍然经典.如何学习Java?本篇文章可以说也是面对编程初学者的一篇指导文章,其中对于如何学习Java的步骤的介绍,很多也适用于开发领 ...

  2. paip.java 架构师之路以及java高级技术

    paip.java 架构师之路以及java高级技术 1.    Annotation 设计模式... 概念满天飞.ORM,IOC,AOP. Validator lambda4j memcache. 对 ...

  3. Java之路——名词解释(一)

    一.开篇 许多人在初接触Java的时候,都会被各种Java的英文缩写名词给弄得头晕脑胀.看一个技术,内容里又会有一堆其他的技术名词,看了半天不知所云.尝试去查一下这些名词的解释,除了非常学术性的解释之 ...

  4. Java之路——环境配置与编译运行

    本文大纲 一.开篇 二.JDK下载 三.JDK安装 四.环境配置 五.初识Java编译 六.Java与Javac 七.第一个Java程序 八.总结 九.参考资料 一.开篇 通过对之前Java之路的了解 ...

  5. Java之路 ——初识Eclipse

    零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...

  6. Java之路——初识Eclipse

    零.大纲 一.前言 二.获取Eclipse 三.运行Eclipse 四.创建及运行第一个Java Project 五.界面介绍 六.如何调试 七.获取插件 八.Eclipse 快捷键 九.总结 一.前 ...

  7. 转行自学 Java 之路的纪念册

    前言: 最近在重读<小狗钱钱>,我对其中的"成功日记"概念特别深刻,偶尔也会记一记“成功日记”. 想了想人生走找到今天,阶段性“成功日记”有没有呢? 有的!几年前的一篇 ...

  8. 成神之Java之路

    既然励志在java路上走的更远,那就必须了解java的路径.先看图 image.png 更加细化的细节如下 一: 编程基础 不管是C还是C++,不管是Java还是PHP,想成为一名合格的程序员,基本的 ...

  9. 是什么让我走上Java之路?

    选择方向,很多人都为根据自己的兴趣爱好和自己的能力所长而作出选择.那么是什么让我走上Java之路? 整个高三我有两门课程没有听过课,一门是数学,一门是物理.当时候物理没有听课的原因很简单,我有一本&l ...

随机推荐

  1. Android自定义控件(状态提示图表) (转)

    源:Android自定义控件(状态提示图表) 源:Android应用开发 [工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果] 1  背景 前面分析 ...

  2. IOS开发-UI学习-UIPageControl(页码控制器)的使用

    UIPageControl即页码控制器,是在翻动图片阅览时下面显示的几个小点,属性设置如下: UIPageControl *pagecontrol = [[UIPageControl alloc]in ...

  3. xlrd(开excel表格)

    打来表格 wb = xlrd.open_workbook('example.xlsx') 选择sheet sh=wb.sheet_by_index(序号) 表格的行数 sh.nrows 选取第m行第n ...

  4. Prism之使用EventAggregation进行模块间通信

    在开发Silverlight程序的时候,经常需要在不同的组件间进行通信.比如点击一个button,可能就需要改变另一个控件的内容.比较直接的办法是使用事件,当然使用MVVM的时候也可以使用comman ...

  5. 得到css style

    //根据ID返回dom元素 2 var $ = function(id){return document.getElementById(id);} 3 //返回dom元素的当前某css值 4 var ...

  6. codeforces 755D. PolandBall and Polygon

    D. PolandBall and Polygon time limit per test 4 seconds memory limit per test 256 megabytes input st ...

  7. DELPHI判断是否64位操作系统

    function IsWin64: Boolean;var  Kernel32Handle: THandle;  IsWow64Process: function(Handle: Windows.TH ...

  8. Angular - - ngRoute Angular自带的路由

    ngRoute $routeProvider 配置路由的时候使用. 方法: when(path,route); 在$route服务里添加一个新的路由. path:该路由的路径. route:路由映射信 ...

  9. Flex4 布局 元素index

    Flex4 布局 元素index <?xml version="1.0" encoding="utf-8"?> <s:Application ...

  10. Spring4 Hibernate4 Struts2在WebLogic 10.3.3上面部署

    折腾了4天,终于可以部署了: 1,lib下面的包: antlr-2.7.7.jarasm-5.0.2.jarasm-commons-5.0.2.jarasm-tree-5.0.2.jarc3p0-0. ...