JavaRush /จาวาบล็อก /Random-TH /เคล็ดลับหรือวิธีการหางานเป็น Java Developer ระดับกลางที่ไ...
Юрий
ระดับ
Москва

เคล็ดลับหรือวิธีการหางานเป็น Java Developer ระดับกลางที่ไม่มีประสบการณ์ใน Java

เผยแพร่ในกลุ่ม
สวัสดีนักเรียน Java และผู้เชี่ยวชาญทุกคน บางทีเรื่องราวของฉันอาจเป็นตัวอย่างสำหรับวิธีการบางอย่าง และสำหรับคนอื่นๆ ว่าจะไม่ทำอย่างไร มันคือวันที่ 19 ตุลาคม 2021 และวันนี้ฉันได้ผ่านช่วงทดลองงาน (3 เดือน) ไปแล้วในฐานะนักพัฒนาระดับกลาง Java ในบริษัทขนาดใหญ่ ฉันไม่เคยมีประสบการณ์ในการพัฒนา Java มาก่อน จนถึงวันที่ 4 มิถุนายน 2020 ฉันไม่รู้อะไรเลยเกี่ยวกับ Java เมื่อผมถูกจ้างเป็น Javaist ผมสัญญาว่าถ้าผ่านช่วงทดลองงานผมจะเขียนเรื่องราวความสำเร็จ บทความนี้จะแบ่งออกเป็น 2 ส่วน คือ Career background ( บทที่ 1-5 ไม่เกี่ยวข้องกับ Javaแต่คุณจะได้รับความรู้เกี่ยวกับอาชีพของคุณ) มาเป็น Javaist (บทที่ 6-9 - การเรียนรู้ Java, การสัมภาษณ์, การได้งาน, ประสบการณ์จริงครั้งแรก) <h3>บทที่ 1 นักเศรษฐศาสตร์</h3>เพื่อที่จะเข้าใจว่าฉันมีความรู้เกี่ยวกับ JavaRush ระดับใด ฉันจำเป็นต้องให้บันทึกชีวประวัติเกี่ยวกับตัวเอง พฤศจิกายน 2556 08.00 น. ฉันกำลังนั่งอยู่ในร้านกาแฟที่ Taganka และทำซ้ำคำสั่ง SQL อีกหนึ่งชั่วโมงผมจะสัมภาษณ์ตำแหน่งนักเศรษฐศาสตร์ชั้นนำฝ่ายการเงินของธนาคาร นี่เป็นการสัมภาษณ์เดียวที่ฉันได้รับเชิญและฉันต้องให้เต็ม 100% เพื่อประโยชน์ของเขาฉันบินจากเซนต์ปีเตอร์สเบิร์กและพักอยู่กับญาติในครัวเพื่อไม่ให้ใช้เงินออมเล็กน้อยที่มีอยู่แล้ว ผ่านไป 30 นาที แพนเค้กกับแฮมและชีสก็ถูกกิน และเราต้องก้าวไปสู่ความฝันอันล้ำค่าของเรา แต่ทุกอย่างกำลังสั่นไหว จะเกิดอะไรขึ้นถ้าฉันไม่ผ่านการสัมภาษณ์? โอเคมันไม่ใช่ ฉันไปธนาคาร รับบัตร และรอผู้ให้สัมภาษณ์ในห้องประชุม เวลาผ่านไปเป็นเวลานานมาก ผู้ชายอายุประมาณ 35 ปีและผู้หญิงวัยเดียวกันเข้ามา พวกเขาแนะนำตัวเองและขอเล่าเกี่ยวกับตัวเองว่า “ยูริ ดีใจจังเลย” ฉันอายุ 21 ปี ฉันกำลังศึกษานอกเวลาที่มหาวิทยาลัยในเซนต์ปีเตอร์สเบิร์ก ฉันทำงานเป็นพนักงานธนาคารในธนาคารเป็นเวลา 3 เดือน ฉันรู้ว่านี่ไม่ใช่สิ่งที่ฉันเรียนมา ฉันเริ่มมองไปที่ตลาดงานและเห็นว่านักเศรษฐศาสตร์ในมอสโกมี SQL เป็นข้อกำหนด ดังนั้นฉันจึงเรียนไปเรียนหลักสูตร (การบริหาร MS SQL - นั่นคือสิ่งที่ฉันมีนั่นคือสิ่งที่ฉันไป) แล้วคุณก็โทรหาฉัน พวกเขาพูดคุยเกี่ยวกับบริษัท สิ่งที่พวกเขาทำ (คำส่วนใหญ่ไม่สามารถเข้าใจได้) แล้วขอให้คุณทำแบบทดสอบ การทดสอบมีคำถาม 3 ข้อเกี่ยวกับ SQL: 1. กำหนดตารางแล้วดึงบันทึกทั้งหมดที่มี id = 10 ออกมา 2. กำหนดให้ 2 ตารางเชื่อมต่อกันและแสดงคอลัมน์จากแต่ละตาราง 3. จัดกลุ่มแผนกและระบุจำนวนพนักงานในแต่ละแผนก เป็นเรื่องน่าละอายอย่างยิ่งที่ฉันเขียนคำขอเหล่านี้ ตามด้วยการอภิปรายเกี่ยวกับความคาดหวังของฉันจากงาน และพวกเขาบอกวลีมหัศจรรย์แก่ฉัน: “ขอบคุณสำหรับการสัมภาษณ์ เราจะโทรกลับหาคุณ” หนึ่งสัปดาห์ผ่านไป และพวกเขาเสนอให้ฉันมาทำงานกับพวกเขา อิ่มเอม ช็อค สุขใจ! และเพื่อเงินอะไร: ในมือมี 70,000 รูเบิล! ใช่แล้ว ฉันจะรวย! ฉันมามอสโคว์ อาศัยอยู่ เช่าห้องตรงกลาง วันแรกจะร่าเริง หลังจากผ่านไป 10 วัน ความตระหนักก็เริ่มต้นขึ้น: ฉันมาจากไหน? ฉันไม่เข้าใจอะไรเลย! ฉันต้องจัดทำรายงานการจัดการสำหรับทั้งธนาคารทุกเดือน สำหรับฉันมันก็เหมือนกับสำหรับคุณผู้อ่านที่รัก ฉันรับรู้คำว่าเครดิตระหว่างธนาคาร สัญญาแลกเปลี่ยน การจัดสรรค่าใช้จ่าย ต้นทุน ฯลฯ เป็นคาถาในภาษาละติน ระหว่างทาง ฉันต้องเชี่ยวชาญด้านเทคนิคของปัญหา: MS Access (การรายงานทั้งหมดทำผ่าน VBA), MS SQL (เป็นที่เก็บข้อมูลใหม่ แทนที่จะเป็น Access), Oracle (ซึ่งในตอนแรกฉันเรียกว่า Oracle ทำให้เกิดอาการตีโพยตีพาย ในหมู่โปรแกรมเมอร์) และทันใดนั้นฉันก็เริ่มเข้าใจว่าด้านเทคนิคนั้นน่าสนใจสำหรับฉันมากกว่ามาก มีความพยายามที่จะสร้างแบบสอบถามที่ซับซ้อน (เป็นผลให้ฐานข้อมูลแฮงค์จากสคริปต์ของฉัน และผู้ดูแลระบบที่โกรธแค้นพยายามค้นหาว่าใครเป็นคนทำ) แต่งานหลักคือการเงิน ซึ่งเพิ่งเริ่มทำให้ฉันโกรธ หลังจากผ่านไปหนึ่งเดือนครึ่ง ฉันกำลังเขียนจดหมายลาออก เนื่องจากฉันไม่สามารถให้ผลลัพธ์ใดๆ ได้ (พูดตามตรง และพวกเขาก็ไม่ได้คาดหวังอะไรจากฉันเลยจริงๆ) หัวหน้าแผนกการเงินน้ำตาไหลแล้วพูดว่า: “อย่าไปสนใจเรื่องไร้สาระเลย” หนึ่งเดือนต่อมาฉันเขียนแถลงการณ์อีกครั้งและหัวหน้าแผนกที่ตกใจกับความหยิ่งยโสเช่นนี้ (ซึ่งต่อมากลายเป็นประธานคณะกรรมการธนาคาร) ส่งสัญญาณด้วยความงุนงงอย่างยิ่งชายคนนี้อายุ 21 ปีโดยไม่มีสูงกว่านั้น การศึกษาก็ได้รับทั้งเงินเดือนและความไว้วางใจ แต่เขากลับประพฤติเช่นนี้ สาเหตุของการเลิกจ้างนั้นมีอีกสองปัจจัย: เจ้านายซึ่งฉันไม่สามารถโต้ตอบอย่างเย่อหยิ่งได้และเก้าอี้ที่ไม่สบายซึ่งทำให้หลังของฉันเริ่มเจ็บ มันตลกมาก แต่นี่คือแรงจูงใจ เมื่อฉันเลิกฉันคิดว่าตอนนี้ฉันจะสบายใจมากขึ้น แต่มันไม่ได้อยู่ที่นั่น <h3>บทที่ 2 การสัมภาษณ์ 70 ครั้ง</h3>ออกจากธนาคาร ฉันหายใจเข้าลึกๆ “ฉันจะจัดแบบนี้ทุกคนจะต้องตะลึง” มีกำหนดการสัมภาษณ์ เงินเดือนสำหรับพวกเขาสูงกว่า และดูเหมือนว่าไม่จำเป็นต้องจัดการกับการรายงาน มีการสัมภาษณ์ 4 ครั้งและไม่มีใครจ้างฉัน สัมภาษณ์ 5, 6 ครั้ง - สิ่งเดียวกัน ฉันอาศัยอยู่กับผู้หญิงคนหนึ่งในห้องเช่า และเธอก็ได้งานทำและสามารถชดเชยการขาดรายได้ของฉันได้ แต่ยังไม่รู้ว่าจะไม่มีรายได้อีกนานแค่ไหน ฉันไปสัมภาษณ์ (ตำแหน่งงานว่างของนักวิเคราะห์) และพวกเขาถามเกี่ยวกับ SQL และ VBA เป็นหลัก สำหรับผู้ที่ไม่ทราบ VBA คือภาษาการเขียนโปรแกรมใน Excel, Access และผลิตภัณฑ์ MS Office อื่นๆ มีการสัมภาษณ์ 10 ครั้ง - ไม่มีอะไรเลย 20, 30 - ไม่มีอะไร ทุกคนรู้สึกอายที่ขาดประสบการณ์และการศึกษาสูง (ซึ่งดูเหมือนเป็นเรื่องเล็กน้อยสำหรับฉัน) 40 บทสัมภาษณ์ และความสิ้นหวังเริ่มคืบคลานเข้ามา ในช่วงสัมภาษณ์ปี 55-60 ฉันเริ่มเรียน 1C หญิงสาวที่กลายเป็นภรรยาแล้วขอออกเดินทางไปเซนต์ปีเตอร์สเบิร์กเพราะอย่างน้อยเธอก็มีบ้านเป็นของตัวเองที่นั่น และในการสัมภาษณ์ครั้งที่ 70 ฉันได้รับเชิญให้เป็นผู้ดูแลระบบฐานข้อมูล 1C (โดยมีโอกาสเป็นนักพัฒนา 1C) ในบริษัทขนาดเล็กในเขตอุตสาหกรรมของเซนต์ปีเตอร์สเบิร์กในราคา 50,000 รูเบิล นั่นคือการเติบโตของอาชีพ! <h3>บทที่ 3 การกลับมาของตำนาน</h3>เมื่อมองออกไปนอกหน้าต่างรถมินิบัส (การขนส่งขององค์กร) ที่เขตอุตสาหกรรมสีเทาของเซนต์ปีเตอร์สเบิร์ก และเดินทางหนึ่งชั่วโมงสี่สิบในเที่ยวเดียว ฉันก็รู้ว่าทำไม่ได้ ใช้ชีวิตแบบนั้น ความสนใจใน 1C หายไปตั้งแต่สัมผัสแรกของระบบที่เขียนเอง จำเป็นต้องมีแผน และเขาก็เติบโตขึ้น: ในตอนเย็นเขาศึกษา SQL และในขณะเดียวกันก็ติดตามไซต์งานที่มีชื่อเสียง สิ่งกระตุ้นสุดท้ายสำหรับการเลิกจ้างคือสถานการณ์: ผู้อำนวยการทั่วไปไม่ต้องการให้ฉันไปพักผ่อนตามแผนแม้ว่าจะซื้อตั๋วไปแล้วก็ตาม หลังจากวันหยุดของฉัน ฉันเขียนใบสมัครและส่งเรซูเม่สำหรับตำแหน่งงานว่างในมอสโกอีกครั้ง เป็นอีกครั้งที่ฉันได้รับการสัมภาษณ์ที่ธนาคารขนาดใหญ่แห่งหนึ่งในกรุงมอสโก ฉันมาที่ครัวญาติและไปสัมภาษณ์อีกครั้ง เมื่อ HR เขียนที่อยู่ฉันไม่อยากจะเชื่อสายตาตัวเอง - นี่คืออาคารที่ฉันใฝ่ฝันว่าจะได้ทำงาน (ตอนที่ฉันอาศัยอยู่ครั้งสุดท้ายในมอสโกวเพิ่งอยู่ระหว่างการก่อสร้าง) ตำแหน่งดังกล่าวเรียกว่าหัวหน้าผู้เชี่ยวชาญด้านสนับสนุนระบบสารสนเทศ ฉันไปสำนักงาน ฉันได้รับการต้อนรับจากชายอายุประมาณ 30 ในชุดแจ็กเก็ตและกางเกงยีนส์สุดเก๋ เราขึ้นไปบนชั้น 15 และเมื่อฉันเห็นทิวทัศน์ของเมืองแบบพาโนรามา ฉันแทบแทบหยุดหายใจ: เห็นตึกสูงระฟ้าของสตาลินทั้งหมด รูปแบบทั้งหมดของอาคารมีความทันสมัยมาก: ในห้องทำงานของเจ้านายมีตู้แช่ไวน์ พิพิธภัณฑ์สัตว์น้ำทันสมัย ​​ภาพวาดของหญิงสาวเปลือยในสไตล์ขาวดำ สิ่งนี้ทำให้เกิดเอฟเฟกต์ "ว้าว" การสนทนากับเจ้านายไม่ได้เกิดขึ้นเหมือนปกติ เขาคุยกันประมาณ 40 นาทีเกี่ยวกับสิ่งที่เกิดขึ้นที่ธนาคาร ฉันไม่เข้าใจอะไรเลยแต่พยักหน้า เมื่อฉันถาม: เมื่อไหร่จะเริ่มถามฉัน? เขาไม่ได้สนใจ. เป็นอีกครั้งสำหรับคำถามของฉันที่ว่า “จะมีการสัมภาษณ์ทางเทคนิคเมื่อใด” คำตอบคือ “ใช่ เราจะจ้างคุณอยู่ดี หากคุณรับมือไม่ได้ เราจะไล่คุณออก” มันถูกพูดด้วยรอยยิ้มและฉันก็รู้ว่าทุกสิ่งความฝันเป็นจริงอีกครั้ง! <h3>บทที่ 4 การค้นหาตัวเองในไอที </h3>เมื่อฉันมาถึงสถานที่ใหม่ ฉันเข้าใจว่าทำไมพวกเขาถึงจ้างฉันทันที ฉันจะอธิบายภาพเหมือนทั่วไปของพนักงานแผนก: อายุเฉลี่ย 55 ปี, Muscovite, การศึกษาของ Moscow State University, ทำงานที่สถาบันวิจัยการป้องกันประเทศในสมัยโซเวียต และการเปลี่ยนผ่านสู่ภาคการธนาคารในยุค 90 ทำงานที่นี่มา 20 ปีแล้ว ปี. ครึ่งหนึ่งเป็นผู้ชาย, ครึ่งหนึ่งเป็นผู้หญิง. พวกเขาไม่สอดคล้องกับการตกแต่งภายในโดยรอบโดยสิ้นเชิง เรามีส่วนร่วมในการบำรุงรักษาโปรแกรมการรายงานสำหรับการบัญชี แน่นอนว่าทั้งหมดนี้อยู่ในสคริปต์ VBA และ SQL โบราณที่เขียนโดยนักพัฒนาในช่วงปลายยุค 90 และต้นยุค 2000 มันคือปี 2015 และระบบอัตโนมัติทำได้ผ่าน MS Access นั่นคือมันดูแย่มาก แต่มีความแตกต่างกันเล็กน้อย - พวกเขาให้สิ่งที่ลูกค้า (การบัญชี) ต้องการ และตรงต่อเวลาและอยู่ในรูปแบบที่ต้องการ มีเพียงพวกเขาเท่านั้นที่รู้ว่ามันทำงานอย่างไร และแม้แต่ Onotole ก็ไม่สามารถจินตนาการถึงความซับซ้อนของการพัฒนาของพวกเขาได้ และผู้จัดการฝ่ายไอทีคนใดก็ไม่สามารถไล่พวกเขาออกได้ - หัวหน้าฝ่ายบัญชีไปที่คณะกรรมการธนาคารและปกป้องพนักงานคนใดก็ตามที่ทำหน้าที่เพื่อผลประโยชน์ของแผนกบัญชี ผู้จัดการต้องการให้ฉันเล่นบทบาทของม้าโทรจัน: ฉันศึกษาการพัฒนาทั้งหมดของพวกเขา จากนั้นจึงย้ายข้อมูลไปยังระบบใหม่ จากนั้นพนักงานเก่าก็สามารถถูกไล่ออก และผมก็สามารถถูกย้ายไปยังระบบใหม่ได้ ก่อนอื่น ฉันเจาะลึกกระบวนการของพวกเขาและดูโค้ด VBA ฉันค่อยๆ เรียนรู้ที่จะอ่านโค้ด VBA หนึ่งปีต่อมาฉันก็รู้วิธีเขียนโค้ดแล้ว งานทั่วไป: กำหนดฐานข้อมูล ดึงข้อมูลจากฐานข้อมูล และใส่ลงใน Excel ในรูปแบบที่กำหนด ดังที่ Zadornov พูดไว้ ให้หายใจเข้าลึกๆ การรายงานทั้งหมดของแผนก (และนั่นคือรายงานรายวัน 50 ฉบับ รายเดือน 20 ฉบับ!) ดำเนินการด้วยตนเอง! คาร์ล คุณเข้าใจไหมว่าผู้คนเปลี่ยนวันที่เป็น +1 ทุกวันด้วยมือของพวกเขาใน 50 รายงาน! พวกเขานั่งรอผลรายงานฉบับหนึ่งเป็นเวลา 1-10 นาทีแล้วเปิดตัวอีกรายงาน! ยิ่งไปกว่านั้น รายงานประจำวันจะต้องเปิดตัวในช่วงเวลาหนึ่ง และพระเจ้าห้ามไม่ให้คุณมาสาย! พวกเขาไม่เพียงสร้างรายงานเท่านั้น แต่ยังรันขั้นตอนในฐานข้อมูลด้วยตนเองโดยไม่ต้องใช้ตัวแปร! นั่นคือแทนที่จะใช้ตัวแปร @startDate = '2015-01-01' พวกเขาจะเปลี่ยนวันที่เดียวกันด้วยตนเองใน 20 แห่ง! หลังจากที่ดูทั้งหมดนี้แล้ว ฉันก็เริ่มเรียน Python และเมื่อใช้ร่วมกับ VBA, SQL และ Task scheduler ฉันทำทุกอย่างให้เป็นระบบอัตโนมัติภายในสองปี ไม่เพียงแต่เป็นแบบอัตโนมัติ แต่ยังเร่งความเร็วรายงานจำนวนมากด้วย: หากคุณละทิ้ง MS Access + VBA หันไปใช้ MS SQL + TSQL คุณสามารถเพิ่มประสิทธิภาพการทำงานได้หลายเท่า บันทึกของฉันกำลังเร่งการสร้างรายงานใน100ครั้งหนึ่ง! แต่เพื่อนร่วมงานของฉันไม่พอใจอย่างยิ่งกับระบบอัตโนมัติเช่นนี้ ฉันจึงถูกประกาศว่าเป็นศัตรูของประชาชน (พวกเขาอยากนั่งเงียบ ๆ จนกว่าจะเกษียณ) เวลาผ่านไปและการย้ายข้อมูลก็สำเร็จ ผู้จัดการให้ความสำคัญกับฉันมาก: หากในช่วงเริ่มต้นอาชีพของฉันฉันมาทำงานเวลา 8.00 น. หลังจากนั้นไม่นานฉันก็สามารถมาได้ตลอดเวลาจนถึง 12.00 น. เพิ่มเงินเดือนและตำแหน่งอย่างต่อเนื่อง จ่ายเงินสำหรับการทำงานในวันหยุดสุดสัปดาห์มากขึ้น มากกว่าสองเท่าของจำนวนเงิน นั่งแท็กซี่ไปที่บ้านหากคุณทำงานสาย การสื่อสารเคลื่อนที่ กล่าวโดยสรุป - พวกหัวกะทิ! <h3>บทที่ 5 กรงทองคำ</h3>ทันใดนั้น หลังจากผ่านไป 3.5 ปี การจัดการด้านไอทีแบบใหม่ก็เข้ามาและบอกว่าระบบที่ฉันย้ายข้อมูลไปนั้นไม่จำเป็นอีกต่อไป แต่ระบบเก่าจะยังคงอยู่ ผู้จัดการของฉันกำลังก้าวขึ้นสู่ระดับอาชีพ และเชิญชวนให้ฉันย้ายไปแผนกที่มีความก้าวหน้ามากขึ้น ในการประชุมกับหัวหน้าแผนกก้าวหน้า ฉันเข้าใจว่ากลุ่มเทคโนโลยีของแผนกนี้ไม่เป็นที่รู้จักสำหรับฉัน: Oracle, .net, C#, Linux ฯลฯ + ความเกลียดชังต่อผู้ที่อาจเป็นหัวหน้า ฉันบอกผู้จัดการของฉันว่าฉันไม่สนใจแผนกก้าวหน้า และเขาก็ลืมฉันโดยสะดวก แล้วคำถามก็กลายเป็น: จะทำอย่างไรต่อไป? รายได้ค่อนข้างดีอยู่แล้ว นักพัฒนารุ่นน้องจะไม่จ้างฉันด้วยเงินเดือนนั้น หลังจากคิดถึงทักษะของตัวเองแล้ว ฉันก็ตระหนักว่าฉันต้องเข้าสู่การเรียนรู้ของเครื่อง ทุกอย่างน่าสนใจจนกระทั่งการเผชิญหน้าครั้งแรกกับสถิติทางคณิตศาสตร์ซึ่งทำให้เกิดความรังเกียจในสถาบันเท่านั้น แค่นั้นแหละอาการมึนงงเป็นเวลาหกเดือน! เวลาผ่านไป และวันหนึ่งขณะเดินอยู่ ฉันก็นึกถึงเว็บไซต์ที่จะแสดงร้านอาหารดีๆ บนแผนที่ของมอสโก เริ่มเรียนรู้ HTML, CSS, JS ฉันใช้เวลาเรียน 3 เดือน ไม่มีความรู้ในการสร้างเว็บไซต์ที่ครบครันแต่ก็สามารถฝึกฝนในที่ทำงานได้ แนวคิดเกิดขึ้น: เพื่อสร้างพอร์ทัลสำหรับนักบัญชีเพื่อให้พวกเขาสามารถดาวน์โหลดรายงานใด ๆ ด้วยตนเองได้โดยใช้ปุ่ม การสร้างพอร์ทัลใช้เวลา 2 เดือน และเว็บแอปพลิเคชัน SPA (แอปพลิเคชันหน้าเดียว) เกิดขึ้นใน React js พร้อมแบ็กเอนด์ Node.js รันสคริปต์ SQL ย้อนกลับ (ฉันไม่รู้เกี่ยวกับเฟรมเวิร์กอย่าง Hibernate) เรียกใช้ Python และเก็บข้อมูลเพิ่มเติมใน MongoDb (เช่น เกี่ยวกับผู้ใช้ไซต์) ภายนอกไซต์ดูดีมาก (bootstrap 4 แอนิเมชั่นที่ทันสมัย) ฉันยังคงภูมิใจกับโครงการนี้ แต่เมื่อฉันแสดงรหัสของฉันให้นักพัฒนาเว็บของธนาคารเห็น พวกเขาก็ตกตะลึง ไม่ใช่ชั้นเรียนของคุณเอง! คุณสมบัติเฉพาะ ฮาร์ดคอร์เท่านั้น! พวกเขาชื่นชมฉัน แต่บอกว่าฉันยังต้องศึกษาอีกมากเพื่อที่จะเป็น Middle full-stack Developer ฉันพยายามหางานในตำแหน่งนักวิเคราะห์ แต่ไม่มีข้อเสนอพิเศษ ฉันคิดว่า ฉันไม่ได้อยู่ที่นั่น ฉันจะโพสต์เรซูเม่ของนักพัฒนาฟูลสแต็คของฉัน มีสายเข้ามา แต่ในระหว่างการสัมภาษณ์ ฉันก็บินไปปารีสเหมือนเช่นไม้อัด ตัวอย่างเช่น ฉันไม่รู้ว่า HashMap, HashSet คืออะไร และเหตุใดจึงจำเป็น ไม่มีความคิดแม้แต่น้อยเกี่ยวกับ OOP, รูปแบบการเขียนโปรแกรม, อัลกอริธึม, การทดสอบ, Git ฉันจำความรู้สึกละอายที่ถูกลืมไปนานแล้วจากการไม่รู้สิ่งพื้นฐาน ทันใดนั้นก็มีข้อเสนอเข้ามารับตำแหน่งหัวหน้าฝ่ายวิเคราะห์ลูกค้าของบริษัททางการเงินแห่งหนึ่ง หนึ่งสัปดาห์ก่อนที่ประเทศจะปิดตัวลงเนื่องจากการแพร่ระบาด ฉันได้งานในบริษัททางการเงิน แต่มีความรู้สึกสองอย่าง ในด้านหนึ่งเงินเดือนที่สูงนั้นค่อนข้างอบอุ่น ในทางกลับกัน ด้านเทคนิคจะมีการพัฒนาเพียงเล็กน้อย หนึ่งสัปดาห์ผ่านไปหลังจากติดตั้งอุปกรณ์และมีการทำงานจากระยะไกล เนื่องจากภาคการเงินไม่มีวันหยุดทำงาน เราจึงทำงานตามปกติ เจ้านายคนใหม่กลายเป็นคนบ้าบอมาก เขาเสนอให้ขูด Facebook สร้างโครงข่ายประสาทเทียมของตัวเองเพื่อศึกษาลูกค้า (โดยไม่มีนักวิทยาศาสตร์ข้อมูลเป็นพนักงาน) มีการเสนอพนักงานใหม่ให้เรียนรู้ Python ในหนึ่งสัปดาห์ ฯลฯ วันหยุดที่ไม่ได้รับค่าจ้างกลายเป็นเรื่องปกติ การลาออกเป็นเรื่องโง่ คุณจะหางานทำที่ไหนในช่วงที่มีการระบาดใหญ่? แต่ความอดทนหมดลงหลังจากผ่านไป 2 เดือน เมื่อมีการประกาศว่าจะไม่มีโบนัสรายไตรมาส ข้อแตกต่างคือเมื่อเราตกลงเรื่องเงินเดือน ณ เวลาที่จ้าง hr กล่าวว่าเงินเดือนจะแบ่งออกเป็นเงินเดือน (60%) และโบนัสรายไตรมาส (40%) ซึ่งจะจ่ายเสมอ เห็นได้ชัดว่าเราเลือกทางที่ผิด และเราจำเป็นต้องเริ่มมองหางานใหม่ <h3>บทที่ 6 การเริ่มต้นเชี่ยวชาญ Java</h3>วันหนึ่งที่ดีในเดือนพฤษภาคม ฉันได้รับคำเชิญให้เข้ารับการสัมภาษณ์ตำแหน่ง "นักพัฒนา" ที่ว่าง บริษัทในอุตสาหกรรมประกันภัยต้องการบุคลากรที่จะพัฒนาผลิตภัณฑ์ประกันภัย จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม แต่เนื่องจากนี่คือการพัฒนาที่ “ไม่เหมือนใคร” ของบริษัท จึงไม่จำเป็นต้องมีภาษาใดภาษาหนึ่งโดยเฉพาะ Git และอื่นๆก็จำเป็นเช่นกัน ฉันนัดสัมภาษณ์ในอีกสองวัน และฉันได้ศึกษาพื้นฐานของ Git ในเวลาว่าง ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ Python, JS, Git, SQL ฉันตอบทุกอย่างยกเว้นแนวคิดเรื่อง "วิธีการโอเวอร์โหลด" และฉันได้รับเชิญให้ทำงานใน 2 สัปดาห์ ปรากฏว่าบริษัทซื้อระบบนี้ไปนานแล้ว เขียนด้วยภาษา Java (ด้านหน้าและด้านหลัง) ซึ่งคุณสามารถสร้างกระบวนการทางธุรกิจโดยไม่ต้องรู้ภาษาการเขียนโปรแกรม (แม่นยำยิ่งขึ้นโดยใช้ภาษาโปรแกรม Jelly ในตัว) ฟังดูดี แต่จริงๆ แล้วทุกอย่างบิดเบี้ยวไป การพูดนอกเรื่องโคลงสั้น ๆ: เทคโนโลยีใด ๆ ก็มียุคและขนาดของตัวเอง การทำรายงานทั้งหมดในปี 2000 เฉพาะใน Excel เท่านั้นนั้นยอดเยี่ยม การทำสิ่งเดียวกันในปี 2021 นั้นไม่ค่อยดีนัก เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากที่นั่น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง ในทางกลับกัน ด้านเทคนิคจะมีการพัฒนาเพียงเล็กน้อย หนึ่งสัปดาห์ผ่านไปหลังจากติดตั้งอุปกรณ์และมีการทำงานจากระยะไกล เนื่องจากภาคการเงินไม่มีวันหยุดทำงาน เราจึงทำงานตามปกติ เจ้านายคนใหม่กลายเป็นคนบ้าบอมาก เขาเสนอให้ขูด Facebook สร้างโครงข่ายประสาทเทียมของตัวเองเพื่อศึกษาลูกค้า (โดยไม่มีนักวิทยาศาสตร์ข้อมูลเป็นพนักงาน) มีการเสนอพนักงานใหม่ให้เรียนรู้ Python ในหนึ่งสัปดาห์ ฯลฯ วันหยุดที่ไม่ได้รับค่าจ้างกลายเป็นเรื่องปกติ การลาออกเป็นเรื่องโง่ คุณจะหางานทำที่ไหนในช่วงที่มีการระบาดใหญ่? แต่ความอดทนหมดลงหลังจากผ่านไป 2 เดือน เมื่อมีการประกาศว่าจะไม่มีโบนัสรายไตรมาส ข้อแตกต่างคือเมื่อเราตกลงเรื่องเงินเดือน ณ เวลาที่จ้าง hr กล่าวว่าเงินเดือนจะแบ่งออกเป็นเงินเดือน (60%) และโบนัสรายไตรมาส (40%) ซึ่งจะจ่ายเสมอ เห็นได้ชัดว่าเราเลือกทางที่ผิด และเราจำเป็นต้องเริ่มมองหางานใหม่ <h3>บทที่ 6 การเริ่มต้นเชี่ยวชาญ Java</h3>วันหนึ่งที่ดีในเดือนพฤษภาคม ฉันได้รับคำเชิญให้เข้ารับการสัมภาษณ์ตำแหน่ง "นักพัฒนา" ที่ว่าง บริษัทในอุตสาหกรรมประกันภัยต้องการบุคลากรที่จะพัฒนาผลิตภัณฑ์ประกันภัย จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม แต่เนื่องจากนี่คือการพัฒนาที่ “ไม่เหมือนใคร” ของบริษัท จึงไม่จำเป็นต้องมีภาษาใดภาษาหนึ่งโดยเฉพาะ Git และอื่นๆก็จำเป็นเช่นกัน ฉันนัดสัมภาษณ์ในอีกสองวัน และฉันได้ศึกษาพื้นฐานของ Git ในเวลาว่าง ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ Python, JS, Git, SQL ฉันตอบทุกอย่างยกเว้นแนวคิดเรื่อง "วิธีการโอเวอร์โหลด" และฉันได้รับเชิญให้ทำงานใน 2 สัปดาห์ ปรากฏว่าบริษัทซื้อระบบนี้ไปนานแล้ว เขียนด้วยภาษา Java (ด้านหน้าและด้านหลัง) ซึ่งคุณสามารถสร้างกระบวนการทางธุรกิจโดยไม่ต้องรู้ภาษาการเขียนโปรแกรม (แม่นยำยิ่งขึ้นโดยใช้ภาษาโปรแกรม Jelly ในตัว) ฟังดูดี แต่จริงๆ แล้วทุกอย่างบิดเบี้ยวไป การพูดนอกเรื่องโคลงสั้น ๆ: เทคโนโลยีใด ๆ ก็มียุคและขนาดของตัวเอง การทำรายงานทั้งหมดในปี 2000 เฉพาะใน Excel เท่านั้นนั้นยอดเยี่ยม การทำสิ่งเดียวกันในปี 2021 นั้นไม่ค่อยดีนัก เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากตรงนั้น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง ในทางกลับกัน ด้านเทคนิคจะมีการพัฒนาเพียงเล็กน้อย หนึ่งสัปดาห์ผ่านไปหลังจากติดตั้งอุปกรณ์และมีการทำงานจากระยะไกล เนื่องจากภาคการเงินไม่มีวันหยุดทำงาน เราจึงทำงานตามปกติ เจ้านายคนใหม่กลายเป็นคนบ้าบอมาก เขาเสนอให้ขูด Facebook สร้างโครงข่ายประสาทเทียมของตัวเองเพื่อศึกษาลูกค้า (โดยไม่มีนักวิทยาศาสตร์ข้อมูลเป็นพนักงาน) มีการเสนอพนักงานใหม่ให้เรียนรู้ Python ในหนึ่งสัปดาห์ ฯลฯ วันหยุดที่ไม่ได้รับค่าจ้างกลายเป็นเรื่องปกติ การลาออกเป็นเรื่องโง่ คุณจะหางานทำที่ไหนในช่วงที่มีการระบาดใหญ่? แต่ความอดทนหมดลงหลังจากผ่านไป 2 เดือน เมื่อมีการประกาศว่าจะไม่มีโบนัสรายไตรมาส ข้อแตกต่างคือเมื่อเราตกลงเรื่องเงินเดือน ณ เวลาที่จ้าง hr กล่าวว่าเงินเดือนจะแบ่งออกเป็นเงินเดือน (60%) และโบนัสรายไตรมาส (40%) ซึ่งจะจ่ายเสมอ เห็นได้ชัดว่าเราเลือกทางที่ผิด และเราจำเป็นต้องเริ่มมองหางานใหม่ <h3>บทที่ 6 การเริ่มต้นเชี่ยวชาญ Java</h3>วันหนึ่งที่ดีในเดือนพฤษภาคม ฉันได้รับคำเชิญให้เข้ารับการสัมภาษณ์ตำแหน่ง "นักพัฒนา" ที่ว่าง บริษัทในอุตสาหกรรมประกันภัยต้องการบุคลากรที่จะพัฒนาผลิตภัณฑ์ประกันภัย จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม แต่เนื่องจากนี่คือการพัฒนาที่ “ไม่เหมือนใคร” ของบริษัท จึงไม่จำเป็นต้องมีภาษาใดภาษาหนึ่งโดยเฉพาะ Git และอื่นๆก็จำเป็นเช่นกัน ฉันนัดสัมภาษณ์ในอีกสองวัน และฉันได้ศึกษาพื้นฐานของ Git ในเวลาว่าง ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ Python, JS, Git, SQL ฉันตอบทุกอย่างยกเว้นแนวคิดเรื่อง "วิธีการโอเวอร์โหลด" และฉันได้รับเชิญให้ทำงานใน 2 สัปดาห์ ปรากฏว่าบริษัทซื้อระบบนี้ไปนานแล้ว เขียนด้วยภาษา Java (ด้านหน้าและด้านหลัง) ซึ่งคุณสามารถสร้างกระบวนการทางธุรกิจโดยไม่ต้องรู้ภาษาการเขียนโปรแกรม (แม่นยำยิ่งขึ้นโดยใช้ภาษาโปรแกรม Jelly ในตัว) ฟังดูดี แต่จริงๆ แล้วทุกอย่างบิดเบี้ยวไป การพูดนอกเรื่องโคลงสั้น ๆ: เทคโนโลยีใด ๆ ก็มียุคและขนาดของตัวเอง การทำรายงานทั้งหมดในปี 2000 เฉพาะใน Excel เท่านั้นนั้นยอดเยี่ยม การทำสิ่งเดียวกันในปี 2021 นั้นไม่ค่อยดีนัก เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากตรงนั้น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง สร้างโครงข่ายประสาทเทียมของคุณเองเพื่อศึกษาลูกค้า (โดยไม่มีนักวิทยาศาสตร์ข้อมูลเป็นพนักงาน) มีการเสนอพนักงานใหม่ให้เรียนรู้ Python ในหนึ่งสัปดาห์ ฯลฯ วันหยุดที่ไม่ได้รับค่าจ้างกลายเป็นเรื่องปกติ การลาออกเป็นเรื่องโง่ คุณจะหางานทำที่ไหนในช่วงที่มีการระบาดใหญ่? แต่ความอดทนหมดลงหลังจากผ่านไป 2 เดือน เมื่อมีการประกาศว่าจะไม่มีโบนัสรายไตรมาส ข้อแตกต่างคือเมื่อเราตกลงเรื่องเงินเดือน ณ เวลาที่จ้าง hr กล่าวว่าเงินเดือนจะแบ่งออกเป็นเงินเดือน (60%) และโบนัสรายไตรมาส (40%) ซึ่งจะจ่ายเสมอ เห็นได้ชัดว่าเราเลือกทางที่ผิด และเราจำเป็นต้องเริ่มมองหางานใหม่ <h3>บทที่ 6 การเริ่มต้นเชี่ยวชาญ Java</h3>วันหนึ่งที่ดีในเดือนพฤษภาคม ฉันได้รับคำเชิญให้เข้ารับการสัมภาษณ์ตำแหน่ง "นักพัฒนา" ที่ว่าง บริษัทในอุตสาหกรรมประกันภัยต้องการบุคลากรที่จะพัฒนาผลิตภัณฑ์ประกันภัย จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม แต่เนื่องจากนี่คือการพัฒนาที่ “ไม่เหมือนใคร” ของบริษัท จึงไม่จำเป็นต้องมีภาษาใดภาษาหนึ่งโดยเฉพาะ Git และอื่นๆก็จำเป็นเช่นกัน ฉันนัดสัมภาษณ์ในอีกสองวัน และฉันได้ศึกษาพื้นฐานของ Git ในเวลาว่าง ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ Python, JS, Git, SQL ฉันตอบทุกอย่างยกเว้นแนวคิดเรื่อง "วิธีการโอเวอร์โหลด" และฉันได้รับเชิญให้ทำงานใน 2 สัปดาห์ ปรากฏว่าบริษัทซื้อระบบนี้ไปนานแล้ว เขียนด้วยภาษา Java (ด้านหน้าและด้านหลัง) ซึ่งคุณสามารถสร้างกระบวนการทางธุรกิจโดยไม่ต้องรู้ภาษาการเขียนโปรแกรม (แม่นยำยิ่งขึ้นโดยใช้ภาษาโปรแกรม Jelly ในตัว) ฟังดูดี แต่จริงๆ แล้วทุกอย่างบิดเบี้ยวไป การพูดนอกเรื่องโคลงสั้น ๆ: เทคโนโลยีใด ๆ ก็มียุคและขนาดของตัวเอง การทำรายงานทั้งหมดในปี 2000 เฉพาะใน Excel เท่านั้นนั้นยอดเยี่ยม การทำสิ่งเดียวกันในปี 2021 นั้นไม่ค่อยดีนัก เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากที่นั่น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง สร้างโครงข่ายประสาทเทียมของคุณเองเพื่อศึกษาลูกค้า (โดยไม่มีนักวิทยาศาสตร์ข้อมูลเป็นพนักงาน) มีการเสนอพนักงานใหม่ให้เรียนรู้ Python ในหนึ่งสัปดาห์ ฯลฯ วันหยุดที่ไม่ได้รับค่าจ้างกลายเป็นเรื่องปกติ การลาออกเป็นเรื่องโง่ คุณจะหางานทำที่ไหนในช่วงที่มีการระบาดใหญ่? แต่ความอดทนหมดลงหลังจากผ่านไป 2 เดือน เมื่อมีการประกาศว่าจะไม่มีโบนัสรายไตรมาส ข้อแตกต่างคือเมื่อเราตกลงเรื่องเงินเดือน ณ เวลาที่จ้าง hr กล่าวว่าเงินเดือนจะแบ่งออกเป็นเงินเดือน (60%) และโบนัสรายไตรมาส (40%) ซึ่งจะจ่ายเสมอ เห็นได้ชัดว่าเราเลือกทางที่ผิด และเราจำเป็นต้องเริ่มมองหางานใหม่ <h3>บทที่ 6 การเริ่มต้นเชี่ยวชาญ Java</h3>วันหนึ่งที่ดีในเดือนพฤษภาคม ฉันได้รับคำเชิญให้เข้ารับการสัมภาษณ์ตำแหน่ง "นักพัฒนา" ที่ว่าง บริษัทในอุตสาหกรรมประกันภัยต้องการบุคลากรที่จะพัฒนาผลิตภัณฑ์ประกันภัย จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม แต่เนื่องจากนี่คือการพัฒนาที่ “ไม่เหมือนใคร” ของบริษัท จึงไม่จำเป็นต้องมีภาษาใดภาษาหนึ่งโดยเฉพาะ Git และอื่นๆก็จำเป็นเช่นกัน ฉันนัดสัมภาษณ์ในอีกสองวัน และฉันได้ศึกษาพื้นฐานของ Git ในเวลาว่าง ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ Python, JS, Git, SQL ฉันตอบทุกอย่างยกเว้นแนวคิดเรื่อง "วิธีการโอเวอร์โหลด" และฉันได้รับเชิญให้ทำงานใน 2 สัปดาห์ ปรากฏว่าบริษัทซื้อระบบนี้ไปนานแล้ว เขียนด้วยภาษา Java (ด้านหน้าและด้านหลัง) ซึ่งคุณสามารถสร้างกระบวนการทางธุรกิจโดยไม่ต้องรู้ภาษาการเขียนโปรแกรม (แม่นยำยิ่งขึ้นโดยใช้ภาษาโปรแกรม Jelly ในตัว) ฟังดูดี แต่จริงๆ แล้วทุกอย่างบิดเบี้ยวไป การพูดนอกเรื่องโคลงสั้น ๆ: เทคโนโลยีใด ๆ ก็มียุคและขนาดของตัวเอง การทำรายงานทั้งหมดในปี 2000 เฉพาะใน Excel เท่านั้นนั้นยอดเยี่ยม การทำสิ่งเดียวกันในปี 2021 นั้นไม่ค่อยดีนัก เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากที่นั่น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง <h3>บทที่ 6 การเริ่มต้นเชี่ยวชาญ Java</h3>วันหนึ่งที่ดีในเดือนพฤษภาคม ฉันได้รับคำเชิญให้เข้ารับการสัมภาษณ์ตำแหน่ง "นักพัฒนา" ที่ว่าง บริษัทในอุตสาหกรรมประกันภัยต้องการบุคลากรที่จะพัฒนาผลิตภัณฑ์ประกันภัย จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม แต่เนื่องจากนี่คือการพัฒนาที่ “ไม่เหมือนใคร” ของบริษัท จึงไม่จำเป็นต้องมีภาษาใดภาษาหนึ่งโดยเฉพาะ Git และอื่นๆก็จำเป็นเช่นกัน ฉันนัดสัมภาษณ์ในอีกสองวัน และฉันได้ศึกษาพื้นฐานของ Git ในเวลาว่าง ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ Python, JS, Git, SQL ฉันตอบทุกอย่างยกเว้นแนวคิดเรื่อง "วิธีการโอเวอร์โหลด" และฉันได้รับเชิญให้ทำงานใน 2 สัปดาห์ ปรากฏว่าบริษัทซื้อระบบนี้ไปนานแล้ว เขียนด้วยภาษา Java (ด้านหน้าและด้านหลัง) ซึ่งคุณสามารถสร้างกระบวนการทางธุรกิจโดยไม่ต้องรู้ภาษาการเขียนโปรแกรม (แม่นยำยิ่งขึ้นโดยใช้ภาษาโปรแกรม Jelly ในตัว) ฟังดูดี แต่จริงๆ แล้วทุกอย่างบิดเบี้ยวไป การพูดนอกเรื่องโคลงสั้น ๆ: เทคโนโลยีใด ๆ ก็มียุคและขนาดของตัวเอง การทำรายงานทั้งหมดในปี 2000 เฉพาะใน Excel เท่านั้นนั้นยอดเยี่ยม การทำสิ่งเดียวกันในปี 2021 นั้นไม่ค่อยดีนัก เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากที่นั่น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง <h3>บทที่ 6 การเริ่มต้นเชี่ยวชาญ Java</h3>วันหนึ่งที่ดีในเดือนพฤษภาคม ฉันได้รับคำเชิญให้เข้ารับการสัมภาษณ์ตำแหน่ง "นักพัฒนา" ที่ว่าง บริษัทในอุตสาหกรรมประกันภัยต้องการบุคลากรที่จะพัฒนาผลิตภัณฑ์ประกันภัย จำเป็นต้องมีประสบการณ์การเขียนโปรแกรม แต่เนื่องจากนี่คือการพัฒนาที่ “ไม่เหมือนใคร” ของบริษัท จึงไม่จำเป็นต้องมีภาษาใดภาษาหนึ่งโดยเฉพาะ Git และอื่นๆก็จำเป็นเช่นกัน ฉันนัดสัมภาษณ์ในอีกสองวัน และฉันได้ศึกษาพื้นฐานของ Git ในเวลาว่าง ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ Python, JS, Git, SQL ฉันตอบทุกอย่างยกเว้นแนวคิดเรื่อง "วิธีการโอเวอร์โหลด" และฉันได้รับเชิญให้ทำงานใน 2 สัปดาห์ ปรากฏว่าบริษัทซื้อระบบนี้ไปนานแล้ว เขียนด้วยภาษา Java (ด้านหน้าและด้านหลัง) ซึ่งคุณสามารถสร้างกระบวนการทางธุรกิจโดยไม่ต้องรู้ภาษาการเขียนโปรแกรม (แม่นยำยิ่งขึ้นโดยใช้ภาษาโปรแกรม Jelly ในตัว) ฟังดูดี แต่จริงๆ แล้วทุกอย่างบิดเบี้ยวไป การพูดนอกเรื่องโคลงสั้น ๆ: เทคโนโลยีใด ๆ ก็มียุคและขนาดของตัวเอง การทำรายงานทั้งหมดในปี 2000 เฉพาะใน Excel เท่านั้นนั้นยอดเยี่ยม การทำสิ่งเดียวกันในปี 2021 นั้นไม่ค่อยดีนัก เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากที่นั่น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากที่นั่น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้าง เว็บไซต์ของบริษัทที่ใช้ HTML ล้วนๆ นั้นเจ๋งในปี 1999 แต่ไม่ใช่ในปี 2021 ดังนั้นเทคโนโลยีที่ บริษัท ใช้ในขณะที่สร้าง (พ.ศ. 2548) จึงยอดเยี่ยมมาก - Java รับผิดชอบทั้งในส่วนของเซิร์ฟเวอร์และไคลเอนต์ (ที่เรียกว่าเพจ Java servlet) ยิ่งไปกว่านั้น หากคุณสร้างกระบวนการทางธุรกิจใหม่ (ซึ่งมี UI ของตัวเอง) กระบวนการนั้นจะถูกจัดเก็บไว้ในฐานข้อมูล ไม่ใช่ในโค้ดในไฟล์ เพื่อให้เข้าใจว่าสิ่งนี้ไม่สะดวกเพียงใด ลองจินตนาการว่าคุณเขียนโค้ด Java ในแนวคิด Intellij บันทึกลงในฐานข้อมูล จากนั้น เมื่อคุณต้องการรันโค้ดของคุณ เคอร์เนลของโปรแกรมจะไปที่ฐานข้อมูลและอ่านโค้ดของคุณจากตรงนั้น ดังนั้น คุณจึงไม่สามารถดีบักแอปพลิเคชันของคุณได้อย่างสมบูรณ์ คำแนะนำ #1: เมื่อคุณต้องการส่งโค้ดไปที่ Testbench คุณต้องสร้างSQL скриптซึ่งจะมีรหัสของคุณ ไม่น่าพอใจแต่ก็ทนได้? Zest #2: ฐานข้อมูลประกอบด้วยตารางมากกว่า 200 ตารางที่มีการเชื่อมต่อถึงกัน ซึ่งหมายความว่าคุณจำเป็นต้องรู้ว่าตารางใดที่จะโยนโค้ดของคุณลงไป และเอนทิตีใดที่ต้องสร้างในตารางอื่น ผลลัพธ์เป็นสคริปต์ SQL ที่มีความยาวประมาณ 1,000 บรรทัด นี่มันน่าขยะแขยงจริงๆ ระวังมรดก. กล่าวโดยสรุป เมื่อตระหนักว่าทั้งหมดอยู่ใน Java ฉันจึงไปที่ JavaRush (ในที่สุดเราก็มาถึงธีมของไซต์แล้ว!) มิถุนายน-กรกฎาคม 2020 10 ระดับแรกถูกปิดอย่างรวดเร็ว (อาจเป็นเดือน) เนื่องจากไม่มีอะไรใหม่โดยพื้นฐาน จากนั้นความเร็วก็ช้าลง กรกฎาคม-ตุลาคม 2563 ปิดชั้น 10-20 ตุลาคม-มีนาคม 2564 ปิดระดับ 20-30 ตอนนี้ความสนุกเริ่มต้นขึ้นแล้ว ในเดือนมีนาคม 2021 ฉันเริ่มดูตำแหน่งงานว่างของ Java และพบว่ามีคำที่ไม่คุ้นเคยอยู่มากมาย Spring, SpringBoot, Hibernate, JUnit บางชนิด หลังจากซื้อหลักสูตรวิดีโอบนเว็บไซต์ชื่อดัง ฉันเพิ่งสัมผัส Spring และคิดว่าตอนนี้ฉันรู้และทำทุกอย่างได้แล้ว หลังจากนั้น ฉันเจอหลักสูตร TopJava โดย Grigory Kislin คุณสามารถลองทำแบบทดสอบบนเว็บไซต์ของเขาได้ และหากทำสำเร็จก็สามารถเข้าเรียนหลักสูตรนี้ได้ ในหลักสูตรนี้ คุณจะสร้างเว็บแอปพลิเคชันที่มีคุณสมบัติครบถ้วนและเผยแพร่บนอินเทอร์เน็ตได้ สำหรับเงินจำนวนนี้ พวกเขาจะให้คุณตรวจสอบ (ตรวจสอบโค้ดโดยโปรแกรมเมอร์ที่มีประสบการณ์มากกว่า) ให้ข้อเสนอแนะ และให้คำแนะนำในกรณีที่เกิดปัญหา ฉันทำการบ้าน3แล้วเลิกเลย เหตุผลง่ายๆ ก็คือ พวกเขาต้องการคุณมาก แต่พวกเขาไม่ได้ให้ความรู้ใดๆ แก่คุณเลย เงื่อนไขการบ้านน่าสับสนมาก มีการนำเสนอข้อมูลที่ไม่สอดคล้องกันอย่างยิ่ง ในความเห็นส่วนตัวของฉัน หลักสูตรนี้จำเป็นสำหรับนักพัฒนาที่มีประสบการณ์พอสมควรและมาจากภาษาอื่นที่คล้ายคลึงกัน เพราะในหลักสูตรของเขาแทบไม่มีคำอธิบายเกี่ยวกับเทคโนโลยีที่เขาขอให้ใช้ คุณต้องรู้จัก Git เป็นอย่างดี (ทุกอย่างจะถูกส่งไปยังที่เก็บส่วนตัวของคุณ) ปลายเดือนเมษายน 2021 ฉันกำลังโพสต์เรซูเม่สำหรับนักพัฒนา Java (ที่มีเงินเดือนที่ต้องการอยู่ในระดับกลาง+) ซึ่งฉันระบุว่าในงานสุดท้ายที่ฉันเขียนโปรแกรมด้วย Java (ฉันโกหก) ในวันเดียวกันนั้น ธนาคารได้รับใบสมัครตำแหน่ง Java Developer <h3>บทที่ 7 การสัมภาษณ์ Java และการพัฒนาทักษะ</h3>แล้วแผนคืออะไร ฉันต้องได้เงินเดือนดีๆ เพราะคุ้นเคยกับการมีรายได้+เงินกู้พอสมควรแล้ว ดังนั้นตำแหน่งจูเนียร์จึงไม่เหมาะกับฉัน คุณต้องได้งานสายกลาง แต่ใครจะจ้างฉันโดยไม่มีประสบการณ์? การตัดสินใจเกิดขึ้นตามธรรมชาติ: ประวัติการทำงานของฉันบอกว่าฉันทำงานเป็นนักพัฒนาเป็นเวลาหนึ่งปีและอีก 4 ปีในตำแหน่งผู้เชี่ยวชาญในแผนกไอทีในตำแหน่งเดิม ผมจะบอกว่าผมพัฒนาภาษา Java มาเป็นเวลาหนึ่งปีแล้ว และถ้าถามถึงสินค้าใหม่ก็จะบอกว่า Java ตัวเก่า (7) มีอยู่และไม่รองรับอะไรเลย ก่อนการสัมภาษณ์ (ทางไกล) ครั้งแรก ฉันรู้สึกกังวลมาก ฉันไม่มีประสบการณ์ ความรู้น้อยมาก และขอเงินเยอะมาก ฉันคิดว่า: ไม่ต้องกังวล ประสบการณ์เชิงลบก็เป็นประสบการณ์เช่นกัน ฉันติดต่อผ่าน Skype และจะมีการสัมภาษณ์โดยหัวหน้าแผนกสองคน ซึ่งทำให้ฉันยิ่งกลัวมากขึ้นไปอีก คำถามเริ่มต้น: OOP, อุปกรณ์ HashMap, สตรีม, โครงสร้างข้อมูล Spring, Hibernate, AOP คืออะไร และถ้าก่อน Sping มันจะทนได้ไม่มากก็น้อยเมื่อถึงฤดูใบไม้ผลิมันก็พังทลายลงโดยสิ้นเชิง มีคนถามฉันว่า: คุณพัฒนาไปอย่างไรในฤดูใบไม้ผลิถ้าคุณไม่รู้จริงๆ? ฉัน: ฉันคัดลอก วาง มันใช้งานได้ และขอบคุณสำหรับสิ่งนั้น คำตอบนี้ทำให้พวกเขาขบขัน จากนั้นพวกเขาก็ถามถึง SQL ซึ่งฉันก็เหมือนเป็ดลงน้ำ ต่อไปคือ Git และคำถามเกี่ยวกับ rebase, cherry-pick (ซึ่งฉันไม่รู้ด้วย) และจบเกี่ยวกับ JS เนื่องจากมีการระบุไว้ในเรซูเม่ของฉัน ที่นั่นก็มีความล้มเหลวโดยสิ้นเชิงเช่นกัน เพราะพวกเขาถามเกี่ยวกับ OOP JS จากผลการสัมภาษณ์ เห็นได้ชัดว่าความรู้ของฉันไม่ได้แย่นัก ดังนั้น ฉันไม่มีคุณสมบัติเหมาะสมสำหรับตำแหน่งที่ว่างนี้ ในช่วงเย็น HR เขียนว่าผู้สมัครของฉันได้รับการอนุมัติแล้ว และพวกเขาก็พร้อมที่จะโทรหาฉัน ฉันสำลักเบอร์เกอร์ที่แมคโดนัลด์จริงๆ ฉันมีความสุข แต่หลังจากผ่านไป 3 วัน ฝ่ายทรัพยากรบุคคลรายงานว่าพวกเขาได้เลือกผู้สมัครคนอื่นแล้ว เป็นครั้งแรกในประสบการณ์ของฉัน ข้อเสนอถูกถอนออก หลังจากการสัมภาษณ์ครั้งแรกใน Java ฉันก็ก้าวไปอีกขั้น: ฉันเรียนหลักสูตร (และจบหลักสูตรทั้งหมด!) ใน Git จาก Colt Steele บนไซต์ที่มีชื่อเสียงด้านการขายหลักสูตรวิดีโอ สิ่งนี้เปลี่ยนการรับรู้ของฉันเกี่ยวกับ Git ต่อไป ฉันเรียนหลักสูตร (ที่ยอดเยี่ยม) จาก Zaur Tregulov ใน Spring+Hibernate รูปแบบการฝึกอบรม: ฉันดูแบบในวิดีโอ ฉันทำแบบเดียวกันบนคอมพิวเตอร์ แต่ฉันตั้งชื่อตัวแปรและคลาสต่างกันเพื่อไม่ให้คัดลอกโค้ดของคนอื่นอย่างโง่เขลา ฉันอัปโหลดงานทั้งหมดของฉันไปที่ Github ของฉัน (เพื่อฝึกฝน Git) มันเป็นช่วงกลางเดือนพฤษภาคมและเริ่มมีการโทรจากชั่วโมง เราเริ่มกำหนดเวลาการสัมภาษณ์ทีละคน คำเชิญจำนวนมากต้องถูกยกเลิกด้วยเหตุผลดังต่อไปนี้: ฝ่ายทรัพยากรบุคคลไม่ได้อ่านคำอธิบายเรซูเม่ของฉันและเชิญฉันเข้ารับตำแหน่งอาวุโส นอกจากนี้ยังควรกล่าวถึงวรรณะ HR ที่แยกจากกัน: ผู้ที่สับสน Java กับ JavaScript นั่นเป็นเหตุผลที่ฉันเขียน Middle Java Developer ในชื่อเรซูเม่ของฉัน <h3>บทที่ 8 รายการคำถามทั่วไปและวิธีการสัมภาษณ์</h3>ฉันเริ่มไปสัมภาษณ์และค่อยๆ สร้างกลุ่มคำถามพื้นฐานไว้ตรงกลาง บังคับ: 0. OOP - คำจำกัดความ พูดถึงหลักการแต่ละข้อของ OOP (+ยกตัวอย่างจากชีวิตจริง) 1. เท่ากับและแฮชโค้ด - สัญญา (ความสัมพันธ์) ระหว่างพวกเขาคืออะไร? 2. HashMap - วิธีทำความเข้าใจว่าออบเจ็กต์จะเข้าไปอยู่ในบัคเก็ตใด การชนกันคืออะไร ข้อมูลจะถูกจัดเก็บไว้ใน HashMap ในโครงสร้างข้อมูลใด ขนาดมาตรฐาน จำนวนที่เก็บข้อมูลเพิ่มขึ้นอย่างไร 3. สตรีม - การดำเนินการประเภทใดความแตกต่างระหว่างกันคืออะไร ให้ตัวอย่างการดำเนินการแต่ละประเภท 4. String pool, Integer pool - คืออะไร? 5. ฮีป, สแต็ค - มันคืออะไร, ต่างกันอย่างไร? 6. ความแตกต่างระหว่าง Runnable, Thread, Future 7. ระเหยง่ายอะตอมมิก 8. Solid, Kiss, Dry - คำจำกัดความ ตัวอย่างจากชีวิตจริง 9. ตัวดัดแปลงการเข้าถึงใน Java 10. อะไรคือความแตกต่างระหว่างคลาสนามธรรมและอินเทอร์เฟซ อินเทอร์เฟซสามารถเป็นแบบส่วนตัวได้หรือไม่? 11. อินเทอร์เฟซการทำงาน 12. แสดงรายการเมธอด Object ทั้งหมดและบอกว่าเหตุใดจึงจำเป็น คุณสมบัติของวิธีการโคลน 13. การทำให้เป็นอนุกรมและดีซีเรียลไลซ์คืออะไร 14. ลองจับโดยใช้ทรัพยากร - อธิบายว่ามันคืออะไร บอกมันโดยใช้อินเทอร์เฟซที่ปิดได้ 15.ความแตกต่างระหว่าง Final, ในที่สุด, Finalize? 16. โอเวอร์โหลด การเอาชนะวิธีการคือความแตกต่าง 17. เหตุใด String จึงถูกทำให้ไม่เปลี่ยนรูป โปรดบอกเราเกี่ยวกับ StringBuilder และ StringBuffer 18. ความซับซ้อนของเวลาคืออะไร O (1) ความซับซ้อนของหน่วยความจำ 19. โครงสร้างข้อมูล: พูดคุยเกี่ยวกับแผนที่ ชุด คิว deque รายการ และการนำไปใช้ใน Java (treeMap, hashSet, hashMap, arrayList, linkedList,priorityQueue, blockingQueue) อธิบายความซับซ้อน (แย่ที่สุด เฉลี่ย ดีที่สุด) ของการแทรก ค้นหาโดยลบองค์ประกอบในแต่ละโครงสร้าง 20. ชนิดข้อมูลดั้งเดิมใน Java ทำไมแต่ละคนจึงจำเป็น? 21. ประเภทของข้อผิดพลาด ข้อยกเว้นที่ถูกตรวจสอบและไม่ถูกตรวจสอบ 22. JVM, JRE, JDK คืออะไร 23. คุณทำงานร่วมกับนักสะสมคนไหน? Maven - สร้างวงจรชีวิต 24. Spring - คำจำกัดความ Ioc, Di, Bean Lifecycle, บริบท, คำอธิบายประกอบ @Bean, @Configuration, @Autowired, @Advice, @Aspect, @Service, @Repository 25. ข้อมูลทั่วไป - คำจำกัดความของขีดจำกัดล่างและบนคืออะไร? 26. รูปแบบการเขียนโปรแกรม - อย่างน้อย Singleton (เต็มใจที่จะบอกว่าเหตุใดบางครั้งจึงเป็นรูปแบบที่ต่อต้าน) + Builder, Adapter, Factory, Decorator, Proxt ที่พึงประสงค์: 26. การทดสอบ - ประเภทของการทดสอบที่ไลบรารี (JUnit) ใช้งานได้ Mock, Stab, Spy คืออะไร? 27. Spring boot - เหตุใดจึงจำเป็นต้องมีความพร้อมในการสร้างแอปพลิเคชัน SpringBoot ออนไลน์ 28. ไฮเบอร์เนต - เหตุใดจึงจำเป็น เอนทิตี เข้าร่วมคอลัมน์ การโหลดแบบขี้เกียจและแบบกระตือรือร้น ระดับแคช (ยาก) 29. Spring rest - เหตุใดจึงต้องสร้าง @post, @get endpoints อย่างไร จะอ่านพารามิเตอร์/เนื้อหาคำขอได้อย่างไร จะส่งในรูปแบบ json ได้อย่างไร? 30. โครงสร้างข้อมูล - ต้นไม้ประเภทต่างๆ 31. อัลกอริทึม - ประเภทของการเรียงลำดับ นอกจาก Java แล้ว พวกเขาอาจถาม: 1. (จำเป็น!) Git - เหตุใดจึงต้องมีการดำเนินการผสาน, รีบูต, เชอร์รี่เลือก, พุช, ดึง, คอมมิต, บันทึก, ชำระเงิน, แยกสาขา, รีเซ็ต, เปลี่ยนกลับ, รีเฟรช 2.SQL - ความสามารถในการเขียนแบบสอบถาม: รวมสองตารางเป็นหนึ่งเดียว (การรวมภายใน, รวมด้านซ้าย) 3. ฐานข้อมูล - 3 รูปแบบปกติ, ดัชนี (เหตุใดจึงต้องใช้, ประเภท), คีย์หลัก, คีย์นอก การสัมภาษณ์ทางไกลทั่วไปดำเนินไปอย่างไร: hr ส่งลิงก์เพื่อซูม (Skype, Google Meeting) เมื่อถึงระยะเวลาหนึ่งที่คุณเชื่อมต่อและมีผู้คน 1 ถึง 3 คนอยู่ที่นั่น (ผู้เชี่ยวชาญด้านเทคนิค เจ้านาย ทรัพยากรบุคคล) ในกรณีที่ดื้อรั้นเป็นพิเศษมากถึง 8 คน ขั้นแรกให้คุณบอกเกี่ยวกับตัวคุณเอง จากนั้นในส่วนทางเทคนิค จากนั้นจึงเล่าเรื่องเกี่ยวกับตำแหน่งว่างและการลา (พวกเขาจะบอกว่าจะติดต่อคุณเมื่อใดหรือขั้นตอนต่อไปจะเป็นอย่างไร) ระหว่างอำลาคุณสามารถขอคำติชมความรู้ได้ ฉันถามว่า: “คุณช่วยบอกฉันได้ไหมว่าระหว่างที่ฉันตอบคุณ คุณเจ็บตรงไหนที่หู” หลายคนตอบรับแต่ก็เตรียมพร้อมที่จะถูกปฏิเสธ ในระหว่างการสัมภาษณ์ พวกเขาประเมิน: 1. ความสามารถของคุณในการแสดงความคิดและความรู้เกี่ยวกับภาษารัสเซีย (ฉันรู้ว่ามีกรณีที่ผู้สมัครถูกปฏิเสธเนื่องจากความรู้ภาษารัสเซียไม่ดี) 2. ประสบการณ์ก่อนหน้านี้ (พวกเขาอาจถามอย่างละเอียดว่าคุณทำอะไรในงานสุดท้ายของคุณ) 3. ปฏิกิริยาที่เพียงพอเมื่อมีการกดดันคุณ (มีการสัมภาษณ์ครั้งหนึ่งที่ผู้คนเริ่มพูดอย่างไม่เคารพ: เพิกเฉยต่อคำตอบของฉัน พยายามปลูกฝังจุดยืนของพวกเขา ฯลฯ ฉันจบการสัมภาษณ์ 15 นาทีหลังจากเริ่ม และพวกเขา: มันเป็นการสัมภาษณ์ที่เครียด!) 4. ระดับความรู้ของคุณ ฉันจะลงรายละเอียดเพิ่มเติมที่นี่ การรู้คำจำกัดความของหัวข้อเป็นเพียง 10% ของสิ่งที่คุณคาดหวัง จำเป็นต้องเข้าใจวิธีการทำงาน (อย่างน้อยก็ในระดับบนสุด) ความเต็มใจที่จะอธิบายว่าคุณจะเลือกสิ่งนี้หรือวิธีแก้ปัญหานั้นในการพัฒนา ณ จุดใด สิ่งนี้สำคัญกว่าความถูกต้องของคำจำกัดความของคุณมาก ผมจะวิเคราะห์วิทยานิพนธ์นี้โดยใช้สองตัวอย่าง ตัวอย่างแรก: ในระหว่างการสัมภาษณ์ ฉันถูกถามเกี่ยวกับ HashMap และฉันให้คำจำกัดความ: “นี่คือโครงสร้างข้อมูลที่จัดเก็บชุดคีย์และค่า” จากนั้นผู้สัมภาษณ์ถามว่า TreeMap แตกต่างจากอะไร? คำตอบ: ข้อแตกต่างก็คือ HashMap แฮชคีย์ และเนื่องจากการแฮช การเข้าถึงจึงรวดเร็ว ผู้สัมภาษณ์ขอให้บอกเราทันทีถึงโครงสร้างภายในของ HashMap และในขณะเดียวกันก็ถามเกี่ยวกับ hashCode และเท่ากับ และมันจะลงลึกจนกว่าคุณจะพอใจกับคำตอบหรือหยุด ฉันเรียนรู้ที่จะตอบอย่างถูกต้องเกี่ยวกับ HashMap หลังจากการสัมภาษณ์ 2 เดือนและหลักสูตรเกี่ยวกับโครงสร้างข้อมูลบน hexlet เท่านั้น ตัวอย่างที่สอง: แนวคิด SOLID พวกเขาขอให้ฉันให้คำจำกัดความที่ฉันจำได้ แต่ทันทีที่เป็นตัวอย่างในชีวิตจริง ปัญหาก็เริ่มขึ้น Внимание!ถ้าคุณไม่รู้ก็อย่าประดิษฐ์มันขึ้นมา แต่พูดแบบนี้: ฉันไม่รู้หัวข้อนี้ แต่ฉันเดาได้เลยว่ามันทำงานแบบนี้ ผู้เชี่ยวชาญด้านเทคนิคหลายคนโกรธเคืองเมื่อมีคนพูดนอกรีตราวกับว่าเขาเข้าใจหัวข้อนั้น 5. ระดับความกระตือรือร้นของคุณในระหว่างการสนทนาเรื่องงาน คุณถูกคาดหวังให้สนใจและถามคำถามเกี่ยวกับตำแหน่งงานว่าง (ไม่ใช่แค่คำถามที่ถูกสร้างขึ้นมาเท่านั้น) 6. บางครั้งอารมณ์ขัน (เฉพาะหัวข้อ) และความสนใจร่วมกันก็ช่วยให้คุณสื่อสารได้ อย่าลังเลที่จะพูดคุยเกี่ยวกับงานอดิเรกของคุณ บางทีผู้ให้สัมภาษณ์อาจจะชอบ Dota/ฟุตบอล/แฟนตาซี ก็ได้ และนี่คือข้อดีสำหรับคุณในฐานะผู้สมัคร ฉันทราบกรณีที่ชุมชนที่สนใจเมินเฉยต่อการฝึกอบรมทางเทคนิคที่ไม่ดีของผู้สัมภาษณ์ (คุณเป็นคนธรรมดา เราจะฝึกคุณเอง) <h3>บทที่ 9 การหางาน การบัพติศมาด้วยไฟ</h3>การสัมภาษณ์เกิดขึ้นตั้งแต่ปลายเดือนเมษายนถึงกลางเดือนกรกฎาคม การสัมภาษณ์ครั้งแรกน่าเขินอาย แต่สถานการณ์ก็ค่อยๆ ดีขึ้นจนเป็นที่ยอมรับได้ การศึกษาคำถามและคำติชมทั่วไปทำให้ตนเองรู้สึก การสัมภาษณ์ 25 ครั้งแรกไม่ประสบผลสำเร็จ หลังจากนั้น ช่วงเวลาแห่งความสิ้นหวังก็เริ่มขึ้น ความรู้สึก: จะเกิดอะไรขึ้นถ้าพวกเขาไม่จ้างฉันเพื่อรับเงินเดือนนั้น? ทันใดนั้นสิ่งต่างๆ ก็เริ่มหมดไป ภายในหนึ่งสัปดาห์ บริษัทสามแห่งก็ยื่นข้อเสนอ ฉันเลือกบริษัทที่ฉันรู้เฉพาะเจาะจง แถมยังมีเงินเดือนที่ดีและมีโอกาสทำงานนอกสถานที่อีกด้วย ในระหว่างการสัมภาษณ์ ฉันถูกถามคำถามประมาณ 30 ข้อเกี่ยวกับ Java core และ Spring ซึ่ง 97% ฉันตอบถูก หลังจากนั้นมีการสื่อสารกับหน่วยงานระดับสูง และหลังจากนั้น 1.5 สัปดาห์ฉันก็ได้งานกับพวกเขา ก่อนอื่น เมื่อคุณมาทำงานใดๆ คุณจะเริ่มเข้าถึงระบบที่จำเป็นทั้งหมดและติดตั้งเครื่องมือที่คุณต้องการ ใช้เวลาหนึ่งสัปดาห์ครึ่ง และฉันได้รับมอบหมายงานแรก: เปลี่ยนข้อความคงที่ในห้องเรียน เมื่อฉันเปิดโปรเจ็กต์ ฉันรู้สึกไม่สบาย มีหลายโมดูลภายในโปรเจ็กต์เดียว หลายชั้นเรียน การทดสอบ ฯลฯ เมื่อถึงจุดนี้ ฉันหลงทาง แต่นักพัฒนาคนที่สองช่วยฉันและพาฉันมาเร่งความเร็ว จุดบกพร่องได้รับการแก้ไขใน 10 นาที ซึ่งเผยแพร่ใน Git มีการสร้างคำขอดึง (คำขอเพื่อรวมสองสาขาโดยที่นักพัฒนารายอื่นตรวจสอบรหัสของคุณ) จากนั้นจึงรวมเข้ากับสาขาหลัก ปรากฎว่าทุกอย่างไม่ยากนัก จนกระทั่งงานแรกที่เต็มเปี่ยม... ในขณะที่วางแผนงานในอีกสองสัปดาห์ข้างหน้าพวกเขาบอกฉันว่า: คุณจะทำการผสานรวมกับระบบอื่นซึ่งอยู่บน OpenShift นี่คือสิ่งที่น่ากลัวจริงๆ OpenShift คือกลุ่มเทคโนโลยีทั้งหมด: Docker, Kubernetes, Linux และอื่นๆ เหงื่อเย็นไหลลงมาที่หลัง ฉันทำงานเป็นแพทย์จาวิส ทันทีหลังการประชุม ฉันโทรหานักพัฒนา ซึ่งทำให้ฉันมั่นใจ: มีการเขียนอะแดปเตอร์สำหรับระบบนี้แล้ว และนำเข้าคลาสบางคลาสเข้ามาในโปรเจ็กต์ของฉันได้เพียงพอ หลังจากนั้นฉันก็สามารถใช้การผสานรวมได้อย่างปลอดภัย มันสนุกอีกครั้ง จนกระทั่งผู้พัฒนาแสดงการบูรณาการแบบทั่วไป: ฉันเห็นคลาสมากกว่า 20 คลาสที่สร้างขึ้นเพื่อการบูรณาการที่คล้ายกัน ยิ่งไปกว่านั้น คำอธิบายประกอบที่มองไม่เห็นก่อนหน้านี้ @Value, @Builder, @NoArgsConstructor, @Getter ถูกสังเกตเห็น @ Sl4f - กลายเป็นโครงการ Lombook (อ่านบนอินเทอร์เน็ต) เมื่อนักพัฒนาอธิบายให้ฉันฟังว่าต้องทำอย่างไร ฉันพยายามเขียนความเชื่อมโยงของคลาสทั้งหมด และไม่มีอะไรติดอยู่ในหัวเลย ช่วงเวลาที่น่าอายที่สุดคือการขาดความรู้เกี่ยวกับ Intellij Idea: วิธีค้นหาโปรเจ็กต์จากทั่วโลก การปรับโครงสร้างโค้ดใหม่ ฯลฯ เมื่อรับงานนี้ ฉันเข้าใจว่าทำไมต้องใช้ OOP: สำหรับโค้ดจำนวนมากเช่นนี้จำเป็นต้องแบ่งออกเป็นคลาส วิธีการที่ไม่ได้ใช้นอกคลาสจะต้องประกาศเป็นส่วนตัวเพื่อไม่ให้เรียกใช้ในคลาสอื่นโดยไม่ตั้งใจ ฯลฯ เมื่อเขียนการรวมของฉันโดยการเปรียบเทียบกับการรวมอื่นฉันได้เรียนรู้เกี่ยวกับการมีอยู่ของ CheckStyle - ปลั๊กอินพิเศษที่ตรวจสอบสไตล์ ของโค้ดของคุณ และคุณจะไม่สามารถคอมไพล์โครงการของคุณได้จนกว่าคุณจะแก้ไขข้อผิดพลาด (เช่น การเว้นวรรคเพิ่มเติม ชื่อตัวแปรที่เป็นตัวพิมพ์ใหญ่ ชื่อตัวแปรที่สั้นเกินไป) หลังจากเอาชนะ CheckStyle ฉันได้ส่งโค้ดของฉันไปให้นักพัฒนาอาวุโสตรวจสอบและแก้ไขข้อผิดพลาดภายในหนึ่งสัปดาห์ โดยทั่วไปแล้ว ฉันโชคดีมากที่ในทีมของฉัน ฉันมีความสัมพันธ์ที่ดีกับนักพัฒนาคนที่สองที่อธิบายสิ่งต่าง ๆ มากมาย หนึ่งเดือนหลังจากอุปกรณ์ การรวมระบบครั้งแรกของฉันเปิดตัวบนแท่นบูรณาการฟังก์ชันการทำงาน (ทดสอบการทำงานของแอปพลิเคชันทั้งหมดร่วมกัน) และทุกอย่างทำงานได้ที่นั่น! ชัยชนะ! ภารกิจต่อไปคือการสร้างคลาสที่จะอนุญาตให้ซ่อนข้อมูลด้วยการคีย์ใน json ตัวอย่างเช่น: มี json {text:"JavaRush"} -> การประมวลผล -> {text:"****Rush"} มีปัญหาสองประการที่นี่: อาจมี {text:{mytext:"JavaRush"}} ซ้อนกัน และสิ่งที่ไม่พึงประสงค์มากกว่าคือการซ้อนอยู่ภายในอาร์เรย์: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (แน่นอนว่าคุณต้องซ่อน text.mytext ทั้งหมด) การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ ฉันพยายามเขียนความเชื่อมโยงของทุกชั้นเรียน และไม่มีอะไรติดอยู่ในหัวเลย ช่วงเวลาที่น่าอายที่สุดคือการขาดความรู้เกี่ยวกับ Intellij Idea: วิธีค้นหาโปรเจ็กต์จากทั่วโลก การปรับโครงสร้างโค้ดใหม่ ฯลฯ เมื่อรับงานนี้ ฉันเข้าใจว่าทำไมต้องใช้ OOP: สำหรับโค้ดจำนวนมากเช่นนี้จำเป็นต้องแบ่งออกเป็นคลาส วิธีการที่ไม่ได้ใช้นอกคลาสจะต้องประกาศเป็นส่วนตัวเพื่อไม่ให้เรียกใช้ในคลาสอื่นโดยไม่ตั้งใจ ฯลฯ เมื่อเขียนการรวมของฉันโดยการเปรียบเทียบกับการรวมอื่นฉันได้เรียนรู้เกี่ยวกับการมีอยู่ของ CheckStyle - ปลั๊กอินพิเศษที่ตรวจสอบสไตล์ ของโค้ดของคุณ และคุณจะไม่สามารถคอมไพล์โครงการของคุณได้จนกว่าคุณจะแก้ไขข้อผิดพลาด (เช่น การเว้นวรรคเพิ่มเติม ชื่อตัวแปรที่เป็นตัวพิมพ์ใหญ่ ชื่อตัวแปรที่สั้นเกินไป) หลังจากเอาชนะ CheckStyle ฉันได้ส่งโค้ดของฉันไปให้นักพัฒนาอาวุโสตรวจสอบและแก้ไขข้อผิดพลาดภายในหนึ่งสัปดาห์ โดยทั่วไปแล้ว ฉันโชคดีมากที่ในทีมของฉัน ฉันมีความสัมพันธ์ที่ดีกับนักพัฒนาคนที่สองที่อธิบายสิ่งต่าง ๆ มากมาย หนึ่งเดือนหลังจากอุปกรณ์ การรวมระบบครั้งแรกของฉันเปิดตัวบนแท่นบูรณาการฟังก์ชันการทำงาน (ทดสอบการทำงานของแอปพลิเคชันทั้งหมดร่วมกัน) และทุกอย่างทำงานได้ที่นั่น! ชัยชนะ! ภารกิจต่อไปคือการสร้างคลาสที่จะอนุญาตให้ซ่อนข้อมูลด้วยการคีย์ใน json ตัวอย่างเช่น: มี json {text:"JavaRush"} -> การประมวลผล -> {text:"****Rush"} มีปัญหาสองประการที่นี่: อาจมี {text:{mytext:"JavaRush"}} ซ้อนกัน และสิ่งที่ไม่พึงประสงค์มากกว่าคือการซ้อนอยู่ภายในอาร์เรย์: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (แน่นอนว่าคุณต้องซ่อน text.mytext ทั้งหมด) การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ ฉันพยายามเขียนความเชื่อมโยงของทุกชั้นเรียน และไม่มีอะไรติดอยู่ในหัวเลย ช่วงเวลาที่น่าอายที่สุดคือการขาดความรู้เกี่ยวกับ Intellij Idea: วิธีค้นหาโปรเจ็กต์จากทั่วโลก การปรับโครงสร้างโค้ดใหม่ ฯลฯ เมื่อรับงานนี้ ฉันเข้าใจว่าทำไมต้องใช้ OOP: สำหรับโค้ดจำนวนมากเช่นนี้จำเป็นต้องแบ่งออกเป็นคลาส วิธีการที่ไม่ได้ใช้นอกคลาสจะต้องประกาศเป็นส่วนตัวเพื่อไม่ให้เรียกใช้ในคลาสอื่นโดยไม่ตั้งใจ ฯลฯ เมื่อเขียนการรวมของฉันโดยการเปรียบเทียบกับการรวมอื่นฉันได้เรียนรู้เกี่ยวกับการมีอยู่ของ CheckStyle - ปลั๊กอินพิเศษที่ตรวจสอบสไตล์ ของโค้ดของคุณ และคุณจะไม่สามารถคอมไพล์โครงการของคุณได้จนกว่าคุณจะแก้ไขข้อผิดพลาด (เช่น การเว้นวรรคเพิ่มเติม ชื่อตัวแปรที่เป็นตัวพิมพ์ใหญ่ ชื่อตัวแปรที่สั้นเกินไป) หลังจากเอาชนะ CheckStyle ฉันได้ส่งโค้ดของฉันไปให้นักพัฒนาอาวุโสตรวจสอบและแก้ไขข้อผิดพลาดภายในหนึ่งสัปดาห์ โดยทั่วไปแล้ว ฉันโชคดีมากที่ในทีมของฉัน ฉันมีความสัมพันธ์ที่ดีกับนักพัฒนาคนที่สองที่อธิบายสิ่งต่าง ๆ มากมาย หนึ่งเดือนหลังจากอุปกรณ์ การรวมระบบครั้งแรกของฉันเปิดตัวบนแท่นบูรณาการฟังก์ชันการทำงาน (ทดสอบการทำงานของแอปพลิเคชันทั้งหมดร่วมกัน) และทุกอย่างทำงานได้ที่นั่น! ชัยชนะ! ภารกิจต่อไปคือการสร้างคลาสที่จะอนุญาตให้ซ่อนข้อมูลด้วยการคีย์ใน json ตัวอย่างเช่น: มี json {text:"JavaRush"} -> การประมวลผล -> {text:"****Rush"} มีปัญหาสองประการที่นี่: อาจมี {text:{mytext:"JavaRush"}} ซ้อนกัน และสิ่งที่ไม่พึงประสงค์มากกว่าคือการซ้อนอยู่ภายในอาร์เรย์: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (แน่นอนว่าคุณต้องซ่อน text.mytext ทั้งหมด) การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ สำหรับโค้ดจำนวนมาก คุณต้องแบ่งมันออกเป็นคลาสต่างๆ วิธีการที่ไม่ได้ใช้นอกคลาสจะต้องประกาศเป็นส่วนตัวเพื่อไม่ให้เรียกใช้ในคลาสอื่นโดยไม่ตั้งใจ ฯลฯ เมื่อเขียนการรวมของฉันโดยการเปรียบเทียบกับการรวมอื่นฉันได้เรียนรู้เกี่ยวกับการมีอยู่ของ CheckStyle - ปลั๊กอินพิเศษที่ตรวจสอบสไตล์ ของโค้ดของคุณ และคุณจะไม่สามารถคอมไพล์โครงการของคุณได้จนกว่าคุณจะแก้ไขข้อผิดพลาด (เช่น การเว้นวรรคเพิ่มเติม ชื่อตัวแปรที่เป็นตัวพิมพ์ใหญ่ ชื่อตัวแปรที่สั้นเกินไป) หลังจากเอาชนะ CheckStyle ฉันได้ส่งโค้ดของฉันไปให้นักพัฒนาอาวุโสตรวจสอบและแก้ไขข้อผิดพลาดภายในหนึ่งสัปดาห์ โดยทั่วไปแล้ว ฉันโชคดีมากที่ในทีมของฉัน ฉันมีความสัมพันธ์ที่ดีกับนักพัฒนาคนที่สองที่อธิบายสิ่งต่าง ๆ มากมาย หนึ่งเดือนหลังจากอุปกรณ์ การรวมระบบครั้งแรกของฉันเปิดตัวบนแท่นบูรณาการฟังก์ชันการทำงาน (ทดสอบการทำงานของแอปพลิเคชันทั้งหมดร่วมกัน) และทุกอย่างทำงานได้ที่นั่น! ชัยชนะ! ภารกิจต่อไปคือการสร้างคลาสที่จะอนุญาตให้ซ่อนข้อมูลด้วยการคีย์ใน json ตัวอย่างเช่น: มี json {text:"JavaRush"} -> การประมวลผล -> {text:"****Rush"} มีปัญหาสองประการที่นี่: อาจมี {text:{mytext:"JavaRush"}} ซ้อนกัน และสิ่งที่ไม่พึงประสงค์มากกว่าคือการซ้อนอยู่ภายในอาร์เรย์: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (แน่นอนว่าคุณต้องซ่อน text.mytext ทั้งหมด) การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ สำหรับโค้ดจำนวนมาก คุณต้องแบ่งมันออกเป็นคลาสต่างๆ วิธีการที่ไม่ได้ใช้นอกคลาสจะต้องประกาศเป็นส่วนตัวเพื่อไม่ให้เรียกใช้ในคลาสอื่นโดยไม่ตั้งใจ ฯลฯ เมื่อเขียนการรวมของฉันโดยการเปรียบเทียบกับการรวมอื่นฉันได้เรียนรู้เกี่ยวกับการมีอยู่ของ CheckStyle - ปลั๊กอินพิเศษที่ตรวจสอบสไตล์ ของโค้ดของคุณ และคุณจะไม่สามารถคอมไพล์โครงการของคุณได้จนกว่าคุณจะแก้ไขข้อผิดพลาด (เช่น การเว้นวรรคเพิ่มเติม ชื่อตัวแปรที่เป็นตัวพิมพ์ใหญ่ ชื่อตัวแปรที่สั้นเกินไป) หลังจากเอาชนะ CheckStyle ฉันได้ส่งโค้ดของฉันไปให้นักพัฒนาอาวุโสตรวจสอบและแก้ไขข้อผิดพลาดภายในหนึ่งสัปดาห์ โดยทั่วไปแล้ว ฉันโชคดีมากที่ในทีมของฉัน ฉันมีความสัมพันธ์ที่ดีกับนักพัฒนาคนที่สองที่อธิบายสิ่งต่าง ๆ มากมาย หนึ่งเดือนหลังจากอุปกรณ์ การรวมระบบครั้งแรกของฉันเปิดตัวบนแท่นบูรณาการฟังก์ชันการทำงาน (ทดสอบการทำงานของแอปพลิเคชันทั้งหมดร่วมกัน) และทุกอย่างทำงานได้ที่นั่น! ชัยชนะ! ภารกิจต่อไปคือการสร้างคลาสที่จะอนุญาตให้ซ่อนข้อมูลด้วยการคีย์ใน json ตัวอย่างเช่น: มี json {text:"JavaRush"} -> การประมวลผล -> {text:"****Rush"} มีปัญหาสองประการที่นี่: อาจมี {text:{mytext:"JavaRush"}} ซ้อนกัน และสิ่งที่ไม่พึงประสงค์มากกว่าคือการซ้อนอยู่ภายในอาร์เรย์: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (แน่นอนว่าคุณต้องซ่อน text.mytext ทั้งหมด) การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ ชื่อตัวแปรสั้นเกินไป) หลังจากเอาชนะ CheckStyle ฉันได้ส่งโค้ดของฉันไปให้นักพัฒนาอาวุโสตรวจสอบและแก้ไขข้อผิดพลาดภายในหนึ่งสัปดาห์ โดยทั่วไปแล้ว ฉันโชคดีมากที่ในทีมของฉัน ฉันมีความสัมพันธ์ที่ดีกับนักพัฒนาคนที่สองที่อธิบายสิ่งต่าง ๆ มากมาย หนึ่งเดือนหลังจากอุปกรณ์ การรวมระบบครั้งแรกของฉันเปิดตัวบนแท่นบูรณาการฟังก์ชันการทำงาน (ทดสอบการทำงานของแอปพลิเคชันทั้งหมดร่วมกัน) และทุกอย่างทำงานได้ที่นั่น! ชัยชนะ! ภารกิจต่อไปคือการสร้างคลาสที่จะอนุญาตให้ซ่อนข้อมูลด้วยการคีย์ใน json ตัวอย่างเช่น: มี json {text:"JavaRush"} -> การประมวลผล -> {text:"****Rush"} มีปัญหาสองประการที่นี่: อาจมี {text:{mytext:"JavaRush"}} ซ้อนกัน และสิ่งที่ไม่พึงประสงค์มากกว่าคือการซ้อนอยู่ภายในอาร์เรย์: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (แน่นอนว่าคุณต้องซ่อน text.mytext ทั้งหมด) การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ ชื่อตัวแปรสั้นเกินไป) หลังจากเอาชนะ CheckStyle ฉันได้ส่งโค้ดของฉันไปให้นักพัฒนาอาวุโสตรวจสอบและแก้ไขข้อผิดพลาดภายในหนึ่งสัปดาห์ โดยทั่วไปแล้ว ฉันโชคดีมากที่ในทีมของฉัน ฉันมีความสัมพันธ์ที่ดีกับนักพัฒนาคนที่สองที่อธิบายสิ่งต่าง ๆ มากมาย หนึ่งเดือนหลังจากอุปกรณ์ การรวมระบบครั้งแรกของฉันเปิดตัวบนแท่นบูรณาการฟังก์ชันการทำงาน (ทดสอบการทำงานของแอปพลิเคชันทั้งหมดร่วมกัน) และทุกอย่างทำงานได้ที่นั่น! ชัยชนะ! ภารกิจต่อไปคือการสร้างคลาสที่จะอนุญาตให้ซ่อนข้อมูลด้วยการคีย์ใน json ตัวอย่างเช่น: มี json {text:"JavaRush"} -> การประมวลผล -> {text:"****Rush"} มีปัญหาสองประการที่นี่: อาจมี {text:{mytext:"JavaRush"}} ซ้อนกัน และสิ่งที่ไม่พึงประสงค์มากกว่าคือการซ้อนอยู่ภายในอาร์เรย์: {text: [ {mytext: "JavaRush"}, {mytext: "JavaRush" "} ] } (แน่นอนว่าคุณต้องซ่อน text.mytext ทั้งหมด) การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์ การแก้ปัญหานี้เป็นเรื่องยากมาก แต่ฉันก็ทำได้! นักพัฒนาคนที่สองพูดว่า: ครอบคลุมการพัฒนานี้ด้วยการทดสอบ เกิดความสับสนในดวงตา นี่คือวิธีที่ฉันได้รู้จักไลบรารี JUnit ในการต่อสู้ สาระสำคัญของการทดสอบหน่วย: คุณมีข้อมูลอินพุต ส่งผ่านไปยังวิธีการ และเปรียบเทียบข้อมูลที่ได้รับกับผลลัพธ์ที่ถูกต้อง (สร้างตัวแปรด้วยผลลัพธ์ที่ถูกต้อง) ฉันเขียน 11 กรณีสำหรับไลบรารีของฉัน ซึ่งฉันตรวจสอบว่าแอปพลิเคชันไม่ได้ขัดข้องด้วย NullPointException และซ่อนข้อมูลอย่างถูกต้องด้วยการซ้อนประเภทใดก็ตาม หลังจากเสร็จสิ้นภารกิจนี้ ฉันได้รับการบูรณาการใหม่ ซึ่งมีลักษณะเฉพาะดังต่อไปนี้: ฉันต้องส่งออก Spring Bean จากไลบรารีภายนอก เมื่อมาถึงจุดนี้ ฉันกลายเป็นลูกค้าประจำของเว็บไซต์ Stack OverFlow ครั้งหนึ่งแม้แต่นักพัฒนา Spring อย่างเป็นทางการก็ตอบกลับมา หลังจากใช้การผสานรวมนี้ ระยะทดลองใช้งานของฉันก็สิ้นสุดลง เจ้านายแสดงความยินดีกับฉันที่ผ่านช่วงทดลองงาน และฉันก็เริ่มเขียนบทความนี้ โดยรวมแล้วใช้เวลาเขียนบทความนี้ถึง 8 ชั่วโมง) ขอขอบคุณที่ให้ความสนใจ ฉันหวังว่าบทความนี้จะมีประโยชน์
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION