พบกับMilan Vucic หนึ่งใน ที่ปรึกษาหลักสูตร "Java Fundamentals" ที่ CodeGym University ผู้เขียนและผู้สอนหลักสูตร" การพัฒนาแอป Android สำหรับผู้เริ่มต้น" เขามีประสบการณ์แปดปีในการทำงานเป็นนักพัฒนา Android และให้คำปรึกษาด้าน Java และ Android สองสามปี ในข้อความนี้ เขาพูดถึงภูมิหลังทางวิชาชีพและการให้คำปรึกษา เปิดเผยข้อผิดพลาดที่ใหญ่ที่สุดที่มือใหม่สามารถทำได้ และแนะนำผู้ใช้ CodeGym ในการมาเป็นนักพัฒนา

ทำไมคุณถึงเลือกเป็นนักพัฒนา?

ฉันมาจากเซอร์เบีย ตอนที่ฉันยังเป็นเด็ก ฉันย้ายบ่อยมาก ดังนั้นฉันจึงเปลี่ยนโรงเรียนประถมห้าแห่งในแปดปี นั่นทำให้ฉันค่อนข้างพูดตรงไปตรงมาและเปิดกว้างต่ออาจารย์ใหม่ๆ ครั้งหนึ่งฉันมีอาจารย์สอนคณิตศาสตร์ที่เก่ง ฉันจึงเริ่มแข่งขันวิชาคณิตศาสตร์และได้รับรางวัลที่สามในการแข่งขันระดับประเทศเซอร์เบีย ต่อมา ฉันเข้าเรียนที่โรงเรียนไวยากรณ์คณิตศาสตร์ ซึ่งฝึกนักเรียนที่เก่งที่สุดให้เข้าร่วมการแข่งขันระดับโลกในด้านคณิตศาสตร์ ฟิสิกส์ และการเขียนโปรแกรม ฉันชอบสาขาวิชาการเหล่านั้นมาก ย้อนกลับไปสมัยมัธยมปลาย ฉันเรียนภาษาต่างๆ มากมาย เช่น Pascal, C, C# และ SQL เล็กน้อยสำหรับฐานข้อมูล นอกจากนี้ ฉันยังเป็นเกมเมอร์มาทั้งชีวิต และฉันเห็นศักยภาพที่ยอดเยี่ยมในการสร้างเกม

เส้นทางการเรียนรู้ของคุณในการเป็นนักพัฒนาคืออะไร?

ฉันได้เข้าสู่การเขียนโปรแกรมอย่างจริงจังในวิทยาลัยเป็นครั้งแรก ฉันลงทะเบียนเรียนในวิทยาลัยวิศวกรรมศาสตร์ที่ดีที่สุดแห่งหนึ่งในเบลเกรด และเรียนที่นั่นมาสองปีแล้ว ตอนนั้นผมได้เกรดค่อนข้างสูงในแต่ละวิชาจากโครงการฝึกอบรม จากนั้น ฉันกับเพื่อนจึงตัดสินใจสร้างแอปและสมัครฝึกงาน (เมื่อปี 2015) โชคดีที่ “โครงการบ้าน” ของเราช่วยให้เราได้ตำแหน่งเด็กฝึกงาน และเราเริ่มทำงานในบริษัทแห่งหนึ่ง ภาษาหลักสำหรับโปรเจ็กต์คือ PHP ซึ่งฉันไม่เคยลองใช้มาก่อน แต่ฝ่ายบริหารให้เวลาเราสองสามสัปดาห์ในการเรียนรู้เฟรมเวิร์ก PHP ซึ่งฉันทำโดยการดูบทช่วยสอนของ YouTube และ Google ฉันยังเขียนโค้ดด้วย PHP เพียงเพื่อทำความคุ้นเคยกับภาษา ในที่สุดเราก็ได้เข้าร่วมทีมและอยู่ที่บริษัทนั้นเป็นเวลาหนึ่งปี จากนั้นฉันก็ได้งานใหม่ โดยเขียนโปรแกรม Python และต่อมาก็เปลี่ยนมาใช้ Android ช่วงสองสามปีแรกนั้นเต็มไปด้วยความท้าทายและเต็มไปด้วยงานและความรู้ใหม่ๆ แต่ความมั่นใจของฉันก็ค่อยๆเพิ่มขึ้น เมื่อถึงจุดหนึ่ง ฉันคิดว่าในที่สุดฉันก็ได้เป็นโปรแกรมเมอร์ตัวจริงแล้ว

