学习Java应该关注哪些网站

Python022

学习Java应该关注哪些网站,第1张

推荐10个常用的Java网站

Stackoverflow

Stackoverflow.com 可能是编程界中最流行的网站了,该网站有成千上万个好问题和答案。学习API或者编程语言,通常依赖于代码示例,stackoverflow就可以提供大量的代码片段。

Stackoverflow的另一个优点在于它的社交性。你可以在一些特定的标签下查看问题,比如“Java”、“regex”,你就会看到哪些是高频问题。这对于学习,以及Java博主书写热门话题都是一种非常好的资源。

DZone

这是一个非常有趣的网站,有相当多的开发者在这个网站上分享他们博客文章。就像一场冒险一样,在这里,你永远不知道下一秒会看到什么内容。

LeetCode

如果有Java方面的面试问题,例如“在Java中,内存中的数组是什么样的”,你可以从很多Java教程中找到答案。但是,遇到类似于“如何将SortedArray转化成一个BalancedTree”这样的问题,你就应该去求助LeetCode了。LeetCode包含一系列算法问题, 它能为有关信息技术的面试提供一个社会性的平台。这个网站最好的地方就是,它可以通过大小不同的数据在线检查你的代码是否正确。很多人认为,面试成功的关键在于重复这三个重要步骤:编码->阅读->讨论。

Java SE技术文档

这个网站包含了在使用Java SE API时会用到的所有文档,即使你是Java开发牛人,我敢肯定在这里你仍能发现一些有用的东西。比如,你可以阅读一些像“Java类的本质”、“部署”这样的教程。

Github

你也许知道可以免费的将你的项目托管在哪,但你不一定知道它还是一个学习当今流行的Java库和框架的优秀资源。比如,你想学 Spring MVC Framework,你可以搜索并且找到一些开源的项目。遵循“照葫芦画瓢”的原则,你能够通过实例快速的学习框架,尤其是你已经具有使用类似框架的经验。

Coursera

这是有关视频讲座的最好网站,在这里你可以找到许多顶尖学校的著名教授的优秀计算机科学课程。这些教授中,有些甚至是一些计算机科学领域的发明者。

Java World

这个网站包含了大量的Java教程,涉及各种各样的话题。其中很多文章都写的很好,并且有图片、插图进行说明。它可以被用来当作深度学习的教科书。

DevStore

这个网站是针对开发者做的一个服务商店,为开发者提供从设计开发到运营推广一站式的解决方案。开发者在任何阶段需要某种服务时,都可通过DevStore进行参数对比,查看评测、快速体验等来了解,不再需要一一搜索。

Wikipedia 维基百科

这个网站是查询或学习几乎所有概念的最好的资源之一。例如,作为一个资深的Java开发人员,你可能只是想了解一些概念并不想深度研究。这里是一个可以免费查询最新信息的好地方。例如,什么是面向服务的编程?另外,它还能为你的写作提供大量素材。比如,同一个词在不同的领域可能会有完全不同的含义。有时,研究这些词在不同领域的不同含义是非常有意思的。

Program Creek

与以上几个网站相比,Programcreek.com在规模上要小很多。但是规模小也有优点,它在维护方面做的更好,读起来更有趣。在这里,你可以找到其他任何网站都不曾涉及到的话题,而且几乎每篇文章都包含漂亮的插图或者示例代码。它包含了来自不同领域的人发表的文章(科研、工业),并且经常为Java开发者提供优质材料。希望有一天,它也会出现在一些人的网站前十名排行名单中。

注:当然,对于Java开发牛人来说还有很多其它不错的网站。如果你认为有其他的网站也应该列在这里,请留言,我以后也会加进去的。谢谢。

站长之家(chinaz.com)4月1日消息:今日,国内知名Java编程网站JavaEye.com被迫修改网站名称及域名,放弃一个运营了7年的JavaEye品牌。目前网站已经正式更名为ItEye技术网站,同时网站域名从javaeye.com重定向到iteye.com。

