ก้าวแรกสู่การเป็นนักเขียนโปรแกรม

รับเขียนโปรแกรม-Junior Programmer

ก้าวแรกสู่การเป็นนักเขียนโปรแกรม(1st step of a programmer)

หลักการพื้นฐานในการเขียนโปรแกรม คืออะไร?“… คงจะมีหลาย ๆ คนสงสัย โดยเฉพาะน้อง ๆ ที่เพิ่งจะเริ่มก้าวเข้ามาสู่วงการเขียนโปรแกรม หรือเพิ่งจะหันมาสนใจงานด้านเขียนโปรแกรม วันนี้เราจะมาคุยกันเรื่องนี้แหละครับ
บอกไว้ก่อนนะครับ อย่าพยายามตามหาบทความที่เป็นหลักวิชาการ… ที่นี่ไม่มีครับ บล็อกแนวนั้นมีเยอะแล้วครับ ผมเพียงแค่อยากจะมาเสริมในส่วนที่ไม่ค่อยจะไม่ใครถ่ายทอดให้ทราบ… เรื่องของประสบการณ์ในงานเขียนโปรแกรมจริง ๆ อันนี้ต่างหากครับ ที่ไม่ค่อยมีใครเขียนถึง… เอาล่ะ มาว่ากันที่หัวข้อของเราต่อ “หลักการพื้นฐานในการเขียนโปรแกรม คืออะไร?”… ผมตอบแบบสั้น ๆ ให้ครับ มันคือ “ตรรกะ” หรือ “Logic” สั้น ๆ เลยนะ
ตรรกะ” คือ แนวคิด วิธีคิด แนวทางแก้ปัญหา หรืออะไรก็ตามช่างมันเถอะ เอาเป็นเข้าใจง่าย ๆ นะครับ มันคือการที่เราได้รับโจทย์มาให้เขียนโปรแกรม แล้วเราสามารถคิดขั้นตอนในการแก้ปัญหาออกมาเป็นแนวทางแก้ปัญหาได้ เช่น ให้หาค่าเฉลี่ย เราต้องทำอะไรบ้าง ใช่แล้วครับ บวกค่าทั้งหมดเข้าด้วยกัน นับว่าโจทย์ให้มากี่ค่า แล้วเอาสองตัวมาหารกัน แม่นบ่…
ตรรกะ” เน้นเลยนะครับ ตรงนี้สำคัญมาก โดยเฉพาะน้อง ๆ ที่ยังเรียนอยู่ หรือ junior programmer ก็ตามแต่ เราสามารถที่จะแก้โจทย์หนึ่ง ๆ โดยวาดภาพขั้นตอนการทำงานในอากาศได้หรือยัง? ถ้ายัง “ฝึก” ซะ! ..จุดเริ่มต้นตรงนี้ ไม่มีใครเก่งกว่าใครหรอก มันอยู่ที่การฝึกฝน บางคนอาจจะทำได้เร็วหน่อย ไม่เป็นไร ช่างหัวเขา ลองเทียบกับกีฬาดู ของพวกนี้มันสำคัญที่เราอยู่กับมันมากแค่ใหน งานเขียนโปรแกรมก็เหมือนกัน บางคนอาจจะมีพรสวรรค์ ก็ไม่ว่ากัน แต่ถ้า “มวยค่ายไม่ซ้อม ก็มีสิทธิ์แพ้มวยวัดได้เหมือนกัน” เห็นด้วยหรือเปล่า
เดี๋ยวจะหาว่าผม “พล่าม“… มาดูกันดีกว่าว่างานอะไรบ้างที่เราต้อง “วาดภาพในอากาศ” ให้ได้

  • Sequence(ลำดับขั้น) : ขอให้แยกแยะขั้นตอนการแก้ปัญหา ออกมาเป็นลำดับ เช่น จะรดน้ำต้นไม้ต้องทำขั้นตอนใหนบ้าง >> เอาถังไปรอ -> เปิดน้ำ -> รอให้น้ำเต็มถัง -> ปิดน้ำ –> หิ้วไปรดต้นไม้ อะไรประมาณนี้ มันมีอยู่ในชีวิตประจำวันอยู่แล้ว เพียงแต่นึกในทางการเขียนโปรแกรมมันต้องเป็นขั้นเป็นตอนนะครับ(คอมพิวเตอร์มันไม่ได้มีวิจารณญาณเหมือนคนเรานะ อย่าลืม!)
  • Decision(ตัดสินใจ) : มันคือ IF-THEN-ELSE น่ะแหละ ตัวอย่างเดิม จะรดน้ำต้นไม้ แต่ต้นไม้เยอะเหลือเกิน ต้องเลือกถังน้ำ ถังใหญ่ หรือเล็ก >> เลือกถังน้ำขนาดใหญ่มีหรือไม่” >> มี : ก็กลับไปทำตาม Sequence ข้างบน / ไม่มี : ใช้ถึงเล็ก ทำซ้ำด้วย Repetition ข้อถัดไป
  • Repetition/Loop(การทำซ้ำ) : ตัวอย่างต่อเนื่อง กรณีที่ไม่มีถังใบใหญ่ ก็ใช้การ Sequence ข้างบนซ้ำ ๆ จนกว่าจะรดน้ำต้นนไม่ครบทุกต้น

เพียงแค่ 3 อย่างข้างต้น ฝึกซ้ำ ๆ ทำบ่อย ๆตรรกะ” ในหัวเราก็จะดีขึ้นจนสามารถเขียนโปรแกรมได้ “Logic สำคัญกว่า Syntax” จำไว้เลยนะครับ ขอเพียงเรามีตรรกะในหัว เราจะสามารถเขียนโปรแกรมได้ทุกภาษา(ใช้เวลาศึกษา Syntax สักหน่อยก็เขียนได้แล้ว)
สำหรับเครื่องมือที่จะฝึกฝน Logic ในการเขียนโปรแกรม ก็ใช้พวก Flow-Chart หรือ Pseudocode อะไรพวกนี้ก็ได้ครับ สำคัญที่จะหาโจทย์มาจากใหนในการฝึก? …search ใน google ด้วยคำนี้ครับ “ข้อสอบ CT211” หรือ “ข้อสอบ CS111” ก็ได้ครับ โจทย์ที่นี่เขาแรง ขอบอก!
ตัวอย่างโจทย์ : จงเขียน flow diagram สำหรับคำนวณหาจำนวนปีที่ใช้เมื่อฝากเงินต้นจำนวนหนึ่งแล้วต้องการให้เงินต้นที่ฝากนั้นมีค่ามากกว่าหรือเท่ากับ 2 เท่า คิดดอกเบี้ยทบต้นในแต่ละปี โดยรับ input 2 ค่า คือ เงินต้น และอัตราดอกเบี้ย
ลองฝึกเขียนดูนะครับ เมื่อเรามีตรรกะ ก็ไม่ต้องกังวลว่าจะเขียนภาษาอะไรแล้ว และที่สำคัญตัวผู้เขียนเองเขียนโปรแกรมภาษาอะไรก็ไม่เป็น เก่งสุด Pascal แต่ได้งานทำเพราะตรรกะ/Logic” อย่างเดียวเท่านั้นเอง

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

DEV24x7