- 浏览: 959151 次
- 性别:
- 来自: 魔都
文章分类
- 全部博客 (745)
- MultiThread (19)
- My Plan (118)
- JavaBasic (61)
- MyInterview (104)
- InternetTechnique (5)
- ProjectConclusion (1)
- Maven (5)
- MogoDb (5)
- Hadoop (11)
- Memcached (6)
- TechniqueCollect (1)
- Ibaits (1)
- Android (34)
- ItLife (40)
- Tree (2)
- ProjectArchitect (7)
- Open Source (3)
- liunx (5)
- socket (8)
- Spring (27)
- DesginPattern (35)
- WebBasic (13)
- English (13)
- structs (1)
- structs2 (2)
- Oracle (17)
- Hibernate (2)
- JavaScript (4)
- Jdbc (1)
- Jvm (15)
- Ibatis (1)
- DataStructures (13)
- Https/Socket/Tcp/Ip (3)
- Linux (4)
- Webservice (7)
- Io (2)
- Svn (1)
- Css (1)
- Ajax (1)
- ExtJs (1)
- UML (2)
- DataBase (6)
- BankTechnique (3)
- SpringMvc (3)
- Nio (3)
- Load Balancing/Cluster (3)
- Tools (1)
- javaPerformanceOptimization (8)
- Lucene(SEO) (1)
- My Think (80)
- NodeJs (1)
- Quartz (1)
- Distributed-java (1)
- MySql (7)
- Project (4)
- junit (4)
- framework (1)
- enCache (1)
- git (2)
- SCJP (1)
- sd (1)
最新评论
-
lkjxshi:
你都这水平了还考这个证干嘛
SCJP 认证考试指南 -
钟逸华:
问的真多
百度java开发面试题(转) -
zuimeitulip:
觉得我就是这样的,从小阅读量就很少,导致现在的读的速度非常慢, ...
让读书成为一种习惯 -
DDT_123456:
我觉得你是不符合要求。问你hashmap的那个问题,你那样回答 ...
阿里面试2(转) -
jingjing0907:
刚刚写了很多读过此博客的感受,竟然没有发上去,以为我注册账号还 ...
让读书成为一种习惯
我的学习方法
目的
目的就是这个技术完成什么功能,解决哪类问题。拿JSON举个例子:
即
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
从定义我们可以总结出几个关键点:
轻量级
数据交换格式
易于编写和阅读
基于JavaScript的一个子集
纯文本独立于语言和平台
重点是它以纯文本存储,可以独立于任何语言和平台,且主要用于数据交换。
再比如Spring:
Spring 中包含的关键特性:
……请前往http://www.oschina.net/p/spring/浏览
Spring Framework官网 http://www.springsource.org/spring-framework
从定义我们可以总结几个关键点:
Java/JavaEE一站式解决方案(即不管是开发普通Java应用还是JavaEE企业应用都能提供解决方案)
框架基于 Expert One-on-One Java EE Design and Development(告诉我们需要去读这本书 这本书介绍了Spring设计思想)
IoC容器(此时我们需要问什么是IoC容器)
数据库事务的一般化抽象层(此时需要问自己怎么个一般化抽象)
JDBC 抽象层(怎么个抽象法,比普通JDBC调用有哪些好处)
等等……
再比如Jsoup:
从定义上可以总结几个关键点:
Java版的HTML解析器
提供了类似于DOM、CSS及类似于Jquery的操作方法来取出和操作数据(重点是DOM、CSS、Jquery我们都有所了解,再学这个应该不难)
从一个技术的定义上,找关键词,我们能总结出它的核心目的。而且能提出一系列问题,有了这一系列问题我们能知道我们接下来要学习什么,只有了解了这些功能才能真正理解设计的目的和是什么。
适用场景
就是我们这个技术的适应的环境,可以在哪些场景中使用。
比如JSON适用于:
数据交换,尤其跨平台的数据交换
表示JavaScript对象
比如Spring:
在Java/JavaEE开发的整个过程中都有帮助。此时需要问有哪些帮助?为什么?
比如Jsoup:
只要我们想在Java里解析HTML就可以考虑使用它。
如何使用
到这一步其实是最简单的,可以按照如下步骤学习:
1、根据官网的hello world进行简单入门,了解最基本的使用,到此我们入门了;
2、如果官网提供了单元测试用例,最好的学习方式就是跟着单元测试挨着试,到此该技术的所有特性就有所了解了;
3、写自己的功能,根据之前学的知识开始开发自己需要的功能;
4、如果需要经常使用/涉及项目核心技术,一定要读读官方文档,有时间读读API做到心中有数。
此处就不给例子了。
类似的技术
每当我们学习完一个新技术的时候,都要留一手,防止一个技术有bug/性能问题造成后续无替代方案。
比如Jsoup类似的技术有:
HTMLParser
NekoHTML
这两个解析工具功能十分强大,但是使用上没有Jsoup简单。
比如我要实现论坛内容过滤功能:
过滤掉所有的事件注册,如<a onclick="……"> 需要删除onclick
删除form相关的表单元素,防止恶意用户注入表单窃取用户数据
这个功能我使用Jsoup实现的。
比如我要抓取iteye的论坛内容(主题、内容、发布人、发布时间)等,使用Jsoup十分方便,因为它的选择器语法类似于Jquery语法,十分方便,而且学习成本很低,基本上只要会Jquery,10几分钟就能上手。
优缺点
我们应该对我们经常使用的核心技术做到心中有数,即了解优缺点,对于普通的技术只要基本会用即可(有时间可以做对比)。
比如hibernate和ibatis,springMVC和struts2等等,做个对比,总结不出来几点说明自己对这个玩意还是了解不深,需要继续学习和研究。
为什么
对于一些项目中使用的核心技术,需要掌握:
做好了解为什么,即为什么有这个东西,即了解发展历史和产生的背景
如何实现的,读源码,知其所以然
重复发明个轮子,这样可以更好的了解原理,而且学习效果更佳,这样比读N遍源码效果更好
有朋友会说我看不到咋办?不会写啊!
告诉你个笨办法:
之前我学习CGLIB,是照着人家单元测试挨着敲和试的;
还有学习源码建议从低版本开始,因为功能少都是核心,好研究。
在此学习过程中一定要把握度:
有些东西只需了解目的和怎么如何即可;
有些需要理解到为什么,像spring、junit、slf4j/logback、ehcache、tomcat、ibatis等等,有时间多读点源代码或者自己造个轮子;尽量做到每一个方面都有涉及(出问题我不怕),但要专一,如spring。
我的学习历程
写自己的代码
代码量非常重要,前期要写足一定量代码,再看一些书籍/读一些源码才有感觉。我是如何写代码的:
1、项目代码,这个没得说,在写的过程中思考我们在读书时遇到的一些问题;
2、在写项目的时候我们可能发现我们经常重复做一些事情,此时就需要考虑建立自己的代码工具库,如通用代码库、代码生成工具、常用工具类等; 不要重复自己,遇到重复的就考虑往自己工具箱添加可复用的组件;
3、按照自己兴趣发展一个方向,此时可以考虑写一些相关的轮子;通过轮子再反过来深入学习其他相关的技术。
4、如果有能力就考虑构建自己的平台,简化重复劳动,提升开发效率。
发明轮子我觉得是很有必要的,光看不练没什么多大效果,发明个轮子可以帮助我们更好的理解,轮子不一定非得用到我们的项目,此时的轮子是帮助我们学习的。
阅经典的书籍
读大师经典著作,如
或者关注如iteye等网站,推荐的一些好书。 我经常到 互动 itpub 图灵社区 等看一些新书。
读书不是到用的时候再读,而是按照自己的方向和兴趣选择相关的书籍进行阅读,学习前人经验和思想,开阔自己思路。
读书不是只读一遍,有些好书如《Effective Java》、《设计模式——可复用面向对象软件的基础》、《企业应用架构模式》、《敏捷软件开发:原则、模式与实践》、《面向对象软件构造》等需要重复读,因为时间段不同积累的经验不同,理解会产生改变,每次读都有不同的收获。
读书读不懂没关系,先放一放,过一段时间再来看,经验到了自然就明白,不要刻意去背,刻意去记,一定要理解着记,记住要理论指导实践,实践检验理论,不可脱节。
不能心急,一下子啃N页,像看小说似的,这样什么都学不到,记不住,即使今天记住了过了几天就忘了,所以要温故而知新。
读书要思考自己之前遇到过类似的场景吗?对比着记更容易,而且记忆的成本会很低。
不要光看自己使用的技术相关的,其他方面的如产品,测试,数据库等相关书籍也建议阅读。在此推荐一本产品入门书:
《Don't Make Me Think》
尤其在学习Java技术时,建议大家有时间把JDK的核心API(如java.lang/java.util这些我们经常用的)读一下/还有相关的规范(规范是最权威的指南)。
读优秀的代码
阅读优秀的源代码可以帮助我们消化书籍中学到的理论,更好的去使用它,而且能开阔我们的思路,完善我们的思想。
读源代码思路:
1、从使用进行阅读,按照调用关系深入到源代码中,不要一口吃胖子;
2、跟着单元测试走;
3、只需读最核心部分即可,无需读所有代码;
4、从简单的源码入手,刚开始放低难度,如阅读junit、slf4j、ehcache等相对简单的源码,再深入阅读如spring等源代码;
5、阅读源代码要分而治之,一次读一块,不要混读,不要杂读。
记自己的博客
记博客可以思维缜密,完善知识体系,扎实技术;而且可以分享自己的经验想法,如果有错误会有朋友指正,非常好的学习方式。
记博客思路:
1、记录自己工作中遇到的问题及解决方案;自己既然遇到了别人也可能遇到;
2、不要怕写的简单,没面子,我觉得要厚脸皮 ;
3、任何东西都可以记,留作回忆。
向同事的学习
既然能作为同事,说明大家水平差不多,学习同事的优点。
向同事学习思路:
1、没事聊聊技术,听听它的想法;
2、看他的源代码,从中学习;
3、如果你的老大/同事都不上进,你又是很上进的,建议物以类聚,人以群分,换个环境好好发展自己。
善于观察细节
善于观察细节,比如从最基本的同事怎么操作的那么快(观察他是如何进行操作的,如发现自己不会的快捷键)?
观察细节思路:
1、眼要尖,善于发现自己不会的;
2、嘴要勤,善于问自己不了解的(此处不是没事就去问,而是自己思考过,实在不会的,不要憋在肚子里,问一下又不会怀孕);
3、没事读同事的源代码,这个可是免费的,从中能学到好的编码习惯和好的解决问题思路。
学习没有捷径,我不聪明,但我刻苦;刻苦还是不够,得善于思考和总结。
学习不要怕丢人,学到手是自己的,学会厚脸皮。
希望对需要的人有所帮助,每个人都有自己的学习方法,可以借鉴学习,但不要临摹,适合自己的才是最好的。
下一篇会《分享我是如何解决问题的》。
PS:以上是本人总结,不对之处谢谢指正。
新的一天又来了,上班去啦。,各位天天好心情!
发表评论
-
2015年4月份学习计划
2015-04-02 22:52 10662015年4月份学习计划 第一周(4.2-4.5) ... -
CVCV
2015-03-02 18:01 1020menards Menards是美国第三大家居装饰和用品 ... -
20件程序员必须知道的事
2015-02-28 17:29 891我最近看了一本叫做《the 97 Things a Pro ... -
卓越程序员和优秀程序员有哪些区别?
2015-02-28 09:51 871卓越程序员和优秀程序 ... -
为什么有些人工作是痛苦的?
2015-01-07 16:06 710身边一个朋友,每天工作内容多但是都不复杂,但都是些特别容易出 ... -
2014年12月份学习计划
2014-12-21 21:45 764第三周(12.22-12.28) 结合官网来看 12 ... -
11个小技巧提高程序员工作效率,小习惯更重要(转)
2014-12-06 22:18 957“吃苦耐劳”真的是优良品质吗,与你怎么做相比,老板们应该更关 ... -
箴言(转)
2014-11-05 00:14 5001、每天晚上12点之前睡觉,早上8点起床 2、努力学 ... -
2014.11月份学习计划
2014-11-05 00:13 592hadoop 学习计划 hadoop中级 (11.5 ... -
22条日常技巧助程序员提高工作效率、节约时间(转)
2014-10-28 14:14 786我一直在测试和调整各 ... -
浅谈、男人需要完成的事! (转)
2014-10-28 14:13 8701,事业永远第一 ... -
提升程序员身心健康和工作效率的装备有哪些?(转)
2014-10-22 12:21 774曾经有很长的一段时间一直在学习和探索提升工作效率& ... -
优秀软件工程师必备的7大特性(转)
2014-10-22 10:23 842不是每一个程序员都 ... -
程序猿的十一条浮躁表现
2014-09-15 23:40 7261. 不能静下心来坚持读完一本有深度的书。 2. ... -
30岁后你会站在哪里?(转)
2014-06-08 20:15 905http://www.oschina.net/ques ... -
Java互联网工程师要具备哪些技能(转)
2014-02-26 20:58 8711.Core Java, 就是Java基础、JDK的类库,很 ... -
如何做到早起一小时?(转)
2014-02-25 22:03 904早起是个不过时的话题 ... -
中医教你如何睡觉
2014-02-21 22:40 741中医教你如何睡觉人一个晚上不睡,一百天都补不回来。睡觉的诀 ... -
学会成长(转)
2014-01-04 23:49 932人不成熟的第一个特征:就是立即要回报 他不懂得只有春天播种 ... -
2012年回顾
2013-06-30 22:41 10022012年回顾 2012年过去了,回顾一下2012年主要做 ...
相关推荐
本文标题为“因为热爱,所以坚持——我的机器人学习之路.pdf”,是一篇讲述了作者在机器人学习过程中不断努力和坚持的故事,文中透露出作者对机器人领域的深厚兴趣和对机器学习、深度学习的探索。从描述中可知,这是...
这份名为“有关坚持的个关键点——程序员职场讲之月大本营直播PPT学习教案”的资料,旨在帮助程序员们理解并掌握如何在职场中有效坚持,提升个人职业发展。以下是六个关于坚持的关键点: 1. **找到原始的动机——...
无论是对自己感兴趣的还是不感兴趣的课程,我都坚持听课,努力理解教材的结构和逻辑。理解每个知识点是如何串联起来的,如同中医中的经络理论,理解知识的脉络至关重要。课前预习可以帮助我在课堂上更好地跟上老师的...
尽管粉丝增长缓慢,但我享受在分享中学习,同时也帮助了他人。 在学习Java的过程中,我发现有了C语言的扎实基础,进入Java的世界相对轻松。然而,面向对象的概念让我一时困惑,我通过不懈的努力,终于理解了它的...
正是基于这样的认识,这份名为“就业和人生——我的经验分享精美配图ppt模板”的模板应运而生。 该模板不仅涵盖了一系列实用的主题,如工作、家庭和信仰在我们生活中的重要性,而且还提供了在职业选择上的指导,...
我今天要与大家分享的,正是关于如何在克服缺点的同时,坚持自我学习,特别是通过阅读来实现个人的自我提升。 回想起我的童年,那是一段在母亲引导下爱上了阅读的时光。在我成长的环境中,书籍像是打开了一个新世界...
在竞争激烈的社会中,学习不仅仅是一个简单的过程,它是通往成功的阶梯,而有效学习的方法则成为许多学生和家长所追求的目标。今天,我们就从一份名为《尖子生的语数英学习秘籍分享》的资料中,深入挖掘那些尖子生们...
总的来说,《计算机牛人——编程牛人的生活》不仅是一本励志故事集,它还是一本关于计算机科学学习和实践的指导手册,它讲述了如何将个人的兴趣与技术发展相结合,如何在困难中坚持和创新。对于那些热爱技术,愿意在...
- **解决问题的方法**:如父母的鼓励和支持,自己的坚持与努力。 - **情感变化**:描述从困惑、沮丧到充满希望的心态转变。 #### 实例分析 - **实例一**:学习包饺子的过程。 - 先后步骤:准备馅料、包制饺子、煮...
今天,我站在这里,满怀激情地和大家分享一个永恒的话题——勤奋学习的重要性。我们都知道,勤奋并不是天生的,它是可以通过不懈的努力获得的。在我们成长的道路上,勤奋学习是我们走向成功的不二法门。今天,我想和...
他鼓励大家利用春节期间坚持学习,因为这段时间对于系统性学习尤其宝贵。 邱伟采用了一系列具体的学习方法,如设定明确的目标,以目标为导向驱动学习。他设定了要在三个月内一次性通过PMP考试,并期望能将所学应用...
对待作业,我始终保持诚信,坚持自己完成,这不仅锻炼了我的独立思考能力,也强化了我的道德立场——大道至简,决定一切。 二、思想层面 初入大学,我曾因缺乏约束而变得懈怠。但随着自我认知的提升,我意识到...
这个例子生动说明了成功的实现不仅需要个人的坚持和努力,更需要合理的计划、科学的方法和应对风险的勇气。对于医务工作者而言,这意味着在追求医疗事业的发展和创新时,必须制定明确的目标,并积极付诸行动。 4. ...
第三学期,鼓励学生分享学习成果和经验,引导他们学会时间管理,保持学习的积极性。 2. 乐学——兴趣活动广开展 通过设立学习兴趣小组,如英语、数学、CAD制图等,提供一个平台让同学共享知识,解决疑惑,培养团队...
在班会中,通过描述不同环境下的学习场景——教室、宿舍、食堂,我们向学生展示了学习的无处不在。这种场景的描述,意在提醒学生,在生活的每一个角落,都可以成为学习的场所,只要保持对知识的渴望和追求,就能够...
【主题班会——勤奋学习,励志向上】 本次主题班会以“勤奋学习,励志向上”为宗旨,旨在激发学生的学习热情,培养良好的学习习惯。活动通过讲述古今中外勤奋学习的典故,分享优秀同学的学习方法,以及探讨提高学习...
无论是在课堂上还是生活中,我都坚持用行动去影响和教育学生,希望他们能在我的榜样作用下成长。作为一名副班主任,我更是严格要求自己,注重班级管理,努力为学生创造一个安全、有序、积极向上的学习环境。 二、能...
在这里,辅导员们可以分享经验,共同探讨教育方法。同时,我们还积极引入志愿辅导员制度,与州教育学院合作,让更多的大学生志愿者参与到我们的教育工作中来。他们的加入不仅为我们的队员提供了更多元化的辅导和交流...
通过在线讨论区,我们可以与全国各地的同行进行交流,分享学习心得,碰撞思想火花。这种跨地域、跨行业的交流,无疑扩大了我们的社交圈,有助于知识的多元化和实践应用的探讨。 在教育方面,远程学习让我更加深刻地...
#### 《水滴石穿》——坚持的力量 - **故事内容**:讲述了水滴经过长时间不懈的努力,最终穿透石头的故事。 - **寓意解析**:这个故事告诉人们,无论面对多么艰巨的任务或挑战,只要坚持不懈地努力,终将取得成功。...