JavaEye网站发布公告称,由于Oracle公司通过授权的律师事务所,对JavaEye网站提出了无法接受的苛刻条件,在经过长期努力的交涉无效之后,Oracle授权的律师事务所以强硬的姿态要求我们服从,并且以停用javaeye.com的域名作为威胁,因此,我们只能被迫放弃已经运营了7年的JavaEye的域名和JavaEye品牌,更名为ItEye。

以下是官方对事件经过描述:

从2010年的11月26日说起:

11月26日我们收到了Oracle授权的联德律师事务所发来的律师函(律师函请看附件),声称:我方未经Oracle公司授权,擅自使用了javaeye.com的域名,涉嫌误导JAVA商标,要求我方如下:

Oracle 写道:

1. 不在javaeye.com网站首页使用“JavaEye”标识,并改用其他名称,例如“EyeonJava”

2. 在javaeye.com网站醒目位置添加声明,表明该网站与甲骨文美国有限公司没有任何关。

系,如: “〔Eye on Java〕—有关 JAVA 的非官方社区网站 An Unofficial Community on JAVA”,或者 “〔Eye on Java〕—独立的 JAVA 社区网站 An Independent Community on JAVA”

这两个条件很诡异的地方在于:

1、一个运营了7年的JavaEye品牌,网站竟然不能出现JavaEye的字样,那让我们的用户和我们公司的客户怎么看,让我情何以堪? 而且尤其诡异的地方在于:javaeye和eyeonjava这两个标示并没有任何本质的区别,如果javaeye涉嫌误导,那么凭什么eyeonjava就不涉嫌误导了呢? 如果我今天按照你的要求改成eyeonjava了,明天你又告我eyeonjava也涉嫌误导,难道我还得天天改来改去不成?

2、众所周知,JavaEye现在并不是一个纯Java社区,而是一个综合性技术网站,让我们在首页挂一个“有关Java的非官方社区”的标语,让我们网站的非Java程序员情何以堪?那不是摆明要逼走所有不做java的程序员吗?

总之,我们觉得Oracle要求十分无理,对JavaEye网站的发展也极其有害,根本无法接受这样的条件。为此,我们双方展开了长期的拉锯和交涉。经过多次拉锯之后,我们最终明确拒绝了Oracle提出的条件,我们认为:

引用

JAVA(TM) 是一个注册商标,但是java是一个通用的英文单词,我们使用的是java,而不是JAVA(TM),因此,应该不构成侵权的事实, 我们javaeye.com域名的使用,并不会让公众产生不必要的误解,特别是,我们网站上面没有使用任何Oracle或者SUN公司相关JAVA(TM)商标的任何标示或者图标,因此不存在侵权。

Oracle在2011年3月29日则给出了最后的通牒:

Oracle 写道:

您注册和使用的域名“javaeye.com”完整包含了甲骨文美国有限公司的“JAVA”注册商标,与其构成近似,而且该网站登载有商业性质广告,满足域名争议以及计算机网络域名侵权的法律要件。因此,从法律角度讲,无论是通过域名争议或法院诉讼,甲骨文美国有限公司都可以要求贵方停止使用该域名。

为此,我们不得不考虑更换网站域名和标示。其实ItEye是我们很早之前就已经获得的域名,但考虑到JavaEye作为一个社区已经运营了7年,具备了很高的知名度和品牌忠诚度,更换域名会造成品牌延续性的中断,对网站SEO来说也会造成巨大的冲击,而且对网站用户特别是博客用户也会造成很多的不便。因此我们不倾向于轻易的更换域名和品牌。

但是众所周知, Oracle公司向来是开源社区的死敌,收购所到之处,开源社区寸草不生:Oracle收购BEA之后,悍然关闭了BEA运营多年的dev2dev社区;Oracle收购SUN之后,连续关闭了SUN的多个开源项目和社区,Netbeans项目也奄奄一息;Oracle和最大的开源组织Apache基金会也矛盾重重,Apache基金会差点宣布退出JCP组织;特别是和JAVA有关的公司,Oracle更是斩尽杀绝,连Google都不放过,以法律作为大棒,攻击Google,最终连JAVA之父James Gosling也离开了Oracle投奔了Google。因此谁有能保证以后不继续拿JAVA商标无端生事,将JavaEye网站逼入死路?

