ขั้นตอนที่ 1 การฝึกอบรม
ฉันมาที่ JavaRush อย่างมีสติ: รายการราคารายเดือนที่เพียงพอ โครงสร้างที่ชัดเจนของวัสดุ การฝึกฝนมากมาย และการมีอยู่ของชุมชนของฉันเอง ประเด็นแรกนั้นชัดเจนทั้งหมด แต่การเรียนรู้ภาษาที่ไม่มีโครงสร้างนั้นค่อนข้างยาก และการฝึกอบรมดังกล่าวจะทำให้บุคคลที่มีช่องว่างร้ายแรงใน Java Core อย่างแน่นอน ประสบการณ์ในการสัมภาษณ์และข้อกำหนดทางเทคนิคแสดงให้เห็นว่าคำถามเกี่ยวกับ "แกนหลัก" สามารถใช้ได้กับทุกสิ่ง ตั้งแต่การเปลี่ยนระดับบิตและการคัดเลือกข้อมูลทั่วไปไปจนถึง IO และการทำให้เป็นอนุกรม การฝึกฝนเป็นสิ่งที่ต้องมี ฉันยังสามารถเข้าใจและจดจำได้เพียงครึ่งเดียวหากฉันเขียนเอง ชุมชน: คุณแก้ไขปัญหาได้แล้ว - คุยโวเกี่ยวกับเรื่องนี้ในความคิดเห็น; หากคุณยังไม่ได้ตัดสินใจ คุณสามารถถามคำถามได้ แต่มีแนวโน้มว่าจะไม่มีใครให้วิธีแก้ปัญหาสำเร็จรูปแก่คุณ และฉันกลับมาที่บทความที่กำหนดเองในหัวข้อฟรีแม้หลังจากจบหลักสูตรแล้ว ยังมีสิ่งดีๆ มากมายให้เริ่มต้น (โดยเฉพาะประสบการณ์ครั้งแรกกับกรอบงานโดยใช้ตัวอย่างทีละขั้นตอน + คำถามสำหรับการสัมภาษณ์) โดยทั่วไปฉันรู้สึกขอบคุณโครงการนี้สำหรับฐานที่ฉันได้รับ แต่ฉันจะไม่พึ่งพา JavaRush เท่านั้น - Shildt แบบเดียวกันที่ดีที่สุดคือ "ทับซ้อนกัน" ในหัวข้อที่กำลังศึกษาและมักจะเปิดเผยบางประเด็น มีการกล่าวมากมายในบทวิจารณ์เกี่ยวกับงานที่บางครั้งนำหน้าทฤษฎีและบังคับให้คุณมาที่ Google สำหรับฉัน นี่เป็นข้อดีมากกว่าลบ และไม่ใช่ความจริงที่ว่าตอนนี้สถานการณ์เหมือนกับตอนที่ฉันกำลังเรียนอยู่ คำแนะนำทันทีสำหรับผู้ที่เข้าสู่ Java "ตั้งแต่เริ่มต้น" เช่นฉัน : ในบางช่วงคุณอาจรู้สึกเบื่อหรือยากลำบาก:-
มันยากสำหรับทุกคนที่เริ่มต้นใหม่ พระเจ้าห้าม มีเพียง 5% เท่านั้นที่ไปถึงจุดสิ้นสุดของหลักสูตร งานของคุณคือการเป็นหนึ่งในนั้น
-
ความสนใจของฉันปรากฏขึ้นหลังจากผ่านไปหนึ่งหรือสองเดือน เมื่องานต่างๆ กลายเป็นเรื่องยากและน่าสนใจมากขึ้น จงอดทน
- สิ่งสำคัญคือความคืบหน้ารายสัปดาห์ หลังจากพักไปสองสัปดาห์ มันก็ยากที่จะกลับมาและไม่ใช่ทุกคนที่จะเขียนทุกวันเป็นเวลาหลายเดือนติดต่อกันได้ ให้เวลาตัวเองในหนึ่งสัปดาห์ เช่น 15 คุณสามารถเขียนโค้ดได้ 1.5 ชั่วโมงทุกวันธรรมดา และอีก 3-4 ชั่วโมงในทั้งสองสุดสัปดาห์ หรือคุณสามารถหยุดสองสามช่วงเย็นก็ได้ แต่ "ขีดจำกัดวันหยุดสุดสัปดาห์" จะ เพิ่มขึ้น. ด้วยวิธีนี้กำหนดการจะยืดหยุ่นแต่สม่ำเสมอ แน่นอนว่าจะสามารถวัดงานตามงานและโครงการได้ แต่ชั่วโมงจะทำในระดับไวยากรณ์และเคอร์เนล
ขั้นตอนที่ 2 การศึกษาด้วยตนเอง
ดังนั้นฉันจึงไม่ได้รับการฝึกงาน: ฉันเหลือเวลาเพียงไม่กี่วันในข้อกำหนดทางเทคนิคจนกระทั่งสิ้นสุดการรับสมัครเข้ากลุ่มและไม่มีเวลาคิดหาข้อกำหนด - มีคำที่ไม่คุ้นเคยมากเกินไป เพราะ ฉันไม่อยากรออีกสามเดือนฉันตัดสินใจเดินหน้าต่อไป โชคดีที่มีคำแนะนำและวิดีโอสอนสำหรับเฟรมเวิร์กยอดนิยมทั้งหมด ในอีกไม่กี่เดือนข้างหน้า ฉันจัดการกับ Spring MVC, Spring Boot + Data, Spring Security, Hibernate, jUnit, Maven, Git, RDBMS, เชี่ยวชาญ SQL และพยายามรวมทุกอย่างเข้าด้วยกันเป็นหนึ่งเดียว หกเดือนต่อมา ฉันมีโปรเจ็กต์ที่ดูน่ากลัวในตอนนี้ แต่ฉันได้รับประสบการณ์เชิงปฏิบัติในการใช้เฟรมเวิร์ก "สำหรับผู้ใหญ่" และ GitHub ที่สามารถแสดงได้ตามคำขอของผู้จ้างงาน คำแนะนำ :-
ยิ่งคุณเรียนรู้เกี่ยวกับ .gitignore ได้เร็วเท่าไรก็ยิ่งดีเท่านั้น ;)
-
คำแนะนำหลายรายการประกอบด้วยหลายเฟรมเวิร์กในคราวเดียว ใช้สิ่งนี้และเพิ่มของคุณเอง เราเขียนร้านค้าออนไลน์โดยใช้ Maven + Spring Boot + Data - เพิ่มการอนุญาต การทดสอบหน่วย และการบันทึก
-
สำหรับโครงการเว็บ คุณสามารถใช้เทมเพลตส่วนหน้าฟรีจากอินเทอร์เน็ต - เทมเพลตเหล่านี้น่าใช้งานมากกว่า โดยดูดีกว่าเป็นภาพหน้าจอใน README บน Git ในเวลาเดียวกัน คุณจะสามารถจำ HTML และ CSS ได้ - คุณอาจต้องการแก้ไขสไตล์และเค้าโครง
สิ่งที่ฉันขาดหายไป (ต่อมาฉันถูกไฟไหม้ระหว่างการสัมภาษณ์)
-
อัลกอริทึม เพื่อหลีกเลี่ยงความผิดพลาด ฉันขอแนะนำหนังสือสั้นภาษารัสเซียเรื่อง “Grocking Algorithms” ทันที อัลกอริธึมมีความซับซ้อนอย่างไร ประกอบด้วยอะไรบ้าง เหตุใดการเรียงลำดับอย่างรวดเร็วจึงไม่เพียงพอ ทฤษฎีกราฟเบื้องต้น - ทุกอย่างอยู่ที่นั่นและเป็นภาษาที่เข้าใจได้มากที่สุด
-
คอลเลกชัน "ภายใต้ประทุน" ฉันจำไม่ได้ว่าสิ่งนี้อยู่ใน JavaRush หรือไม่ แต่การรู้ว่า HashMap.get() ทำงานอย่างไร หรือเหตุใด HashSet จึงไม่รับประกันว่าจะรักษาลำดับองค์ประกอบไว้จะเป็นประโยชน์ อีกครั้ง - คอลเลกชันใดที่ปลอดภัยสำหรับเธรดและเพราะเหตุใด
-
SQL. คุณต้องมี JOIN อย่างน้อยที่สุด - คืออะไร, ทำงานอย่างไร, ความสามารถในการเขียน SELECT บนสองตารางบนกระดาษได้ทันที ฉันแนะนำ www.sql-ex.ru: จะนำคุณไปสู่ระดับที่ต้องการในหนึ่งหรือสองวัน
-
Spring Core: มีคำอธิบายประกอบประเภทใด บริบทคืออะไร วิธีสร้าง bean ขอบเขต Bean ใดที่ปลอดภัยสำหรับเธรด และวิธีแก้ไขการแทรกซึ่งกันและกัน - คำถามสัมภาษณ์ทั้งหมด วิธีคืนเพจ วิธีคืน JSON ฯลฯ ขณะนี้ฉันกำลังอ่าน "Spring 5 for Professionals" ในภาษารัสเซีย แต่โดยทั่วไปแล้ว พวกเขาแนะนำ "Spring in Action"
ขั้นตอนที่ 3 การหางาน
จริงๆ แล้ว ในช่วงสองสามเดือนแรกหลังจากเสร็จสิ้นโครงการบ้าน ฉันได้ส่งคำตอบประมาณ 30 รายการสำหรับตำแหน่งงานว่างรุ่นเยาว์\ผู้ฝึกงาน (ผ่าน HH, LinkedIn, บริษัทจัดหางาน) โดยได้ผลลัพธ์เกือบเป็นศูนย์ ฉันเน้นเฉพาะตำแหน่งงานว่างที่ไม่มีประสบการณ์ ระบุตำแหน่งงานที่ฉันคุ้นเคยโดยสุจริต และเขียนเกี่ยวกับความสามารถในการเรียนรู้ระดับสูงของฉันเป็นจดหมายปะหน้า ผลลัพธ์คือการโทรสองครั้ง (การโทรหนึ่งสายสิ้นสุดลงทันทีด้วยภาษาอังกฤษระดับก่อนกลางของฉัน) บริษัทอีกสองแห่งส่งข้อกำหนดทางเทคนิค มี "การประชุม" เพียงครั้งเดียว จากนั้นฉันก็อยู่ที่นั่นเพียงลำพังเพื่อแก้ไขปัญหาเกี่ยวกับอัลกอริทึมบนกระดาษแผ่นหนึ่ง หลังจากนั้น HR ก็หยิบเอกสารไปและ "เราจะโทรหาคุณ" ฉันพยายามฝึกงานสองสามงาน (ไม่ได้รับค่าจ้างและจ่ายตามเงื่อนไข): ฉันทำข้อกำหนดทางเทคนิค แต่ไม่ได้ไปไกลกว่าประกันสังคมขั้นสุดท้าย แต่ตอนนี้ฉันสามารถพูดได้ว่าผู้เข้ารับการฝึกอบรมได้รับการคัดเลือกจาก T-Systems, CFT, Andersen และ EPAM อย่างแน่นอน (พวกเขามีบทวิจารณ์ที่หลากหลาย โปรดตัดสินใจด้วยตัวเอง) สำหรับฉันมันเป็นวิธีที่ดีในการเข้าสู่สนามหากคุณมีโอกาสนั่งโดยไม่มีรายได้เป็นเวลาหลายเดือนและไม่ตาย =) โดยทั่วไปหลังจากประสบการณ์นี้ฉันรู้สึกหดหู่ใจเล็กน้อยและหยุดการค้นหาเรื่องราวทั้งหมดโดยหยุดการค้นหาชั่วคราว เป็นเวลาเกือบหกเดือน - ฉันยังคงทำงานในโปรไฟล์ก่อนหน้านี้ เขียนแอปพลิเคชันบางตัวเพื่อความสนุกสนาน แต่ไม่ได้โพสต์ลงใน Git ด้วยซ้ำ จนกระทั่งฉันได้พบกับคนรู้จักคนหนึ่งซึ่งฉันได้เล่าให้ฟังเกี่ยวกับความล้มเหลวของตำแหน่งงานว่างให้ฟังโดยไม่ได้ตั้งใจ ตอนนั้นเขาทำงานเป็นนักพัฒนาระดับกลางอยู่แล้ว แต่เขาเริ่มต้นในลักษณะเดียวกัน - ด้วยการศึกษาด้วยตนเอง คนรู้จักให้คำแนะนำสองสามข้อแก่ฉันซึ่งเขาใช้เองและช่วยฉันอย่างมากในการหางานในอนาคต ไม่ว่าคุณจะติดตามพวกเขาหรือไม่ก็ขึ้นอยู่กับคุณ เพราะ... พวกเขาไม่ซื่อสัตย์เลยในทางใดทางหนึ่ง ดังนั้นคำพูดเพิ่มเติม:-
ไม่ว่าด้วยวิธีใดก็ตาม คุณต้องมอบประสบการณ์เชิงพาณิชย์มากกว่า 6 เดือนในเรซูเม่ของคุณ: การฝึกงาน โครงการสำเร็จการศึกษา งานฟรีแลนซ์ งานทางไกล - อะไรก็ได้ สิ่งนี้จะช่วยได้อย่างมากในขั้นตอนการคัดกรองเรซูเม่เบื้องต้นโดยฝ่ายทรัพยากรบุคคล
-
ลบคำว่า Junior และเงินเดือนที่คาดหวังออกจากเรซูเม่ของคุณ เพียงแค่ปล่อยให้เป็น Java Developer และหารือเรื่องเงินกับแต่ละบริษัทเป็นรายบุคคล
-
พยายามให้ฝ่ายทรัพยากรบุคคลตั้งชื่อว่า “ทางแยก” ของเงินเดือนที่เสนอก่อนที่คุณจะตั้งชื่อความคาดหวังของคุณ หากบริษัทเสนอราคา 80-120,000 และคุณกำลังมองหา 40,000 ขึ้นไป ผู้เลือกบางรายจะปฏิบัติต่อคุณอย่างดูหมิ่น
-
สมัครงานกับตำแหน่งงานว่างทั้งหมดที่เหมาะกับตำแหน่งงานของคุณ แม้ว่าตำแหน่งงานเหล่านั้นจะต้องมีประสบการณ์เชิงพาณิชย์ 1-3 ปีก็ตาม
-
รวมภาษา เทคโนโลยี และกรอบงานทั้งหมดที่คุณเคยร่วมงานด้วยไว้ในเรซูเม่ของคุณ
-
ลงทะเบียนบน LinkedIn - มีบุคลากรฝ่ายทรัพยากรบุคคลจากบริษัทต่างๆ มากมาย กรอกโปรไฟล์ของคุณอย่างระมัดระวัง - อันที่จริงนี่คือเรซูเม่ของคุณด้วย ในการพัฒนาเครือข่ายผู้ติดต่อของคุณ ให้เพิ่ม LION ที่เกี่ยวข้องกับโปรไฟล์ของคุณ โดยยอมรับคำขอจากผู้ใช้ทุกคน
-
ลองใช้การทดสอบ Java ฟรีด้วยตัวเอง - มักจะแจกแจงเป็นกระดาษก่อนการสัมภาษณ์ระดับจูเนียร์ ควรเตรียมตัวล่วงหน้าจะดีกว่า
-
พวกเขามักจะถามเกี่ยวกับคอลเลกชันต่างๆ ว่ามีอะไรบ้าง แตกต่างกันอย่างไร และควรใช้เมื่อใดดีที่สุด
-
บนคลาสนามธรรมและอินเทอร์เฟซเสมอ - พวกเขาสามารถมีเมธอด, ฟิลด์, อันไหน, สามารถสืบทอดได้หรือไม่ ฯลฯ
-
เกือบตลอดเวลากับมัลติเธรด - สิ่งที่คุณใช้ในการทำงาน, คีย์เวิร์ด, วิธีการ คุณคุ้นเคยกับ util.concurrent หรือไม่
-
บ่อยครั้งเมื่อทำงานกับหน่วยความจำ - ฮีป, สแต็ก, และสตริงเหล่านี้จะเท่ากันหรือไม่ และวัตถุเหล่านี้เพราะเหตุใด
-
บางครั้งเกี่ยวกับอัลกอริธึม - คุณรู้อันไหน ซับซ้อนแค่ไหน ทำไม คุณสามารถเขียนอัลกอริธึมได้ตอนนี้
-
บางครั้งขึ้นอยู่กับรูปแบบ - อันไหนที่คุณรู้จัก อันไหนที่คุณใช้ เขียนซิงเกิลตันหรือโรงงาน
-
บางครั้งใน SQL - ประเภทของ JOIN ธุรกรรมคืออะไร วิธีดำเนินการใน JDBC เขียนแบบสอบถามสั้น ๆ
-
หน้าข้อมูลติดต่อทางธุรกิจของโปรไฟล์ Salesforce พร้อมการแก้ไขและเพิ่มบันทึกใหม่
-
การจำลองลิฟต์ในอาคารหลายชั้นโดยใช้ Spring State Machine พร้อมระบบควบคุมคอนโซล
-
แอปพลิเคชัน Android ที่ใช้ไลบรารี LibGDX พร้อมเอาต์พุตข้อความแบบอักขระต่ออักขระเมื่อกดปุ่ม
-
REST เลียนแบบการแชร์รถด้วยการเพิ่มไคลเอนต์ผ่านคำขอ HTTP และส่งคืน JSON
-
ปัญหาการเรียงลำดับกราฟที่ไม่มีทิศทางผ่านเซลล์อิสระ
-
ค้นหาสามเหลี่ยมหน้าจั่วโดยใช้พิกัดจากไฟล์
-
การรีแฟคเตอร์ของโค้ดที่เสร็จแล้วโดยใช้ Stream API
-
เครื่องคิดเลข UI พร้อมรองรับนิพจน์แบบไตรภาค
-
การแข่งขันของเธรดด้วยการเขียนผลลัพธ์ลงในไฟล์
-
พยายามไม่เพียงแต่ทำงานให้สำเร็จเท่านั้น แต่ยังต้องแน่ใจว่าโค้ดนั้นสอดคล้องกับหลักการ OOP
-
ตรวจสอบประสิทธิภาพโค้ดของคุณ - ครั้งหนึ่งฉันเคยถูกปฏิเสธเพราะเหนือสิ่งอื่นใด ฉันใช้ PrintStream แทน BufferedWriter
-
วางแผนเวลาดำเนินการของคุณด้วยอัตรากำไรขั้นต้น 50% - เริ่มต้นและสิ้นสุดเร็วกว่าทำ git push ตอนแปดโมงเช้าของกำหนดเวลา
GO TO FULL VERSION