โค้ดยิม/หลักสูตรจาวา/All lectures for TH purposes/รายการตรวจสอบของ Java Developer

รายการตรวจสอบของ Java Developer

มีอยู่

โปรแกรมเมอร์ Java ทุกคนต้องมีความเข้าใจพื้นฐานเกี่ยวกับการพัฒนาซอฟต์แวร์ ลองมาดูสิ่งที่ถือว่าเป็น "พื้นฐาน"

1. อัลกอริทึมพื้นฐาน

สิ่งแรกที่ต้องจัดการเมื่อเริ่มเรียนรู้การเขียนโปรแกรม (ไม่ใช่แค่ Java) คือการเข้าใจพื้นฐาน ตัวอย่างเช่น อัลกอริทึม

มีจำนวนนับไม่ถ้วน และคุณไม่ควรฆ่าเวลาทั้งชีวิตเพื่อพยายามเรียนรู้อัลกอริทึมให้ได้มากที่สุด เพราะส่วนใหญ่จะไม่เป็นประโยชน์กับคุณ คุณสามารถรับความรู้ขั้นต่ำที่จำเป็นได้จากหนังสือ "อัลกอริทึม Grokking" นี่เพียงพอที่จะช่วยให้คุณเริ่มต้นได้ แต่ถ้าคุณต้องการ คุณสามารถเรียนรู้ได้จากหนังสือ "โครงสร้างและอัลกอริทึม" หรือ "อัลกอริทึมใน Java" โดย Robert Sedgewick และ Kevin Wayne

2. วากยสัมพันธ์ของจาวา

หลังจากเรียนรู้พื้นฐานของอัลกอริทึมแล้ว เราจำเป็นต้องเรียนรู้ไวยากรณ์ของ Java ท้ายที่สุด คุณกำลังเรียนเพื่อเป็นโปรแกรมเมอร์ Java ใช่ไหม? หลักสูตร CodeGym เหมาะสำหรับสิ่งนี้

ในขณะที่คุณทำงานนับไม่ถ้วน คุณจะได้สัมผัสกับไวยากรณ์ของ Java จากนั้นคุณจะเขียน/อ่านโค้ด Java ราวกับว่ามันเป็นภาษาแม่ของคุณโดยไม่ลังเล

นอกเหนือจากการปฏิบัติแล้ว คุณต้องดูทฤษฎีเพื่อทำความเข้าใจว่าคุณกำลังทำอะไรอยู่ ในการทำเช่นนี้คุณสามารถอ่านหนังสือได้ ตัวอย่างเช่น หนึ่งในรายการต่อไปนี้:

  • "หัวหน้าคนแรก Java",
  • "Java for Dummies" โดยแบร์รี่ เบิร์ด;
  • "Java: คู่มือสำหรับผู้เริ่มต้น" โดย Herbert Schildt

หลังจากอ่านหนังสือเหล่านี้แล้ว คุณสามารถไปหาหนังสือที่ยากขึ้นได้:

  • “การคิดใน Java” บรูซ เอคเคล;
  • "Effective Java" โดย Joshua Bloch;
  • "Java: การอ้างอิงที่สมบูรณ์" โดย Herbert Schildt

หนังสือ 3 เล่มสุดท้ายไม่ใช่เรื่องง่ายที่จะอ่านสำหรับผู้เริ่มต้น แต่หนังสือเหล่านี้มีพื้นฐานที่มั่นคงในทฤษฎี Java

3. รูปแบบการออกแบบ

รูปแบบการออกแบบเป็นรูปแบบที่ทำซ้ำได้ซึ่งช่วยแก้ปัญหาในบริบทที่พบบ่อย รวมถึงรูปแบบพื้นฐานที่เรียบง่ายซึ่งโปรแกรมเมอร์ที่เคารพตนเองทุกคนควรรู้ เพื่อทำความเข้าใจหัวข้อนี้ ให้คว้าหนังสือ "รูปแบบการออกแบบก่อนใคร"

โดยจะอธิบายรูปแบบการออกแบบพื้นฐานในแบบที่เข้าถึงได้ แต่หนังสือเล่มนี้พูดถึง Java มาก ดังนั้นเมื่อคุณอ่านหนังสือเล่มนี้ คุณต้องมีความคล่องแคล่วในภาษาโปรแกรมนี้ด้วย

