See the original English version of this article here
บทความนี้ เป็นการแชร์ประสบการณ์และคำแนะนำของคุณ Minhaz ในฐานะของ Senior Software Engineer ที่ Google Singapore ซึ่งเขาถูกถามบ่อยมาก ว่า “ภาษา Programming ใด ที่ควรเรียนรู้ดี?” ซึ่งในบทความนี้เขาจะมาแนะนำว่า ภาษา Programming ที่ควรเรียนรู้ในปี 2022 มีอะไรบ้าง
คำแนะนำจากคุณ Minhaz ก็คือ “ไม่ต้องเจาะจง” ว่าต้องเป็นภาษาใดภาษาหนึ่ง
มันไม่สำคัญเลยว่า คุณจะเริ่มต้นด้วย C++ หรือ Java หรือ Python หรือ JavaScript หรือภาษาอื่น ๆ ก็ตาม การเรียนรู้ภาษาใหม่ ๆ มักใช้เวลาไม่นานนัก และไม่ควรให้ความสำคัญว่า จะต้องเรียนภาษาใดก่อนเป็นอันดับแรก หรือเริ่มเรียนภาษาใดก่อน
เขากล่าวว่าภาษา Programming นั้นอาจมีจุดสิ้นสุดของมัน และในทางปฏิบัติเรามักจะเปลี่ยนไปใช้ภาษาอื่น ๆ เพื่อทำให้งานของเราเสร็จ
“ผมเริ่มต้นเส้นทางในสายงานนี้ด้วยการเขียน C++ ตอนเรียนมัธยมศึกษาตอนปลาย ใช้เวลาไปมากกับ JavaScript ในมหาวิทยาลัย งานของผมที่ Microsoft ทำให้ผมต้องใช้งาน C#/.Net และ Typescript เยอะมาก และเมื่อผมมาทำงานที่ Google ผมเริ่มทำงานเกี่ยวกับ Android Camera App — ทำให้ผมเริ่มทำงานกับ Java จากนั้นผมก็เปลี่ยนไปใช้เทคโนโลยี Computational Photography ซึ่งมันเกี่ยวกับเรื่องของกล้อง และทุกวันนี้ผมก็เขียน C++ (Production Code) และ Python สำหรับ Prototyping มากขึ้น
และการทำงานที่ผ่านมา ความทุ่มเทและเวลาที่ใช้ไปกับการเรียนรู้ภาษาใหม่ ๆ นั้น ไม่เคยสูญเปล่าสำหรับผมเลย” — คุณ Minhaz กล่าว
คุณ Minhaz ยอมรับว่าเมื่อเวลาผ่านไป เราได้สร้าง “Type” ต่าง ๆ สำหรับภาษา Programming ขึ้นมาในแง่ของวิธีการนำพวกมันไปใช้ มีบางภาษาที่ใช้สำหรับ Markup อย่าง HTML หรือ XML เท่านั้น ในขณะที่บางภาษาใช้สำหรับ Scrip เช่น Shell Script หรือ Bat Scripts เท่านั้น เป็นต้น
คุณอาจต้องใช้เวลาในการเรียนรู้ไปบ้าง เมื่อเปลี่ยนจาก “Type” ของภาษา Programming หนึ่งไปอีกTypeหนึ่ง การมีความเข้าใจพื้นฐานเกี่ยวกับ “Type” เหล่านี้ จะทำให้อุปสรรคในการเรียนรู้ภาษาใหม่ ๆ ลดลง
แล้วเราควร Focus ที่ภาษาที่ไหนดี?
ตามความเห็นของคุณ Minhaz ทักษะที่สำคัญที่สุดในการทำงานคือ ความสามารถในการจัดการกับปัญหาที่ระบุด้านล่างนี้:
-
ถ้าสิ่งนั้นควรเป็น Web Application คุณสามารถสร้างขึ้นมาได้ไหม?
-
ถ้าคุณมี Android App คุณจะสามารถปรับปรุงประสิทธิภาพการทำงานของมันได้หรือไม่?
-
ถ้าคุณมีปัญหาที่อาจจะต้องแก้ไขด้วย Trained Neural Network คุณจะสามารถแก้ไขปัญหาได้ทั้งหมดหรือไม่?
ต่อให้คุณ “ไม่เคย” ลงมือทำมาก่อน และไม่ว่าจะต้องใช้ภาษา Programming อะไรก็ตาม ในท้ายที่สุดแล้ว มันก็เหมือน ๆ กัน ดังนั้น เราควรฝึกฝนต่อไปและเน้นการเรียนรู้เทคโนโลยีใหม่ ๆ, พยายามเจาะลึกเข้าไปในแนวคิดต่าง ๆ ในช่วงแรก ๆ ควรพยายามศึกษาให้หลากหลายType จนทุกอันเริ่มดูเหมือนไม่ได้มีความแตกต่างกัน และท้ายที่สุด ก็เลือกอันที่คุณชอบและศึกษามันอย่างลึกซึ้ง!
การได้คำแนะนำแบบเจาะจงไปเลย คงจะดีกว่ามาก!
คุณ Minhaz มีคำแนะนำที่แตกต่างกันออกไป สำหรับ Programmers ในช่วงต่าง ๆ ของอาชีพ
1. หากคุณเพิ่งเริ่มเรียนรู้ Programming
คุณ Minhaz แนะนำให้เลือกTypeของเทคโนโลยีที่คุณต้องการใช้งานขึ้นมาสักหนึ่งอย่าง — อาจเป็น Web อาจเป็น Mobile (Android / iOS) อาจเป็น Game Development อาจเป็น App Development อื่น ๆ อาจเป็น Training ML Models หรือการสร้าง Desktop Apps เป็นต้น
แต่ประเด็นสำคัญคือ ต้องเรียนรู้เทคโนโลยีและเรียนรู้ภาษาที่เกี่ยวข้องด้วย ถ้าเป็นไปได้ ควรเรียนรู้ด้วยการสร้าง Software แบบไม่เจาะจงขึ้นมาสักอัน แล้วจงสนุกกับช่วงเวลานั้น และถ้าเป็นไปได้ ก็ให้ตั้งคำถามต่อไปว่า สิ่งมหัศจรรย์ต่าง ๆ ที่คุณเห็นนั้น มันใช้ได้ผลจริงหรือไม่
ท้ายที่สุด ให้เริ่มศึกษา Fundamental Concepts เพิ่มเติม ซึ่งถูกแบ่งแยกโดย Libraries ที่คุณใช้อยู่ เช่น Concurrency หรือ Multithreading, Databases, Graphics Rendering, Image Processing หรือ Networking เป็นต้น
คุณเห็นไหมว่า Program ที่เราเขียน ไม่ว่าจะในภาษาใดนั้น จะถูก Compiled ไปยัง Assembly Instructions โดยตรง หรือไปยัง Intermediate Byte-codes ซึ่งสุดท้ายแล้วจะถูก Compiled เป็น Assembly Instructions เพื่อให้ Hardware ทำงาน หากคุณยอมรับข้อเท็จจริงนี้ คุณจะเริ่มมองเห็นว่า Syntaxes ในภาษาต่าง ๆ นั้นมีลักษณะคล้ายกันมาก ๆ
ข้อกำหนดบางตัว เช่น “การเพิ่ม Value ไปใน Array ทีละ 1” สามารถทำได้ในรูปแบบต่าง ๆ ดังนี้
สำหรับ Python:
สำหรับ JavaScript:
สำหรับ Go:
ทั้งหมดนี้จะถูก Compiles ได้เป็นประมาณนี้:
สิ่งที่น่าสนใจกว่าในชุดตัวอย่างนี้ก็คือ ตัวอย่างบางส่วนนำไปสู่การ Array Copy ในขณะที่บางส่วนไม่ต้องทำ และขอแนะนำให้คุณเน้นไปที่การเรียนรู้เพิ่มเติมเกี่ยวกับปัญหาที่เกิดขึ้นแต่ละType และผลกระทบที่เกิดขึ้นต่อโปรแกรม
2. หากคุณมีประสบการณ์และเชี่ยวชาญในภาษา Programming บางภาษาบ้างแล้ว แต่คุณยังรู้สึกเหมือน ยังขาดอะไรบางอย่างอยู่
คุณ Minhaz ก็ยังคงแนะนำแบบเดียวกันคือ ให้ลองถอยออกมา แล้วนึกถึงปัญหาบางอย่างที่ทำให้คุณรู้สึกตื่นเต้น จากนั้นให้คิดวิธีการใหม่ ๆ และสุดท้ายคุณต้องเรียนรู้และศึกษาเพิ่มเติมสิ่งนั้น
“ตัวอย่างเช่น ขณะทำงานกับ Camera App ผมมีโอกาสได้ใช้ ” Night Mode ” ใน Camera App ซึ่งทำให้เราต้องถ่ายภาพต่อเนื่องกันและรวมภาพเข้าด้วยกันเพื่อสร้างภาพให้มีองค์ประกอบดูดีและมี Noise ต่ำ การทำแบบนี้ดูเหมือนต้องใช้ Resources มากและเราต้องการให้ Algorithm ของเราทำงานบน Resource ที่มีใน Hardware ที่ใช้งานอยู่
นี่เป็น ปัญหาที่น่าตื่นเต้นมากสำหรับเขา และทำให้เขาต้องศึกษาเพิ่มเติมอีกครั้งเกี่ยวกับ C++ และ Image Processing Concepts” — คุณ Minhaz กล่าว
แต่เขาก็รู้สึกดีที่ความพยายามในการเรียนรู้นี้ ไม่ได้ทำให้รู้สึกว่า มันคือปัญหา ขอแนะนำให้คุณค้นหาแนวทางนั้นและเริ่มเรียนรู้มัน
สรุปง่าย ๆ คือ จงอย่ากังวลที่จะหาภาษา Programming สัก 1 ภาษา ที่เหมาะกับคุณที่สุดในปี 2022 นี้
และทั้งหมดนี้คือ “ภาษา Programming ที่ควรเรียนรู้ในปี 2022” แนะนำโดย Senior Software Engineer ของ Google หากคุณมีเป้าหมายที่อยากจะร่วมงานกับบริษัทที่มีชื่อเสียง ลองทำตามคำแนะนำของ คุณ Minhaz ดู หรือติดต่อ ISM Technology Recruitment และส่ง Resume ของคุณได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่
ISM เชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการมากว่า 30 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย
Source: https://betterprogramming.pub/