JavaRush /จาวาบล็อก /Random-TH /ในตอนแรกมี JavaRush
Марат Каджаев
ระดับ
Санкт-Петербург

ในตอนแรกมี JavaRush

เผยแพร่ในกลุ่ม
ช่วงทดลองงานครั้งแรกของฉันสิ้นสุดลงเมื่อ 3 ปีที่แล้ว แต่ตอนนี้ฉันมีเวลาเขียนบทความเท่านั้น ที่มหาวิทยาลัย ฉันใช้เวลา 1 ปีในคณะต่างๆ: ภาคการศึกษาแรกที่ฉันเรียนเพื่อเป็นผู้จัดการ ในภาคการศึกษาที่สอง ฉันย้ายไปเรียนวิศวกรรมซอฟต์แวร์ ฉันหวังว่าพวกเขาจะสอนวิธีเขียนโปรแกรมให้ฉัน แต่ฉันคิดผิด ดังนั้นฉันจึงหยิบเอกสารและตัดสินใจเรียนรู้ทุกอย่างด้วยตัวเอง สิ่งเดียวที่ฉันรู้สึกขอบคุณครูคือเขาแนะนำให้ฉันเริ่มต้นด้วยหนังสือของ Stephen Prat เรื่อง “The C Programming Language” หนังสือที่ดีจริงๆพร้อมปัญหาเชิงปฏิบัติมากมาย หนังสือเล่มนี้ใช้เวลาประมาณ 2 เดือน หลังจากนั้นฉันก็ไปเจอ JR ในกลุ่มเพื่อนและจากไป ตอนแรกฉันวางแผนที่จะเป็นนักพัฒนา Android แต่ในระหว่างกระบวนการเรียนรู้ แบ็กเอนด์ดูน่าสนใจสำหรับฉันมากขึ้น อย่างไรก็ตามการฝึกอบรมใช้เวลา 3 เดือนในระหว่างนั้นฉันถึงระดับ 20 หลังจากนั้นฉันก็ตัดสินใจลองหางานทำ ก่อนอื่นฉันย้ายไปเมืองอื่นเพราะ... ไม่มีตำแหน่งงานว่างสำหรับ Junior Java Developer ในตัวฉัน ฉันพบบริษัทแห่งหนึ่ง ตอบกลับ ได้รับงานทดสอบ ซึ่งให้เวลาดำเนินการหนึ่งสัปดาห์ จำเป็นต้องเขียนเว็บแอปพลิเคชันอย่างง่ายโดยใช้ Hibernate, Servlet\JSP และ MySQL จากคำทั้งหมดนี้ ฉันรู้แค่ว่า MySQL เป็นฐานข้อมูล ตอนแรกฉันอารมณ์เสียมาก ตอนนี้ฉันตัดสินใจมองหาตำแหน่งงานว่างที่ KFC บางแห่งด้วยซ้ำ แต่ในที่สุดฉันก็ตัดสินใจพยายามปฏิบัติตามข้อกำหนดทางเทคนิค - ฉันจะมีเวลาหางานที่ KFC อยู่เสมอ ฉันทำแบบทดสอบไม่หยุดตลอดทั้งสัปดาห์และประสบความสำเร็จ ฉันส่งวิธีแก้ปัญหาไปแล้ว แต่มัน "น่าเกลียด" ดังนั้นฉันจึงจัดแจงใหม่อีก 4 ครั้ง การตัดสินใจครั้งล่าสุดปรากฏว่าถูกต้อง แต่ปรากฏว่านักพัฒนาได้รับการสรรหาแล้ว และการสรรหาครั้งถัดไปจะใช้เวลา 3 เดือน ชทอช โอเค ในอีก 3 เดือนข้างหน้า ฉันได้เรียนรู้ html, css, js, sql และ php PHP มาทำอะไรที่นี่? ฉันต้องการภาษาฝั่งเซิร์ฟเวอร์ที่จะตอบสนองต่อคำขอและทั้งหมดนั้น - เซิร์ฟเล็ตและ jsp ดูซับซ้อนเกินไปสำหรับฉันในเวลานั้น ผลลัพธ์ที่ได้คือเว็บแอปพลิเคชันที่มีคุณสมบัติครบถ้วนพร้อมอินเทอร์เฟซที่แย่มาก ซึ่งเป็นโค้ดที่ฉันโพสต์บน GitHub สำหรับพอร์ตโฟลิโอของฉัน ในเวลานี้ผ่านไป 3 เดือนแล้ว และพวกเขาเขียนถึงฉันจากบริษัทเดียวกัน และโทรหาฉันเพื่อสัมภาษณ์ และให้ฉันทดสอบความรู้เกี่ยวกับ SQL ง่ายๆ อีกงานหนึ่ง ซึ่งฉันทำเสร็จภายในไม่กี่ชั่วโมง คนที่ฉันได้พูดคุยเกี่ยวกับงานด้วยบอกเป็นนัยว่าพวกเขาจะถามเกี่ยวกับอัลกอริธึมและโครงสร้างข้อมูล - ฉันยังไม่เชี่ยวชาญหัวข้อนี้ แต่มีเวลา 15 วันก่อนการสัมภาษณ์ ประณามพวกเรานักแข่ง หนังสือของ Robert Laforet เรื่อง "Data Structures and Algorithms in Java" ช่วยฉันได้ ฉันไม่มีเวลาอ่านและทำความเข้าใจทั้งหมดภายในสองสัปดาห์ แต่ฉันยังคงเรียนรู้สิ่งใหม่ๆ มากมาย และแล้ววันสัมภาษณ์ก็มาถึงผมมาถึงตามเวลาที่นัดหมาย มีชาย 2 คนมาพบผม การสัมภาษณ์ก็เริ่มขึ้น การบอกว่าฉันกังวลนั้นเป็นการพูดน้อยไป เสียงของฉันก็สั่นด้วยซ้ำ พวกเขาถามทุกอย่างยกเว้นอัลกอริธึมและโครงสร้างข้อมูล พวกเขาถามเกี่ยวกับ Spring, DI, IoC, Hibernate, JVM ทำงานอย่างไร, GC ทำงานอย่างไร - ฉันไม่ได้ตอบคำถามเหล่านี้เลย ฉันรับมือกับคำถามเกี่ยวกับ Java Core เท่านั้น (คอลเลกชัน ข้อยกเว้น OOP ฯลฯ) ในการสัมภาษณ์ ฉันรู้ว่าฉันล้มเหลว แต่ก็ยังน่าผิดหวังที่ไม่ได้รับคำติชมใดๆ แต่ฉันระบุช่องว่างในความรู้และเริ่มปิดช่องว่างเหล่านั้นอย่างขยันขันแข็ง ฉันหางานได้หนึ่งเดือนหลังจากการสัมภาษณ์ล้มเหลว อย่างไรก็ตาม ฉันเจอตำแหน่งที่ว่างในการสนทนา JavaRush ขั้นแรกคือการสัมภาษณ์ผ่าน Skype กับเจ้าหน้าที่สรรหา (ใช้เวลาประมาณ 2 ชั่วโมง) พวกเขาถามเกี่ยวกับ Java Core, GC (ตอนนี้ฉันรู้แล้วว่ามันทำงานอย่างไร), ฐานข้อมูล, โครงสร้างข้อมูล จากนั้นผู้สัมภาษณ์ขอให้ฉันแชร์หน้าจอและเขียนเครื่องคิดเลข ฉันแทบจะกรีดร้องด้วยความดีใจเพราะฉันเขียนเครื่องคิดเลขเมื่อสัปดาห์ก่อน ด้วยความมั่นใจในตัวเอง ฉันจึงเริ่มงาน แต่ไม่ว่าจะด้วยความตื่นเต้นหรือด้วยเหตุผลอื่นใด ฉันจึงลืมส่วนหนึ่งของอัลกอริทึมไป มีการแชร์หน้าจอ - การไปที่ Google น่ากลัว โชคดีที่ฉันมีโทรศัพท์มือถือที่ช่วยชีวิตฉันได้ วันรุ่งขึ้นพวกเขาโทรหาฉันเพื่อสัมภาษณ์ด้วยตนเอง และสองสามวันต่อมาฉันก็ได้รับข้อเสนอ
ในตอนแรกมี JavaRush - 1
งานไม่เป็นทางการ ฉันอยู่ในบทบาทของเด็กฝึกงานสำหรับผู้ประกอบการรายบุคคล เราเขียนบริการสำหรับสร้างกิจกรรม ขายตั๋ว และอื่นๆ อีกมากมาย ฉันจำวันแรกที่ทำงานได้ - ผู้ประกอบการแต่ละคนใช้เวลา 15 นาทีในการอธิบายสิ่งที่ต้องทำ - ทุกอย่างชัดเจนแล้วหรือยัง? - ถามไอพี - อืม ไม่ได้จริงๆ เราทำอีกครั้งได้ไหม? - ฉันถามอย่างกังวลอย่างมาก IP อธิบายทุกอย่างอีกครั้ง - ตอนนี้ชัดเจนแล้วเหรอ? - ตอนนี้ใช่. อันที่จริงฉันไม่เข้าใจอะไรเลย แต่ฉันกลัวที่จะขอคำอธิบายอีกครั้งฉันคิดว่าทุกคนที่ได้งานจะเข้าใจฉัน สาระสำคัญของงานคือการเขียนใหม่จาก thymeleaf เป็น AngularJS โชคดีที่ฉันพบโค้ดสำเร็จรูปบางส่วนแล้วทำตามตัวอย่างและทำเช่นเดียวกัน ตอนนั้นฉันไม่เข้าใจว่ามันทำงานอย่างไร แต่ฉันก็สามารถรับมือกับงานนี้ได้ จากนั้นก็มาถึงงานที่เกี่ยวข้องโดยตรงกับส่วนแบ็คเอนด์ หลังจากประสบการณ์จริงกับ Spring เท่านั้น ฉันจึงเริ่มเข้าใจสิ่งที่เขียนไว้ในหนังสือ "Spring for Professionals" ฉันทำงานที่นั่นได้ 8 เดือน หลังจากนั้นฉันก็ย้ายไปอีกเมืองหนึ่งซึ่งฉันได้งานราชการอย่างรวดเร็ว ทำงานมาได้ 2 ปี และในขณะเดียวกันก็เปลี่ยนชื่องานจาก "จูเนียร์" เป็น "กลาง" ตอนนี้ฉันกำลังเผชิญกับความจริงที่ว่างานกลายเป็นกิจวัตรและไม่ทำให้เกิดความสุขเลย ดังนั้น ในขณะนี้ ฉันจึงหยุดพัก และเพื่อป้องกันไม่ให้นิ้วของฉันลีบระหว่างพัก ฉันจึงตัดสินใจลองพัฒนาเกมภาคสนามอื่น กล่าวคือ การพัฒนาเกมมือถือสำหรับผู้เริ่มต้น Android เพราะ... ฉันรู้จักจาวา ฉันจะบอกคุณเกี่ยวกับเรื่องนี้โดยละเอียด เกี่ยวกับเรา ในช่วงเวลาสั้นๆ ทีมเล็กๆ 4 คน (รวมฉันด้วย) มารวมตัวกัน: นักพัฒนา 2 คน นักออกแบบเกม 1 คน วิศวกรเสียง 1 คน เพราะ ไม่มีใครในทีมมีประสบการณ์ในด้านการพัฒนาเกม และเวลาว่างของฉันมีจำกัด เราจึงตัดสินใจที่จะดำเนินโครงการง่ายๆ ที่เราจะต้องดูจนจบอย่างแน่นอน พวกเขาทำมัน! ในตอนแรกกำหนดเส้นตายคือวันที่ 15 พฤศจิกายน แต่อย่างที่คุณทราบ การทำโปรเจ็กต์ให้เสร็จตามกำหนดเวลาเดิมถือเป็นบาป ดังนั้นเราจึงทำมันเสร็จในสองสัปดาห์ต่อมา ตามสิ่งเหล่านั้น สแต็กคือ: Java 8 และ libGDX