หากต้องการเจาะลึกลงไปในรูปแบบ คุณสามารถอ่าน "รูปแบบการออกแบบ: องค์ประกอบของซอฟต์แวร์เชิงวัตถุที่นำกลับมาใช้ใหม่ได้" จาก Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides ) เมื่อคุณศึกษาหัวข้อนี้แล้ว คุณจะเริ่มเห็นรูปแบบแทบทุกที่ในโค้ดของคุณ

ให้ความสนใจกับสิ่งนี้ โดยเฉพาะรูปแบบที่ใช้ใน Spring เนื่องจากเป็นคำถามสัมภาษณ์ยอดนิยม

4. กระบวนทัศน์การเขียนโปรแกรม ความสะอาดของรหัส

นอกจากรูปแบบการออกแบบมาตรฐานแล้ว ยังมีหลักการและกระบวนทัศน์ต่างๆ ที่ควรทราบ (SOLID, GRASP)

คุณต้องรักษารหัสของคุณให้สะอาดและสามารถอ่านได้ สำหรับทุกสิ่ง คุณจำเป็นต้องรู้เกี่ยวกับหัวข้อนี้ ดู Clean Code โดย Robert Martin หรือดูที่ "Code Complete" โดย Steve McConnell

5. เอสคิวแอล

ขั้นตอนต่อไปของเราคือการศึกษาภาษาสำหรับฐานข้อมูลเชิงสัมพันธ์ — SQL

ฐานข้อมูลเป็นที่เก็บข้อมูล (ข้อมูล) ที่ใช้โดยเว็บแอปพลิเคชัน ฐานข้อมูลประกอบด้วยหลายตาราง (สมุดที่อยู่ในโทรศัพท์ของคุณเป็นตัวอย่างง่ายๆ)

นักพัฒนา Java ไม่เพียงแต่มีหน้าที่รับผิดชอบต่อแอปพลิเคชัน Java เท่านั้น แต่ยังรวมถึงฐานข้อมูลที่โต้ตอบด้วยและตำแหน่งที่เก็บข้อมูลด้วย

ในฐานข้อมูลเชิงสัมพันธ์ (ซึ่งเป็นประเภทที่พบมากที่สุด) การโต้ตอบทั้งหมดเกิดขึ้นผ่านภาษาพิเศษที่เรียกว่า Structured Query Language หรือ SQL

เพื่อทำความเข้าใจหัวข้อนี้ สิ่งที่คุณต้องทำคืออ่านหนังสือเหล่านี้:

  1. "การเรียนรู้ SQL" โดย Alan Beaulieu;
  2. "SQL" โดย Chris Fehily;
  3. "Head First SQL" โดย Lynn Beighley

แต่การฝึกฝนโดยไม่มีทฤษฎีก็ไม่ได้ผลใช่ไหม? และในการสัมภาษณ์ คุณสามารถคาดหวังการทดสอบความรู้ของคุณเกี่ยวกับ SQL ผู้สัมภาษณ์มักจะ (เกือบทุกครั้ง) ให้งานหนึ่งหรือสองงานที่เกี่ยวข้องกับการเขียนแบบสอบถาม SQL

ด้วยเหตุนี้ จึงเป็นสิ่งสำคัญอย่างยิ่งที่จะต้องฝึกฝนทักษะ SQL ที่ใช้งานได้จริงเพื่อแสดงตัวคุณในแง่ดี

6. MySQL/PostgreSQL

หลังจากเรียนรู้ภาษา SQL แล้ว คุณต้องทำความคุ้นเคยกับการใช้งานฐานข้อมูลเฉพาะ คำสั่งบางคำสั่งอาจแตกต่างกันอย่างมาก ทั้งนี้ขึ้นอยู่กับฐานข้อมูล และมีความสามารถด้านฐานข้อมูลที่แตกต่างกันอย่างเห็นได้ชัด

ฐานข้อมูลเชิงสัมพันธ์ที่พบมากที่สุด ได้แก่ MySQL และ PostgreSQL MySQL นั้นง่ายกว่ามาก แต่ PostgreSQL มีความสามารถที่กว้างกว่ามาก การทำความคุ้นเคยกับอย่างน้อยหนึ่งรายการก็เพียงพอแล้วสำหรับการเริ่มต้น

คุณสามารถศึกษาการใช้งานฐานข้อมูลได้หากคุณใช้ทักษะกูเกิล ค้นหาบทความและบทช่วยสอนที่เกี่ยวข้องบน YouTube คุณจะต้องฝึกฝนความสามารถของคุณในการสร้างคำค้นหาที่เหมาะสมสำหรับคำถามที่คุณต้องการคำตอบ ท้ายที่สุด โปรแกรมเมอร์คือคนที่มีสายดำในกูเกิล

7. มาเวน/กราดเดิ้ล

คุณต้องเรียนรู้เฟรมเวิร์ก Gradle หรือ Maven มีไว้สำหรับสร้างโปรเจ็กต์ และสำหรับคุณ ตอนนี้ Java ไม่ใช่แค่สำหรับงานที่เกี่ยวข้องกับคลาสสองสามคลาสเท่านั้น แต่ยังเป็นภาษาสำหรับการเขียนแอปพลิเคชันเต็มรูปแบบด้วย

คุณต้องเข้าใจวิธีสร้างโปรเจ็กต์ ขั้นตอนการสร้างคืออะไร วิธีโหลดไลบรารีภายนอกที่จำเป็นด้วยโค้ดของบุคคลที่สาม และอื่นๆ อีกมากมาย

แม้ว่าข้อเท็จจริงที่ว่า Gradle จะใหม่กว่าและกระชับกว่า แต่ Maven ก็ใช้ในกรณีส่วนใหญ่ ดังนั้น ให้ความสนใจเป็นพิเศษกับวงจรการสร้าง Maven

8. Git

Git คือระบบควบคุมเวอร์ชันแบบกระจาย เทคโนโลยีนี้ช่วยให้นักพัฒนาทำงานร่วมกันในแอปพลิเคชันเดียวโดยไม่รบกวนซึ่งกันและกัน

แน่นอนว่ายังมีระบบควบคุมเวอร์ชันอื่นๆ ตัวอย่างเช่น การโค่นล้ม แต่ Git นั้นถูกใช้งานอย่างกว้างขวางที่สุด และคุณต้องสามารถใช้งานมันได้ นอกจากบทความมากมายเกี่ยวกับ Git ที่คุณสามารถหาได้ทางออนไลน์แล้ว YouTube ยังมีวิดีโออีกมากมายที่จะช่วยให้คุณเชี่ยวชาญเทคโนโลยีนี้ทีละขั้นตอน

ในตอนแรก ควรใช้ Git จากบรรทัดคำสั่งแทนการใช้ GUI บางประเภท เพราะคุณจะถูกบังคับให้ทำทุกอย่างโดยใช้คำสั่ง ในการสัมภาษณ์ ผู้คนมักถามเกี่ยวกับคำสั่ง Git สองสามคำสั่ง ดังนั้นฉันขอแนะนำให้คุณเขียนคำสั่งเหล่านั้นและเก็บไว้ใกล้ตัว

9. เจดีบีซี

เทคโนโลยีนี้เชื่อมต่อแอปพลิเคชัน Java ของคุณและฐานข้อมูลเชิงสัมพันธ์ สำหรับพื้นฐาน โปรดอ่านบทแนะนำสอนการใช้งาน JDBC

มีบทความมากมายที่อธิบาย JDBC และให้ตัวอย่างเบื้องต้น แม้ว่าจะไม่มีใครใช้ JDBC เปล่าโดยตรงอีกต่อไป

10. จป. ไฮเบอร์เนต

JPA เป็นวิธีสร้างการเชื่อมต่อระหว่างแอปพลิเคชัน Java และฐานข้อมูล เช่นเดียวกับ JDBC แต่ในขณะเดียวกัน JPA เป็นเทคโนโลยีระดับสูงและใช้งานได้ง่ายกว่า

แต่ JPA เป็นเพียงข้อมูลจำเพาะ ไม่ใช่การนำไปใช้งาน จำเป็นต้องมีการดำเนินการอย่างเป็นรูปธรรม หลายคนมีอยู่ แต่อุดมคติที่ใกล้เคียงที่สุดกับ JPA ที่นิยมมากที่สุดและพัฒนามากที่สุดคือไฮเบอร์เนต

