ไฮไลต์ของชุมชน GDE: Nishu Goel

Nishu Goel เป็นวิศวกรเว็บที่มีชื่อเสียงจากอินเดีย และเป็น Google Developer Expert ด้าน Angular และเทคโนโลยีเว็บ เธอได้แชร์ประสบการณ์การมีส่วนร่วมในชุมชน แผนอาชีพ และวิธีที่ดีที่สุดในการเรียนรู้การพัฒนาเว็บ

Monika Janota
Monika Janota

Nishu บนเวที

Nishu Goel เป็นวิศวกรเว็บชื่อดังจากอินเดีย เป็น Google Developer Expert สำหรับ Angular และเทคโนโลยีเว็บ และเป็น Microsoft Most Valuable Professional เธอเป็นผู้เขียนหนังสือ Step by Step Angular Routing (BPB, 2019) และ A Hands-on Guide to Angular (Educative, 2021) รวมถึงเป็นผู้เขียนบท JavaScript ใน Web Almanac 2021 ปัจจุบัน Nishu ทํางานที่ epilot GmbH เป็นวิศวกร Full Stack เธอได้แชร์ประสบการณ์การมีส่วนร่วมในชุมชน แผนอาชีพ และวิธีที่ดีที่สุดในการเรียนรู้การพัฒนาเว็บ

Monika: มาเริ่มกันด้วยเรื่องราวของคุณ อะไรทำให้คุณอยากเป็นนักพัฒนาซอฟต์แวร์และมีส่วนร่วมในชุมชนนักพัฒนาซอฟต์แวร์

Nishu: ฉันจบการศึกษาระดับปริญญาตรีสาขาวิทยาการคอมพิวเตอร์ เราเรียนโครงสร้างข้อมูลและนั่นเป็นจุดเริ่มต้นของความสนใจในการเขียนโปรแกรม ในช่วงปีที่ 3 ของการเรียนวิศวกรรมศาสตร์ ฉันได้เข้าร่วมการแข่งขัน Microsoft Imagine Cup Nationals ซึ่งเราได้นำเสนอโซลูชันผ่านโค้ดและได้สานสัมพันธ์กับชุมชนนักพัฒนาซอฟต์แวร์ แนวคิดของแอปพลิเคชันที่เราสร้างขึ้นคือการมอบโอกาสทางการศึกษาแก่นักเรียนในพื้นที่ โดยเฉพาะเด็กผู้หญิง ฉันได้พบกับผู้คนที่เปี่ยมด้วยแรงบันดาลใจ ทั้งผู้เข้าแข่งขันและผู้จัดตลอดเส้นทางนี้

ในปี 2018 อาชีพการงานของฉันเริ่มก้าวหน้าและฉันได้เริ่มทำงานกับ Angular Angular กลายเป็นเทคโนโลยีหลักที่เชื่อมโยงฉันกับโปรแกรม GDE ในช่วงเวลาเดียวกันนี้ ฉันเริ่มเขียนบล็อกโพสต์และสร้างเนื้อหาเกี่ยวกับหัวข้อที่ฉันกำลังทำงานและเรียนรู้ Dhananjay Kumar ช่วยให้ฉันเริ่มต้นเส้นทางนี้ได้และช่วยให้ฉันเดินหน้าต่อไปได้ บทความแรกๆ ของฉันจะอธิบายพื้นฐานของ Angular หลังจากนั้นไม่นาน ฉันก็เริ่มพูดในงานต่างๆ โดยงานแรกคือ ngNepal ซึ่งเป็นการประชุม Angular ของเนปาล ซึ่งทำให้ได้รับคำเชิญให้พูดเกี่ยวกับ Angular และเทคโนโลยีเว็บมากขึ้น

Nishu และคนอื่นๆ จาก ng-india

Monika: คุณมีประสบการณ์ด้านเทคโนโลยีอย่างไรบ้าง

Nishu: ในช่วง 2 ปีแรก เราใช้ Angular และคอมโพเนนต์เว็บเป็นหลัก ฉันใช้ Angular ในการสร้างเว็บ แต่ไม่นานก็ตัดสินใจที่จะพัฒนาไปอีกขั้นและสำรวจด้านอื่นๆ ฉันไม่ต้องการจำกัดตัวเองในกรณีที่ต้องเปลี่ยนโปรเจ็กต์ ฉันจึงเริ่มสร้างคอมโพเนนต์เว็บใน Angular เพื่อใช้ในเฟรมเวิร์กอื่นๆ

สิ่งแรกที่เราทําคือสร้างคอมโพเนนต์เว็บโดยใช้ Angular ฉันเผยแพร่ไปยัง npm และใช้เป็นการสาธิตในโปรเจ็กต์ React เราได้พูดถึงเรื่องนี้ในการบรรยายและงานนำเสนอบางส่วนในภายหลัง งานถัดไปของฉันต้องใช้ React และ Typescript ตอนนี้ฉันไม่ได้ใช้แค่เฟรมเวิร์กเดียวอีกต่อไป แต่ใช้เว็บโดยทั่วไปด้วยเนื่องจากได้ทำงานกับ React ในช่วงเวลานั้น ฉันได้เรียนรู้เกี่ยวกับเว็บเป็นอย่างมาก โดยเฉพาะประสิทธิภาพของเว็บ นั่นคือตอนที่เราต้องเริ่มคิดถึง Largest Contentful Paint (LCP) หรือ First Contentful Paint (FCP) ซึ่งหมายถึงระยะเวลาที่ใช้ในการโหลดแอปพลิเคชันหรือเวลาที่นานที่สุดที่หน้าเว็บจะแสดงผล เรากําลังพยายามเลือกแนวทางปฏิบัติแนะนําและปรับปรุงประสิทธิภาพของแอปพลิเคชัน

ความสนใจด้านประสิทธิภาพของเว็บนี้ทำให้ฉันได้มีส่วนร่วมใน Web Almanac และเขียนบท JavaScript สารานุกรมเว็บเป็นรายงานประจำปีเกี่ยวกับสถานะของเว็บโดยทั่วไป ซึ่งบอกเราว่าผู้คนใช้ฟีเจอร์ต่างๆ อย่างไร เมื่อปีที่แล้วมีการตรวจหาเว็บไซต์ 8.6 ล้านเว็บไซต์ ข้อมูลได้รับการวิเคราะห์และนำเสนอในรายงาน รายงานมีสถิติต่างๆ เช่น การใช้งานแอตทริบิวต์ async และ defer ในองค์ประกอบ <script> จำนวนเว็บไซต์ที่ใช้อย่างถูกต้อง จำนวนเว็บไซต์ที่ไม่ได้ใช้เลย และจำนวนเว็บไซต์ที่ปรับปรุงเมื่อเทียบกับปี 2020 รายงาน Web Almanac ฉบับล่าสุดระบุว่ามีเว็บไซต์ประมาณ 35% ที่ใช้แอตทริบิวต์ 2 รายการในสคริปต์เดียวกัน ซึ่งเป็นรูปแบบที่ไม่ถูกต้องซึ่งทำให้ประสิทธิภาพลดลง ปัญหานี้ได้รับการชี้ให้เห็นเมื่อปีที่แล้ว และปีนี้เราพยายามดูว่าสถานการณ์ดีขึ้นไหม นอกจากนี้ ฉันยังได้พูดที่ ngConf และ Reliable Dev Summit ซึ่งเน้นที่ประสิทธิภาพของเว็บ

ฉบับพิมพ์ของ Web Almanac

Monika: คุณยังมีส่วนร่วมอย่างมากในการตอบแทนชุมชนด้วย เมื่อเร็วๆ นี้คุณเป็นอาสาสมัครกับ YIYA ซึ่งเป็น NGO ของยูกันดา ความร่วมมือนี้เริ่มต้นขึ้นอย่างไรและจุดประสงค์หลักคืออะไร