คุณเคยทำงานให้กับบริษัทใดบ้าง และคุณเข้าร่วมโครงการใดบ้าง

บริษัทแรกของฉันยอดเยี่ยมมาก ฉันชอบวัฒนธรรมที่นั่น ฉันเคยเป็นสมาชิกของทีมวิจัยและพัฒนาของพวกเขา เรากำลังพัฒนาแอปเพื่อช่วยนักเรียนจัดการศึกษาในวิทยาลัย โดยคุณจะมี UI ที่เป็นมิตรเพื่อดูว่าห้องไหนว่าง ห้องไหนเต็ม และตารางการบรรยาย บริษัทแห่งที่สองที่ฉันทำงานคือบริษัทที่ดีที่สุดในภูมิภาคในด้านการเขียนโปรแกรม ฉันสนุกมากที่นั่น เรากำลังสร้างแอปประเภทต่างๆ สำหรับฉัน ส่วนใหญ่แล้วฉันกำลังทำงานกับแอปทางการแพทย์ จากนั้น ในช่วงสามปีครึ่งที่ผ่านมา ฉันทำงานในบริษัทที่ให้บริการแอปเล่นโป๊กเกอร์สำหรับผู้ใช้ และที่นั่น ฉันได้เรียนรู้สิ่งต่างๆ มากมายเกี่ยวกับ Android

จากมุมมองของคุณ อนาคตของ Java ในการพัฒนา Android (และโดยทั่วไป) คืออะไร?

ฉันเขียนโค้ดเป็นภาษา Java เป็นหลัก ซึ่งเป็นภาษาที่ฉันชอบ จากภาษาทั้งหมดที่ฉันใช้ Java เป็นภาษาที่สวยงามที่สุดและง่ายที่สุดในการเรียนรู้เพราะมันเป็นมิตรมาก Java ถูกใช้ไปแล้วในหลายโครงการ แน่นอนว่ามันมีอนาคต คุณสามารถสร้างได้เกือบทุกอย่างใน Java ตั้งแต่ Android ไปจนถึงเว็บแอป ตั้งแต่แบ็กเอนด์ไปจนถึงฟรอนต์เอนด์ไปจนถึงเดสก์ท็อป แต่ถึงแม้ว่าเราจะจินตนาการว่า Java ไม่มีอนาคตและโครงการทั้งหมดที่เขียนด้วย Java ได้หยุดลงแล้ว (ซึ่งเป็นไปไม่ได้) แต่ก็ยังเป็นภาษาที่ยอดเยี่ยมสำหรับการทำความคุ้นเคยกับการเขียนโปรแกรม เมื่อรู้จัก Java คุณสามารถเรียนรู้ Python หรือ C# ได้อย่างรวดเร็ว คุณจะไม่ชอบการเขียนโปรแกรมหากคุณเรียนรู้ภาษาที่ซับซ้อน (หรือน่าเกลียด) ก่อน ถ้าฉันได้เรียนรู้ PHP หรือ C++ ตั้งแต่ต้น ฉันอาจจะไม่ชอบการเขียนโปรแกรมเลย เพราะมันไม่ง่ายเลยที่จะเชี่ยวชาญ

คุณตัดสินใจเป็นที่ปรึกษาเมื่อถึงจุดใด

