学习有时候不仅仅只是个人自闭的学习,我们不能将自学理解为自己一个人学习,而真的的会学习,或者说是效率更高的学习,是一种团队精神的学习,因为每个人看待问题的角度是不同的,通过和同学,老师的不断交流中,我们可以对某一事物有更深层次的理解, 学习的最好途径就是看书“ 学习的最好途径就是看书 “,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处: 1、能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料 2、对着书上的代码自己敲的时候方便 “ 看完书之后再次提升自我的最好途径是看一些相关的好博文 “,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。 很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。 http://www.cnblogs.com/java-my-life/首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友 java_my_life 。 目前市面上讲解 设计模式 的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客。这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是: 1、开篇点明该设计模式的定义 2、图文并茂讲解该设计模式中的结构 3、以详细的代码形式写一下该种设计模式的实现 4、补充内容 5、讲解该设计模式的优缺点 对于一个设计模式我们关注、学习的知识点,不就是上面这些吗? 不过我要重点提醒一下网友们,同一种设计模式的写法有多种,并不是说只有按某种写法来写才是这种设计模式。比方说适配器模式,我们关注适配器模式一定要关注的是什么是适配器模式不是怎么写适配器模式,不要认为某段代码不是按照适配器模式的写法写下来的它就不是适配器模式了,记住这一点,你在学习设计模式的时候一定会对代码中用到的设计模式有更深入的理解。 《深入理解Java虚拟机:JVM高级特性与最佳实践》如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧: 1、了解Java代码的底层运行机制 2、定位性能问题 3、对整个系统进行性能调优 4、解决各种奇奇怪怪的线上线下问题 5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机 那么Java虚拟机是你必学的一门技术。 《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明 ,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有5遍。国内写虚拟机的书除了这本,其实还有一些其他的,我也买过,不过粗略看下来,很多内容也是《深入理解Java虚拟机:JVM高级特性与最佳实践》此书里面的。 另外值得一提的是,《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书,有电子版的,网上搜一下就能下载到了。不过建议有兴趣的朋友还是去买书看,电子版本下载到的一般是比较老的版本,相比最新修订版的《深入理解Java虚拟机:JVM高级特性与最佳实践》,有很多作者新补充的知识点是没有的。 《HotSpot实战》所有的Java虚拟机都是遵循着Java虚拟机规范来的,市面上的Java虚拟机几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。 我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,大家cmd进入命令行,使用”java -version”命令就可以看到了。如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下 《HotSpot实战》一书,作者是陈涛 。不过由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。 最后提一句,如果有兴趣的朋友,不妨先去网上下载一个openJDK,HotSpot的源码就在里面。 《 Java并发编程实战 》 这本书常常被列入Java程序员必读十大书籍排行榜前几位,不过个人不是很推荐这本书。 《Java并发编程实战》作者是Brian Goetz,怎么说呢,这本书前前后后我也看了两遍左右,个人感受是: 1、文字多代码少 2、讲解多实践少 我觉得这可能就是老外写书的特点吧,因为Java是北美国家(加拿大、美国)开发和维护的,所以老外对Java方方面面的理论知识体系都掌握得是非常清楚和透彻的。翻开这本书看,多线程什么用、什么是死锁、什么是竞争、什么是线程安全等等,方方面面的知识点都用大量的文字篇幅讲解,不免让人感觉十分枯燥,也难让读者有实质性的进步。我这本书看了两遍也属于一目十行意思,有兴趣的地方就重点看一下。 无论如何,作为一本常常位于Jva程序员必读十大书籍排行榜前几名的书,还是一定要推荐给大家的。 《Java多线程编程核心技术》《Java多线程编程核心技术》作者高洪岩。想要学习多线程的朋友,这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。 此书和《Java并发编程实战》相反,这本书的特点是 大篇幅的代码+小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。 有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。 不过这本书的缺点就是对于Java并发包下的一些类像CountDownLatch、Semphore、CyclicBarrier、Future、Callable等都没有讲到,重点的CAS和AQS也没有触及,重点类的实现原理也没有提。当然,这很深入了,在学习了这本书之后如果能再去对这些知识进行一些学习、研究的话,你一定会慢慢成长为一个很厉害的多线程高手。 《 Effective Java 中文版》 这是唯一一本我没有买的书。初识这本书,是在我的博文 Java代码优化(长期更新) 里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。 《 Effective Java中文版 》的作者是Joshua Bloch ,这个人就很厉害了,他是谷歌的首席架构师,属于超级技术大牛级别了吧,呵呵。由于没有看过这本书,所以我不好发表评论,但是从这本书的知名度以及其作者的来头来看(多提一句,这本书也是Java之父James Gosling博士推崇的一本书),我相信这一定是一本值得一看的好书。 好的代码是每个Java程序员都应该去追求的,不是说我今天写一段好代码相比写一段烂代码对性能会有多大的提升,更多的应该是提升了代码的可读性以及可以规避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护—-无论从时间成本、人力成本还是风险成本来说,这都是非常高的。 《深入分析Java Web技术内幕》《深入分析Java Web技术内幕》,作者许令波,淘宝工程师。 这本书我用一个字概括就是:全。真的非常全,HTTP、DNS、CDN、静态化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知识面非常广,但又不像专门精讲某个知识点的书籍一样讲得非常深入,感觉这本书就是尽量去用短的篇幅讲清楚一些Java Web使用到的技术的内幕,让读者对这些知识点的技术内幕有一个理性的认识。 不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了,有种抛砖引玉,或者说师傅领进门、修行在个人的感觉。 《大型网站技术架构 核心原理与案例分析》一个字评价这本书,屌;两个字评价这本书,很屌;三个字评价这本书,非常屌。呵呵,好了,再说下去可能别人以为我是水军了。 《大型网站技术架构 核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。 Java的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项? 关于分布式的知识点,都在这本书里面有体现,只有你想不到,没有他写不到,而且写得非常易懂,基本属于看一两遍,再记一些笔记就知道是怎么一回事儿了。多看几遍,对分布式的理解一定会加深不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,其实我认为这不仅仅是写给想做架构师的读者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。 《大型网站系统与Java中间件实践》《大型网站系统与Java中间件实践》作者曾宪杰,是淘宝的技术总监,算起来应该在阿里有至少P8的级别了吧。 这本书的部分内容和上面一本李智慧的《大型网站技术架构 核心原理与案例分析》有所重合,像分布式系统的演化、CDN、CAP理论和BASE理论等等,这也更说明这些都是分布式系统或者说是一个大型网站重点关注的内容,当作一次再学习也不错。 本书要突出的重点是 中间件 三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能,这也可以说是软件工程发展的目标和驱动力。 因此,本书有一部分的内容就是基于中间件,详细讲解了中间件与JMS的各种知识,适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。 《从Paxos到ZooKeeper 分布式一致性原理与实践》《从Paxos到ZooKeeper 分布式一致性原理与实践》,作者倪超,阿里巴巴工程师。这本书是我最近在研读的一本书,和上面的《大型网站系统与Java中间件实践》一样,属于分布式组件的范畴,属于有些深入的内容,当然也是我自己的个人兴趣。当然,如果有志向做一个出色的大型网站架构师、公司的技术总监之类,这些知识当然是必须掌握的。 本书从分布式系统基本理论开始讲起,讲到Paxos算法,最后慢慢引入到Zookeeper,循序渐进。当然,更多的我目前还不方便发表什么看法,因为这本书的第二章Paxos算法我都还没有弄懂(Paxos算法确实有些难以理解和不太易懂),接下来的章节还没有看下去。 如果网友们所在的公司在使用Zookeeper,并且你又对Zookeeper感兴趣想要研究一下它的原理的,这本书将是不二之选。 《MySQL5.6从零开始学》《MySQL5.6从零开始学》,作者刘增杰和李坤。作为一名Java程序员,我认为我们千万不要觉得数据库是DBA的事情,数据库对一个Java程序员来说也是必须掌握的一门知识,丰富的数据库性能优化经验是一个顶尖程序员必备技能。 目前主流的数据库有Oracle和MySQL,当然推荐大家的是MySQL,主要原因我认为有两点: 1、MySQL相比Oracle更轻量级、更小、安装和卸载更方便,SQL其实都是差不多的,如果想学数据库,学MySQL就可以了,在家里面可以自己方便地研究,如果你的公司使用Oracle,只要再用对比学习法,关注一下Oracle和MySQL的差别即可 2、随着2009年阿里巴巴去IOE的运动的进行,目前国内的很多互联网公司都会选择MySQL作为它们使用的数据库,因为MySQL免费,所以既省钱又不需要出了问题就依赖甲骨文公司 MySQL学习我推荐的是这本我自己学习看的《MySQL5.6从零开始学》,我是觉得挺好的这本书,书里面的知识点很细致、很全面,读者选择书籍的标准大多不就是这两点吗? 《Spring源码深度解析》《Spring源码深度解析》,作者郝佳。Spring这个框架做得太好了,功能太强大了,以至于很多开发者都只知Spring,不知什么是工厂、什么是单例、什么是代理(我面试别人的真实体会)。这种功能强大的框架内部一定是很复杂的实现,这就导致一旦你的程序使用Spring,出了问题,可能是Error、可能是Exception、可能是程序运行结果不是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法。 研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处: 1、理解框架内部的实现之后,可以主动去解决问题,而不需要依赖别人 2、Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、对你理解设计模式有很大的提高 3、研究Spring框架将会大大增强你读代码的能力,我相信只要你能研究清楚Spring内部是如何实现的,其他任何一个框架的源代码都难不倒你 总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。 Spring源代码,个人推荐《Spring源码深度解析》一书,真要研究透并且写清楚Spring源代码,恐怕三四本书都不够,作者在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,殊为不易,尽管无法讲得完全,但是相信作者的讲解配合上读者自己的研究,一定可以对Spring的实现有更深度的理解。 后记以上就是我推荐给Java开发者们的一些值得一看的好书。但是这些书里面并没有Java基础、Java教程之类的书,不是我不推荐,而是离我自己学习Java基础技术也过去好几年了,我学习的时候看的什么也忘了,所以我不能不负责任地推荐一些我自己都没有看过的书给大家。对于Java基础知识的学习,我提两点建议吧: 1、多写多敲代码,好的代码与扎实的基础知识一定是实践出来的 2、可以去尚学堂下载一下马士兵的视频来学习一下Java基础,还挺不错的,如果尚学堂官网上下载不了可以底下回复,我的电脑里有 最后,每一位读到这里的网友,感谢你们能耐心地看完。希望在成为一名更优秀的Java程序员的道路上,我们可以一起学习、一起进步。 ================================================================================= 我不能保证写的每个地方都是对的,但是至少能保证不复制、不黏贴,保证每一句话、每一行代码都经过了认真的推敲、仔细的斟酌。每一篇文章的背后,希望都能看到自己对于技术、对于生活的态度。 我相信乔布斯说的,只有那些疯狂到认为自己可以改变世界的人才能真正地改变世界。面对压力,我可以挑灯夜战、不眠不休;面对困难,我愿意迎难而上、永不退缩。 其实我想说的是,我只是一个程序员,这就是我现在纯粹人生的全部。3------------------------------------- |
学习经验总结
时间: 2024-10-24 12:11:33
学习经验总结的相关文章
对前端初学的学习经验和个人见解
这篇文章仅仅针对我自己在学习过程中的一些经验和看法: 回忆来说,自己也算是半路出家,并喜欢上了前端,有一颗要做技术和艺术相结合的心,但是由于种种限制,如今还没有什么成果,我认为学习一个知识,一种技巧,出发点一定是自己要喜欢,并且在喜欢的途中你要慢慢的爱上它,越来越觉得学习前端技术有时候就像是在谈恋爱,刚开始是那种火热的情愫,疯狂的爱恋,前期总有一些使不完得劲,但是走着走着就会出现问题,人家都说女人心海底针,但是我感觉前端技术也是一样,又是后看似简单,但是又很复杂,看似一个简单的方法却能解决复杂的
我个人的Java学习经验(一家之言)
声明:本文只是我的个人经验之谈,或者连经验之谈都算不上,因为我觉得自己还是个新手,没有什么经验可谈,就算是我分享一下自己从开始学习Java到现在的一些心路历程吧,各位看官暂且看吧,欢迎交流.第一部分算是我与Java之间的故事,第二部分是我的个人学习经验和体会,不喜欢看故事的,直接看第二部分,谢谢! 第一部分: 作为一个学习Java的非计算机专业的学生,我觉得学习Java是有难度的,这种难度是因为我们不了解或者没有相关的学习经验而导致的,当然,与兴趣爱好也有分不开的联系.我是一个IT爱好者,由于不
Flex布局的学习经验
做为css布局的又一种新方式,Flex拥有极强的使用效果,相比原来的float,position对元素样式的操作更加简洁,本文是我的一点学习经验和心得吧,如有错误以及不足之处,请多多指点. 好进入正题吧,首先借用阮一峰大神的一副图片: 再来说说flex的几个属性吧: 一.容器属性 1.flex-direction : row | row-reverse | column | column-reverse; 这个属性是定义元素在主轴上的排列顺序的,也就是上面的(main axis) row:元素在
Android学习经验分享
最近一直在学习安卓,一直以来都是通过自学和博客园的一些文章来进行学习.这里写下点个人学习安卓的感想与感悟. 一 为什么学习安卓 首相,个人比较喜欢手机上的各种App,觉得像我这样的人手机app粉丝也不再是少数.而在ios和Android分割的天下,显然Android所占的群众比是远多于ios的. 其次,本人临近毕业,将来想寻求一份关于移动开发的工作,而java方向的Android正和和本人的意愿相合. 最后一点,也是很客观的一点.虽然ios的开发者的薪金要高于Android,但是Android
CSS浮动(float)属性学习经验分享
作为一名前端开发的初学者,CSS的布局定位无疑成为了一个难点,这两天通过看一些博客的技术分享和自己的反复实践,大概领悟到了一些float的“门道”. 下面就通过一些例子来归纳总结一下我所学到的浮动特性: (一)浮动元素对其兄弟元素是标准流元素的影响: 现在假定HTML文档中从上到下有3个块元素A.B.C 1.现设定A.C为标准流中的元素,B设为float:left (注:为了更直观地显示,设B的透明度为0.5,B是在C上方的) 由此可见:将B设为浮动元素后,B脱离了标准文档流,浮于其上方,因此他
Android 学习经验之分享
刚学Android开发的人肯定想知道过来人是怎样入门的,有哪些Android学习经验,怎样能少走弯路.下面小编就跟大家分享一下自己当初学Android的入门经验,虽算不上经典,但都是真正讲出了自己的学习过程,尽管每个人的学习方法和习惯等不同,但或许也可以从中学到东西. 一.看Android开发视频: 我刚开始接触android的时候,主要是跟着网上Android开发视频入的门,自己跟着一点一点的敲代码,就这样算是简单的入门,现在很多在线学习视频网站上面有很多的Android视频课程学习资源,记得
C#字符ASCII码学习经验
很多时候我们需要得到一个英文字符的 ASCII 码,或者一个汉字字符的 Unicode 码,或者从相关的编码查询它是哪一个字符的编码.很多人,尤其是从 VB 程序序转过来学 C# 的人,会报怨 C# 里为什么没有提供现成的函数来做这个事情——因为在 VB 中有 Asc() 函数和 Chr() 函数用于这类转换.但是如果你学过 C,你就会清楚,我们只需要将英文字符型数据强制转换成合适的数值型数据,就可以得到相应的C#字符ASCII码:反之,如果将一个合适的数值型数据强制转换成字符型数据,就可以得到
山西思诺思科学员的成功学习经验
成功者的经验,对我们来说,无疑是非常重要的,因为他们不但知道了成功的路,而且,经历过失败,知道哪些路是走不通的,这些经验对于后来者有很好的参考价值.已经通过CCNA的朋友,都非常愿意把自己的心得拿出来与大家分享. 某网友收集了一些心得,整理出来,希望能对准备考CCNA的朋友有所帮助. 成功者一: 考试题并不难,主要是把各知识点搞懂,明白之后考试你就会感到很轻松. 选择资料对考试的成功非常的重要,如果你参加培训,可能就不是什么问题,如果是自学,就显得很关键.需要得到cisco press的官方资料
前端技术学习经验分享(第一天---布置学习环境)
我相信有很多朋友因为学习而烦恼,有一定计算机语言基础的同学还好,通过各种渠道,比如视频,书籍,笔记的方法可以自学,提升自己的能力,但如果是零基础的同学想要入行,自学就变的难如登天了,大学毕业以后因为各种私事,公事,杂七杂八的事总能扰的我们心神不宁,没办法平心静气的学习一门与自己毫不相关的一门新知识.最后不得已而参加了培训机构... 下面我会总结培训的优势与劣势,并于大家分享我自学的经历. 先说上培训的几点好处吧: 第一.培训可以认识10--50个同学,相熟的成为朋友的可以有3--5个,这是我们很
Linq To Sql学习经验
本文向大家介绍Linq To Sql,可能好多人还不了解Linq To Sql,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. Linq To Sql是Microsoft开发的针对解决data!=object问题的新技术.在笔者的一系列的文章中,对它已经做了大量的介绍.现在,笔者将从经验的角度,谈谈它的优劣. 1.Linq To Sql的优点 在Linq To Sql推出之前,我们只是把sql语句形成一个string,然后,通过ado.net传给sql server,返回结果集.