เขียนโปรแกรมภาษาอะไรดี

รับเขียนโปรแกรม-programming-languages

เขียนโปรแกรม ภาษาอะไรดี?

สวัสดี : ) หลังจากห่างหายกันไปเป็นชาติ ขออภัยจริง ๆ งานยุ่งมาก ๆ …วันนี้นึกอยากอยากจะเขียนบทความเพิ่ม เลยได้กลับมาเจอกันอีกรอบ (ถ้าไม่อยากเขียน ก็คงไม่ได้เจอกันสินะ! 555)

หลังจากที่ทิ้งท้ายตามหัวเรื่อง “ตรรกะ” หรือ “Logic” ในบทความ ก้าวแรกสู่การเป็นนักเขียนโปรแกรม(1st step of a programmer) ที่ผู้เขียนเน้นย้ำเหลือเกินว่า “ตรรกะ” สำคัญกว่า “ไวยกรณ์” หรือ “Syntax” นั้น ผู้เขียนยังยืนยันเหมือนเดิมนะ ฝึกตรรกะให้แน่น ๆ แล้ว คุณจะปราบได้ทุกภาษา(โปรแกรม) จริง ๆ นะ
แต่วันนี้เราจะมาว่ากันในหัวข้อ “เขียนโปรแกรม ภาษาอะไรดี?” ซึ่งผู้เขียนรู้สึกว่า น่าจะมีหลาย ๆ ท่านที่สงสัย โดยเฉพาะน้อง ๆ ที่ยังเรียนอยู่ หรือ ผู้ที่พึ่งจะมาสนใจด้านนี้ ไม่ต้องกังวล เรามีเพื่อนที่งงเหมือนเราเยอะ …แต่สมัยเรียนผู้เขียนไม่เคยสงสัยเรื่องนี้เลยนะ ไม่ใช่ว่าเก่ง หรือ รู้แล้วหรอกนะ แต่… เขียนเป็นอยู่ภาษาเดียว! เพราะ มหา’ลัย สอนแค่ภาษานี้ (จริง ๆ) ภาษาที่ว่านั่นคือ PASCAL (โบราณดีมั้ยล่ะ!)

ตามความคิดเห็นของผู้เขียน(เน้นนะ ความคิดเห็น) ด้วยจำนวนมหาศาลของภาษาโปรแกรม(Programming Language) ที่มีอยู่ในโลกนี้ เราไม่สามารถบอกได้หรอกว่า “ภาษาโปรแกรม ภาษาไหนดีที่สุด” เพราะแต่ละคนมีประสบการณ์ไม่เหมือนกัน และที่สำคัญแต่ละภาษา ก็เหมาะกับงานที่แตกต่างกันออกไปด้วย เอาเป็นว่าวันนี้ เล่าสู่กันฟังจากประสบการณ์ตรงของผู้เขียนจะดีกว่า
หากจะจัดกลุ่มของภาษาโปรแกรมแบบวิชาการ อันนี้หาอ่านเอาเองนะ มีเยอะ …ผู้เขียนขอจัดกลุ่มเองตามใจฉันดู (ไม่ถูกตามหลักวิชาการ คงไม่มีใครฟ้องมั้ง) เน้นไปที่การใช้งาน แยกตามระดับงาน หรือตามระดับการนำไปใช้งาน แบบนี้ดีกว่า

ภาษาโปรแกรมสำหรับการเรียน(เบื้องต้น มากถึงมากที่สุด) : หลังจากที่ได้เรื่อง “ตรรกะ” แล้ว ภาษาที่เหมาะสมสำหรับการซ้อมมือที่สุด น่าจะเป็นกลุ่มที่รองรับการเขียนโปรแกรมเชิงโครงสร้าง (Structured Programming) หรือรูปแบบการเขียนโปรแกรมแบบลำดับขั้น (Sequential Programming) มากกว่า เนื่องจากภาษาเหล่านี้จะเป็นตัวช่วยในการเพิ่มตรรกะในการแก้ปัญหาแบบเป็นขั้นเป็นตอนได้ดีมาก ภาษาที่ผู้เขียนแนะนำให้ฝึกให้เชี่ยว(โดยเฉพาะน้อง ๆ ที่เรียนกันอยู่) คือ PASCAL, C, C++ ประมาณนี้แหละ ภาษาเหล่านี้ จะมี Build-In Function น้อยมาก ซึ่งก็เป็นผลดีให้เราได้ฝึกเขียนเองเกือบทั้งหมด