Nishu: เริ่มต้นจากทีม GDE แจ้งให้เราทราบเกี่ยวกับโอกาสในการเป็นอาสาสมัครกับ YIYA NGO ของยูกันดาต้องการวิศวกรมาช่วยเตรียมเนื้อหาหรือฟีเจอร์ทางเทคนิค โปรแกรมนี้มีเป้าหมายเพื่อส่งเสริมศักยภาพของเด็กวัยเรียนในยูกันดาและมอบโอกาสทางการศึกษาโดยใช้เทคโนโลยีที่มีในพื้นที่ ซึ่งไม่ใช่คอมพิวเตอร์หรือตำราเรียน แต่เป็นโทรศัพท์แบบปุ่มกดและวิทยุพื้นฐาน เด็กๆ จะโทรหาหมายเลขหนึ่งๆ และได้รับชุดข้อมูลหนึ่งๆ จากนั้นโทรหาหมายเลขอื่นเพื่อรับข้อมูลเชิงลึกเพิ่มเติม และอื่นๆ ซึ่งมีประโยชน์มากขึ้นในช่วงการแพร่ระบาด

เราจึงตัดสินใจติดต่อมาเนื่องจากมีส่วนร่วมกับชุมชนและเป้าหมายการพัฒนาอย่างยั่งยืนมาโดยตลอด หลังจากการประชุมกับทีม YIYA เราได้เสนอความช่วยเหลือเกี่ยวกับสคริปต์ Python หรือข้อบกพร่องที่พบ รวมถึงปัญหาเกี่ยวกับพอร์ทัล เราเคยร่วมงานกันเป็นเวลาสั้นๆ

Monika: คุณมีแผนอะไรบ้างในปี 2022 คุณสนใจเรื่องใดเป็นพิเศษไหม

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

Monika: คุณบอกว่าเริ่มเขียนตอนที่คุณไม่ใช่ผู้เชี่ยวชาญ แต่แค่เขียนสิ่งที่ได้เรียนรู้ คุณจะให้คำแนะนำอะไรกับนักพัฒนาแอปหน้าใหม่ที่เข้ามาและรู้สึกว่าตัวเองไม่มีอะไรจะแชร์

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

หนังสือ Angular Routing บนโต๊ะ

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

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

Nishu: หลายคนถามว่าควรเลือกเฟรมเวิร์กใดเมื่อเริ่มต้น แต่เราคิดว่าคำถามนี้ไม่ถูกต้อง สิ่งที่เราเรียนรู้ในทุกๆ ขั้นตอนควรมีประโยชน์ในขั้นตอนต่อๆ ไปด้วย เราขอแนะนำให้ทุกคนเลิกใช้ข้อจำกัดและเริ่มต้นด้วย HTML หรือ JavaScript ซึ่งจะทํากําไรได้ในอนาคต

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

Monika: คุณมีแนวคิดหรือคาดการณ์เกี่ยวกับอนาคตของเทคโนโลยีเว็บโดยทั่วไปไหม หัวข้อถัดไปที่จะมาแรงคืออะไร อะไรที่กำลังเติบโตอย่างรวดเร็ว

Nishu: เราชอบที่ตอนนี้เราเรียกใช้เซิร์ฟเวอร์ในเบราว์เซอร์ได้แล้ว นี่เป็นความก้าวหน้าที่ดี เช่น เมื่อเร็วๆ นี้เราได้เปิดตัวการเรียกใช้ Node.js จากเบราว์เซอร์ แต่ก่อนหน้านี้เราไม่สามารถเรียกใช้อะไรได้หากไม่ได้ติดตั้ง Node.js ในระบบ ตอนนี้เราทําอะไรก็ได้จากเบราว์เซอร์ นี่เป็นก้าวสำคัญในระบบนิเวศของเว็บ และ OMT ซึ่งย่อมาจาก "Off the Main Thread" การทำงานในชุดข้อความจะดีขึ้นมากด้วย Web Assembly กำลังพัฒนาไปข้างหน้าและช่วยให้นักพัฒนาซอฟต์แวร์ทําสิ่งนั้นได้ และเราคิดว่านี่คืออนาคตของระบบนิเวศเว็บ