所以,我们不得不下定决心更换域名,重打鼓再开张,忍一时之痛,彻底解决域名侵权的法律威胁。我们知道,更换域名之后,ItEye新的网站SEO排名将从零开始,网站用户也会有一部分流失,这对于网站来说将是一个沉重的打击,但是我们不得不做出这个决定,来换取网站的生存权。我们相信,更换了ItEye域名之后,通过我们团队的共同努力,也通过新的ItEye网站从产品创新,从代码重写,从内容运营和建设方面的共同提升下,我们的新ItEye网站将迅速从低谷中走出,超越原来的JavaEye网站,愚人节对我们来说,并不是一个糟糕的节日,而是一个值得纪念的开始,这个具有戏剧性的愚人节将见证ItEye从零走向辉煌。

最后,我们也以自身的悲催经历善意的提醒那些可能和我们同样遭遇的网站,对于任何Oracle未来可能收购的公司的商标,要尽量避免使用,以免将来遭到Oracle法律武器的攻击。

相关介绍:

JavaEye是一个软件开发人员的深度交流社区。JavaEye创建于2003年9月9日,去年被CSDN收购。JavaEye一直致力于为中国的软件开发人员提供一个良好的有深度交流的社区。JavaEye是一个以讨论Java技术和Hibernate技术开始的技术论坛,现在已经成为一个涵盖整个软件开发领域的综合性网站,2005年被选为中国十佳技术网站之一,受到广大软件开发者的好评。

一、Java编程入门类

对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。

1、《Java编程思想》

在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。

2、《Agile Java》中文版

这本书是出版社送给我的,我一拿到就束之高阁,放在书柜一页都没有翻过,但是前两天整理书柜的时候,拿出来一翻,竟然发现这绝对是一本好书!这本书一大特点是以单元测试和TDD来贯穿全书的,在教你Java各种重要的基础知识的过程中,潜移默化的影响你的编程思维走向敏捷,走向TDD。另外这本书成书很新,以JDK5.0的语法为基础讲解,要学习JDK5.0的新语法也不错。还有这本书对于内容取舍也非常得当,Java语言毕竟类库庞大,可以讲的内容太多,这本书选择的内容以及内容的多寡都很得当,可以让你以最少的时间掌握Java最重要的知识,顺便培养出来优秀的编程思路,真是一本不可多得的好书。

虽然作者自己把这本书定位在入门级别,但我不确定这本书用来入门是不是稍微深了点,我自己也准备有空的时候翻翻这本书,学习学习。

二、Java编程进阶类

打下一个良好的Java基础,还需要更多的实践经验积累,我想没有什么捷径。有两本书值得你在编程生涯的这个阶段阅读,培养良好的编程习惯,提高你的代码质量。

1、《重构 改善既有代码的设计》

这本书名气很大,不用多介绍,可以在闲暇的时候多翻翻,多和自己的实践相互印证。这本书对你产生影响是潜移默化的。

2、《测试驱动开发 by Example》

本书最大特点是很薄,看起来没有什么负担。你可以找一个周末的下午,一边看,一边照做,一个下午就把书看完,这本书的所有例子跑完了。这本书的作用是通过实战让你培养TDD的思路。

三、Java架构师之路

到这个阶段,你应该已经非常娴熟的运用Java编程,而且有了一个良好的编程思路和习惯了,但是你可能还缺乏对应用软件整体架构的把握,现在就是你迈向架构师的第一步。

1、《Expert One-on-One J2EE Design and Development》

这本书是Rod Johnson的成名著作,非常经典,从这本书中的代码诞生了springframework。但是好像这本书没有中译本。

2、《Expert One-on-One J2EE Development without EJB》

这本书由gigix组织翻译,多位业界专家参与,虽然署名译者是JavaEye,其实JavaEye出力不多,实在是忝居译者之名。

