包含必备书籍、站点、博客、活动等参考资源的完整清单 |
级别: 初级 Ted Neward, 主管,ThoughtWorks, Neward & Associates 2009 年 3 月 02 日 Java™ 平台不久将迎来它 14 岁的生日,当一种成功且被普遍使用的语言达到这样一种高度时,伴随而来的是产生了大量的库、工具和理念 — 这使得许多刚刚接触 Java 语言的新手可以获得大量的资源。在这篇文章中,作者(Java 资源的重要贡献者)将向您介绍这些资源,为积极进取的 Java 开发人员提供一份他们应该拥有的关键参考资源的列表。 自 Java 平台从 1995 年作为一个整体引入编程社区开始,它的发展已经远远超出了早期 Java 专家和推介者所设想的“applet 无处不在”这一远景。相反,Java 世界出现了 Swing、与 servlet 结合,从而发展为 J2EE、出现了 EJB、超越了 Spring 和 Hibernate、添加了泛型,变得越来越具有动态性,然后实现了函数化,在我撰写本文时,Java 继续朝着各种有趣的方向发展。 这使得没有一直跟随学习这门语言的 Java 程序员感到有点吃力。 作为一名演讲人、博客作者、顾问和导师,经常有一些初、中级 Java 程序员向我询问相关参考资源,以便帮助他们掌握这个广泛的、复杂的、看似永无止境的语言。几年前,我发表了一个 推荐读物列表 专门解答这个问题,但最近,developerWorks 的 Java 编辑让我整理一份更完整的参考资源列表,而不仅仅包括书籍 — 考虑到资源列表现在已经增长到了预期消费者即使花费十年的时间阅读也仍然不得要领的地步,这是一个很好的提议。 为了保证客观性和避免不利的影响,我决定给出各种参考资源的博客空间(blogosphere):Web 站点、研讨会、书籍、博客、工具,以及任何 Java 开发人员可能感兴趣或对他们有用的内容,帮助他们从庞大的参考资源中找到自己需要的内容。 这份列表得到了很多人的响应(在此我要感谢所有的回复者)。 在开始之前,需要解释一点:这些参考资源不一定是 Java 世界中最流行、最强大或最有影响的资源 — 这份 列表可能完全不同(尽管我怀疑其中也会出现很多相同的资源);但每个希望获得成功的 Java 开发人员都应该将这些参考资源保存在浏览器、书架或备忘录中。与任何此类型的列表一样,人们总会争论哪些内容本来应当包含进去但却没有出现在列表中,或本 不该有的内容却出现在列表中。 现在开始正式介绍这些参考资源。 Web 站点和开发人员 Web 门户 网络无疑改变了共享资源和出版的本质(对我也是一样:您正在网络上阅读这篇文章),因此,从每位 Java 开发人员都应该关注的关键 Web 站点和开发人员门户上的关键 Java 参考资源入手似乎比较合理。 在 许多情况下,Web 站点和/或开发人员门户的价值不仅仅在于其中提供的参考资源或文章,还包括围绕该门户或站点的社区。静态 Web 页面和下载文件的时代已经一去不复返了,取而代之的是更“积极” 的论坛、主题文章和交互式讨论,讨论者不仅包括频繁访问该站点并组成社区的开发人员,还包括社区成员和门户所有者。随着技术的发展,开发人员也必须跟上技 术的步伐,同时,门户也要不断发展,以满足社区不断变化的需求;与社区保持开放的关系是实现活跃门户的关键因素。 Web 站点列表(带有 URL):
注意,对于上面大部分站点,为充分利用站点/门户,需要进行某种形式的注册。在撰写本文时,所有文章基本上都是免费的,只需要一个用户名/密码登录,以便 它们能惟一识别访问者,还需要提供电子邮件地址,以便定期发送主题新闻资讯或电子邮件(据我所知,所有站点将允许您不提供电子邮箱,但我还未这样做过,因 为我发现新闻咨询会不时告诉我一些有趣的、我还不知道的信息,收件箱中的这些邮件是很有用的)。 博客(Weblog) Blog 使开发人员可以轻松地表达想法、概念、理念、论点并围绕技术展开思想讨论,并了解特定技术领域中非常有影响力的“思想领袖”。此外,博客可以通过提要阅读 器在本地使用,提要阅读器将文章/条目下载到本地,以便在脱机时也可以使用。事实上,博客已经变得非常普遍,以至于出现了专门的设备(如 Amazon Kindle)来轻松获取开发人员所需要的信息。 关键在于从几百万个博客中找到感兴趣的内容。每位开发人员都有他自己的选择,哪些需要阅读,哪些不需要,但有些博客是最基本的,包括:
注意(大多数)博客内容都属于个人观点;在这里分享的一些观点可能在以后被证明是错误的 — 永远不要只根据博客条目中的信息来对产品下结论。但如果要使思维过程突破常规,博客将是一种增强技能的强大资源。 包和/或库 跟踪 Java 生态系统中的所有库和包是一项繁杂的工作,并且 Java 开发人员很容易就会忽略这项工作。结果,开发人员常常发现自己正在编写的内容其实已经存在于平台内(只要他们浏览一下就会发现这一点)。 下面列出了“每位 Java 开发人员至少应该知道其存在(最好知道如何使用)的十大 Java 包”:
当然,还有许多其他(位于 JDK 内部和外部)的包值得学习,但掌握以上这些就足以使您很好地处理大多数项目,更不用说应付大多数工作面试。 研讨会 研 讨会继续在 Java 开发人员的培训中扮演着主要角色,特别是那些还没有获得足够的认可,尚未成为大型培训公司培训课程的主题。研讨会也是开发人员结识其他具备各种技能和职责 的开发人员的绝好机会,使与会者有机会做一些非常过瘾的(并且是完全必要的)事情:发泄对工作环境的不满。 参加研讨会也会产生一种有用的副作用(如果积极管理,可以为研讨会锦上添花):与会者可以建立开发人员小组。通 过可在世界范围内使用的电子邮件、邮件列表(如 GoogleGroups 或 Yahoo Groups)和许多其他轻量级 groupware 通信工具,了解参加研讨会的人员的信息比以前更加容易。这些通过午餐和晚宴建立起来的友谊可以持续一生,并且随着时间流逝愈加有益,特别是在评估新技术时 更是如此。 让一位有着 30 年经验的与会者、演讲者、组织者(不是我,是我的一位朋友)的话为您提供指引:“技术新手参加研讨会是为了通过期间举办的各种会议获取知识,资深人士参加研讨会是为了宴会和结识朋友。宴会帮助您结识朋友,他们可以帮助您提升自己的职业”。 研讨会包括:
还有其他一些研讨会,目标受众也各不相同,但以上列举的研讨会是直接针对 Java 开发人员的。那些希望扩大自己视野的开发人员应该考虑参加“其他” 技术研讨会,如在世界各地举办的各种 Perl、Python、Ruby 甚至 .NET 会议;接受新的观念有时需要研究一组全新的问题。 书籍 对开发人员而言,没有哪一种资源能比价格便宜的传统书籍更容易获取。只需要去当地的书店(如果您住在边远地区,可通过 Web 浏览器查找 Amazon 来购买书籍),就可以找到大量珍贵的技术知识和经验……只要您肯在大量资源中仔细寻找。 这些书籍假设读者已经有了 Java 语言和工具集的应用知识;Java 入门书籍非常普遍,而且大多数讨论的是相同的基本内容。选择书籍需要一定的技巧,要考虑作者的写作风格,有时甚至要考虑随书光盘中是否包含了练习的参考答案(如果包含了练习的话)。 掌握了基本知识后,考虑阅读以下书籍:
工具 正如盖房子不仅仅是“抡起锤子在板上钉钉子” 一样,Java 开发也不仅仅是“掌握 IDE 并开始编写代码”。好的 IDE 当然能为编写 Java 代码出力不少,但其他的工具也可以提供与 IDE 相等的(也许更好的)价值。 排名不分先后……
您不必感到惊讶,这些工具中的其中一些是商业工具;如果一个工具一个星期平均能帮您节约一个小时的时间,您需要多长时间就可以收回购买该工具的资金呢?如 果管理人员不认同这个观点的话,那么仔细计算使用某一工具节省的时间(假设是开发人员的时间,或者是产品诊断或执行时间)后,管理员终会发现,他们在这些 工具上的吝啬是一件得不偿失的愚蠢事。
未来趋势展望 当 然,Java 开发人员花所有时间来学习当前的技术并不是一件好事,学习完后,新的技术又接踵而至,使学过的所有内容一下子都变得过时了。随时关注“未来发展趋势” 同样重要,惟有这样,当公司 CTO 突然在电梯里问您“我最近听到的函数式语言是怎么一回事,我们需要对此进行研究吗?” 时,您才会给出连贯合理的答复。 排名不分先后,一些围绕 Java 平台的“未来趋势” 包括:
记住,与任何和“未来” 相关的事物一样,现在讨论的内容可能最终证明是错误的方向、昙花一现的事物、对行业的一种影响,也可能是下一个重大事件;保持开放的思维,同时也要保持适当的怀疑。 结束语 请随意补充此列表 — 最终会得到一份更完善的参考资源列表。因为 Java 世界在不断发展,不断变化和成长,所以列表的内容会随时间而改变。这是一件好事;如果我们必须使用 1995 年时期的 Java 环境,我们早就转向其他技术了。 积极参与到 Java 世界中来:贡献补丁、增强,如果没有合适的贡献,就构建自己的工具。也许您的项目 5 年以内会一直出现在这个列表中。 参考资料
关于作者
|
转自:IBM 开发者社区