#1 tech recruiter in thailand

การรู้หลายภาษา Programming ดีอย่างไร

See the original English version of this article here

บทความนี้เขียนโดยคุณ Akshat Giri ซึ่งได้มาเล่าประสบการณ์ตรงของเขาเกี่ยวกับการทำงาน โดยเขาจะมาบอกว่า การรู้หลายๆ ภาษา Programming ดีอย่างไร พร้อมทั้งมีตัวอย่างจากประสบการณ์ตรงอีกด้วย

คุณ Akshat เขียน Code มาประมาณ 4 ปีแล้ว เขาเริ่มจากศึกษาภาษา C# เพื่อใช้สำหรับพัฒนาเกม ต่อมาเป็นภาษา Python เพื่อเรียนรู้เรื่อง Machine Learning แล้วก็ JavaScript และ Typescript เพื่อทำ Front End จากนั้นเขาก็ต้องการสร้าง Mobile Applications จึงหันไปเรียนรู้ Ionic, Reactแ ละ React Native เพิ่มอีก หากต้องการเพิ่ม Performance ให้กับ Back End ภาษา Go ก็ดูจะเป็นตัวเลือกที่ดีที่สุดตัวหนึ่ง พอ Flutter เริ่มบูมขึ้นมา ก็เริ่มไปศึกษา Dart ที่ใช้สร้าง Mobile Application เพิ่มเติม ตอนที่อยู่ในมหาวิทยาลัยก็เลือกเรียนภาษา Java และได้ใช้ PHP ตอนทำงานที่ Facebook ด้วย

เขาไม่ได้จะบอกว่า เขาเชี่ยวชาญในภาษาเหล่านั้น แต่ก็พอจะพูดได้ว่า เขามีประสบการณ์กับบาง ภาษา/Framework มากกว่าคนอื่นๆ สำหรับสาเหตุที่เลือกเรียนภาษาเหล่านี้ก็เพราะ เมื่อใดที่รู้ว่ามี Feature เจ๋งๆ ในบางภาษา Programming ก็ทำให้เขาอยากเรียนรู้ภาษานั้นไปซะทุกครั้ง ที่เขาแนะนำให้ทำแบบนี้ก็เพราะ คุณคงไม่สามารถเลือก Tools ที่เหมาะสมได้ หากคุณไม่รู้ว่า Tool เหล่านั้นเป็นอย่างไร และ ทำอะไรได้บ้าง การเลือกภาษา Programming ที่เหมาะกับปัญหาที่จะแก้ จะช่วยให้คุณสามารถทำงานได้ราบรื่นขึ้นและไม่ต้องใช้ความพยายามมากเกินความจำเป็น

การแก้ปัญหาที่เจอ

หัวข้อนี้เขาได้ยกตัวอย่าง เรื่องการเลือกภาษา Programming ที่เหมาะสมกับปัญหาที่จะแก้ไข โดยเมื่อไม่นานมานี้ เขาได้มองหา Bluetooth Headphone ซึ่งตอนนั้เขาตัดสินใจเลือก AirPods ของ Apple เพราะจากที่ทดลองใช้งานแล้วน่าจะดีที่สุด แต่ปัญหาคือ ตอนนี้เขาใช้ Windows Laptop และโทรศัพท์ของ Android ซึ่ง AirPods สามารถเชื่อมต่อกับโทรศัพท์ของ Android ได้อัตโนมัติ แต่พอ Laptop เขาต้องไป Set ค่าและเชื่อมต่อกับ AirPods เอง ”ทุกครั้ง” ซึ่งเขาคิดว่านี่คือปัญหาการใช้งานอย่างหนึ่ง เขาจึงต้องการ “ปุ่ม” สักปุ่ม เพื่อให้สามารถใช้งาน AirPods กับ Labtop สลับกับโทรศัพท์มือถือได้ง่ายขึ้น

ความคิดแรกที่เข้ามาคือจะใช้ Python เพราะคิดว่ามี Library ที่น่าจะช่วยให้เขาควบคุม Bluetooth จากคอมพิวเตอร์ได้ ซึ่งไม่เป็นไปตามที่คิด ต่อมาเขาลองใช้ Node.js ซึ่งมี Library ที่ช่วยควบคุม Bluetooth ได้ดี เพียงแค่ Run Nodejs Script ก็ทำให้สามารถเชื่อมต่อกับ AirPods ได้ทันที

Code01

ตอนนี้เขากำลังต้องการปุ่มที่ใช้งานได้ง่ายบนหน้าจอเพื่อ Run Script ตอนแรกเขาคิดว่าจะวางปุ่ม Script นั้นไว้บน Taskbar แต่ Windows ไม่อนุญาตให้ทำแบบนั้น จากนั้นเขาก็คิดว่า ยังมีภาษาใดบ้าง ที่ช่วยให้เขาสามารถสร้างไฟล์ .exe สำหรับ windows ที่เขาสามารถวางอยู่บน Taskbar ได้ ซึ่งสุดท้ายมาลงตัวที่ Golang เขาจึงสร้าง Script นี้ขึ้นมาเพื่อ Run Node Script ของเขา