ดังที่ฉันได้กล่าวไปแล้ว อาจารย์ของฉันหลายคนทำงานได้อย่างยอดเยี่ยม ฉันให้เครดิตกับการสอนที่สร้างแรงบันดาลใจของพวกเขา ซึ่งช่วยให้ฉันมีความเชี่ยวชาญในสาขาวิชาของพวกเขา และกระตุ้นให้ฉันได้รับความรู้มากขึ้น โดยธรรมชาติแล้ว เมื่อฉันกลายเป็นนักพัฒนาที่มีประสบการณ์มากมาย ฉันแค่รู้สึกว่าจำเป็นต้องถ่ายทอดความรู้ให้กับใครสักคน เพราะฉันรู้วิธีการทำอย่างถูกต้อง นี่คือสาเหตุที่ฉันเริ่มทำงานที่ Codementor ฉันมีนักเรียนประจำอย่างน้อยสิบคนและเซสชันแบบครั้งเดียว (ประมาณนั้น) หลายครั้ง และฉันได้แนะนำพวกเขาจากการไม่รู้วิธีเปิดคอมพิวเตอร์ มาเป็นการทำความเข้าใจวิธีเขียนโค้ดแอป Java หรือ Android แบบง่ายๆ ฉันยังมีเซสชั่นการแก้ไขข้อบกพร่องแบบสด: มีตัวเลือกสำหรับผู้ใช้ Codementor เพื่อจองการนัดหมายกับที่ปรึกษาและรับความช่วยเหลือในการแก้ไขข้อบกพร่อง ในระหว่างเซสชันเหล่านี้ ฉันได้แก้ไขข้อบกพร่องและอธิบายว่าฉันกำลังทำอะไรอยู่ (และเพื่อวัตถุประสงค์ใด) ในบางจุด ประสบการณ์นี้มีอิทธิพลอย่างมากต่อรูปแบบการสอนของฉัน ฉันต้องการให้นักเรียนในหลักสูตร Android มีส่วนร่วมอย่างมากในการอธิบายหัวข้อต่างๆ ฉันแนะนำพวกเขาตลอดกระบวนการคิดทั้งหมดในขณะที่พวกเขากำลังเขียนโค้ดและทำงานในแนวทางแก้ไข คุณต้องยอมรับแนวทางการเรียนรู้ที่มีความหมายเพราะมันเป็นวิธีเดียวที่จะเชี่ยวชาญบางสิ่งได้อย่างเหมาะสม

คุณมีแนวคิดที่จะเปิดตัวหลักสูตร Android ของคุณเองได้อย่างไร

มันทำให้ฉันหลง ฉันรู้ว่า CodeGym ไม่มีหลักสูตร Android ดังนั้นฉันจึงตัดสินใจเสนอให้ทำหลักสูตรนี้ให้พวกเขา และพวกเขาก็ตอบรับ ฉันเริ่มเตรียมสื่อต่างๆ และสมองของฉันก็ทำงานในมิติต่างๆ อย่างต่อเนื่อง บางครั้งฉันก็เดินไปตามถนนแล้วหยิบโทรศัพท์ขึ้นมาเขียนอะไรบางอย่างสำหรับหลักสูตรนี้ ในเวลานั้น ฉันมีไอเดียมากมาย: จะเป็นอย่างไรถ้าเราเขียนแอปนี้ และแอปนั้น ครอบคลุมความรู้ด้านนี้หรือแนวคิด Android นี้ล่ะ.. การทำเนื้อหาหลักสูตรและการเขียนโค้ดแอปเป็นเรื่องสนุก การสร้างหลักสูตร Android ถือเป็นประสบการณ์ที่ยอดเยี่ยมสำหรับฉัน และฉันมีการปรับปรุงในใจมากขึ้น ในระหว่างเซสชันสด ฉันเล่าประสบการณ์การทำงานของตัวเองมากมาย โดยเฉพาะในช่วง 3-4 ปีแรกของการทำงาน ฉันคิดว่ามันจะเปิดประตูมากมายให้พวกเขา ฉันไม่เพียงแต่สอนพวกเขาเกี่ยวกับ Java หรือ Android เท่านั้น แต่ยังครอบคลุมถึงการทำงานของสิ่งต่างๆ ในบริษัท และวิธีการออกแบบโปรแกรมในชีวิตจริง

อะไรคือข้อผิดพลาดทั่วไปสำหรับนักเรียนขณะเรียนเขียนโปรแกรม?

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

อะไรคือความแตกต่างที่สำคัญระหว่างนักเรียนที่มีความรู้/ประสบการณ์ด้านการเขียนโปรแกรมมาก่อนและผู้ที่เพิ่งเริ่มเขียนโค้ด

