`
369128396
  • 浏览: 84223 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java学习之路(转)

    博客分类:
  • java
 
阅读更多
(一)
    从事软件行业工作已经近7年了,实际Java开发也就是近4年.真正从怎么会用Eclipse开始学起. 问过同事一个对象为什么可以几个类共用 ...到现在4年后的今天,也不敢说Java学的有多好,相反觉得有很多东西要去学习. 只想就我个人的一些心得,给初学者一点可资借鉴的意见吧.
    今天先说说学习Java的必备条件,   
    其一,兴趣. "兴趣是最好的老师",很熟也很俗,但却是事实, 没兴趣根本就不可能学好,写程序是个费脑子的事情,进步的唯一办法就是受挫折,想破脑袋而后豁然开朗才真正有实质的进步. 如果你只想学个Hello Word,那又何必学编程呢?
    其二,思想, Java编程思想 使我第一次知道了编程需要思想, 多年过去,我个人体会与其说编程思想,还不如说是解决问题的思想; 所以我想要说的思想就是如何解决问题的想法, 不只是编程的问题. 实际工作中, 太多拙劣的代码其实反映是思想的缺失,经常把简单的问题复杂化,或是找不到问题的关键所在。这些都不是编程的问题,是广义的思想的问题,所以有人说:“编 程时聪明者的游戏”。
    其三,追求卓越的精神,无论何时,总是用自己能想到的最好的办法去解决问题,总是试图改进自己以前的想法。程序员是一个职业,是一个谋生的手段,但是要把 这份职业做好,只是向老板交差是不行的,这样对的住老板,但是对不住自己,一段段垃圾代码正象征着你不断地退步,不只是技术,更是思想;不断的追求卓越, 接力想最好的办法。
    其四,求根问底的精神。知道这样可以,也要知道为什么这样可以,如果确实没办法搞清楚,记下一个问号,也许某天当你学了更多东西后,突然明白了。拒绝浅尝 辄止,前面已经说了,挫折是进步的唯一最好的途径,略过了挫折也就丢失了更进一步的机会。新来一个兄弟爱抱怨程序看不懂,其原因是程序写的太烂;程序烂不 烂暂且不说,但是程序烂与不烂都不是你看不懂理由;烂点就花点时间,多调试,可以运行的代码都是可以看懂的;我个人觉得从烂程序中受益匪浅,这么烂的我都 看得懂,还怕不烂的吗?搞清楚烂在哪里,并把它改进一下,收获时很大的。
    其五,虚心。不要轻易说这个很简单,你这样不对。但是如果你胸有成竹,请勇敢的说出口。虚心的去学习,小心的探索。也许从别人的错误中,你会得到某些顿悟般的启示。
    其他,忌好高骛远,忌舍本逐末。
(二)
    前面说过学习java的必备条件,或是说学习编程的必备条件,今天就把我个人的学习历程列出来与大家分享。
    推荐入门书,Think in java,就是Java编程思想。如果英文好的话,尽量看英文的,因为再怎么厉害的人,由于文化差异,不可能完全能表达作者的那个“味”。就“面向对象” 这个概率来说,英文其实很好理解,可这中文翻译却很让人糊涂,而且你还真找不到更好的翻译办法。所以看英文书,最好看原版,能很好的体会作者的意境。有人 说这本书入门太难,我不这么认为,相反它只是把每个知识点都说得很透彻,不是要人死记硬背,而是从道理上说透,比如为什么入口的main方法要 public,要static.
    有书了,我们怎么学习呢?先讲学习内容。
    我觉得有其他程序语言基础的,可以把程序结构那章略过,基本数据类型也不要花主要功夫。重要是讲类,接口,重载,覆盖,异常,Collection的那几章,然后是线程,内部类这部分可以等有一定基础了再看也行,开始你可能根本不知道为什么要用它,所以也不会用。还有就是IO, 我觉得到不用花很多时间,大致先了解就好了。
    就学习方法而言,书上的例子是要看的,而且要亲自敲到电脑上调试下,光看书只能是半生不熟,似懂非懂的。有问题随时用笔记下来,并在以后的学习中试图找到答案。
    学习的过程中,不要去学习什么流行的框架怎么用,如struts,spring等,先学好基础再说,不要好高骛远。然后可以自己想个小玩意做做,练练手。 比如双机的聊天工具,扩张成客户端服务器模式啦。个人觉得不要急于上手Web程序,它可能会让你忽略了基础的学习与掌握,甚至写程序的兴趣。
    等自觉学的差不多了,再把书从头过一遍,以前理解的也许有更多感悟,以前不懂的,说不定已经搞清楚了。书读百遍,其意自现。
    有空到论坛上别人都什么问题,试图解决下。碰到问题google下,不要轻易发问,先试图自己想办法解决问题。
    以上是我个人一点感受,错误之处敬请批评指正。另外Think in java目前最新的是第四版,在网上可以找到pdf格式的电子版。各位如果需要请留下电子邮箱。
(三)
    副标题, 积极主动地学习。 刚开始工作那年,公司培训说“吃亏就是占便宜”,“比顾客要求的做的更好”,当时觉得纯属愚人思想。但这两句话确实对我影响深远,因为这两句“愚人”的言论,我收获了很多。 为什么要吃亏呢?老板给多少钱我就做多少事!似乎很有道理,但是在同样的时间内你做了较差的事情,就是在浪费自己的时间。同样是8个小时,我为老板把事情做到最好,老板确实为此获得了好处,但是你自己也充分利用了自己的时间。所以我说“做事就要做好,跟别人给你多少钱没有关系;觉得钱少不值得,就直接不要做;既然做就要尽心。”可能还有人不同意,说我可以节约出上班时间尽心作自己的事情,不也是进步了吗?这其实有两个误区,第一,违法纪律的事情不要做,就算做估计也有点提心吊胆,要防着领导冷不防站在你背后,试想这样的紧张状态下,你能很好的发挥自己吗?第二,自己的项目由于没有任何实质的压力,或说没有被检验的压力,往往多缺斤少两,或是进展缓慢,不具备很好的持续性。所以请用公司的项目练手就很好,不要怕谁占了你便宜;说不定领导看你做的好,还奖你点钱,也算是意外之财。
    说个我自己的事情,由于本人学历不高,也不是什么名校毕业,一个让公司为难的意外我做的个组长。然后在相当一段长时间内,一个做事情比我少,责任比我 轻,代码质量比我差很多的下属工资比我高。几年过去了,我也一直位置上努力着,学习着,终于超越了他一点点。这里我并不是想说我不争待遇,多么假清高,因 为我一直都在学习,既然钱争不到,就争点能力吧,能力总是永远用得上的,还好最后待遇终于有了点小小进步。
    为什么要比顾客要求的做的更好?谁是顾客?“下一站就是顾客。”所以顾客是你的邮件接受者,是你的上司,也是你的下属,还有QA的同志们,一切跟你有关联 的人其实都是你的顾客。我想说还有一个顾客,这个顾客就是你自己,不断地做超出你预期的事情,不断地超越昨天的自我;多研究下开源项目的代码,注意我说的 是看源码,不是学怎么配置使用;这个过程有时候很痛苦,看不懂啊,但是一旦看懂了,你领悟的别人编程的思想,解决问题的思路,在你今后的工作你也会不经意 的用上,而且你看到很好的代码,就会反感自己曾经认为很好现在看来是垃圾的代码。你看的源码越多,看更多其他的代码越简单,因为好的程序员总是对好的代码 有比较一致的看法,所以他们解决特定问题都趋向于某总同样的模式,就是所谓的设计模式。所以不仅要通过严格要求自己及,还要多多通过学习别人的经验来丰富 自己。
    最后该篇以那句总被忘记、却在失败检讨中容易想起的名言作结。“书山有路勤为径,学海无涯苦作舟。”
(拾遗)
    学习最大的天敌就是忘记,所以我想把我这几年的学习的东西,一点一点拾起来,算是复习,主要是对Java基础知识再回首,包括常用设计模式再内。具体计划大致如下: 第一阶段,以Thinking in java作为复习教材,一章一章的过,包括部分原文转载,然后翻译,写下自己的心得。 第二阶段,找一个自己完全全新开源项目,进行源代码分析学习,一步一步写下学习笔记,也同时跟大伙交流心得。具体项目现在还没想,不能太大的,也不能太微小的,找个比较流行的吧。 这个过程可能历时会比较长,也不知道是否能坚持下来。无论如何,一步一步来吧。
分享到:
评论

相关推荐

    java的学习之路

    Java学习之路是一个全面而深入的学习旅程,对于任何想要掌握这门强大编程语言的人来说,都是一条必经的道路。Java以其跨平台性、高效稳定性和广泛的应用领域,深受开发者喜爱。以下将详细介绍Java学习的一些关键知识...

    java学习之路(转)

    Java学习之路是一篇关于如何系统学习Java编程语言的文章,它强调从基础概念开始,逐步深入到更复杂的编程技能。文章为初学者提供了一个学习路线图,从Java语言的基本结构和工具,到面向对象编程,再到异常处理和文件...

    Java 学习笔记Java学习笔记

    Java是一种广泛使用的面向对象的编程语言,由Sun Microsystems(现为Oracle公司的一部分)于1995年发布。...Java学习笔记涵盖了这些核心知识点,通过深入学习和实践,你可以逐步掌握Java编程,并应用于实际项目开发中。

    Java基础 学习笔记 Markdownr版

    本学习笔记主要涵盖了Java的基础知识,包括面向对象、集合、IO流、多线程、反射与动态代理以及Java 8的新特性等方面,旨在帮助初学者或有经验的开发者巩固和提升Java编程技能。 1. 面向对象(OOP):Java的核心是...

    smali2java——直接将smali转换成java

    3. **学习与教学**:对于想要深入学习Android底层工作原理的学生或专业人士,这个工具可以帮助他们快速从Smali代码中获取Java层面的信息。 总的来说,"smali2java"工具是Android开发和逆向工程领域的一个重要辅助...

    C++转换JAVA工具

    3. **学习和理解**:开发者可以通过查看转换后的代码,更好地理解和学习两种语言的异同。 在压缩包文件"covert"中,可能包含有工具的可执行文件、库文件、文档、示例代码和说明。用户应当按照提供的文档指导进行...

    java编写通用进制转化程序,适合java中学习进制转换

    java编写通用进制转化程序,适合java中学习进制转换

    JAVA语音转文字

    Java语言在语音识别领域提供了丰富的库和工具,使得开发者能够轻松地实现语音转文字功能。在你的项目中,你可以利用这些资源来构建一个高效的语音识别系统。以下是对"JAVA语音转文字"这一主题的详细解释。 1. **...

    java excel转html

    通过查看和学习这个项目,开发者可以更好地理解如何在实际应用中实现Java Excel到HTML的转换。 总之,Java Excel转HTML涉及到了文件读取、数据解析、HTML生成等多个步骤,借助Apache POI或JExcelAPI这样的库,可以...

    JAVA自学之路

    【JAVA自学之路】这篇资料主要针对想要通过自学进入IT行业,特别是Java开发领域的初学者,提供了选择方向和学习路径的建议。以下是对标题和描述中所述知识点的详细说明: 一、选择学习方向: 1. 不要盲目跟风:强调...

    JAVA个人学习笔记

    JAVA学习笔记 JAVA学习笔记是面向对象编程语言的学习笔记,涵盖了JAVA的基本概念、面向对象编程思想、类和对象的概念、实例变量和局部变量的区别、方法的定义和调用、类型转换、精度问题、移位问题、switch语句的...

    《java学习》-java学习笔记.zip

    这份《java学习》笔记包含了多个核心主题,旨在帮助初学者和有经验的开发者深入理解和掌握Java技术。 1. **正则表达式(正则.md)**: 正则表达式在Java中用于文本匹配和搜索,是处理字符串的强大工具。Java提供了...

    java学习日记3

    【Java学习日记3】 在Java学习的初期,我们首先要了解Java的基本特性,它是一种跨平台的语言,这得益于Java虚拟机(JVM)。JVM使得Java程序可以在任何支持JVM的操作系统上运行,如Windows、Linux或Mac OS。JVM有多...

    Java学习入门资料 PPT版本

    ### Java学习入门资料知识点梳理 #### 一、Java语言历史与发展 - **起源与早期发展** - **前身**:Oak(1990年),由James Gosling等人在Sun Microsystems开发。 - **Green项目**:Sun Microsystems于1990年开始...

    java学习文档.pdf

    ### Java学习文档知识点详解 #### 一、Java环境配置 在开始Java学习之前,环境配置是不可或缺的一步。环境配置主要分为以下几个步骤: 1. **JDK环境配置**: - 设置`JAVA_HOME`环境变量,指向JDK安装目录。这个...

    java学习笔记markdown

    【Java学习笔记Markdown版】是针对Java初学者和进阶者的一份详尽教程,以Markdown格式编写,便于阅读和整理。Markdown是一种轻量级的标记语言,它允许用户使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML...

    CLASS转JAVA

    在这种情况下,"CLASS转JAVA"工具就派上了用场。这个工具专门用于将Java字节码(.class文件)转换回可读的源代码格式(.java文件),帮助开发者分析或调试已部署的程序。 1. **Java编译过程**: Java源代码(.java...

    C++转Java工具

    标题中的"C++转Java工具"指的是一个程序,它能够帮助开发者将C++编写的代码转换为Java语言。...对于需要在Java环境中利用C++代码的开发者,或者想要深入学习和实践JNI的人来说,这是一个非常有价值的资源。

    java行转列的例子

    "java行转列"这个主题是数据处理中的一个常见需求,尤其是在数据分析、报表生成或数据显示时。当我们从数据库中获取数据,有时会遇到单个字段的数据需要在用户界面上以列的形式展示,这时就需要进行数据的行列转换。...

    Java入门1·2·3:一个老鸟的Java学习心得.rar 超清

    《Java入门1·2·3:一个老鸟的Java学习心得》是一本与众不同的Java入门好书。作者以独特的视角,向Java初学者讲述了如何才能真正理解和掌握Java语言。《Java入门1·2·3:一个老鸟的Java学习心得》充分考虑了初学Java...

Global site tag (gtag.js) - Google Analytics