คุณจะพบเทคโนโลยีนี้มากกว่าหนึ่งครั้งในอาชีพการพัฒนาซอฟต์แวร์ของคุณ ดังนั้น นอกเหนือจากการทำความคุ้นเคยกับเทคโนโลยีนี้โดยการอ่านบทความแล้ว การอ่านหนังสือ เช่น "Java Persistence API" ก็อาจคุ้มค่า

11. ฤดูใบไม้ผลิ

เมื่อคุณเป็น Java Developer แล้ว Spring จะไม่เป็นเพียงคำสำหรับคุณอีกต่อไป การรู้เฟรมเวิร์กนี้มีความสำคัญเท่ากับการรู้ไวยากรณ์ของ Java คุณสามารถพูดได้ว่า Spring มีพี่น้องคือ Java EE แต่ Java EE นั้นล้าสมัยและไม่ได้ใช้ในโครงการใหม่อีกต่อไป

นักพัฒนา Java ส่วนใหญ่เป็นผู้พัฒนา Java-Spring ดังนั้นการรู้เทคโนโลยี Spring พื้นฐานบางอย่างจึงเป็นสิ่งจำเป็น

Spring ไม่ใช่แค่เฟรมเวิร์ก แต่เป็นเฟรมเวิร์กทั้งหมดของเฟรมเวิร์ก:

และนี่เป็นเพียงส่วนย่อยของเฟรมเวิร์กที่ Spring จัดเตรียมไว้ให้ สำหรับผู้เริ่มต้น การรู้เพียงไม่กี่อย่างก็เพียงพอแล้ว:

สปริงคอร์

คุณควรใส่สิ่งนี้ไว้ตั้งแต่แรก เพื่อให้คุณเข้าใจว่า Spring คืออะไร — ทั้งหมดเกี่ยวกับ Spring containers, bean, DI, IoC และอื่นๆ เพื่อให้เข้าใจถึงปรัชญาของการใช้ Spring ก็ว่ากันไป การศึกษาเพิ่มเติมเกี่ยวกับ Spring frameworks ของคุณจะต่อยอดจากฐานนี้ บางทีคุณควรสร้างแอปพลิเคชันขนาดเล็กของคุณเอง ซึ่งคุณสามารถรวมเทคโนโลยีที่เรียนรู้ใหม่ทั้งหมดอย่างค่อยเป็นค่อยไป

ฤดูใบไม้ผลิ JDBC

ก่อนหน้านี้เราได้กล่าวถึง JDBC ว่าเป็นเทคโนโลยีสำหรับสร้างการเชื่อมต่อฐานข้อมูล โดยทั่วไปแล้ว การใช้เทคโนโลยีแบบ "เปล่า" ไม่สามารถพบได้ในโครงการอีกต่อไป ดังนั้นคุณอาจสรุปได้ว่าการเรียนรู้ JDBC ไม่จำเป็น นี่ไม่ใช่ทัศนคติที่ถูกต้องนัก

ด้วยการสำรวจการใช้งาน JDBC แบบเปลือยเปล่า (โดยตรง) คุณจะเห็นเทคโนโลยีในระดับที่ต่ำกว่าและเข้าใจปัญหาและข้อบกพร่องของมัน จากนั้นเมื่อคุณเริ่มเรียนรู้ Spring JDBC คุณจะรู้ว่าเฟรมเวิร์กนี้ปรับปรุง ปรับแต่ง และซ่อนอะไรกันแน่

ฤดูใบไม้ผลิไฮเบอร์เนต

คล้ายกับสถานการณ์ของ JDBC เปล่า เฟรมเวิร์กนี้ใช้ประโยชน์จากเทคโนโลยีที่มีอยู่ ในกรณีนี้คือไฮเบอร์เนต หากคุณพิจารณาใช้ Hibernate โดยไม่ใช้ Spring คุณจะรู้ถึงประโยชน์ที่ Spring Hibernate มอบให้อย่างแน่นอน

ฤดูใบไม้ผลิ JPA