ภาษาโปรแกรมสำหรับทำงาน : ในลำดับถัดมา หลังจากที่เราฝึกการเขียนโปรแกรมแบบลำดับขั้นได้แล้ว แนวคิดการเขียนโปรแกรมที่ถือว่ายังใช้งานได้ (แม้จะเป็นแนวคิดที่ออกมานานแล้วก็ตาม) เรียกว่า “Object-Oriented Programming” หรือ “การเขียนโปรแกรมเชิงวัตถุ” (นิยาม ความหมายและวิธีการ ไปหาอ่านเอานะ วันนี้เน้นเรื่องภาษาโปรแกรมก่อน!) หากว่าเราเข้าใจแนวคิดดังกล่าว ผู้เขียนมั่นใจว่า ใช้หากินไปได้อีกนาน และในปัจจุบัน ภาษาโปรแกรมรุ่นใหม่ ๆ จะรองรับ หรือ ปรับรูปแบบการเขียนเพื่อให้รองรับกับแนวคิดดังกล่าวเสียทั้งหมดแล้ว ส่วนภาษาที่แนะนำให้เขียนดู คือ C# (อันนี้ ลำเอียง), Java, VB.Net, PHP อะไรเทือก ๆ นี้แหละ
หากจะผู้เขียนแนะนำแบบฟันธงไปเลย ว่า “ภาษาใหนดีที่สุด” คงบอกไม่ได้ (จริง ๆ แล้ว ไม่กล้าฟันธงมากกว่า เดี๋ยวโดนฟันหัว!) ถ้าเป็นไปได้ อยากให้ผู้อ่านลองหัดเขียนไว้หลาย ๆ ภาษา แล้วค่อยเลือกมาสักหนึ่งภาษาเพื่อทำมาหากินอีกที และเนื่องจากแต่ละภาษาเหมาะกับงานที่แตกต่างกันออกไป ผู้เขียนจะขอเขียนเฉพาะที่ชำนาญจริง ๆ แล้วกัน

Database Programming (การเขียนโปรแกรมระบบฐานข้อมูล) งานส่วนใหญ่ในท้องตลาด ณ ปัจจุบัน ยังหนีไม่พ้น งานที่ต้องเก็บข้อมูลในฐานข้อมูล ดังนั้น สิ่งที่เราต้องเขียนให้ได้ ไม่ใช่แค่ภาษาโปรแกรม หากจะทำงานกับฐานข้อมูล เราต้องชำนาญเครื่องมืออีกอย่างหนึ่งที่เรียกว่า SQL Query (ส่วนนี้ ถ้ามีเวลาจะมาเน้นให้อีกครั้ง) ตัวนี้จะเป็นเครื่องมือที่ใช้ในการจัดการข้อมูลในฐานข้อมูล ยังไม่พอ มันยังแยกย่อยลงไปอีกว่า เราใช้ระบบฐานข้อมูลอะไร “SQL Server” , “MySQL”, “Oracle” ฯลฯ แต่ยังโชคดีที่ระบบฐานข้อมูลต่าง ๆ มัน “Standard SQL Query” อยู่ ทำให้หน้าตาของ query ที่เขียน ออกมาคล้าย ๆ กัน

เอาเป็นว่าผู้เขียนขอจัดกลุ่มสำหรับ Database Programming ไว้ประมาณนี้แล้วกัน
Microsoft : C#, VB.Net + SQL Server
Open Source : JAVA, PHP + MySQL

ทิ้งท้ายไว้อีกหน่อย เนื่องจากปัจจุบัน แนวทางการพัฒนาระบบได้เน้นไปที่ Web Application เสียเป็นส่วนใหญ่ ดังนั้น เครืองมืออีกอย่างหนึ่งที่เราต้องใช้ให้ชำนาญคือ JavaScript หรือ jQuery (เริ่มเขียน JavaScript ก่อนค่อยปรับเป็น jQury ก็ได้) ที่จะช่วยให้การเขียนโปรแกรมของเรามีประสิทธิภาพมากขึ้น (เร็วขึ้น)
แถมให้ ตอนท้ายนี้คือเครื่องมือที่ผู้เขียนใช้เขียนงานอยู่ในปัจจุบัน คาดว่าน่าจะยังใช้หากินได้อีกนานพอสมควร

Programming Tools : ASP.Net, C#, JavaScript, jQuery
Database Tools : SQL Server, Oracle

ด้วยความรู้สึกเป็นเกียรติยิ่ง

DEV24x7