สวัสดี! วันนี้เราจะมาพูดถึงเส้นทางการพัฒนาของ Java Developer และสิ่งที่เขาต้องรู้เพื่อที่จะเป็นที่ต้องการ นักพัฒนาคนใดก็ตามในการสัมภาษณ์สามารถ “ล้มเหลว” ผู้สมัครรับตำแหน่งได้ ตัวอย่างเช่น เขาจะเริ่มถามคำถามเกี่ยวกับหัวข้อเฉพาะที่เขาพบในโครงการปัจจุบัน แต่ก็ไม่เป็นไรที่จะรู้ทุกอย่าง การที่คุณไม่ตอบคำถามบางข้อก็เป็นเรื่องปกติเช่นกัน โดยทั่วไปแล้ว โปรแกรมเมอร์ Java ทุกคนควรมีความรู้พื้นฐานในการพัฒนา มาดูกันว่าเทคโนโลยีใดที่ถือว่าเป็น "พื้นฐาน"
คุณควรทำความเข้าใจก่อนว่า Spring คืออะไร: Spring Container, beans, DI, IoC และอื่นๆ คืออะไร ถ้าจะพูดให้เข้าใจหลักปรัชญาของการใช้ Spring การศึกษาเพิ่มเติมเกี่ยวกับ Spring Frameworks จะเกิดขึ้นตามฐานนี้ มันอาจจะคุ้มค่าที่จะสร้างแอปพลิเคชันขนาดเล็กของคุณเอง ซึ่งคุณจะค่อยๆ เพิ่มเทคโนโลยีใหม่ที่คุณได้เรียนรู้ไป
ก่อนหน้านี้เราได้พูดถึงเทคโนโลยี JDBC ว่าเป็นเทคโนโลยีในการสร้างการเชื่อมต่อกับฐานข้อมูล โดยทั่วไป การใช้เทคโนโลยีแบบ "เปลือยเปล่า" อาจไม่พบในโครงการในขณะนี้ ดังนั้นจึงอาจดูเหมือนว่าการเรียนรู้ JDBC นั้นไม่จำเป็น แต่มันไม่เป็นเช่นนั้น เมื่อดูที่ส่วนลึกของ JDBC คุณจะมองเห็นเทคโนโลยีในระดับที่ต่ำกว่า และเข้าใจปัญหาและข้อบกพร่องของมัน เมื่อคุณเริ่มเรียนรู้ Spring JDBC คุณจะเข้าใจว่าเฟรมเวิร์กนี้ปรับปรุง เพิ่มประสิทธิภาพ และซ่อนอะไรจากสายตาของเรา
เช่นเดียวกับ JDBC แบบเปลือย เฟรมเวิร์กนี้ปรับปรุงการใช้เทคโนโลยีที่มีอยู่ ในกรณีนี้คือ Hibernate หากคุณพิจารณาใช้ Hibernate โดยไม่มี Spring คุณจะเข้าใจอย่างชัดเจนว่าการใช้ Spring Hibernate คืออะไร
ก่อนหน้านี้เราได้พูดคุยเกี่ยวกับ JPA และวิธีที่เป็นเพียงข้อกำหนดซึ่งมีการใช้งานที่แตกต่างกัน ในบรรดาการใช้งานเหล่านี้ Hibernate นั้นใกล้เคียงกับอุดมคติมากที่สุด Spring มีการใช้งาน JPA ในอุดมคติของตัวเอง ซึ่งใช้ Hibernate “ภายใต้ประทุน” และใกล้เคียงกับอุดมคติของข้อกำหนด JPA มากที่สุด เทคโนโลยีนี้เรียกว่า Spring JPA อย่างไรก็ตาม มันทำให้การเข้าถึงฐานข้อมูลง่ายขึ้นมาก คุณสามารถเรียนรู้ JPA ได้โดยไม่ต้องเรียนรู้ JDBC, Hibernate, Spring JDBC, Spring Hibernate แต่ในกรณีนี้ ความรู้ของคุณเกี่ยวกับการเชื่อมต่อกับฐานข้อมูลจะเป็นเพียงผิวเผินมาก
ด้วยเทคโนโลยีนี้ เราสามารถแสดงเว็บอินเทอร์เฟซของแอปพลิเคชันของเราแก่ผู้ใช้ และอนุญาตให้อินเทอร์เฟซสื่อสารกับส่วนที่เหลือของแอปพลิเคชันได้ เทคโนโลยีนี้ยังสามารถทำงานได้โดยไม่ต้องแสดงผล เมื่อมีแอปพลิเคชันบางตัวที่รับผิดชอบในการแสดงผล และคุณโต้ตอบกับแอปพลิเคชันนี้โดยใช้คำขอและการตอบกลับโดยใช้เทคโนโลยีRESTful เพื่อทำความเข้าใจข้อมูลเกี่ยวกับ Spring ให้ดียิ่งขึ้น นอกเหนือจากบทความและการบรรยายบน YouTube คุณสามารถอ่านหนังสือหลายเล่มได้ ฉันชอบหนังสือ Spring in Action ของ Walls Craig มาก น่าเสียดายที่ตอนนี้มีเพียงเวอร์ชันที่สามในรัสเซียเท่านั้นซึ่งถือว่าล้าสมัย ฉันแนะนำให้คุณอ่านเวอร์ชัน 6 ถ้าคุณรู้ภาษาอังกฤษดี หนังสือดีๆ อีกเล่มเกี่ยวกับฤดูใบไม้ผลิคือ “Spring 5 for Professionals” การเรียนรู้นั้นยากกว่าและเหมือนกับพระคัมภีร์ ฤดูใบไม้ ผลิที่เก็บไว้มีประโยชน์มากกว่าการอ่านจากหน้าหนึ่งไปอีกหน้าหนึ่ง
เทคโนโลยีนี้ทำให้การใช้ Spring ง่ายขึ้นอย่างมาก ฉันใส่มันไว้ที่ท้ายรายการด้วยเหตุผลเพราะมันซ่อนอยู่ใต้ "ประทุน" ไว้มากมายและสำหรับคนที่ไม่คุ้นเคยกับฤดูใบไม้ผลิปกติหลายจุดอาจไม่ชัดเจนและไม่สามารถเข้าใจได้ อันดับแรก เพื่อให้เข้าใจถึงวิธีการทำงานของ Spring Framework ได้ดียิ่งขึ้น คุณควรใช้ Spring ปกติ จากนั้นจึงใช้ Spring Boot เพื่อประโยชน์ที่สูงกว่าทั้งหมด ฉันแนะนำให้คุณทำความคุ้นเคยกับ Spring Security และ Spring AOP ด้วย แต่ต่างจากเทคโนโลยีข้างต้น ตอนนี้ไม่จำเป็นต้องมีความรู้เชิงลึกเกี่ยวกับทั้งสองสิ่งนี้ เทคโนโลยีนี้ไม่เหมาะสำหรับผู้เริ่มต้น ในระหว่างการสัมภาษณ์ จะไม่ถามรุ่นน้องเกี่ยวกับพวกเขา (ยกเว้นคำถามผิวเผินหนึ่งคำถาม) อ่านโดยทั่วไปว่าเทคโนโลยีเหล่านี้คืออะไรและทำงานอย่างไร ตลอดบทความนี้ฉันได้กล่าวถึงการอ่านหนังสือซ้ำแล้วซ้ำอีก ประการหนึ่งสิ่งนี้ไม่จำเป็น คุณสามารถเป็นโปรแกรมเมอร์ได้โดยไม่ต้องอ่านหนังสือสักเล่ม โดยศึกษาทุกสิ่งที่คุณต้องการจากบทความและวิดีโอการฝึกอบรม ในทางกลับกัน ในขณะนี้ การแข่งขันในตลาดสำหรับนักพัฒนามือใหม่อยู่ในระดับสูง ซึ่งยกระดับความรู้เบื้องต้นที่จำเป็นสำหรับผู้เริ่มต้น ดังนั้น ยิ่งคุณรู้มากเท่าไร คุณก็ยิ่งได้งานแรกเร็วขึ้นเท่านั้นโดยทำให้ผู้สัมภาษณ์ประทับใจด้วยระดับความรู้ของคุณ ขอบคุณทุกท่าน และขอให้Java อยู่กับ คุณ
1. อัลกอริธึมพื้นฐาน
สิ่งแรกที่คุณควรทำเมื่อเริ่มเรียนการเขียนโปรแกรม (ซึ่งใช้ไม่ได้กับ Java เท่านั้น) คือการวิเคราะห์พื้นฐาน ตัวอย่างเช่น อัลกอริธึม มีจำนวนอนันต์และคุณไม่ควรใช้เวลาทั้งปีในการพยายามเรียนรู้อัลกอริธึมให้มากที่สุดเท่าที่จะเป็นไปได้ ส่วนใหญ่จะไม่เป็นประโยชน์สำหรับคุณ ความรู้ขั้นต่ำที่จำเป็นสามารถหาได้จากหนังสือ " Grocking Algorithms " นี่จะเพียงพอสำหรับการเริ่มต้นการเดินทาง แต่ถ้าคุณต้องการ คุณสามารถเรียนรู้โดยใช้หนังสือ “ Structures and Algorithms ” หรือ “ Algorithms in Java” โดย Robert Sedgwick และ Kevin Wayne ฉันขอแนะนำให้คุณพัฒนาความรู้พื้นฐานของวิทยาการคอมพิวเตอร์ด้วย ซึ่งสามารถทำได้ใน JavaRush โดยใช้หลักสูตรCS502. ไวยากรณ์จาวา
หลังจากเรียนรู้พื้นฐานของอัลกอริธึมแล้ว เราจะต้องเรียนรู้ไวยากรณ์ Java ท้ายที่สุดแล้ว เราทุกคนกำลังเรียนรู้ที่จะเป็นโปรแกรมเมอร์ Java ที่นี่ใช่ไหม หลักสูตร JavaRush เหมาะสำหรับสิ่งนี้ ในกระบวนการปฏิบัติงานหลายอย่าง คุณจะคล่องแคล่วในการใช้ไวยากรณ์ Java และจะเขียน/อ่านโค้ด Java โดยไม่ต้องคิดอะไรมาก ราวกับว่าเป็นภาษาแม่ของคุณ JavaRush เป็นการฝึกฝน และนอกเหนือจากนั้น คุณยังต้องดูทฤษฎีด้วยเพื่อทำความเข้าใจว่าคุณกำลังทำอะไรอยู่ เมื่อต้องการทำเช่นนี้ คุณสามารถอ่านหนังสือได้ ตัวอย่างเช่น รายการใดรายการหนึ่งต่อไปนี้:- “ หัวหน้าคนแรก Java ”;
- “Java for Dummies” โดย แบร์รี่ เบิร์ด;
- “ชวา คู่มือสำหรับผู้เริ่มต้น” Herbert Schildt
- “ปรัชญาแห่งชวา” โดย บรูซ เอคเคล;
- “การเขียนโปรแกรมที่มีประสิทธิภาพ”, Joshua Bloch;
- “ชวา คู่มือฉบับสมบูรณ์” โดย Herbert Schildt
3. รูปแบบการเขียนโปรแกรม
รูปแบบการเขียนโปรแกรมคือรูปแบบที่สามารถทำซ้ำได้ซึ่งแสดงถึงวิธีแก้ไขปัญหาภายในบริบทที่พบบ่อย ในนั้นมีเทมเพลตพื้นฐานและเรียบง่ายที่โปรแกรมเมอร์ที่เคารพตนเองทุกคนควรรู้ เพื่อทำความเข้าใจหัวข้อนี้ ให้ใช้หนังสือ “ Head First” รูปแบบการออกแบบ ” เธอจะอธิบายรูปแบบการเขียนโปรแกรมพื้นฐานอย่างชัดเจน แต่หนังสือเล่มนี้พูดถึง Javaมากมายดังนั้นในขณะที่ศึกษาหนังสือ คุณจะต้องเชี่ยวชาญภาษาการเขียนโปรแกรมนี้ หากต้องการเจาะลึกเกี่ยวกับรูปแบบ คุณสามารถอ่าน “เทคนิคการออกแบบเชิงวัตถุ” ได้ Design Patterns” จาก Gang of Four ( Gang of Four: ทีมผู้เขียนซึ่งรวมถึง Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - หมายเหตุบรรณาธิการ ) หลังจากศึกษาหัวข้อนี้ คุณจะเริ่มเห็นรูปแบบแทบทุกที่ในโค้ดของคุณ โปรดใส่ใจกับสิ่งนี้ โดยเฉพาะรูปแบบที่ใช้ในSpringเนื่องจากนี่เป็นคำถามยอดนิยมในการสัมภาษณ์4. กระบวนทัศน์การเขียนโปรแกรม ความสะอาดของรหัส
นอกจากรูปแบบการเขียนโปรแกรมมาตรฐานแล้ว ยังมีหลักการและกระบวนทัศน์ต่างๆ ที่คุณต้องรู้ ( SOLID , GRASP ) นอกจากนี้ยังจำเป็นเพื่อให้แน่ใจว่าโค้ดนั้นสะอาดและสามารถอ่านได้ ทุกสิ่งที่คุณจำเป็นต้องรู้ในหัวข้อนี้มีอยู่ในหนังสือ “ Clean Code ” โดย Robert Martin หรืออ่านหนังสือ “ Perfect Code” โดย Steve McConnell5.SQL
ขั้นตอนต่อไป ของ เราคือการศึกษาภาษาของฐานข้อมูลเชิงสัมพันธ์ - SQL ฐานข้อมูลเป็นที่เก็บข้อมูล (ข้อมูล) ของเว็บแอปพลิเคชัน ฐานข้อมูลประกอบด้วยตารางจำนวนมาก (สมุดที่อยู่ในโทรศัพท์ของคุณเป็นตัวอย่างที่ง่ายที่สุดของตารางดังกล่าว) คุณสามารถอ่านเพิ่มเติมเกี่ยวกับฐานข้อมูลได้ในบทความนี้ สำหรับนักพัฒนา Java พื้นที่รับผิดชอบไม่ได้เป็นเพียงแอปพลิเคชัน Java เท่านั้น แต่ยังรวมถึงฐานข้อมูลที่โต้ตอบและตำแหน่งที่เก็บข้อมูลด้วย ในฐานข้อมูลเชิงสัมพันธ์ (ที่พบบ่อยที่สุด) การโต้ตอบทั้งหมดเกิดขึ้นผ่านภาษาพิเศษ - Structured Query Language หรือ SQL เพื่อให้เข้าใจหัวข้อนี้การอ่านหนังสือสักเล่มก็เพียงพอแล้ว:- “การเรียนรู้ SQL”, อลัน บิวลีย์;
- “SQL”, คริส เฟียลี;
- “Head First SQL” โดยลินน์ เบลีย์
GO TO FULL VERSION