เกี่ยวกับการพัฒนา

ถือว่าเริ่มพัฒนาได้วันที่ 17 ตุลาคม โดยรวมแล้วเราใช้เวลา 45 วัน ในระหว่างนั้น:
  1. เรียนรู้การทำงานกับ libGDX;
  2. เขียนโค้ด;
  3. วาดกราฟิก
  4. ทำเพลง;
ใครที่ได้ดูเกมแล้วอาจจะมีคำถามว่า ทำไมมันนานจัง ตัวเกมมันง่าย? ใช่ นี่เป็นเรื่องจริง และถ้าให้พูดให้ชัดเจนก็คือ การพัฒนาตัวเอง (การเขียนโค้ด) ใช้เวลาประมาณหนึ่งสัปดาห์ครึ่ง เวลาที่เหลือสามารถแบ่งได้ระหว่าง:
  1. การควบคุมเครื่องยนต์
  2. วาดภาพแล้ววาดใหม่
  3. การเขียนเพลง
  4. ค้นหาเสียงบนhttps://freesound.org ;
  5. อ่านบทความมากมายเกี่ยวกับวิธีโปรโมตเกม
นอกจากนี้ยังมีช่วงเวลา "หยุดทำงาน" ด้วยเหตุผลหลายประการ เช่น มีคนสอบ มีคนสอบใหม่ ฯลฯ คุณสามารถใช้เวลาหนึ่งสัปดาห์ครึ่งหรือมากกว่านั้นกับ "เวลาหยุดทำงาน" ได้อย่างปลอดภัย อีกส่วนหนึ่งของเวลาถูกใช้ไปกับ "การโต้วาที": เกือบทุกวันมีแนวคิดเกี่ยวกับสิ่งที่จะเพิ่มลงในเกม ดังนั้นจึงมีข้อพิพาทเกี่ยวกับ "สิ่งนี้จะฟุ่มเฟือย" "สิ่งนี้จะไม่เข้ากัน" ฯลฯ ดังนั้นเราจึงละทิ้งแนวคิดมากมาย เช่น เพิ่มแมลงสาบวิ่งที่คุณสามารถบดขยี้และหาเงินเพิ่มได้ ประเด็น: ในตอนแรกมี JavaRush - 2โดยทั่วไปแล้ว หนึ่งในสิ่งที่ยากที่สุดในความคิดของฉันคือการตัดสินใจล่วงหน้าว่าจะมีอะไรอยู่ในเกมและยึดตามแผนนี้โดยไม่ต้องพยายามเพิ่มคุณสมบัติ "อื่น" นี่คือวิธีที่เราสะสม 45 วันเหล่านี้ ต้นแบบเกมพร้อมแล้วหลังจากผ่านไปหนึ่งสัปดาห์ครึ่ง ในช่วงเวลานี้ เรายังไม่มีกราฟิกจริงๆ ดังนั้นเราจึงนำบางสิ่งจากสาธารณสมบัติ (เช่น เรายืมกระดาษพื้นหลังจาก Doodle Jump) และบางส่วนเราสร้างขึ้นเองด้วยสี ในตอนแรกมี JavaRush - 3เกมนี้เล่นง่ายมากในทางเทคนิค - เราไม่จำเป็นต้องใช้ box2d (เครื่องมือฟิสิกส์) ด้วยซ้ำ เราสามารถรับมือกับการชนและคำนวณด้านตรงข้ามมุมฉากได้ด้วยตัวเอง ประเด็นที่น่าสนใจที่สุดฉันจะเน้นประเด็นต่อไปนี้
  1. เริ่มแรก องค์ประกอบทั้งหมดในเกมถูกสร้างขึ้นแบบสุ่ม เหล่านั้น. เรามีผู้จัดหาหลุมดำ กรรไกร ดาวกระจาย แท่ง หัวใจ - เราใส่พวกมันไว้ในอาร์เรย์ จากนั้นเราเลือกผู้ให้บริการแบบสุ่มและรับองค์ประกอบที่มีพิกัดแบบสุ่ม เห็นได้ชัดว่าแนวทางนี้ "ไม่ค่อยดีนัก" เพื่อนของเราที่เข้าร่วมการทดสอบบอกเราในสิ่งเดียวกันและแนะนำให้เราใช้เทมเพลต แน่นอนว่าสำหรับผู้ที่เกี่ยวข้องกับการพัฒนาเกม นี่เป็นวิธีแก้ปัญหาที่ชัดเจน แต่... เรายังใหม่กับพื้นที่นี้และนี่เป็นคำแนะนำที่ดีมากสำหรับเรา

    ดังนั้นจึงมีรูปแบบต่างๆ เกิดขึ้น: หุบเขาแห่งกรรไกร; แท่งทแยงมุม - มันค่อนข้างสนุกที่จะประกอบมันด้วยความเร็วสูง (หวด - หวด - หวดด้วยนิ้วของคุณ); และอีกหนึ่งเทมเพลต ฉันไม่รู้ว่าจะเรียกมันว่าอะไร ฉันจะเรียกมันว่าคลาสนี้เรียกว่าอะไรในโค้ด: StraightForwardPattern

    ในตอนแรกมี JavaRush - 4

    มันน่าพึงพอใจมากขึ้นเมื่อใช้เทมเพลต แต่มันก็คาดเดาไม่ได้หรืออะไรสักอย่าง ดังนั้นการสุ่มแบบเดียวกันจึงกลายเป็นอีกเทมเพลตหนึ่ง เหล่านั้น. ตอนนี้เรามีเทมเพลต "คงที่" และเทมเพลตแบบสุ่มหนึ่งอัน (นี่คือมีมเกี่ยวกับความสมดุลที่สมบูรณ์แบบ)

  2. ปัญหาหลักที่เราพบคือสิ่งนี้ LibGDX เรียกใช้เมธอด render(float delta) ในลูปไม่มีที่สิ้นสุด ซึ่งการเรนเดอร์องค์ประกอบทั้งหมดเกิดขึ้นจริง เราวาดเส้นดินสอด้วยวิธีต่อไปนี้: เราใช้พิกัดของนิ้วและวางพื้นผิวไว้ที่นั่น ดังนั้น ถ้าเราเลื่อนนิ้วไปบนหน้าจออย่างรวดเร็ว "หลุม" ก็เกิดขึ้นเพราะเราจบลงที่เสี้ยววินาทีเมื่อเมธอดการเรนเดอร์ (เดลต้า) ใช้งานได้แล้วและยังไม่ได้ถูกเรียกอีก ปัญหาได้รับการแก้ไขค่อนข้างง่าย - เราจำพิกัดสุดท้ายที่พื้นผิวถูกวาดเราได้พิกัดถัดไปและหากระยะห่างระหว่างพวกเขามากกว่า X และนิ้วไม่ถูกปล่อยเราจะเติมช่องว่างนี้ ตอนแรกเราคิดว่าตัวเลือกนี้อาจไม่ได้ผล - เส้นจะเป็นมุม แต่ความกลัวของเราก็ไร้ประโยชน์ - ทุกอย่างทำงานได้ตามปกติ

    จริงๆแล้วเกี่ยวกับเกม

    รูปแบบการเล่นไม่ได้แสร้งทำเป็นว่ามีเอกลักษณ์ แต่มันค่อนข้างดีและสามารถเสพติดได้ คุณควบคุมดินสอ วาดบนกระดาษ หลบสิ่งกีดขวาง - กรรไกร ดาวกระจาย หลุมดำ ในกรณีนี้แกนดินสอจะสิ้นสุดและคุณต้องหยิบดินสออันเล็กขึ้นมา ในกรณีที่แท่งไม้หมดและยังไม่มีดินสอ คุณสามารถหยิบเศษกระจกขึ้นมาได้ มันจะมีผลในไม่กี่วินาที - แทนที่จะเสียแท่งมันจะถูกคืนค่า แต่ในขณะเดียวกันการควบคุมก็จะถูกมิเรอร์ - คุณเลื่อนไปทางซ้ายและดินสอก็วาดไปทางขวา คุณยังสามารถรับหัวใจที่จะทำให้คุณต้องเผชิญกับอุปสรรคครั้งหนึ่งและมีชีวิตอยู่ได้ ยิ่งคุณกดค้างไว้นานโดยไม่ยกนิ้วออกจากหน้าจอ คอมโบก็จะยิ่งสูงขึ้น ซึ่งจะเป็นการเพิ่มความเร็วในการได้รับคะแนน แถมความเร็วของเกมก็ค่อยๆเพิ่มขึ้น เว้นแต่ว่าคุณไม่สามารถปล้น Korovans ได้ ในตอนแรกมี JavaRush - 5ตอนแรกเราตั้งใจจะเรียกเกม Karan Dash (ดินสอ 555 เข้าใจใช่ไหม?) แต่ต่อมาเราก็เปลี่ยนใจและตัดสินใจเลือก Pencil Dash แทน แรงจูงใจก็คือการเล่นคำที่หรูหรา (ฉันกำลังพูดอยู่) นี้จะเข้าใจได้เฉพาะกับผู้ชมที่พูดภาษารัสเซียเท่านั้น เราเปิดตัวเกมเมื่อสองสามวันก่อน และตอนนี้กำลังโปรโมตเกมอยู่ ในทีมไม่มีใครมีประสบการณ์เรื่องนี้เช่นกันเรารวบรวมความรู้เรื่องการโปรโมทจากบทความต่างๆ เราเผยแพร่ข้อมูลเกี่ยวกับเกมบนเว็บไซต์/ฟอรั่มต่างๆ ฟรี สำหรับช่องแบบชำระเงิน เราสั่งโฆษณาบน 4PD จากบล็อกเกอร์คนหนึ่ง โพสต์หลายโพสต์ในหน้าสาธารณะของ VK และ AdMob อย่างไรก็ตาม โพสต์นี้เป็นส่วนหนึ่งของโปรโมชัน ดังนั้นหากได้รับอนุญาตจากฝ่ายบริหาร ฉันจึงฝากลิงก์ไปยังเกมไว้ที่นี่ หน้าเกมบน Google Play: คลิก ฉันจะทิ้งลิงก์ไปยังกลุ่ม VK ของเราด้วย ซึ่งคุณสามารถแสดงความคิดเห็น/ข้อเสนอแนะ และไม่พลาดการอัปเดตคลิก ฉันจะขอบคุณหากคุณติดตั้ง (จะเป็นอย่างไรถ้าคุณชอบ) และสำหรับการรีวิวที่มีการให้คะแนน ฉันสัญญาว่าจะจุดเทียนเพื่อสุขภาพของคุณ! ถามคำถามถ้าคุณมีฉันจะตอบในตอนแรกมี JavaRush - 6

ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION