Một vài năm trước đây, tôi đã thử cố gắng trả lời câu hỏi bằng cách đăng tải một Danh sách khuyến khích đọc, nhưng mới đây các biên tập viên Java của developerWorks đã yêu cầu tôi tập hợ
Trang 1Các tài nguyên Java cần thiết
Một bản liệt kê toàn diện các cuốn sách, các địa chỉ Web, các blog, các sự kiện phải kể đến và nhiều hơn nữa
Ted Neward, Tư vấn, ThoughtWorks
Tóm tắt: Chẳng bao lâu nữa nền tảng Java™ sẽ làm lễ kỷ niệm sinh nhật lần thứ
14 của nó và như một tác dụng phụ, khi một ngôn ngữ thành công và có mặt khắp mọi nơi đạt tới mốc lịch sử như thế này, là sự sinh sôi lan rộng của các thư viện, các công cụ và những ý tưởng — phần thưởng thêm này có thể làm cho nhiều người mới đến với ngôn ngữ Java trôi lênh đênh trong một biển tư liệu Trong bài viết này, tác giả (một người đóng góp không ngừng nghỉ cho cái biển ngập tràn ấy) bẻ lái xuyên qua dòng thủy triều rộng lớn và trình bày một danh sách các nguồn tài nguyên then chốt mà bất kỳ các nhà phát triển Java đầy triển vọng nào nên có
Từ khi giới thiệu nó cho cộng đồng lập trình như một tổng thể trọn vẹn vào năm
1995, các nền tảng Java đã phát triển vượt ra ngoài tầm nhìn "applet mọi nơi" mà ban đầu các nhà bình luận uyên thâm và các nhà tuyên truyền quảng bá Java đã hình dung thế giới Java là như vậy Thay vào đó, thế giới Java đã vươn dậy thành Swing, đã cố kết xung quanh các servlet, đã lướt trên chúng để thành J2EE, đã trượt ngã với EJB, đã lạc đường sang Spring và Hibernate, đã tổng quát hóa hơn
và đã trở nên năng động hơn, thiết thực hơn và tiếp tục trưởng thành theo nhiều hướng rất thú vị, thậm chí ngay cả khi tôi viết những dòng này
Tất cả những thứ ấy làm cho một lập trình viên Java không trưởng thành kịp cùng với ngôn ngữ cảm thấy một chút gì choáng ngợp
Với tư cách là diễn giả, người viết blog (blogger), nhà tư vấn và người cố vấn dày kinh nghiệm, tôi thường xuyên được các lập trình viên non trẻ và trung bình, làm việc trong không gian các tài nguyên Java, yêu cầu giúp đỡ họ làm chủ thế giới rộng lớn, phức tạp, dường như vô tận ấy Một vài năm trước đây, tôi đã thử cố gắng trả lời câu hỏi bằng cách đăng tải một Danh sách khuyến khích đọc, nhưng mới đây các biên tập viên Java của developerWorks đã yêu cầu tôi tập hợp lại thành một danh sách tài nguyên rộng hơn, không tập trung riêng vào các cuốn sách
— một ý tưởng tốt nếu như biết rằng danh sách ấy đã phát triển đến mức mà người dùng tương lai có thể dễ dàng mất cả thập kỷ tới để đọc chúng và vẫn không có một bước tiến về các nội dung
Để tránh thiên vị hoặc chịu ảnh hưởng không cần thiết, tôi quyết định làm một lời kêu gọi đến cộng đồng blog để tìm các nguồn tài nguyên: các địa chỉ Web, các hội
Trang 2nghị, các cuốn sách, các blog, các công cụ, bất cứ điều gì đó có vẻ như đáng được quan tâm và sử dụng cho các nhà phát triển Java khi họ tiến lên trong không gian
và có thể thấy là có ích cho việc chèo lái trong đống khổng lồ những thứ có sẵn
Sự hưởng ứng thật là to lớn (tôi cảm ơn tất cả những người đã trả lời)
Một lưu ý ngắn để giải thích trước khi chúng ta bắt đầu: Các nguồn tài nguyên này không nhất thiết phải là các tài nguyên phổ biến nhất, mạnh nhất hoặc có ảnh
hưởng nhất trong hệ sinh thái Java — danh sách như thế có thể sẽ hoàn toàn khác
(tuy nhiên tôi ngờ rằng nhiều nguồn tài nguyên sẽ hiển thị trong cả hai danh sách); Thay vào đó, đây là các nguồn tài nguyên mà mọi nhà phát triển Java có triển vọng nên có trong trình duyệt của họ, trên các kệ sách của họ hoặc trên lịch công tác của họ để tham dự Giống như với bất kỳ loại danh sách sắp xếp kiểu này, luôn luôn có chỗ còn phải tranh luận về những gì cần được đưa vào mà không có hoặc những gì đã được đưa vào nhưng đáng ra không nên
Không nghi lễ thêm nữa, chúng ta hãy tiếp tục
Các địa chỉ Web và các cổng Web của nhà phát triển
Thế giới Web rõ ràng đã thay đổi bản chất của các tư liệu và các ấn phẩm được chia sẻ chung (và không khó hiểu với tôi rằng bạn đang đọc điều này ngay bây giờ trên Web), vì vậy, có vẻ là hợp lý để bắt đầu cuộc điều tra về các nguồn tài nguyên Java then chốt với các cổng của nhà phát triển và các trang web chủ chốt mà tất cả các nhà phát triển Java nên luôn để mắt đến
Trong nhiều trường hợp, giá trị của một trang web và/hoặc cổng của nhà phát triển không chỉ ở trong các nguồn tài nguyên được cung cấp hoặc các bài viết được đăng ở đó, mà còn ở chỗ cộng đồng xung quanh cổng hoặc trang web đó Những ngày của các trang web tĩnh và tệp tin tải xuống đang nhanh chóng lùi dần về phía sau, nhường chỗ cho các mô hình "tích cực" hơn của các diễn đàn, các bài viết theo luồng, và các cuộc thảo luận tương tác giữa không những các nhà phát triển hay lui tới trang web đó và tạo thành cộng đồng của nó mà còn là các thành viên cộng đồng và các chủ sở hữu của cổng Cũng như công nghệ tiến triển, các nhà phát triển cũng phải tiến triển để theo kịp với nó, một cổng phải tiến triển để theo kịp với sự thay đổi nhu cầu của cộng đồng của nó; có một mối quan hệ mở với cộng đồng của nó là một thành phần trọng yếu để giữ cho một cổng đầy sức sống Danh sách các trang web (với các URL):
java.sun.com
Đây là nơi mà từ đó JDK khởi đầu và thường là trang web đầu tiên mà những nhà phát triển Java truy cập để tải về một bản sao của JDK và tài liệu
Trang 3hướng dẫn Nhưng ngoài ra, nó còn là một nguồn thông tin tốt về toàn bộ nền tảng Java, bao gồm một phần rất phong phú về bản thân máy ảo Java - JVM (Hotspot), trong đó mô tả cơ chế bên trong của JVM với mức sâu sắc đáng ngạc nhiên
java.net
Trang web Java.NET là một bữa ăn có nhiều món về các dự án mã nguồn
mở, tài liệu hướng dẫn, blog, wiki, tin tức và các tài nguyên cộng đồng khác Đó là một nguồn cung ứng thông tin dồi dào về công nghệ Java, có thể quá nhiều Mặc dù như vậy, việc duyệt qua danh sách các dự án có thể dẫn đến một số viên ngọc thực sự quý giá như dự án FEST-Swing nhằm mục đích tạo ra một "giao diện hoạt động trôi chảy" để xây dựng các ứng dụng Swing, làm cho chúng đơn giản hơn nhiều để tạo ra các kiểm thử đơn
vị
InfoQ
Được tạo ra bởi Floyd Marinescu, tổng biên tập sáng lập TheServerSide, InfoQ khác với nhiều tài nguyên khác được liệt kê ở đây ở chỗ rằng nó rõ ràng là trung lập về công nghệ, không chỉ trình bày mã Java mà còn cả .NET và Ruby và cung cấp một bao quát tuyệt vời với cách tiếp cận nhanh nhẹn và cái nhìn thấu đáo Mặc dù cộng đồng góp ý bình luận cho InfoQ không phải là lớn hay đa dạng được như cộng đồng của TheServerSide, nhưng các cuộc thảo luận này thường thuần hơn và ít thù định hơn
TheServerSide
Thường được gọi là "chấm gạch xiên của Java" (the Slashdot of Java), TheServerSide là nơi đầu tiên mà các chủ đề Java doanh nghiệp được hỏi cởi mở, được tranh luận sôi nổi và được theo đuổi ráo riết Một số ý tưởng sớm nhất xung quanh các thùng chứa nhẹ (như Spring đã làm mẫu) đã nảy sinh ra ở đây và nhiều nhân vật hiện nay được coi là "các nhà lãnh đạo tư tưởng" trong cộng đồng Java đã nổi lên tại đây Mặc dù các cuộc tranh luận gần đây đôi khi đã có thêm tính cách la hét giành bàn thắng, TSS sẽ luôn luôn là ngôi nhà xuất xứ của phần lớn nhưng gì đã trở thành hệ sinh thái Java mà bây giờ chúng ta đang sống trong đó; như vậy, nó luôn luôn là một nguồn thông tin, là lịch sử nếu không có gì khác
DZone
DZone đã bắt đầu cuộc đời như là một tài nguyên cho các nhà phát triển Java, nhưng mới đây đã bắt đầu phân nhánh mở rộng vào các lĩnh vực công nghệ khác, bao gồm cả NET và Ruby, cũng như một số các vùng chủ đề bao quát khác Như vậy, trong khi các nhà phát triển Java có thể tập trung hoàn toàn chỉ vào vùng Java, một số sự giao thoa xảy ra và chính nhà phát triển khôn ngoan là người sẽ tận dụng lợi thế đó
Trang 4 IBM® developerWorks
Nếu bạn đang đọc bài viết này, thì bạn đã tìm thấy dW Để bộc lộ hết, tôi phải ghi chú rằng tôi đã đóng góp nhiều bài viết khác, ngoài chính bài này cho trang web này, nhưng tôi có thể nói trung thực rằng dW có giá trị như
là một nguồn tài nguyên lớn của các bài viết và tài liệu về viết mã Java và
JVM Cụ thể, hãy chắc chắn đọc Lý thuyết và thực hành Java (Java theory
and practice), một loạt bài dài kỳ của Brian Goetz, bao gồm bài viết ba phần mô tả bộ dọn rác của JVM, trong đó giới thiệu các khái niệm cốt lõi của bộ dọn rác (GC) theo cách để có thể tiếp cận được rất đáng ngạc nhiên
IBM alphaWorks
alphaWorks, trang web chị em của developerWorks, là nơi mà các nhà khoa học và các nghiên cứu sinh của IBM cung cấp các công cụ và các công nghệ mà họ tin tưởng sẽ xác định trào lưu chính cho tương lai Được tổ chức thành chừng một tá các phạm trù khác nhau, alphaWorks cung cấp cho các nhà phát triển Java một cơ hội để thử nghiệm các công cụ, các ngôn ngữ, các thư viện và các dự án khác mà trong một số trường hợp thậm chí còn đi trước cả các công nghệ mũi nhọn mới mẻ — chúng đang ở trong giai đoạn nghiên cứu Lưu ý rằng nhiều dự án dùng để chứng minh một luận điểm nghiên cứu cụ thể và sau đó dừng lại, bỏ mặc dự án ở bất cứ hiện trạng nào Nguyên tắc người mua chịu trách nhiệm về hàng đã nhận
Caveat emptor: Một số dự án không phải là mã nguồn mở và những dự án
khác không bao gồm mã nguồn Nhưng số lượng khá lớn các dự án
alphaWorks kết thúc bằng việc phát triển thành một trào lưu chính hoặc như là một sản phẩm được hỗ trợ từ IBM, hoặc là một công cụ có sẵn để tải xuống từ một số các địa chỉ mã nguồn mở của IBM Trong bất kỳ sự kiện nào, để mắt đến alphaWorks sẽ là một cái nhìn về hướng hệ sinh thái Java đang ở đâu và tiến hóa như thế nào
JavaWorld : Sau một thời gian dài gián đoạn, JavaWorld đã trở lại với
vinh quang thủa ban đầu với một ngoại hình được tân trang, nội dung kỹ thuật chất lượng cao và nguyên tắc phân loại theo chủ đề tiện dụng để có thể nhanh chóng tìm ra các loại bài viết mà bạn tìm kiếm Đừng bỏ lỡ các khả năng lưu trữ (archives) rộng lớn đã có từ thủa ban đầu của nó và bao gồm các bài viết của một số trong các cộng tác viên nổi tiếng nhất của cộng đồng Java
Artima
Được Bill Venners tạo ra, Artima đã phát triển thành một bộ sưu tập khổng
lồ các bài viết, các blog và các bài phỏng vấn, không phải tất cả đều hoàn toàn xoay quanh việc phát triển Java và đã có một số các tên tuổi lớn nhất trong không gian Java viết bài ở đó (Hãy xem sự hoài nghi của Bill Joy đối với sự phức tạp của ngôn ngữ Java sau khi Java 5 đã được phát hành và ví
Trang 5dụ mà ông sử dụng để biện minh cho nhưng lo lắng của ông — Enum<> — như là một ví dụ cổ điển.) Thật đáng xem
Lưu ý rằng đối với nhiều địa chỉ Web ở trên, để tận hưởng đầy đủ các lợi thế của trang web/cổng Web sẽ yêu cầu một số hình thức đăng ký Như khi viết bài này, tất cả chúng chủ yếu là miễn phí và chỉ yêu cầu đăng nhập với một tên người dùng/mật khẩu để chúng có thể nhận dạng khách truy cập và một địa chỉ e-mail để chúng có thể gửi e-mail hoặc các bản tin chủ đề theo định kỳ (Theo như tôi được biết, tất cả sẽ cho phép bạn chọn không nhận các e-mail, nhưng tôi đã không thử làm thế vì tôi thấy rằng, rất thông thường các bản tin cho tôi biết vài điều tôi thấy
là thú vị mà tôi còn chưa biết, và chúng trở thành những thứ có ích thực sự để nhận về trong hộp thư của tôi)
Weblogs
Blog là một cách dễ dàng cho các nhà phát triển để biết về các tư tưởng, các hồi
ức, các khái niệm, các ý kiến, các cuộc tranh luận và các cuộc thảo luận trí tuệ khác xung quanh công nghệ và nhận thức về "các nhà lãnh đạo tư tưởng", những người dường như rất có ảnh hưởng trong các lĩnh vực công nghệ cụ thể Thậm chí tốt hơn nữa là, có thể tiêu thụ các blog ở máy cá nhân, thông qua trình đọc nguồn tin (feed readers); chúng kéo xuống các bài viết/các mục, tải về máy tại chỗ để có thể đọc ngay cả khi không trực tuyến (offline) Trong thực tế, các blog đã trở nên
có mặt ở khắp nơi đến mức mà các thiết bị chuyên dụng (như Amazon Kindle) làm cho dễ dàng thu thập được các thông tin mà nhà phát triển muốn
Điều chủ chốt là phải xác định xem cái nào trong hàng triệu blog để đọc Mỗi nhà phát triển sẽ có sở thích riêng của mình qua việc chọn các blog nào để đọc và cái nào thì không đọc, nhưng có thể xem xét bắt đầu đọc một số blog sau:
The Java Posse
The Java Specialists' Newsletter
Martin Fowler's Bliki
Bất kỳ nguồn cung cấp RSS nào cung cấp bởi các trang web liệt kê trong
phần "trang web" ở trên
Hãy nhớ rằng (hầu hết) đây là các ý kiến cá nhân; đôi khi có những ý kiến chia sẻ chung ở đây sau này tỏ ra là không đúng sự thật — đừng bao giờ quyết định sản xuất đơn thuần chỉ dựa vào các thông tin trong một mục blog Nhưng nếu sử dụng
nó để kích hoạt quá trình suy nghĩ thoát khỏi lối mòn thì các blog có thể là một nguồn tài nguyên cải thiện các kỹ năng hùng hậu đáng kinh ngạc
Trang 6Các gói phần mềm và/hoặc các thư viện
Việc theo dõi tất cả các thư viện và các gói phần mềm trong hệ sinh thái Java là một việc vặt, một việc quá dễ dàng nên các nhà phát triển Java dễ bỏ qua Kết quả
là, các nhà phát triển đôi khi sẽ bỏ sót một thực tế là một thứ gì đó mà họ đang tự viết ra đã tồn tại bên trong một nền tảng (giá như họ đã nán lại để khám phá nó!)
Những gì tiếp theo là danh sách của tôi về "Mười gói Java hàng đầu mà mọi nhà phát triển Java ít nhất nên biết chúng có tồn tại (và lý tưởng nhất là biết cách sử dụng như thế nào)":
java.lang.reflect
Có nhiều thư viện và các công cụ của Java phụ thuộc vào gói Reflection đến nỗi tìm hiểu nó hầu như đã trở thành một yêu cầu bắt buộc (nếu không
có lý do nào khác hơn là để hiểu khi nào sử dụng nó sẽ không thành công
do chính sách bảo mật hay các loại sai lệch về hạ tầng cơ sở khác) Sóng đôi với Reflection cũng là các chú giải của Java 5 và java.lang.annotation
javax.script
Với tầm quan trọng về các ngôn ngữ động lướt qua hệ sinh thái Java, việc biết cách làm thế nào để sử dụng các ngôn ngữ kịch bản lệnh từ bên trong
mã Java có thể cho phép các nhà phát triển mở rộng hệ thống của họ mà không phải đi qua chu trình biên dịch-liên kết-chạy-thử nghiệm rất tốn công
javax.management và java.lang.management
Các gói phần mềm quản lý, còn được gọi là các Phần mở rộng quản lý Java (JMX-Java Management Extensions), là một công cụ mạnh để giám sát các ứng dụng Java khi chúng chạy, vì vậy các nhà phát triển cần phải biết rõ và thoải mái với JMX để xây dựng phần mềm thực sự có thể được các nhà quản trị hệ thống sử dụng Đừng quên xem xét công cụ jconsole đi cùng với JDK như là một ví dụ về một bảng đồng hồ hiển thị sức khỏe của ứng dụng, vừa là một ví dụ về những gì có thể được xây dựng, vừa là, tự thân nó như một công cụ có ích (Hãy chăm chú vào kịch bản lệnh mẫu để xây dựng một trình cắm thêm jconsole cho phép hỗ trợ việc tạo kịch bản lệnh bên trong jconsole, một công cụ mạnh trong tay bất kỳ nhà quản trị hệ thống giỏi nào)
java.util.concurrent.*
Sự tương tranh là vấn đề lớn nhất mà các nhà phát triển sẽ phải đối mặt trong thập kỷ tới và vũ khí chủ yếu mà các nhà phát triển Java sẽ sử dụng chống lại các lỗi tương tranh sẽ là các lớp trong gói phần mềm này và các gói con của nó (.atomic và locks).Học để sử dụng nó sẽ là điều trọng yếu
Trang 7như, nếu không nói là hơn, học để viết một lớp như thế nào Hãy tìm hiểu
nó, sống với nó và yêu nó
java.util
Cũng giống như thế với các lớp trong java.util Chúng thường xuyên được đưa vào trong mã, đặc biệt là các lớp Collection, đến mức mà nên tranh luận xem java.util.* có cần phải được tự động nhập vào như là java.lang hay không
java.beans
Không nghi ngờ gì nữa, JavaBeans là một trong những phần tử cốt lõi được
sử dụng trên toàn hệ sinh thái Java, trải qua dưới cái tên ít mang tính tiếp thị là "POJO" (các đối tượng Java thuần túy) Chúng vẫn còn dựa vào các
mã JavaBeans, API và đặc tả kỹ thuật, do đó việc dành một ít thời gian cho các lớp trong java.beans chỉ có thể trợ giúp viết các POJO tốt hơn thôi
java.util.logging
Các bản ghi chẩn đoán và kiểm toán rất nhanh chóng trở thành công cụ mạnh mẽ để theo vết việc thực hiện các chương trình đang chạy, dù là cho các mục đích gỡ lỗi hay là cho các mục đích quản trị và giám sát Lời khuyên của tôi: Hãy học để sử dụng gói này và người anh em họ mã nguồn
mở của nó là log4j)
java.security.*
Các API bảo mật của Java, các cơ chế chính sách và các lớp cấp phép là một phần cốt lõi của những gì làm cho môi trường Java thành một nền tảng tính toán an toàn, nhưng chỉ khi các nhà phát triển biết cách làm thế nào để tận dụng nó Tránh xa các API mật mã hóa — không sử dụng chúng cho đến khi bạn đã tận dụng hết khả năng của mọi tùy chọn khác có sẵn cho bạn Chúng không khó để sử dụng những việc có được mật mã hóa đúng (có nghĩa là không có sai sót lớn) là một cái gì đó mà cần mất nhiều năm và rất nhiều góp ý sửa chữa của các chuyên gia mã hóa Trước hết hãy sử dụng các cơ chế khác như SSL/TLS và các lớp
GuardedObject/SignedObject/SecureObject
javax.xml.parsers.* , javax.xml.bind và javax.xml.transform.*
Bóng dáng XML luôn hiện ra to lớn trong đầu óc của nhà phát triển Java và việc có thể phân tích cú pháp nó (cả trực tiếp cũng như qua một thư viện đối tượng-XML) và chuyển đổi nó (sử dụng XSLT) là một kỹ năng mạnh phải có, nếu không nói là dứt khoát cần thiết
javax.sound.*
OK, nó không phải là một kỹ năng phải có, nhưng việc biết cách làm thế
Trang 8nào để bật lên các hiệu ứng âm thanh thường có thể giúp làm sống động hơn các mã lệnh trần tục Bên cạnh đó, đôi khi âm thanh có thể được sử dụng để cung cấp tín hiệu và thông tin phản hồi trên một hệ thống khi không có cách hiển thị nào trong tầm tay Và ngoài những điều đó ra, sẽ chỉ còn là một trò đùa bệnh hoạn khi máy tính có thể xổ ra màn hình cả một ngăn xếp đầy thông báo lỗi và phát ra tiếng kêu thất thanh từ bộ phim kinh
dị yêu thích của bạn để báo cho người sử dụng biết rằng một cái gì tệ hại đã xảy ra
Tất nhiên, còn có rất nhiều gói khác, cả bên trong JDK và cả bên ngoài JDK đáng tìm hiểu, nhưng việc làm chủ những điều này sẽ đặt bạn vào vị thế tốt cho hầu hết các dự án, chứ không phải để kể ra trong hầu hết các cuộc phỏng vấn tìm việc Các hội nghị
Các hội nghị tiếp tục đóng một vai trò chủ yếu trong huấn luyện các nhà phát triển Java, đặc biệt là đối với những chủ đề đó mà chưa tích tụ khối lượng đủ lớn để lọt vào sưu tập các chủ đề của các công ty đào tạo lớn Các hội nghị cũng là một cơ hội vàng cho các nhà phát triển gặp gỡ với các nhà phát triển khác để nói về tất cả các kỹ năng và trách nhiệm, mang lại cho người tham dự cơ hội để làm một cái gì
đó khá mạnh mẽ (và hoàn toàn cần thiết): trút bầu tâm sự về những yếu kém ở nơi mình làm việc
Đến dự hội nghị còn có một tác dụng phụ có ích (và có thể được phát triển thành
lớn hơn và tốt hơn nếu tích cực hoạt động): Đó là xây dựng nhóm đồng đẳng các nhà phát triển giữa những người tham dự Nhờ có sự phổ biến rộng rãi khắp mọi
nơi của e-mail, các danh sách thư chung (như Google Groups hoặc Yahoo
Groups), và các công cụ giao tiếp làm việc nhóm gọn nhẹ, việc duy trì liên lạc với những người đã gặp gỡ tại hội nghị trở nên dễ dàng hơn bao giờ hết Những tình bạn bắt đầu trong bữa ăn trưa hoặc trong các buổi tiệc tối ấy có thể kéo dài suốt đời và luôn thành công, đặc biệt là khi đánh giá các công nghệ mới
Hãy để những lời nói của một người kỳ cựu, đã 30 năm là người tham dự, là diễn giả, là nhà tổ chức và là khách không mời của các hội nghị (không phải tôi, mà là một người bạn của tôi) chỉ dẫn cho bạn: "Những người mới vào nghề đi dự hội nghị để dự các phiên họp; những người kỳ cựu đi dự vì các bữa tiệc và bạn bè Các bữa tiệc giúp bạn gặp gỡ bạn bè và mọi người giúp bạn tiến bộ trong sự nghiệp của bạn"
Danh sách các hội nghị bao gồm:
No Fluff, Just Stuff
Đây là một hội nghị mà tôi nhiệt tâm hết sức tán thành, không chỉ vì tôi là
Trang 9một diễn giả thường xuyên ở đây, mà vì bảy diễn giả của của Top Ten JavaOne 2007 là các diễn giả của NoFluffJustStuff (bây giờ hoặc trước đây) Không ở đâu khác các nhà phát triển Java sẽ tìm được sự tập trung cao độ vào các chủ đề kỹ thuật với chi phí tốt hơn hoặc địa điểm thuận tiện hơn: quê hương của bạn (mỗi năm với hơn 30 cuộc hội nghị xuất hiện trên toàn lục địa Bắc Mỹ — và mở rộng sang Châu Âu và sắp tới sẽ ở Châu Á
— là các cơ hội tốt để bạn có thể lái xe đến một buổi trình diễn NFJS hơn
là rút ra hàng ngàn đô la để đi tới một số thành phố xa xôi và nghỉ lại khách sạn) Cũng không đáng ngạc nhiên rằng một số các cuốn sách được đề nghị trong bài viết này được viết bởi các tác giả là những người xuất hiện ở các cuộc trình diễn NoFluff: Những người tổ chức NFJS đã làm mọi việc có thể
để tìm "nguồn chính" về nhiều chủ đề Java và Phát triển nhanh khác nhau
JavaOne
Hội nghị này rất lớn, không của riêng ai, luôn được tổ chức ở San Francisco (điều này hoặc được tán thành, hoặc bị phản đối, tùy thuộc vào ngân sách chi cho đi lại của công ty bạn ra sao), nhưng không có cuộc tụ họp nào khác trên Trái đất mà tập hợp lại nhiều nhân vật đầu mối tổ chức và quản lý Java chủ chốt vào một chỗ như JavaOne đã làm
JAOO
Không bỏ lại các đạo hữu Java Châu Âu của chúng tôi ngoài giá lạnh, JAOO được tổ chức mỗi năm một lần tại Aarhus, Đan Mạch và đã đang hoạt động bền vững với gần hai thập kỷ mà không hề có bất kỳ dấu hiệu chậm lại JAOO không chỉ thu hút được một số diễn giả và tác giả xuất xắc nhất, mà nó còn có sự khác biệt tương đối hiếm vì đây là hội nghị đan chéo nhiều công nghệ, có nghĩa là một người tham dự có thể tham gia một phiên họp Java vào buổi sáng, trò chuyện với một số nhà phát triển C/C + + vào bữa trưa, nắm bắt những sự phát triển mới nhất trên Silverlight của
Microsoft® hoặc bất cứ điều gì khác mới lạ) vào buổi chiều và uống bia với các chuyên gia Smalltalk vào buổi tối Nếu bạn đang xem xét mở rộng tầm nhìn của mình, JAOO hoặc hội nghị chị em của nó, QCon (được tổ chức cùng với những người InfoQ) là một nơi tuyệt vời để bắt đầu Và đối với các đạo hữu của Java đang sống dưới đường xích đạo, JAOO đến với
Brisbane và Sydney vào lần đầu tiên trong năm nay (2008); tất cả các dấu hiệu đều nói lên rằng nó sẽ trở lại một lần nữa trong những năm tới
Devoxx
Trước đây là JavaPolis, hội nghị này ở Antwerp, Bỉ, đang phá vỡ các ranh giới với tốc độ tăng trưởng phi thường, là một cách tuyệt vời để gặp gỡ các đối tác Châu Âu của bạn (và thưởng thức một số hương vị tuyệt vời của bia
Bỉ, trong khi bạn đang ở đó) Các diễn giả là nhưng người xuất xắc nhất và tập trung vào các chủ đề tối tân Cũng có sàn triển lãm thương mại quy mô
Trang 10thích hợp và nhiều cơ hội để tương tác với các nhà phát triển cùng hội của bạn
Jazoon
Một hội nghị tương đối mới cho sân chơi này, hội nghị Jazoon đã được mở
ở Zurich (Thụy Sĩ) năm 2007 Với các tên tuổi như Martin Odersky (người tạo ra Scala), Neal Gafter và Simon Phipps (quan chức mã nguồn mở quan trọng nhất của Sun) trong danh sách, Jazoon có vẻ đang tụ họp một nhóm các diễn giả có sức hấp dẫn Được tập trung hoàn toàn vào các chủ đề Java
và họp đúng ở giữa trung tâm của châu Âu, Jazoon có vẻ là một hội nghị tốt cho các đạo hữu Java của châu Âu đánh dấu trong lịch công tác của mình
để tham dự
Ngoài ra, còn các hội nghị khác, nhằm đến nhiều loại thính giả khác nhau, nhưng những hội nghị ở trên nhằm trực tiếp vào các nhà phát triển Java Các nhà phát triển muốn mở rộng tầm nhìn của họ về thế giới nên xem xét đến dự một hội nghị công nghệ "thay thế" như các cuộc hội họp về Perl, Python, Ruby hoặc thậm chí .NET, diễn ra trên toàn thế giới; để cho đầu óc mình mở ra với các ý tưởng mới, đôi khi cần xem xét một tập hợp các vấn đề hoàn toàn mới
Các cuốn sách
Không có nguồn tài nguyên nào to lớn hơn sẵn có cho nhà phát triển mà dễ dàng
có được, như là những cuốn sách truyền thống bình thường Chỉ cách bạn một khoảng đúng bằng đoạn đường tới hiệu sách địa phương nơi bạn ở (hoặc nếu bạn sống trong các vùng sâu vùng xa, thì đó là trình duyệt Web của bạn và Amazon) là một kho tàng kiến thức kỹ thuật và kinh nghiệm chỉ cần bạn có thể lựa chọn trong vô số sách na ná kiểu "me-too", “Java for Dummies”
Các tập sách này giả định rằng người đọc đã có một kiến thức làm việc về ngôn ngữ và bộ công cụ Java; các cuốn sách cho những người mới bắt đầu học Java phổ biến đến mức kinh ngạc và hầu như tất cả chúng trình bày cùng những vấn đề cơ
sở giống nhau Việc chọn một cuốn nào đó chỉ còn là sự lựa chọn cách tiếp cận, phong cách viết của tác giả và thậm chí đôi khi chỉ là có hay không có các bài giải cho các bài tập (nếu có các bài tập trong đó) trong các đĩa CD đi kèm cuốn sách Sau khi bạn đã qua phần cơ sở, hãy xem xét các cuốn sách sau:
Effective Java (2nd Ed) của Joshua Bloch
Cuốn sách đầu tiên nên có trên giá sách của mọi nhà phát triển Java, có tính thời đại, dễ hiểu, không có trở ngại nào