เคล็ดลับการเรียน Programming Language ให้เข้าใจถ่องแท้
มีน้อง ๆ เคยถามผมว่า ทำไมผมจึงสามารถเรียนรู้ภาษาโปรแกรมมิ่งต่าง ๆ ได้อย่างรวดเร็ว แล้วยังสามารถนำไปสอนให้คนอื่น ๆ ต่อได้ด้วย ผมเลยมานั่งคิดหาคำตอบสำหรับคำถามนี้ และได้ข้อสรุปออกมาดังนี้
ภาษาโปรแกรมมิ่ง ก็เป็นภาษา
อย่างที่บอกครับ ภาษาโปรแกรมมิ่งเป็นภาษาประเภทหนึ่ง ภาษาต่าง ๆ เราใช้สำหรับการสื่อสาร เพื่อบอกเล่า เพื่อสอบถาม ตอบคำถาม หรือเพื่อสั่งการ การสื่อสารใด ๆ ก็ตามย่อมต้องมีผู้ส่งสาร และ ผู้รับสาร รวมไปถึงวัตถุประสงค์ของการส่งสารนั้น ๆ
สำหรับภาษาโปรแกรมมิ่งนั้น เป็นการสื่อสารระหว่างมนุษย์ และ คอมพิวเตอร์ มีวัตถุประสงค์หลักสำคัญคือ การสั่งให้คอมพิวเตอร์ทำงานอย่างใดอย่างหนึ่ง ไม่มีการบอกเล่า ไม่มีการบ่น ไม่มีการขอร้องขอความเห็นใจใด ๆ มีแต่การสั่งงานเท่านั้น
ภาษาที่มนุษย์ใช้สื่อสาร จะมีการแบ่งเป็นประโยค ภายในประโยคจะมีโครงสร้างของประโยคที่เรียกว่าไวยากรณ์ของภาษา เช่น ประธาน กิริยา กรรม คำเชื่อม คำขยาย และ มีคำศัพท์ของภาษานั้น ๆ
ภาษาคอมพิวเตอร์ก็เช่นกัน มีคำศัพท์ และ ไวยากรณ์ในการสร้างประโยคขึ้นมาเพื่อสื่อสารกับคอมพิวเตอร์ แต่ง่ายกว่าภาษามนุษย์ตรงที่ มีแต่ประโยคที่ใช้สำหรับสั่งงานเท่านั้น
เริ่มศึกษาภาษาโปรแกรมมิ่งอย่างไร?
ภาษาโปรแกรมมิ่งทุกภาษาจะมีองค์ประกอบสำคัญ ๆ ดังนี้
- รูปประโยค (Statement)
- คำศัพท์ (keyword, reserve word, with space)
- ชนิดของตัวแปร (Data Type , literal)
- ตัวกระทำ (Operator)
- การควบคุมการไหล (Control flow)
ในตอนเริ่มศึกษาภาษาต่าง ๆ ผมจะมองหาสิ่งต่าง ๆ ทั้ง 5 ประเภทนี้ เริ่มจากรูปประโยค ภาษานั้นมีรูปประโยคอย่างไร เช่น ใช้การขึ้นบันทัดใหม่ หรือ การใช้เครื่องหมายพิเศษ เช่น ; {} เป็นต้น นอกจากนั้นสิ่งที่ต้องทราบก็คือ ภาษานั้นเป็น case sensitive หรือไม่
ต่อจากรูปประโยค ก็จะต้องเรียนรู้คำศัพท์ต่าง ๆ ของภาษานั้น คำต้องห้ามที่ไม่สามารถนำมาใช้ประกาศเป็นชื่อตัวแปร เช่น do , while , for, if , goto, sub, class เป็นต้น แต่ละภาษาจะมีคำสงวนเหล่านี้ไม่เหมือนกัน ต้องรู้เอาไว้และหลีกเลี่ยงการใช้
ต่อจากคำศัพท์ ก็คือ ชนิดของตัวแปร ต้องทราบว่าภาษานั้นมีวิธีการประกาศตัวแปรอย่างไร มีชนิดของตัวแปรอยู่กี่ชนิด ขอบเขตชีวิตของตัวแปรมีเงื่อนไขอย่างไร การประกาศคำสั่ง เช่น ฟังก์ชัน ซับรูทีน หรือ คลาส ทำได้อย่างไร และ มีเงื่อนไขอย่างไร ตัวแปรต่าง ๆ ที่ประกาศขึ้นมาแล้วสามารถเปลี่ยนชนิดได้อย่างไรมีกฏเกณฑ์อะไรบ้าง
ตัวกระทำ เป็นเรื่องของเครื่องหมายต่าง ๆ ที่นำมาใช้ในภาษานั้น ส่วนมากเป็นตัวกระทำทางคณิตศาสตร์ เช่น บวก ลบ คูณ หาร, ตัวกระทำทางตรรก เช่น เท่ากัน ไม่เท่ากัน มากกว่า น้อยกว่า มีตัวกระทำแปลก ๆ ในภาษานั้นหรือไม่ เช่น arrow function ใช้เครื่องหมาย =>
เรื่องสุดท้ายคือ control flow ซึ่งก็คือ ประโยคเปรียบเทียบด้วยเงื่อนไขเพื่อเลือกทำงานอย่างใดอย่างหนึ่ง (if, else, switch) การทำงานแบบวนซ้ำ (for , do-while)
ลักษณะเฉพาะของภาษา
ภาษาแต่ละภาษาอาจจะมีลักษณะเฉพาะของภาษาเช่น เป็นภาษาแบบเชิงวัตถุ (Object Oriented Programming), Functional Language, Parallel processing languages, Structure Query Language แต่ละภาษาจะมีลักษณะเฉพาะที่แตกต่างกัน ซึ่งก็ต้องอาศัยเวลาเพิ่มเติมในการศึกษาความสามารถเฉพาะของแต่ละภาษามากน้อยแตกต่างกันไป
นอกจากลักษณะเฉพาะแล้ว ภาษาทุกภาษาจะมีไลบรารีพื้นฐานมาให้ใช้ เช่น การจัดการกับตัวเลข ตัวอักษร เวลา และข้อความ, การแสดงผล, การอ่านเขียนไฟล์, การเชื่อมต่อเน็ตเวิร์ค ฯลฯ ซึ่งต้องค่อย ๆ เรียนรู้เพิ่มเติมทีละเล็กทีละน้อย
ฝึกฝน ฝึกฝน และ ฝึกฝน
ภาษาทุกภาษา ถ้าอยากใช้ได้เก่งและคล่องก็ต้องอาศัยเวลาในการฝึกฝน ลองคิดดูว่าทำไมเราพูดภาษาอังกฤษไม่เก่ง ก็เพราะเราไม่ได้ใช้ในชีวิตประจำวัน และเราไม่กล้าพูดเพราะกลัวว่าจะผิด ภาษาโปรแกรมมิ่งก็เช่นกัน ถ้าอยากเก่ง เราต้องใช้บ่อย ๆ และไม่ต้องกลัวผิด เพราะแม้ว่าจะผิดพลาดอย่างไรก็สามารถแก้ไขและเขียนใหม่ได้ ขอให้ทุกท่านมีความสนุกกับการเขียนโปรแกรมในทุก ๆ วันนะครับ