Nishu Goel เป็นวิศวกรเว็บที่มีชื่อเสียงจากอินเดีย และเป็นผู้เชี่ยวชาญ Google Developer สำหรับ Angular และเทคโนโลยีเว็บ เธอเล่าให้เราฟังเกี่ยวกับการมีส่วนร่วมของชุมชน แผนอาชีพ และวิธีที่ดีที่สุดในการเรียนรู้การพัฒนาเว็บ
Nishu Goel เป็นวิศวกรเว็บที่มีชื่อเสียงจากอินเดีย ผู้เชี่ยวชาญด้าน Google Developer สำหรับ 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 ในฐานะวิศวกรสแต็กแบบครบวงจร เธอเล่าให้เราฟังเกี่ยวกับการมีส่วนร่วมของชุมชน แผนอาชีพ และวิธีที่ดีที่สุดในการเรียนรู้การพัฒนาเว็บ
Monika: มาเริ่มกันด้วยเรื่องราวของคุณ อะไรเป็นแรงบันดาลใจให้คุณเป็นนักพัฒนาซอฟต์แวร์และมีบทบาทสำคัญในชุมชนนักพัฒนาซอฟต์แวร์
Nishu: ผมจบการศึกษาระดับปริญญาตรีสาขาวิทยาการคอมพิวเตอร์ เราศึกษาโครงสร้างข้อมูล ซึ่งเป็นจุดเริ่มความสนใจในการเขียนโปรแกรม ในปีที่ 3 ของวิศวกรรม มีการสานสัมพันธ์กับชุมชนนักพัฒนาซอฟต์แวร์ขึ้นจากการเข้าร่วมการแข่งขัน Microsoft Imagine Cup Nationals ที่ผมนำเสนอโซลูชันผ่านทางโค้ด แนวคิดของแอปพลิเคชันที่เราสร้างขึ้นคือเพื่อมอบโอกาสทางการศึกษาให้กับนักเรียนในพื้นที่ โดยเฉพาะเด็กผู้หญิง ฉันได้พบกับผู้ที่เป็นแรงบันดาลใจมากๆ ทั้งผู้แข่งขันและผู้จัดในการเดินทางครั้งนี้
ในปี 2018 อาชีพการทำงานของฉันเริ่มได้รับความนิยมและเริ่มทำงานกับ Angular Angular กลายเป็นเทคโนโลยีหลักที่เชื่อมโยงฉันกับโปรแกรม GDE ในขณะเดียวกัน ฉันก็เริ่มเขียนบล็อกโพสต์และสร้างเนื้อหาเกี่ยวกับเรื่องที่ผมกำลังทำและเรียนรู้ Dhananjay Kumar ช่วยฉันเริ่มการเดินทางครั้งนี้และดูแลให้ฉันดำเนินไปตามกำหนดการ บทความแรกที่ผมพูดถึงพื้นฐานเกี่ยวกับ Angular หลังจากที่ผมเริ่มพูดในงานกิจกรรมต่างๆ ได้ไม่นาน งานแรกคือ ngNepal ซึ่งเป็นการประชุม Angular ของเนปาล ซึ่งนำไปสู่การเชิญชวนพูดคุยเพิ่มเติมเกี่ยวกับ Angular และเทคโนโลยีเว็บ
Monika: เทคโนโลยีด้านประสบการณ์ทางวิชาชีพของคุณเป็นอย่างไร
Nishu: ในช่วง 2 ปีแรก ทุกอย่างเกี่ยวกับ Angular และเว็บคอมโพเนนต์ ตอนนั้นผมใช้ Angular เพื่อสร้างเว็บ แต่ไม่นาน ผมก็ตัดสินใจก้าวข้ามขีดจำกัดนั้น และสำรวจด้านอื่นๆ ฉันไม่ต้องการจำกัดตัวเองในกรณีที่ต้องเปลี่ยนโปรเจ็กต์ ผมจึงเริ่มสร้างคอมโพเนนต์ของเว็บใน Angular เพื่อใช้ในเฟรมเวิร์กอื่นๆ
สิ่งแรกที่ผมทำคือสร้างคอมโพเนนต์ของเว็บโดยใช้ Angular ฉันเผยแพร่ไปที่ npm และใช้เป็นการสาธิตในโปรเจ็กต์ React ฉันได้พูดถึงเรื่องนี้ระหว่างการพูดคุยและการนำเสนอในภายหลัง งานต่อไปที่ฉันต้องการคือการใช้ React และ Typescript ตอนนี้เนื่องจากผมทำงานกับ React ผมจึงไม่ได้ใช้เพียงเฟรมเวิร์กเดียวอีกต่อไป แต่ใช้เว็บโดยทั่วไป ตอนนั้นผมได้เรียนรู้สิ่งต่างๆ มากมายเกี่ยวกับเว็บ โดยเฉพาะอย่างยิ่งประสิทธิภาพของเว็บ ตอนนี้จึงต้องเริ่มคิดถึง Largest Contenful Paint (LCP) หรือ First Contentful Paint (FCP) ซึ่งหมายถึงระยะเวลาที่ใช้ในการโหลดแอปพลิเคชันหรือระยะเวลาสูงสุดในการแสดงผลหน้าเว็บ ฉันได้พยายามเลือกแนวทางปฏิบัติที่ดีที่สุดและปรับปรุงประสิทธิภาพของแอปพลิเคชันต่างๆ
และเนื่องจากความสนใจในประสิทธิภาพการทำงานของเว็บ ผมจึงมีส่วนร่วมในการจัดทำ Web Almanac และได้เขียนบท JavaScript รายงานสรุปเว็บเป็นรายงานประจำปีเกี่ยวกับสถานะของเว็บโดยทั่วไป ซึ่งบอกให้เราทราบถึงการใช้ฟีเจอร์ต่างๆ ของผู้คน ปีที่แล้วมีการตรวจสอบเว็บไซต์ 8.6 ล้านเว็บ ข้อมูลดังกล่าวได้รับการวิเคราะห์และนำเสนอในรายงาน รายงานนี้รวมสถิติต่างๆ เช่น การใช้แอตทริบิวต์ async
และ defer
ในองค์ประกอบ <script>
มีเว็บไซต์กี่รายที่ใช้ฟีเจอร์ดังกล่าวอย่างถูกต้อง มีกี่เว็บที่ไม่ได้ใช้งานเลย และเว็บไซต์เหล่านั้นมีการปรับปรุงให้ดีขึ้นอย่างไรเมื่อเทียบกับปี 2020 รายงานรายงานสรุปเว็บฉบับล่าสุดระบุว่า 35% ของเว็บไซต์ใช้แอตทริบิวต์ 2 รายการในสคริปต์เดียวกัน ซึ่งเป็นรูปแบบที่ต่อต้าน ทำให้ประสิทธิภาพลดลง เราพูดถึงประเด็นนี้เมื่อปีที่แล้ว และปีนี้เราพยายามดูว่าสถานการณ์ดีขึ้นหรือไม่ เรายังได้พูดที่งาน ngConf และ Reliable Dev Summit อีกด้วย โดยเน้นที่ประสิทธิภาพของเว็บ
Monika: คุณก็ยังมีส่วนร่วมในการตอบแทนชุมชนเป็นอย่างมาก เมื่อเร็วๆ นี้คุณได้เป็นอาสาสมัครกับ NGO YIYA ในยูกันดา องค์กรนี้เริ่มต้นอย่างไรและอะไรคือหัวใจหลักของความร่วมมือดังกล่าว
Nishu: เริ่มจากการที่ทีม GDE แจ้งให้เราทราบเกี่ยวกับโอกาสในการเป็นอาสาสมัครกับ YIYA NGO ในยูกันดากำลังมองหาวิศวกรที่จะช่วยเตรียมเนื้อหาหรือฟีเจอร์ทางเทคนิค โปรแกรมนี้มีเป้าหมายที่จะส่งเสริมศักยภาพของเด็กวัยเรียนในยูกันดาและมอบโอกาสในการเรียนรู้ให้กับเด็กๆ โดยใช้เทคโนโลยีที่มีในท้องถิ่น ไม่ใช่คอมพิวเตอร์หรือตำราเรียน แต่ใช้โทรศัพท์และวิทยุปุ่มกดพื้นฐาน บุตรหลานจะโทรหาหมายเลขหนึ่งและรับชุดข้อมูล โทรหาหมายเลขอื่นเพื่อดูข้อมูลเชิงลึก และอื่นๆ และมีประโยชน์มากขึ้นในช่วงการแพร่ระบาดของโควิด-19
เนื่องจากฉันมีส่วนร่วมกับชุมชนและเป้าหมายด้านการพัฒนาที่ยั่งยืนอยู่เสมอ ฉันจึงตัดสินใจติดต่อมา หลังจากประชุมกับทีม YIYA ฉันเสนอความช่วยเหลือเกี่ยวกับสคริปต์ Python หรือข้อบกพร่องที่พบ รวมถึงปัญหาเกี่ยวกับพอร์ทัล เราทำงานร่วมกันเป็นระยะเวลาสั้นๆ
Monika: แผนการของคุณในปี 2022 คืออะไร มีอะไรที่คุณมุ่งเน้นเป็นพิเศษไหม
Nishu: ฉันกำลังสลับงานและย้ายไปอยู่ประเทศอื่น ฉันจะทำงานกับเว็บโดยทั่วไป ปรับปรุงประสิทธิภาพของเว็บไซต์ และปรับปรุงระบบแบ็กเอนด์โดยใช้ Golang ฉันจะยังคงมุ่งความสนใจไปที่เรื่องประสิทธิภาพเว็บ เพราะเรื่องนี้น่าสนใจและซับซ้อน และยังมีสิ่งที่ต้องทำความเข้าใจและเพิ่มประสิทธิภาพอีกมาก แม้ตอนนี้หลังจากที่ทุ่มเทเวลาส่วนใหญ่ไปกับเรื่องแบบนี้แล้ว แต่ก็ยังมีอะไรให้เรียนรู้อีกมากมาย ตัวอย่างเช่น ฉันอยากรู้ว่าการใช้ CDN สำหรับทรัพยากรรูปภาพจะช่วยให้แอปทำงานเร็วขึ้นได้อย่างไร ฉันอยากเป็นผู้เชี่ยวชาญด้านประสิทธิภาพเว็บ จะค่อยๆ ทำไปเรื่อยๆ แล้วฉันก็เชื่อว่า :)
Monika: คุณบอกว่าการเริ่มเขียนในตอนที่คุณไม่ใช่ผู้เชี่ยวชาญนั้น คุณแค่เขียนสิ่งที่กำลังเรียนรู้อยู่เท่านั้น อยากแนะนำอะไรคุณถึงนักพัฒนาซอฟต์แวร์รายใหม่ที่เพิ่งผ่านเข้ามาและรู้สึกว่าไม่มีสิ่งใดที่จะแชร์
Nishu: รู้สึกแบบนั้นจริงๆ ตอนที่เริ่มเขียน ผมคิดว่าไม่ควรเผยแพร่เรื่องนี้นะ อาจเป็นเพราะว่าผิด ฉันกังวลว่างานเขียนของฉันจะไม่ช่วยเหลือผู้อ่าน แต่สิ่งสำคัญคืองานเขียนของฉัน ช่วยฉันมากได้ พอผ่านไปสักระยะฉันจะลืมสิ่งต่างๆ ไป แล้วก็กลับมาอ่านสิ่งที่ฉันเขียนไว้ก่อนหน้า การจดบันทึกเป็นความคิดที่ดี
ดังนั้น ผมจึงแนะนำให้ทุกคน เขียนในขั้นตอนใดก็ได้ แม้ว่าคุณจะเรียนจบเพียงส่วนเดียวของหลักสูตรที่กำลังเรียนอยู่ แต่คุณก็ยังคงเรียนรู้ได้โดยการจดบันทึก ข้อมูลที่คุณได้รู้จักในตอนนั้นอาจมีประโยชน์สำหรับคนอื่นที่ยังไม่ทราบเรื่องนี้ คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญ การเขียนจะช่วยคุณได้ และทุกคน ในทุกระดับอาชีพ
Monika: เราควรติดตามคนที่เพิ่งเรียนรู้อะไรบางอย่าง เพราะพวกเขารู้ทุกเรื่องที่ต้องหาคำตอบ เมื่อคุณเป็นผู้เชี่ยวชาญแล้ว ก็คงยากที่จะนึกขึ้นได้ว่าตอนที่เพิ่งเริ่มต้นนั้นเป็นอย่างไร ขอคำแนะนำหน่อยนะ สำหรับคนที่เพิ่งเริ่มพัฒนาเว็บ
Nishu: หลายคนถามว่าควรเลือกเฟรมเวิร์กใดเมื่อเริ่มต้น แต่ฉันคิดว่านั่นไม่ใช่คำถามที่ถูกต้อง อะไรก็ตามที่เรากำลังเรียนรู้อยู่ ณ จุดใดก็ตาม ก็น่าจะเป็นประโยชน์ในแนวทางต่อไปด้วย ผมอยากแนะนำให้ทุกคนลดข้อจำกัดนี้ และเริ่มต้นด้วย HTML หรือ JavaScript ซึ่งจะทำกำไรได้ในอนาคต
แล้วจึงใช้โอกาสต่างๆ ที่มาถึงคุณ เรื่องนี้เกิดขึ้นกับผมเมื่อผมเจอข้อมูลเกี่ยวกับหนังสือสรุปเว็บที่กำลังมองหาผู้เขียน ฉันแค่คิดว่า "อันนี้น่าสนใจจริงๆ นี่อาจช่วยทุกคนในด้านประสิทธิภาพของสิ่งต่างๆ ได้" ฉันจึงได้เป็นหัวหน้าฝ่ายเนื้อหาสำหรับส่วนเนื้อหา JavaScript และฉันใช้เวลาเขียนถึง 6 เดือน ผมคิดว่าแค่การคว้าโอกาสไว้และพยายามอย่างเต็มที่
Monika: คุณมีการคาดคะเนหรือไอเดียเกี่ยวกับอนาคตของเทคโนโลยีเว็บโดยทั่วไปบ้างไหม ประเด็นต่อไปที่พูดถึงคืออะไร อะไรจะเติบโตอย่างรวดเร็ว
Nishu: ฉันชอบการที่เราเรียกใช้เซิร์ฟเวอร์ภายในเบราว์เซอร์ได้แล้ว นี่เป็นความก้าวหน้าที่สำคัญ ตัวอย่างเช่น ปัจจุบันเราได้นำ Node.js มาใช้จากเบราว์เซอร์ แต่ในขณะที่ที่ผ่านมาเราไม่สามารถเรียกใช้อะไรได้เลยหากไม่ได้ติดตั้ง Node.js ไว้ในระบบของเรา ตอนนี้เราทำอะไรได้ทุกอย่างจากเบราว์เซอร์ นี่เป็นก้าวที่ยิ่งใหญ่อีกขั้นในระบบนิเวศของเว็บ และ OMT—ไม่อยู่ในเธรดหลัก การทำงานในชุดข้อความจะได้รับการปรับปรุงให้ดีขึ้นมากเช่นกัน Web Assembly กำลังพัฒนาและช่วยให้นักพัฒนาซอฟต์แวร์สามารถทำเช่นนั้นได้ ซึ่งผมคิดว่านั่นเป็นอนาคตของระบบนิเวศของเว็บ