วันนี้ Codesanook จะขอมาตอบคำถามยอดฮิต ที่มักจะถามกันเข้ามากันบ่อยคือ
"จะเรียนรู้ Java เพื่อสร้าง Web Application ควรเริ่มศึกษาอย่างไร?"
ขอแนะนำการเรียนรู้เป็นลำดับขั้นตอนเพื่อความเข้าใจตั้งแต่พื้นฐาน แล้วค่อยพัฒนาต่อยอดไปสู่ web application
แต่ขอบอกก่อนว่าต้องอดทนหน่อยนะครับ เพราะต้องใช้เวลาเรียนรู้สักพักใหญ่ๆ เนื่องจาก Java Web นี่ใส่ software practice pattern แบบจัดเต็ม ถ้าใช้ทันทีอาจจะงงได้ เลยต้องมาเริ่มปูพื้นฐานกันก่อน
ปลายทางการเรียนรู้สิ่งที่แนะนำคือ Spring Boot ซึ่งเป็น Web Framework ของฝั่ง Java แต่ถ้าอยู่ๆ จะใช้เลย อาจจะงงได้ จึงขอแนะนำให้ศึกษาตามขั้นตอนดังต่อไปนี้ครับ
แนะนำอ่านพื้นฐาน Java ก่อนเลย โดยศึกษาการเขียน Java program แบบง่ายๆ เช่น command line interface application ไม่ต้องฝึก GUI ของ Desktop ก็ได้ครับ เพื่อทุ่นเวลา
ให้เราเข้าใจ core พื้นฐาน เช่น OOP, class, interface, inheritance, polymorphism, read/write a file, collections, utility class, การเชื่อมต่อ database etc.
หนังสือที่แนะนำคือ Head First Java (เล่มล่าสุดคือ 2nd Edition)
เล่มนี้จะช่วยปูพื้นฐาน Java OOP ให้แน่นมากๆ อ่านเล่มนี้แล้วชีวิตจะเปลี่ยนไปเลย หนังสือจะช่วยให้เรามองการเขียน program ด้วย Java เป็นเรื่องสนุก ให้ความรู้สึกเหมือนเรากำลังอ่านการ์ตูน หรือเรื่องเล่าสนุกๆ อยู่
ต่อมาแนะนำให้อ่านหนังสือเกี่ยวกับ Servlets และ JSP ครับ ซึ่งเป็นความรู้พื้นฐานที่สุดของการเขียน Web ด้วย Java
การเขียน web application ในรูปแบบนี้ เราต้องทำหลายอย่างเอง แบบ manual หน่อยๆ อาจจะทำให้ขัดใจบ้าง แต่ก็จะทำให้เราได้พื้นฐานความรู้ที่ดีมากครับ เพราะทุก web framework ของ Java อยู่บนพื้นฐานนี้
หนังสือที่แนะนำคือ Head First Servlets and JSP (ล่าสุดคือ 2nd Edition)
หนังสือเล่มนี้อธิบายพื้นฐานแน่นมากๆ แต่อาจจะดำเนินเรื่องช้าหน่อยสำหรับคนที่มืพื้นฐาน Java web อยู่แล้ว ยังไงก็แนะนำนะครับ สำหรับคนที่ไม่มีพื้นฐาน Java web เลย
ต่อมาอีกเล่มคือ ** Professional Java for web application **
ข้อดีของหนังสือเล่มนี้คือ เรียนรู้ตั้งแต่พื้นฐานของ Java Web จนถึงการประยุกต์ใช้ Spring Framework ในช่วงท้ายๆ ของเล่ม ทำให้เราเห็นภาพรวมความเชื่อมโยงจาก Java Web แบบพื้นฐาน จนไปถึงการนำ Spring Framework เข้ามาใช้เพื่อแก้ปัญหา และปรับปรุงระบบให้ดีขึ้น
ต่อมาเราก็จะได้เริ่มศึกษา Spring Framework จริงๆ กันแล้ว ขอแนะนำหนังสือเล่มนี้ครับ Spring in Action (ล่าสุดคือ 5th Edition)
หนังสืออธิบายเนื้อหาได้แน่นมากๆ อธิบายแบบ logical มีที่มาที่ไป ซึ่งพื้นฐานความเข้าใจหลักของ Spring framework สำหรับ admin คือ ความเข้าใจเรื่อง dependency injection และการใช้ class ที่ต้อง Spring Framework เตรียมมาให้เป็น extension point ครับ ให้เรา custom web application ของเราครับ ซึ่งหนังสือเล่มนี้มีอธิบายให้ครบถ้วนครับ
เมื่อมีพื้นฐานครบถ้วนแล้ว เราสามารถเจาะไปที่ SpringBoot framework ได้เลย โดยอาจจะศึกษาจาก web Spring โดยตรง https://spring.io/quickstart, หนังสือ หรือบทความจากชุด Spring Boot จาก Codesanook ก็ได้ครับ
https://www.codesanook.com/Tags/spring-boot
นอกจากนี้ เราอาจจะต้องศึกษาเรื่องอื่นๆ เพิ่มเติม เช่น
อ่านแล้วเหมือนต้องศึกษาเป็นเดือนๆ แต่อย่างเพิ่งท้อนะครับ ของแบบนี้ต้องใช้เวลา ค่อยๆ ศึกษา ค่อยๆ เรียนรู้ ติดขัดอะไรมาถามตอบกันได้ Codesanook page หรือ group นะครับครับ ยินดีครับให้คำแนะนำแลกเปลี่ยนความรู้กันครับผม
ขอบคุณครับ
Codesanook care ทุกคนครับ เพราะเราอยากให้ทุกคนสนุกไปกับการเขียนโค้ด ^^