Eugene Cozac กับการเป็นนักพัฒนาระดับบนสุด
เผยแพร่แล้ว: 2022-10-26TechBullion: คุณเข้าสู่การเขียนโปรแกรมได้อย่างไร
Eugene Cozac: เมื่อโตขึ้นฉันค้นพบความสนใจในวิชาคณิตศาสตร์และวิทยาศาสตร์ STEM ฉันเริ่มเขียนโค้ดด้วยตัวเอง และแน่นอน เมื่อเรียนจบมัธยม ฉันแน่ใจ 100% ว่าต้องการทำงานด้านไอที ดังนั้นฉันจึงได้รับปริญญาวิศวกรรมคอมพิวเตอร์จากมหาวิทยาลัยที่ดีที่สุดในมอลโดวา ก่อนเข้าสู่การเขียนโปรแกรม ฉันได้ประกอบคอมพิวเตอร์มากกว่า 300 เครื่องเมื่อจบปริญญาแรกในสาขาวิศวกรรมคอมพิวเตอร์
TechBullion: อะไรคือโครงการที่ท้าทายที่สุดสำหรับคุณในตอนเริ่มต้น?
Eugene Cozac: ฉันไม่สามารถพูดได้ว่าฉันมีปัญหาในตอนเริ่มต้น แต่มีหนึ่งในปีที่สามในอาชีพการงานของฉันเมื่อฉันกลายเป็นนักพัฒนาส่วนหน้าสำหรับ Samsung Pay เนื่องจากฉันเป็นผู้พัฒนา UI ชั้นนำของ Samsung Pay Promotion ฉันจึงรับผิดชอบทุกอย่าง Samsung Pay มีผู้ใช้มากกว่า 15 ล้านคนในตอนนั้น และปัญหาหรือข้อบกพร่องใดๆ อาจส่งผลต่อประสบการณ์ของพวกเขา หากมีข้อผิดพลาดเกิดขึ้น ผู้ใช้ทั้งหมดสามารถเห็นได้ ดังนั้นฉันจึงระมัดระวังและพยายามนำเสนอคุณภาพสูงสุดเท่าที่จะเป็นไปได้
TechBullion: โดยปกติ ผู้คนจะเชี่ยวชาญในขอบเขตที่แคบของภาษาโปรแกรม คุณลงเอยด้วยความรอบรู้ด้านภาษาโปรแกรมได้อย่างไร?
Eugene Cozac : โดยปกติ เส้นทางอาชีพของนักพัฒนาคือการเลื่อนระดับจากระดับจูเนียร์ไปเป็นอาวุโส เมื่อเวลาผ่านไปด้วยการพัฒนาชุดทักษะของพวกเขา แต่นี้ไม่เพียงพอ นักพัฒนาส่วนใหญ่มักจะทำงานในบริษัทเดียวกันและในโครงการเดียวกันเป็นเวลาสองสามปี แต่นี่ไม่ใช่วิธีที่คุณสามารถเป็นนักพัฒนา 1% แรกได้ นอกจากนี้ ผู้คนยังไม่จำเป็นต้องสามารถสลับโครงการได้อย่างรวดเร็ว และหากพวกเขาต้องการย้ายไปบริษัทอื่น สิ่งนี้อาจกลายเป็นเรื่องท้าทาย ผมอยากจะบอกว่านักพัฒนาหลายคนอยู่ใน Comfort Zone ซึ่งก็ไม่เป็นไร ในขณะเดียวกัน แม้แต่นักพัฒนาระดับอาวุโสก็มักจะไม่เต็มใจที่จะรับผิดชอบในการเป็นหัวหน้าโครงการเสมอไป พวกเขาแค่ทำหน้าที่ของตน อาจเกี่ยวข้องกับบุคลิกภาพ% คนส่วนใหญ่ไม่ต้องการมีส่วนร่วมใน hackathons เป็นส่วนหนึ่งของวิทยาศาสตร์หรือสร้างสิ่งที่ช่วยแก้ปัญหาในการเขียนโปรแกรม พวกเขาเป็นคนเกียจคร้านและอยู่ในเขตสบายของตนได้ดี ฉันอยากรู้อยากเห็นอยู่เสมอ และความสามารถในการเรียนรู้ภาษาต่างๆ ของฉันมาจากความเต็มใจที่จะแก้ปัญหาในวิธีที่ดีที่สุด เมื่อเทียบกับความสามารถในการเขียนโค้ดในภาษาอื่น
TechBullion: คุณมีส่วนร่วมใน hackathons หรือการเขียนโปรแกรม sprints หรือไม่?
Eugene Cozac: ไม่เลยจริงๆ ฉันรู้ว่านักพัฒนาหลายคนสามารถลองใช้ทักษะของพวกเขาใน Hackathons ได้ แต่ฉันคิดว่าสิ่งที่สำคัญที่สุดคือพยายามสร้างโครงการให้มากที่สุดเท่าที่จะทำได้ และทำงานในสภาพแวดล้อมที่แตกต่างกัน จริงอยู่ นักพัฒนามักต้องการแสดงให้ผู้อื่นหรือตัวเองเห็นว่าพวกเขาเจ๋งแค่ไหนผ่าน Hackathons แต่สำหรับฉัน อีกวิธีในการพิสูจน์ทักษะของคุณคือสร้างกรอบงานของคุณเองบน JS/CSS และทำให้เป็นสาธารณะหรือใช้ กรอบงานในบริษัทที่คุณทำงานอยู่ และเพื่อพิสูจน์ว่าเหตุใดบริษัทนี้จึงควรใช้เฟรมเวิร์กของคุณเอง แต่ไม่ใช่ React หรือ Bootstrap หรือ Material UI อย่างไรก็ตาม มีนักพัฒนาเพียง 1% เท่านั้นที่ชนะ Hackathons การสร้างเฟรมเวิร์กของตนเอง สามารถสร้างแพลตฟอร์มบางอย่างที่ผู้ใช้หลายล้านคนสามารถนำกลับมาใช้ใหม่ได้
TechBullion: ผลิตภัณฑ์สร้างที่เร็วที่สุดของคุณคืออะไร? คุณมีปฏิสัมพันธ์กับทีมในระหว่างกระบวนการอย่างไร?
Eugene Cozac: โดยปกติ นักพัฒนาจะทำงานในสภาพแวดล้อมที่เปรียว และพวกเขามีงานจำนวนมากต่อหนึ่งการวิ่ง (2 สัปดาห์) จะทำอย่างไรถ้างานเหล่านี้หารด้วย 2 สัปดาห์ แต่คุณสามารถทำทุกอย่างใน 3 วัน? ไม่ใช่ทุกบริษัทที่มีจริยธรรมที่จะของานเพิ่ม เพราะเราเท่าเทียมกัน และผู้จัดการโครงการก็กำลังวางแผนปริมาณงานสำหรับนักพัฒนาทั้งหมดด้วย แต่ฉันมีสถานการณ์ที่ฉันเป็นผู้รับเหมาให้กับบริษัทที่ฉันเป็นนักพัฒนาเพียงคนเดียว นั่นคือเหตุผลที่ฉันเลือกบริษัทนั้น สำหรับฉัน การทำงานเล็กๆ น้อยๆ นั้นไม่น่าสนใจนัก ฉันต้องการสร้าง Web App สำหรับบริษัททั้งหมดด้วยตัวเอง เช่น แทนที่จะเป็นนักพัฒนา 5 คน ใน 11 เดือน ฉันสร้างระบบ CRM ตั้งแต่ต้นจนจบ มีการทำงานของ API, UI และ UX โครงการนี้เสร็จสิ้นอย่างรวดเร็วด้วยฟังก์ชันมากมาย เช่น การจัดการโครงการ การติดตามสินค้าคงคลัง การสร้างใบแจ้งหนี้ การสร้างและการจัดการราคา ตลอดจนการติดตามสินค้าคงคลังโดยใช้ GPS ฉันไม่มีข้อมูลที่เป็นปัจจุบัน แต่ CRM นี้จะขายเป็นการสมัครสมาชิกเนื่องจากธุรกิจขนาดเล็ก: อะคูสติกในการก่อสร้าง
TechBullion: การเป็นนักพัฒนาระดับแนวหน้าต้องทำอย่างไร?
Eugene Cozac: นักพัฒนาหลายคนสามารถตอบคุณได้ว่าประสบการณ์คือสิ่งที่สำคัญที่สุด หากคุณต้องการเป็นนักพัฒนาระดับแนวหน้า แต่สิ่งนี้ไม่จำเป็นต้องเป็นความจริงเสมอไป ฉันรู้จักนักพัฒนาหลายคนที่มีประสบการณ์มากกว่า 10 ปี แต่หลายโครงการหรืองานที่ซับซ้อนต่างกันอาจเป็นสิ่งที่ท้าทายสำหรับพวกเขา สิ่งนี้สามารถอธิบายได้ว่าทำไมสำหรับบางคนถึงต้องใช้เวลา 7-8 ปีในการเป็น Senior Developer ในขณะที่คนอื่นๆ ใช้เวลาเพียง 4 ปี ดังนั้น วิธีที่ดีที่สุดคือการพัฒนาความสามารถพิเศษของคุณ และวิธีที่ถูกต้องในการแก้ปัญหา แล้วจึงมีประสบการณ์ ในขณะเดียวกันก็เหมาะที่จะทำการสัมภาษณ์ในการพัฒนาเพื่อการจ้างงาน: ฉันสัมภาษณ์ลูกค้ามากกว่า 100 ราย อย่างที่ฉันพูดไปเพื่อพิสูจน์ความสามารถและทักษะพิเศษของคุณในการเขียนโปรแกรมคือการนำโครงการไปใช้ในกรอบงานของคุณเองในบริษัทที่คุณทำงานอยู่ ซึ่งหมายความว่าคุณไม่เพียงแต่รู้ภาษาโปรแกรมและวิธีใช้กรอบงานเท่านั้น แต่คุณสามารถสร้างกรอบงานของคุณเองและพิสูจน์ให้บริษัทใช้ ดังนั้นตามกรอบงานของคุณเองจะสร้างผลิตภัณฑ์ที่ใช้ผู้ใช้หลายล้านคน ฉันคิดว่าสิ่งนี้สามารถทำได้เพียง 1% ของนักพัฒนา ตัวอย่างเช่น ฉันกำลังสร้างเฟรมเวิร์ก UI ของตัวเองซึ่งสามารถใช้ร่วมกับ React ได้ในชื่อ Krypton มันยังไม่เสร็จ แต่สำหรับลูกค้าปัจจุบันของฉัน ฉันกำลังใช้ส่วนต่าง ๆ ของ Krypton เพื่อสร้างโครงการใหม่ ดังนั้นไคลเอนต์ปัจจุบันไม่ได้ใช้เฟรมเวิร์กของฉันทั้งหมด แต่เพียงบางส่วน แต่ฉันหวังว่าจนกว่าเราจะทำโปรเจ็กต์สำหรับลูกค้ารายนี้ให้เสร็จ Krypton ของฉันจะเสร็จสิ้น และมากกว่า 60% ของโปรเจ็กต์จะถูกสร้างขึ้นบน Krypton นอกจากนี้ เคล็ดลับที่ดีประการหนึ่งในการเป็นนักพัฒนาระดับแนวหน้าคือการเขียนสิ่งพิมพ์ทางวิทยาศาสตร์ลงในวารสารระดับมืออาชีพ ฉันมีมากกว่า 25 เล่ม นอกจากนี้ ฉันได้ทำการรีวิวบทความจากเพื่อนมากกว่า 100 ครั้ง เพราะในฐานะนักพัฒนา คุณไม่จำเป็นต้องเป็นส่วนหนึ่งของการเขียนโปรแกรมเท่านั้น แต่ยังต้องเป็นส่วนหนึ่งของวิทยาศาสตร์ด้วย
TechBullion: ทักษะที่แข็งแกร่งที่สุดของคุณคืออะไร?
Eugene Cozac: ฉันจะบอกว่าความสามารถในการเข้าร่วมโครงการใด ๆ ในกรอบเวลาใดก็ได้ ฉันอยู่ในสถานการณ์ที่แตกต่างจากตอนที่ฉันเริ่มโครงการตั้งแต่เริ่มต้น หรือฉันเข้าร่วมเมื่อโครงการอยู่ในระหว่างดำเนินการ หลายๆ บริษัทให้เวลาคุณประมาณ 2 – 3 สัปดาห์ในการทำความเข้าใจ โดยปกติแล้ว สำหรับฉันจะใช้เวลา 2 วัน นักพัฒนาที่มีความสามารถพิเศษสามารถเข้าใจโครงการใด ๆ และเริ่มแก้ไขปัญหาหรือทำงานในเวลาไม่กี่วันไม่ใช่สัปดาห์ นอกจากนี้ ฉันสามารถทำงาน 4 โครงการในเวลาเดียวกัน ฉันคิดว่ามีนักพัฒนาเพียง 1% เท่านั้นที่สามารถทำได้ ฉันหมายถึงนักพัฒนาทุกประเภทตั้งแต่รุ่นเยาว์ไปจนถึงผู้นำด้านเทคนิค ฉันมีประสบการณ์ในการทำงาน 2, 3 และ 4 โครงการในเวลาเดียวกัน และได้ผลลัพธ์ที่ดีมาก นอกจากนี้ อย่างน้อยฉันก็เป็นรุ่นพี่หรือหัวหน้าทีมสำหรับนักพัฒนาประมาณ 4 คน นอกจากนี้ ในระดับนี้ คุณต้องสามารถให้คำปรึกษานักพัฒนารายอื่นตั้งแต่รุ่นจูเนียร์ถึงรุ่นอาวุโส การทำงานอย่างรวดเร็วไม่เพียงแต่ในโปรเจ็กต์แบบวันต่อวันเท่านั้น แต่ยังรวมถึงการสร้างบางอย่าง เช่น กรอบงานโอเพนซอร์ส การเขียนสิ่งพิมพ์ทางวิทยาศาสตร์ และอื่นๆ คุณภาพ. ความเร็ว. การกระจายการลงทุน
TechBullion: ภาษาใดที่ท้าทายที่สุดสำหรับคุณ
Eugene Cozac: ฉันไม่คิดว่ากรอบงานหรือภาษาใด ๆ เป็นสิ่งที่ท้าทายมาก เมื่อคุณรู้ว่าภาษาโปรแกรมภาษาอื่นก็เหมือนกัน เพียงแค่มีกฎอื่นๆ สองสามข้อ หรือกรอบงานสามารถมีคุณสมบัติน้อยลงหรือมากขึ้น สำหรับนักพัฒนาที่มีความสามารถพิเศษ ไม่มีภาษาการเขียนโปรแกรมที่ท้าทาย