`
369128396
  • 浏览: 80928 次
  • 性别: 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基础 学习笔记 Markdownr版

    Java基础 java学习笔记 Java Java基础Markdown学习笔记,可转换成PDF、Word等格式

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

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

    java学习之路(转)

    java应该怎样去学,这是转载的一篇,感觉不错,描述了作者怎样从零开始学习java的

    Java学习~实现字母的大小写转换

    Java学习~实现字母的大小写转换 Java学习~实现字母的大小写转换

    java学习记录 php转行java基础学习.rar

    然后进入Java语言基础的学习阶段,学习任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。...

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

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

    Java转Dart学习笔记.txt

    本人是安卓开发多年,想学习Dart + Fluttor的混合开发。在学习Dart的过程中发现Dart跟JAVA有颇多相似之处。这里总结了一些学习笔记共同学习。

    java技术学习文档.docx

    Java基础知识 Java是一种面向对象的编程语言,它支持封装、继承和多态等面向对象的基本概念。Java具有静态类型检查机制,需要在编译时指定变量的类型。Java提供了基本数据类型,如int、double、float等,也支持引用...

    Java精华学习资料

    Java精华学习资料 深入JAVA API 深入理解嵌套类和内部类 文件和流 java中的一些常用词汇 J2SE学习中的30个基本概念 Java线程 Java 5.0多线程编程 Java Socket编程 Java的内存泄漏 抽象类与接口的区别 Java...

    java学习资料大全

    包括java各种源码课件视频等,转自它人所收集,一起学习一起进步。

    java学习资料

    Day02:UNIX 指令(二)和VI 的使用第二章CoreJava Day01:java 的配置和编译 Day02:进制转换和补码运算 Day03:java 的移位和逻辑运算 Day04:java 的基本语句 Day05:java 的循环语句和方法数组介绍 Day06:java 的...

    Java转换smali文件编译工具

    将Android 的Dex文件转换为smali文件。此工具是用来将Java代码编译后的class文件 再由Android SDK的dx.jar生成dex文件之后。将dex转换为Smali文件的工具.供代码对比学习。

    JAVA学习(转)

    java学习资料汇总

    java学习路线总结.doc

    兜兜转转要开始学习JAVA了,没基础,如果再没有系统的学习计划与递进的知识体系,就容易深陷自学的坑(学完忘),回顾无依据时,容易自暴自弃,于是,本人查找知名培训机构推出的课程体系,总结到word中,边工作边...

    java各进制转换类

    java学习,java各进制转换类,方便使用java开发重利用。

    超多Java初学者学习实例集锦.rar

    超多Java初学者学习实例集锦,涉及到Java中算术运算符的使用、Java中位运算符的使用、break语句的使用、continue语句的使用、用do-while语句计算10的阶乘、用for语句计算10的阶乘、Java中逻辑运算符的使用、求三个数...

    《Java JDK6学习笔记》

    Java、JDK6、良葛、林信良、Java学习笔记 我没看到实体书,不知是否相同, 近些日学习一下ruby方面的,顺便看看java方面的, 这个是Java JDK6的学习笔记电子版, 压缩包里包含两个文件, 一个是chm格式(这个还行吧)...

    java 向下转型 程序

    java 向下转型 程序 学习java必须要学习的经典案例,加油学习把

    Java 使用javaCV、ffmpeg拉流H265 RTSP转推H264 RTMP可获取流访问人数(源代码)

    1)、拉取RTSP流转推RTMP,支持H265转H264。 2)、可选择使用javaCV推流、ffmpeg推流两种方式。 3)、javaCV仅支持拉去或推送H264压缩方式的流。 4)、ffmpeg采用命令的方式拉流和推流,支持H265和H264。 5)、...

Global site tag (gtag.js) - Google Analytics