Code02

Akshat สร้าง Shortcut สำหรับไฟล์ .exe บน Desktop แล้วสร้าง Shortcut ลงบน Taskbar และมันก็ทำได้จริงๆ ปุ่มนี้จะช่วยให้เขาสามารถเชื่อมต่อกับ AirPods ได้ง่ายและรวดเร็วขึ้น

EXE Shortcut

อันที่จริงเขารู้ว่าเขาสามารถได้ผลลัพธ์แบบกันนี้โดยใช้ C# ได้ แต่เข้าไม่อยาก Install ตัว Visual Studio ลงใน Laptop เขาสามารถ บรรจุ Nodejs App ลงใน exe โดยใช้ Tool อื่นๆ อย่าง nexe ได้ แต่นั่นเป็นงานที่ไม่จำเป็นเลย

นี่เป็นเพียงตัวอย่างง่ายๆ ว่า การรู้จัก Tools ต่างๆ สามารถช่วยให้คุณแก้ปัญหาได้ง่ายขึ้นมากแค่ไหน ถ้าเขารู้แค่เพียง Python หรือ Java หรือ Go ตัวใดตัวหนึ่ง เชื่อว่าเป็นเรื่องยากที่จะทำสิ่งนี้ได้สำเร็จ

ประเด็นสำคัญที่อยากบอก:

  1. จงสนุกกับการเรียนรู้ภาษา Programming ต่างๆ เพราะมันจะช่วยให้คุณรู้กว้างขึ้นและช่วยผลักดันให้คุณออกนอก Comfort Zone
  2. ฝึกฝนตัวเอง ให้คิดถึงปัญหาที่สามารถแก้ได้นอกเหนือจากภาษาใดภาษาหนึ่ง Object Oriented Programming นั้นยอดเยี่ยม แต่จะดีกว่าไหมถ้าคุณรู้เกี่ยวกับ Functional Programming หรือ Procedural Programming ด้วย หากคุณสามารถฝึกฝนตัวเองให้คิดเกี่ยวกับ Programming นอกเหนือจากภาษาใดภาษาหนึ่งแล้ว คุณจะไปได้ไกลมากขึ้น
  3. เมื่อคุณเรียนรู้ภาษา Programming อยุ่ ภาษาแรกอาจจะยาก ภาษาที่ 2 ก็อาจยากยิ่งขึ้น แต่หลังจากนั้นจะง่ายขึ้น มันเป็นแค่ Syntax และโครงสร้างบางอย่างที่แตกต่างกันไปตามภาษานั้นๆ จากนั้นคุณสามารถเรียนรู้ Library หรือ Framework ของภาษานั้นๆ ได้
  4. อีกเหตุผลที่น่าสนใจในการเรียนรู้ภาษามากขึ้นคือ WASM ซึ่ง Web Assembly จะช่วยให้คุณ Run ภาษาที่คุณต้องการบนBrowser ได้ ซึ่งหมายความว่า หากคุณเรียนรู้ภาษาที่ทำงานรวดเร็วอย่าง C++ คุณสามารถใช้ประโยชน์จากความรวดเร็วนั้นใน Browser และสร้างสิ่งที่ยอดเยี่ยมอย่าง https://squoosh.app/ ได้ ดูข้อมูลเพิ่มเติมได้ที่นี่

ข้อคิดส่งท้าย

  1. หากคุณเป็น JavaScript หรือ Python Developer ขอแนะนำให้คุณเรียนรู้ Lower Level Language ด้วยเช่น C/C++ แต่ก็อยากให้คุณเรียนรู้ Golang ด้วย คุณสามารถใช้ข้อดีด้านความรวมเร็วของ C++ ได้
  2. หากคุณเป็น Developer ที่ใช้ภาษา Lower Level Language อยู่แล้ว อยากให้ลองศึกษา Python หรือ JavaScript ด้วย เพราะถ้าคุณไม่รู้ภาษาดังกล่าว คุณอาจพลาดข้อดีของพวกมัน เพราะ Python เปรียบเสมือน pseudocode และ JavaScript ก็มีการใช้งานกันมากมาย คุณสามารถใช้ Lower Level Language ควบคู่ไปกับ 2 ภาษานี้ได้ คุณสามารถเขียน C++ Module สำหรับ Nodejs และ Python เชื่อเถอะ มันจะช่วยให้ชีวิตคุณง่ายขึ้น

หวังว่าบทความนี้น่าจะช่วยให้กระตุ้นให้คุณเรียนรู้สิ่งต่างๆ ให้รู้หลากหลายมากขึ้น

ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 25 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่

Source:  https://www.medium.com/

en