อุปสรรคของการเขียนโปรแกรมเบื้องต้น

September 7th, 2020

ผมเองก็เป็นโปรแกรมเมอร์ได้ไม่ค่อยนานเท่าไหร่ แต่ก็มีหลายคนมาถามผม หรือให้ผมช่วยสอนเขียนโปรแกรมให้ ผมเลยได้เจอว่าหลายคนก็เจออุปสรรคแบบเดียวกันเลย จึงอยากรวบรวมมาในบทความนี้ครับ

Syntax

อันนี้คือโค้ดตัวอย่างของการใช้ while นะครับ

count = 0
while count < 30:
    print(count)
    count += 1

บางคนอาจจะเคยเจอแบบนี้ในการเขียนโปรแกรมหลายครั้ง จนเข้าใจว่าการนับกับ while ต้องมาด้วยกัน ซึ่งผมเข้าใจได้ครับ ถ้าไม่เคยเจอรูปแบบอื่น ๆ ที่ไม่ใช่การนับเช่น ลูปจนกว่าค่าจะเป็น 1

วิธีที่จะเข้าใจได้ก็คือไปลองทำโจทย์ อ่านหนังสือดี ๆ ถ้าให้ดี แนะนำไปอ่าน documentation ของภาษาจะดีที่สุดครับ

การตั้งชื่อตัวแปร

max_score = float(input("Enter max score: "))
min_score = float(input("Enter min score: "))
score_range = max_score - min_score
print(f"Range of the score is {score_range}")

อันนี้คื่อตัวอย่างโปรแกรมที่ใช้คำนวณค่าพิสัยของคะแนนที่ได้ ซึ่งสามารถเขียนแบบนี้ได้เหมือนกัน

a = float(input("Enter max score: "))
b = float(input("Enter min score: "))
c = a - b
print(f"Range of the score is {c}")

จริงอยู่ที่เราสามารถตั้งชื่อตัวแปรเป็น a, b, c ได้ แต่มันทำให้ไม่รู้ว่าอะไรคืออะไร แล้วถ้าติดนิสัยการตั้งชื่อมั่ว ๆ ไปเรื่อย ๆ จะมีปัญหาถ้าโปรแกรมเริ่มใหญ่ขึ้นเรื่อย ๆ

ตัวแปรถูกสร้างขึ้นมาเพราะเราต้องการใช้มันครับ ไม่ว่าจะเป็น max_score หรือmin_score ล้วนมีความหมายในตัวทั้งสิ้น ปกติจะไม่ใช้ตัวแปรที่ชื่อสั้น ๆ เช่น a, b ถ้าไม่ได้มีบริบทในการใช้ เช่น x แทนค่าพิกัดในแกน x ครับ

การไล่ flow ของโปรแกรม

a = 0
b = 2
while a < 50:
    b *= 12
    a += b

ถึงโค้ดด้านบนจะเป็นโค้ดที่ไร้ประโยชน์โดยสิ้นเชิง แต่มันเป็นตัวอย่างที่ดีสำหรับการฝึกไล่ flow ของ โปรแกรม อันนี้เป็นทักษะสำคัญมาก ๆ ในการเขียนโปรแกรมตั้งเบื้องต้นจนถึงขั้นสูง เวลาเกิดบัค ก็เจอเกิดจาก flow ของเรามีข้อผิดพลาดส่วนใหญ่ เช่น ลืมเช็คค่าบางอย่าง ใส่เครื่องหมายผิด

วิธีที่จะช่วยได้คือการฝึก แนะนำให้ฝึกทุกวันเลย ถ้าเป็นไปได้ สำหรับข้อสอบให้ลองทดค่าตัวแปร ถ้าทำได้นะครับ

ผมหวังว่าบทความนี้จะช่วยคนที่กำลังฝึกเขียนโปรแกรมอยู่ไม่มากก็น้อยนะครับ