以上两本书都是Rod Johnson的经典名著,Java架构师的必读书籍。在我所推荐的这些书籍当中,是我看过的最仔细,最认真的书,我当时读这本书几乎是废寝忘食的一气读完的,有小时候挑灯夜读金庸武侠小说的劲头,书中所讲内容和自己的经验知识一一印证,又被无比精辟的总结出来,读完这本书以后,我有种被打通经脉,功力爆增的感觉。

但是后来我看过一些其他人的评价,似乎阅读体验并没有我那么high,也许是因为每个人的知识积累和经验不同导致的。我那个时候刚好是经验知识积累已经足够丰富,但是还没有系统的整理成型,让这本书一梳理,立刻形成完整的知识体系了。

3、《企业应用架构模式》

Martin的又一本名著,但这本书我只是泛泛的看了一遍,并没有仔细看。这本书似乎更适合做框架的人去看,例如如果你打算自己写一个ORM的话,这本书是一定要看的。但是做应用的人,不看貌似也无所谓,但是如果有空,我还是推荐认真看看,会让你知道框架为什么要这样设计,这样你的层次可以晋升到框架设计者的角度去思考问题。Martin的书我向来都是推崇,但是从来都没有像Rod Johnson的书那样非常认真去看。

4、《敏捷软件开发 原则、模式与实践》

Uncle Bob的名著,敏捷的经典名著,这本书比较特别,与其说是讲软件开发过程的书,不如说讲软件架构的书,本书用了很大篇幅讲各种面向对象软件开发的各种模式,个人以为看了这本书,就不必看GoF的《设计模式》了。

四、软件开发过程

了解软件开发过程不单纯是提高程序员个人的良好编程习惯,也是增强团队协作的基础。

1、《UML精粹》

UML其实和软件开发过程没有什么必然联系,却是软件团队协作沟通,撰写软件文档需要的工具。但是UML真正实用的图不多,看看这本书已经足够了,完全没有必要去啃《UML用户指南》之类的东西。要提醒大家的是,这本书的中译本翻译的非常之烂,建议有条件的看英文原版。

2、《解析极限编程 拥抱变化》XP

这是Kent Beck名著的第二版,中英文对照。没什么好说的,必读书籍。

3、《统一软件开发过程》UP

其实UP和敏捷并不一定冲突,UP也非常强调迭代,测试,但是UP强调的文档和过程驱动却是敏捷所不取的。不管怎么说,UP值得你去读,毕竟在中国真正接受敏捷的企业很少,你还是需要用UP来武装一下自己的,哪怕是披着UP的XP。

4、《敏捷建模》AM

Scott Ambler的名著,这本书非常的progmatic,告诉你怎么既敏捷又UP,把敏捷和UP统一起来了,又提出了很多progmatic的建议和做法。你可以把《解析极限编程 拥抱变化》、《统一软件开发过程》和《敏捷建模》这三本书放在一起读,看XP和UP的不同点,再看AM是怎么统一XP和UP的,把这三种理论融为一炉,形成自己的理论体系,那么你也可以去写书了。

五、软件项目管理

如果你突然被领导提拔为项目经理,而你完全没有项目管理经验,你肯定会心里没底;如果你觉得自己管理项目不善,很想改善你的项目管理能力,那么去考PMP肯定是远水不解近渴的。

1、《快速软件开发》

这也是一本名著。可以这样说,有本书在手,你就有了一个项目管理的高级参谋给你出谋划策,再也不必担心自己不能胜任的问题了。这本书不是讲管理的理论的,在实际的项目管理中,讲这些理论是不解决问题的,这本书有点类似于“软件项目点子大全”之类的东西,列举了种种软件项目当中面临的各种问题,以及应该如何解决问题的点子,你只需要稍加变通,找方抓药就行了。

六、总结

在这份推荐阅读书籍的名单中,我没有列举流行的软件框架类学习书籍,例如Struts,Hibernate,Spring之类,也没有列举AJAX方面的书籍。是因为这类书籍容易过时,而上述的大半书籍的生命周期都足够长,值得你去购买和收藏。