ถ้าคุณเคยพบตัวเองนั่งมองหน้าจอ คิดว่า "วันนี้ควรเรียนภาษาโปรแกรมอะไรดี?" เราอาจมีคำตอบให้คุณ
ด้วยภาษาโปรแกรมเยอะมากให้เลือก พยายามคัดกรองว่าตัวไหนคุ้มค่าที่จะลงทุนเวลา อาจเป็นงานหนัก คำตอบสั้นๆ คือ ทั้งหมด เพราะแต่ละภาษามีประโยชน์ในรูปแบบหนึ่งหรืออีกแบบหนึ่ง แตสำหรับผู้ที่ไม่มีเวลาไม่มีที่สิ้นสุด การมุ่งเน้นตัวเลือกยอดนิยมจะเป็นขั้นฉลาดกว่า
ภาษาโปรแกรมใหม่โผล่มาตลอด แต่มีไม่กี่ภาษาที่ทนทานต่อการล้าสมัย (Obsolescence) ภาษาเหล่านี้เป็นที่หามากที่สุด มีความเสถียร และมักนำไปสู่โอกาสการทำงาน
เหมือนที่กล่าวไว้ การเรียนหลายภาษามีประโยชน์ โดยเฉพาะสำหรับโปรแกรมเมอร์และนักพัฒนาอาวุโส (Senior Developers) เพราะให้เครื่องมือมากขึ้นในชุดเครื่องมืออาชีพของคุณ
การเรียนภาษาบนรายการของเรา ไม่ว่าจะเป็นบางส่วนหรือทั้งหมด ควรให้คุณชุดความรู้ที่ต้องการในตลาดงาน ที่งานพัฒนาและโปรแกรมมิ่งที่จ่ายเงินสูง กำลังมองหา
ควรเรียนภาษาโปรแกรมอะไร?
เราให้รายการ 8 ภาษา (และนิดหน่อยนอกเหนือ) ที่ยอดนิยมที่สุด ทำหน้าที่เป็นรากฐาน (Cornerstones) สำหรับใครก็ตามที่อยากเข้าสู่อาชีพโปรแกรมมิ่งและพัฒนา
Java
Java อาจเป็นภาษาโปรแกรมที่มีชื่อเสียงที่สุดโลก เป้าหมายคือพัฒนาแอปพลิเคชันฝั่งเซิร์ฟเวอร์ (Server-side) ไปจนถึงแอปมือถือและเกมวิดีโอ ที่สามารถปรับใช้ (Deploy) ในสภาพแวดล้อมคอมพิวติ้งข้ามแพลตฟอร์ม (Cross-platform)
เป็นพื้นฐานการพัฒนาแอป Android ทำให้เป็นข้อกำหนดสำหรับผู้สนใจด้านพัฒนาแอป Android ไม่ได้แค่นั้น นักวิศวกรรมซอฟต์แวร์ (Software Engineer) ที่มีความหวัง ควรทำให้ภาษานี้เป็นศาสนาของพวกเขา
ยังใช้ในพัฒนาเว็บและแอปเดสก์ท็อป ที่ได้ประโยชน์จากภาษาเขียนครั้งเดียว รันได้ทุกที่ (Write-once, Run Anywhere) ภาษานี้เป็นหนึ่งในที่เรียนรู้ง่ายที่สุด และเป็นทักษะที่นายจ้างทั่วโลกค้นหา
เรียนที่ไหน?
มีความช่วยเหลือฟรีเยอะมากสำหรับผู้สนใจเรียน Java หลักสูตรยอดนิยมที่สุดคือ The Complete Java Masterclass บน Udemy ถือเป็นหนึ่งในหลักสูตรที่ครอบคลุมที่สุดสำหรับเรียน Java เหมาะทั้งมือใหม่และนักพัฒนา Java มืออาชีพ
Python
ถูกมองว่าเป็นภาษาโปรแกรมที่เรียนรู้ง่ายที่สุด Python เป็นครีมแห่งครีส (Cream of the Crop) เมื่อพูดถึงการออกแบบเว็บแอปพลิเคชัน (Web Application Design) เว็บไซต์อย่าง Pinterest และ Instagram ต้องขอขอบคุณ Python และอีกนิดหน่อย
ภาษานี้เป็นหนึ่งในภาษาโปรแกรมที่ต้องการ (In-demand) มากที่สุดวันนี้ และอาจเป็นภาษาสำคัญที่สุดที่คุณควรเรียนในปี 2020 ไม่ว่าจะเป็นเส้นทางอาชีพไหน มันล้ม Java ให้เป็นภาษาที่สอนมากที่สุดในมหาวิทยาลัยและอקדמิก (Academia) แล้ว
Python รองรับระบบและแพลตฟอร์มหลายระบบ ช่วยเพิ่มประสิทธิภาพนักโปรแกรมมิ่ง และขับเคลื่อนด้วยการเขียนโปรแกรมเชิงวัตถุ (Object-oriented Programming) เงินเดือนกลาง (Median Salary) ประมาณ $112k ต่อปี สำหรับผู้สนใจ Machine Learning, AI และ Data Science
เรียนที่ไหน?
อยากเข้าสู่ Python? Python.org เป็นจุดเริ่มต้นที่ดี ถ้าไม่แคร์จ่ายเงินนิดหน่อย Python Fundamentals ก็เป็นหลักสูตรดีสำหรับมือใหม่
C/C++
บ่อยครั้งที่เป็นภาษาโปรแกรมแรกที่คุณจะเรียน ถ้าเคยไปมหาวิทยาลัย หรือเรียนวิชาคอมพิวเตอร์วิทยาในมัธยม C และ C++ ถือเป็นภาษา Evergreen (ทนทานกาลเวลา) เข้าใจได้ว่า ถ้าคุณวางแผนใช้ภาษาเหล่านี้เพื่อการทำงาน สิ่งที่สอนในมัธยม ไม่พอเลย
หาหลักสูตรฟรี C++ บนอินเทอร์เน็ตได้เยอะมาก ตั้งแต่ระดับเริ่มต้นถึงกลาง ถ้าคุณเพิ่งเข้าสู่วงการโปรแกรมมิ่ง หรือไม่แน่ใจว่านี่เป็นเส้นทางอาชีพที่คุณพร้อมลงทุนมาก การเรียน C และ C++ เป็นจุดเริ่มต้นที่ดี
หลังใช้เวลาเรียน C คุณจะพบว่า ภาษาที่เรียนง่ายนี้ จริงๆ แล้วเป็นพื้นฐานของภาษาระดับสูงอื่นๆ ควรช่วยให้คุณคุ้นเคยกับภาษาที่ต้องการมากกว่านั้นอย่าง Java และ Python ได้ง่ายขึ้น
เรียนที่ไหน?
Udemy ให้หลักสูตรดีเยอะสำหรับเริ่มต้น'éducation ทุกอย่างเกี่ยวกับ C/C++ ลอง C++ Tutorial for Complete Beginners หรือ C++ Programming Basics ทั้งคู่ฟรี
C#
นี่คือภาษา C อีกตัว C# เป็นหนึ่งในภาษาโปรแกรมที่ดีที่สุดสำหรับพัฒนาแอป Microsoft ใครสนใจพัฒนา GUI (Graphical User-Interface) สำหรับ PC และเว็บ จะได้ประโยชน์จากความรู้ภาษานี้
ความรู้ Java ก่อนหน้าจะช่วยคุณเพิ่มกับ C# เพราะไวยากรณ์ (Syntax) คล้ายกัน C# รับผิดชอบ .NET Framework และใช้หนักในพัฒนาเกมทั้ง PC และคอนโซล
ข้อกำหนดสำคัญของ C# วันนี้ โฟกัสที่พัฒนาเกมด้วย Unity Engine ถ้าวางแผนเริ่มพัฒนาเกมของตัวเอง Unity ไม่ใช่จุดเริ่มต้นที่แย่ ฟรีและโดยทั่วไปง่าย ถ้าจำกัดเล็กน้อย C# ไม่ได้ยอดนิยมหรือมีกำไรในแง่การจ้างงานเท่าตอนก่อน แต่มันไม่แย่ที่จะเพิ่มเข้าไปในอาร์เซนอลภาษาโปรแกรมของคุณ เผื่อเจอความต้องการ
เรียนที่ไหน?
ถ้าวัตถุประสงค์เรียน C# คือเข้า Unity Game Development หลักสูตร Complete C# Unity Developer 2D: Learn to Code Making Games บน Udemy เป็นตัวเลือกยอดเยี่ยม สำหรับการใช้ C# และ Unity อื่นๆ ควรลงทะเบียน Introduction to C# Programming and Unity จาก Coursera
JavaScript
ถ้าเป้าหมายหลักคือเรียนภาษาโปรแกรมที่จะมีประโยชน์ตลอดกาล JavaScript ตอบโจทย์ JavaScript เรียนรู้ง่าย ทำงานราบรื่นกับภาษาอื่นในหลายแอปพลิเคชัน รันเร็วในเบราว์เซอร์ฝั่งไคลเอนต์ (Client-side) (ฝั่งเซิร์ฟเวอร์ด้วย NodeJS) และพบได้เกือบทุกที่บนอินเทอร์เน็ต
พัฒนาเว็บและมือถือ พัฒนาเกม และพัฒนาแอปเดสก์ท็อป JavaScript เป็นภาษาที่ขาดไม่ได้ และพัฒนาต่อเนื่อง
TypeScript เซตซูเปอร์ (Superset) ของ JavaScript ถูกมองว่าเป็นหนึ่งในภาษาที่ได้รับความรักมากที่สุดในปี 2019 แม้ Facebook ก็เห็นพ้อง พวกเขาย้าย Jest (JavaScript Testing) จาก Flow (ภาษาอื่น) ไป TypeScript ต้นปีที่แล้ว
เรียนที่ไหน?
ไม่มีเวลาที่ดีกว่านี้สำหรับเรียน JS ในปี 2020 เพราะมันเป็น ตั้งแต่ทศวรรษที่ผ่านมา หนึ่งในภาษาที่ต้องการมากที่สุดในตลาด
จุดเริ่มต้นที่ดีคือ The Complete JavaScript Course 2020: Build Real Projects! บน Udemy ถ้าชอบเรียนโค้ดเป็นส่วนๆ Code Academy มีหลักสูตร JavaScript ยอดเยี่ยมมากที่ช่วยได้
PHP
อีกภาษาที่ครอบครองอินเทอร์เน็ต 主要在 (Primarily in the form of) เว็บไซต์และแอปพัฒนาที่ขับเคลื่อนด้วยข้อมูลไดนามิก (Dynamic Data-heavy) คือ PHP ส่วนที่ใหญ่ของ PHP หาได้ในเว็บไซต์อย่าง WordPress และ Facebook
PHP มานานมาก และถือเป็นภาษาที่ต้องรู้ (Must-know) เป็นภาษาโอเพนซอร์ส (Open-source) และถือว่าช้ากว่าเพื่อนร่วมทีมในแง่พัฒนาเว็บ
การเป็นโอเพนซอร์ส หมายถึง ไม่ใช่ภาษาที่ปลอดภัยมาก แต่มีชุมชนโอเพนซอร์สใหญ่หลัง받침 (Back up) การเรียน PHP ใช้เวลาน้อย และช่วยโอกาสการทำงาน (แม้ลดลง) สำหรับเว็บแอปพลิเคชัน ระบบจัดการเนื้อหา (CMS) และแอปพลิเคชันอีคอมเมิร์ซ
เรียนที่ไหน?
นักพัฒนาเว็บสนใจ PHP จะหาความรู้เยอะในหลักสูตร Building Web Applications in PHP ของ Coursera หัวใจตั้งอยู่ที่สร้างเว็บอีคอมเมิร์ซ? ดู Learn E-Commerce Website in PHP & MySQL From Scratch บน Udemy
Swift
ภาษาโปรแกรมนี้ออกแบบมาเฉพาะสำหรับแอป iOS Apple ตัดสินใจในปี 2010 ว่าไม่ต้องการบังคับนักพัฒนา iOS ทำงานกับ Objective-C ดังนั้น Swift เสนอภาษาสำรองให้นักพัฒนาเหล่านั้น ใครยังใช้ไลบรารี Cocoa Touch สำหรับโต้ตอบ อาจยังใช้ Objective-C ได้ เพราะเฟรมเวิร์กที่ใช้โดยทั้งคู่ยังคงเหมือนเดิม
Swift ให้เอาต์พุตเรียลไทม์ (Real-time Output) สำหรับการโต้ตอบ และตอบสนองเร็วต่อการเปลี่ยนแปลงโค้ดหรือดีบั๊กออンザฟลาย (On the fly) ระบบดีบั๊กอัตโนมัติ (Automated Debugging System) จริงๆ เป็นหนึ่งในองค์ประกอบหลักของระบบ Swift ให้คุณสมบัติโต้ตอบมากกว่า ที่พบในระบบสคริปติ้งคล้าย Python
ข้อได้เปรียบของ Swift เทียบภาษาอย่าง Objective-C คือ ลดโค้ด (เกือบ 1 ใน 4) เรียนรู้ง่ายกว่ามาก และชุมชนนักพัฒนามีศักยภาพเติบโตมากกว่า ด้วยคุณภาพแอปที่มักจะผลิตได้ ใครหวังเข้าสู่อาชีพพัฒนาแอป iOS หรือแค่อยากเข้ากลุ่มแรงงานด้วยภาษาที่อาจเป็นที่มีกำไรมากที่สุดไปข้างหน้า ควรเรียน Swift
เรียนที่ไหน?
เหมือนรายการส่วนใหญ่ Udemy เป็นแหล่งความรู้ดีสำหรับภาษานี้ ดู iOS 11 & Swift 4 - The Complete iOS App Development Bootcamp เพื่อเดินทางจากมือใหม่ถึงโปร แค่อยากดูว่ามันคืออะไร? มีบทเรียนสะดวกจาก DZone.com พาทั่วไปนิดหน่อย เพื่อเข้าใจพื้นฐาน iOS 11 หลักสูตรนี้บน pluralsight.com จะเริ่มต้นให้คุณ
SQL & NoSQL
SQL มานานมาก วัตถุประสงค์ของ SQL คือเป็นฐานข้อมูลแบ็กเอนด์ (Backend Database) ของแอปพลิเคชัน เป็นภาษาเดี่ยว (Standalone) SQL อาจไม่ดูประโยชน์มาก แต่ในฐานะนักพัฒนาซอฟต์แวร์ ไม่ว่าจะเลือกภาษาอะไร เข้าใจทั้งฐานข้อมูลและ SQL เป็นความจำเป็น
เรื่องการสืบค้นข้อมูล (Data Queries) ความพร้อมใช้งาน (Availability) และความสอดคล้อง (Consistency) SQL ให้มา ถ้าต้องดึงข้อมูลจากหลายตารางในฐานข้อมูล SQL จะส่งมอบข้อมูลนั้นอย่างรวดเร็ว ภาษาทั้งหมดถูกเพิ่มประสิทธิภาพ (Optimized) สำหรับจำนวนแถวตารางมาก และการค้นหาทั่วทั้งฐานข้อมูลอย่างรวดเร็ว สำหรับโปรเจกต์ที่คุณทำงานอยู่
แม้ SQL จะทรงพลัง มันมาพร้อมข้อบกพร่องมาก รวมถึง ความยากแปลงข้อมูลจากวัตถุเป็นตารางฐานข้อมูล เซิร์ฟเวอร์เดี่ยว (Single Server Availability) และทุกอย่างต้องเขียนออกมา ไม่เหมือน ORM ที่ให้โซลูชันอัตโนมัติ แม้จะเป็นธรรมที่จะพูดว่า การเขียน SQL ส่วนใหญ่ด้วยมือ มักนำไปสู่คิวรี (Query) ที่แน่นหนา (Tighter) และประสิทธิภาพสูงกว่า ORM ใครสนใจสาย Data Science ควรเรียน SQL
NoSQL ได้รับความนิยมเพิ่มขึ้น ด้วยประสิทธิภาพบนฮาร์ดแวร์ราคาถูก ความยืดหยุ่นและขยายได้ (Elasticity and Scalability) ที่เสนอเหนือฐานข้อมูลประเภทอื่น และทำให้การสร้างโมเดลฐานข้อมูล (Database Model Structuring) ไม่จำเป็น มีศักยภาพล้ม SQL ในสาย Data Science แต่นี่ยังไม่มีข้อเท็จจริงยืนยัน เนื่องจากเป็นภาษาใหม่ ขาดการสนับสนุนชุมชน (แม้ขยายตัวเร็ว) และแพลตฟอร์มมาตรฐาน
เวลาเปรียบเทียบ SQL vs NoSQL ข้อมูลที่มีโครงสร้าง (Structured Data) ระบบสนับสนุนบูรณาการ (Integrated Support System) และสคีมา (Schemas) ของ SQL ทำให้เป็นตัวเลือกที่ธุรกิจชอบ ในขณะที่ NoSQL อาจพบว่าการพัฒนาแอปพลิเคชันรวดเร็ว (Swift Application Development) เป็นนิช่าของมัน
เรียนที่ไหน?
สำหรับ SQL, Code Academy เริ่มต้นได้ด้วยหลักสูตรของพวกเขา ผู้ชื่นชอบ NoSQL หาความรู้เยอะจากคอร์สของ edx.org ว่า Introduction to NoSQL Data Solutions และ Amazon DynamoDB: Building NoSQL Database-Driven Applications
ภาษาโปรแกรมที่มีประโยชน์อื่นๆ ที่ควรเรียน
ดูลิสต์ คุณอาจสังเกตหรือไม่สังเกต ขาดไปบางตัวที่คุณคิดว่าจะอยู่ โดยเฉพาะ Ruby และเฟรมเวิร์ก Ruby on Rails (RoR) เนื่องจากเป็นภาษาใช้ในเว็บแอปมาก และยังมีความต้องการพอสมควรวันนี้ ใช้ใน Shopify, Airbnb, Fiverr, Github, และ Bloomberg แค่บางส่วน แม้บริษัทเยอะยังใช้ แต่สูญเสีย hype ไปมากในไม่กี่ปีก่อน จึงไม่แนะนำเป็น "ต้องเรียน"
ภาษาที่รู้จักน้อยกว่าอย่าง R, Rust, Kotlin และ Golang ยังไม่ถึงความนิยมที่ทำให้ดูคุ้มค่าที่จะรู้ในขณะนี้ อย่างไรก็ตาม เราคิดว่า Kotlin จะประโยชน์ต่อใครก็ตามที่จริงจังกับพัฒนาแอป Android เพราะข่าวลือว่ามันอาจเป็น Next Big Thing
Golang หรือ Go ค่อนข้างยากที่จะเรียน แต่ใครสนใจพัฒนาเฟรมเวิร์ก อาจคุ้มค่าเวลา คล้ายกับ Go คุณจะพบว่า Rust ก็ยากมาก แต่สามารถให้ผลตอบแทนมาก มีความสามารถสร้างไลบรารีที่เชื่อมโยงกับภาษาโปรแกรมอื่นได้ ถ้าสนใจ Rust for Undergrads ควรช่วยเริ่มต้นได้