ก่อนหน้านี้เราได้พูดถึง JPA และกล่าวว่าเป็นเพียงข้อมูลจำเพาะเท่านั้น แม้ว่าจะมีการใช้งานที่หลากหลาย ในบรรดาการใช้งานเหล่านี้ Hibernate ใกล้เคียงกับอุดมคติมากที่สุด

Spring มีการใช้งาน JPA ในอุดมคติของตัวเองซึ่งใช้ Hibernate ภายใต้ประทุน ใกล้เคียงกับอุดมคติของข้อกำหนด JPA มากที่สุดเท่าที่จะเป็นไปได้

เรียกว่า Spring JPA มันทำให้เข้าถึงฐานข้อมูลได้ง่ายมาก

คุณสามารถเรียนรู้ JPA ได้โดยไม่ต้องเรียนรู้ JDBC, Hibernate, Spring JDBC หรือ Spring Hibernate แต่ถ้าคุณใช้วิธีนี้ ความรู้ของคุณเกี่ยวกับวิธีเชื่อมต่อกับฐานข้อมูลจะเป็นเพียงผิวเผิน

สปริง เอ็มวีซี

เทคโนโลยีนี้ทำให้สามารถแสดงเว็บอินเทอร์เฟซของแอปพลิเคชันของเราแก่ผู้ใช้ และอำนวยความสะดวกในการสื่อสารระหว่างอินเทอร์เฟซกับแอปพลิเคชันที่เหลือ นอกจากนี้ยังสามารถใช้เทคโนโลยีนี้โดยไม่ใช้จอแสดงผลเมื่อคุณมีแอปพลิเคชันที่รับผิดชอบในการจัดการจอแสดงผล และคุณกำลังโต้ตอบกับแอปพลิเคชันโดยใช้เทคโนโลยี RESTful

เพื่อดื่มด่ำกับข้อมูลเกี่ยวกับฤดูใบไม้ผลิ นอกจากบทความและการบรรยายบน YouTube แล้ว คุณยังสามารถอ่านหนังสือได้หลายเล่ม ตัวอย่างเช่น "Spring in Action" โดย Craig Walls หนังสือที่ยอดเยี่ยมอีกเล่มเกี่ยวกับฤดูใบไม้ผลิคือ "Spring 5 for the Professionals" มันหนาแน่นมากขึ้น เหมือนกับการอ้างอิงที่มีค่ามากกว่าที่จะเก็บไว้ใกล้มือมากกว่าที่จะอ่านจากปกแล้วครอบคลุม

สปริงบูต

เทคโนโลยีนี้ทำให้การใช้ Spring ง่ายขึ้นอย่างมาก ฉันไม่ได้วางไว้ท้ายรายการด้วยความตั้งใจ แท้จริงแล้ว มันซ่อนอะไรไว้มากมายภายใต้ประทุน และสำหรับผู้ที่ไม่คุ้นเคยกับกลิ่นวานิลลาสปริง หลายๆ จุดอาจไม่ชัดเจนหรือไม่เข้าใจ

ขั้นแรก เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการทำงานของ Spring framework คุณควรใช้ Spring ปกติ จากนั้นเลือกรับประโยชน์ที่สูงขึ้นจากการใช้ Spring Boot

คุณควรทำความคุ้นเคยกับ Spring Security และ Spring AOP แต่แตกต่างจากเทคโนโลยีข้างต้น ความรู้เชิงลึกของทั้งสองยังไม่จำเป็นในตอนนี้

เทคโนโลยีนี้ไม่เหมาะสำหรับผู้เริ่มต้น ในการสัมภาษณ์ ผู้พัฒนารุ่นเยาว์จะไม่ถูกถามเกี่ยวกับพวกเขา (ยกเว้นคำถามที่ผิวเผิน) อ่านภาพรวมว่าเทคโนโลยีเหล่านี้คืออะไรและบุคคลสำคัญเบื้องหลังการทำงานของเทคโนโลยีเหล่านี้

ยิ่งคุณรู้มากเท่าไหร่คุณก็ยิ่งหางานแรกได้เร็วเท่านั้น

ความคิดเห็น
  • เป็นที่นิยม
  • ใหม่
  • เก่า
คุณต้องลงชื่อเข้าใช้เพื่อแสดงความคิดเห็น
หน้านี้ยังไม่มีความคิดเห็นใด ๆ