(一)
从事软件行业工做已经近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