หากคุณเคยว่ายน้ำและรู้จักใครสักคนที่ไม่ได้ออกกำลังกายมากนัก ใครมีแนวโน้มที่จะทำการแข่งขันทางกายภาพได้ดีกว่ากัน? คุณรู้คำตอบ. เช่นเดียวกับการเขียนโปรแกรม: ประสบการณ์ก่อนหน้าเกี่ยวกับคอมพิวเตอร์/เทคโนโลยีจะช่วยคุณได้ หากคุณเป็นนักเล่นเกมคอมพิวเตอร์ คุณจะเรียนรู้การเขียนโปรแกรมได้ง่ายกว่าคนที่ไม่เคยใช้คอมพิวเตอร์มาก่อน มือใหม่ด้านเทคโนโลยีจะมีหนทางที่สำคัญที่สุดในการไป คุณรู้จักภาษาอังกฤษดีหรือไม่? Instant plus เนื่องจากมีสื่อมากมายให้คุณใช้งาน ซึ่งส่วนใหญ่ไม่มีค่าใช้จ่าย (YouTube, StackOverflow ฯลฯ ) ใครจะเรียนรู้ได้เร็วกว่ากัน? แน่นอนว่าเป็นคนที่ใช้เวลาหลายพันชั่วโมงกับคอมพิวเตอร์ของเขาและรู้ว่าเทคโนโลยีทำงานอย่างไรโดยทั่วไป แต่อย่าท้อแท้กับความจริงที่ว่าคุณไม่มีประสบการณ์ด้านเทคโนโลยีเพียงพอ คุณสามารถเป็นนักพัฒนาได้เช่นกัน คุณเพียงแค่ต้องการเวลามากขึ้น

คุณช่วยให้คำแนะนำผู้ใช้ CodeGym เกี่ยวกับวิธีการบรรลุเป้าหมายการฝึกอบรมและเป็นนักพัฒนาได้หรือไม่

สำรวจเทคโนโลยี

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

ลืมความกลัวไปเลย

คำแนะนำที่ยิ่งใหญ่ที่สุดของฉันสำหรับทุกคนคืออย่ากลัว ทุกคนมีข้อผิดพลาดและข้อผิดพลาด ลองค้นหาข้อมูลใน Google เยอะๆ แล้วคุณจะพบวิธีแก้ปัญหาในที่สุด

ลงทุนเวลาไปกับการเรียนรู้

สิ่งที่เรากำลังทำในชั้นเรียนมีชัยไปกว่าครึ่ง คุณต้องลงทุนเวลามากขึ้นเป็นรายบุคคล ยิ่งทำระหว่างคาบเรียนยิ่งเรียนรู้ใช่ไหมคะ? ถ้าคุณไม่ทำอะไรเลยระหว่างคาบเรียน คุณอาจจะมีความรู้อยู่บ้าง ( จากการดูการบรรยายของฉัน ) แต่คุณจะไม่สามารถสร้างบางสิ่งบางอย่างได้อย่างอิสระ หากคุณกำลังฝึกอบรมในหลักสูตร Java Fundamentals หรือ Android ให้ลงทุนอย่างน้อยหลายชั่วโมงในการทำงานของคุณเองในขณะที่เราทำงานร่วมกัน สมมติว่าเรามีเวลากับฉันสามชั่วโมงครึ่งต่อสัปดาห์ คุณควรทำอย่างน้อยสามหรือสี่ชั่วโมงต่อสัปดาห์ด้วยตัวเอง สิ่งสำคัญคือต้องเขียนโค้ดด้วยตัวเองเพื่อเสริมความรู้และตั้งคำถามที่เป็นไปได้สำหรับการอภิปรายในอนาคต อย่าลังเลที่จะถามคำถามทั้งในชั้นเรียนหรือในแชท Slack สำหรับข้อบกพร่องที่เกิดขึ้นอย่างต่อเนื่อง เรายังดำเนินการเซสชันการแก้ไขข้อบกพร่องแบบสดได้เหมือนที่เราเคยทำในกลุ่มที่แล้วอีกด้วย การเรียนรู้เป็นถนนสองทาง และมันก็ขึ้นอยู่กับพวกเราทุกคนที่จะทำให้หลักสูตรนี้เป็นประสบการณ์ที่สนุกสนานและมีประสิทธิผล "ฉันกำลังสอนนักเรียนถึงสิ่งที่จะเปิดประตูมากมายให้กับพวกเขา"  สัมภาษณ์กับ Milan Vucic ที่ปรึกษาของ CodeGym University - 1