จะเขียนโปรแกรมยังไงดี

อยากเขียนโปรแกรมเป็นจะเริ่มยังไงดี?

ถ้าจะเริ่มเขียนโปรแกรมนั้นมือใหม่แทบจะทุกคนจะมีคำถามนี้อยู่ในหัว จะเขียนโปรแกรมควรเริ่มจากตรงไหนดี จะเขียนภาษาอะไรดี เขียนอะไรดี งั้นมาดูกันดีกว่าว่าเราควรจะเริ่มยัง เริ่มจากตรงไหนกัน

ขั้นที่ 1

เราจะต้องเลือกภาษาที่จะเขียนให้ได้ก่อนว่าจะเขียนภาษาอะไร หลังจากเลือกภาษาได้แล้ว สิ่งที่ต้องศึกษาเป็นอย่างแรกคือการเรียนรู้ syntax ของภาษานั้นๆ เพราะแต่ละภาษาจะมีรูปแบบการเขียนเฉพาะตัว ซึ่งเราต้องเขียนให้ถูกหลักภาษานั้นๆ รูปแบบวิธีการเขียนของแต่ละภาษา การใช้คำสั่งพื้นฐานต่างๆ เช่น if case for while หรือฟังก์ชั่นพื้นฐาน เช่น echo print กฏเกณฑ์การสร้างโปรแกรมเพื่อให้ได้โปรแกรมอย่างง่าย (Hello World นั่นแหละ) แล้วเราต้องจำทุกฟังก์ชั่นของภาษานั้นเลยมั้ย ตอบได้เลยว่าไม่จำเป็น แต่จำได้ก็ดีเนื่องจากเราไม่ได้ใช้ทั้งหมดของความสามารถที่มีอยู่หรอก และไม่เชื่อว่าจะมีใครจำได้หมด คำสั่งต่างๆ มันจะจำเป็นเมื่อเราต้องเขียนโปรแกรม และจำเป็นต้องใช้มันเท่านั้น ยกตัวอย่างเช่น คำสั่งเขียนไฟล์ บางโปรแกรมไม่จำเป็นต้องมีการเขียนไฟล์ เราไม่จำเป็นต้องรู้ในตอนนี้ก็ได้ แต่ทักษะที่ควรมี คือเราต้องมีความสามารถในการค้นหาสิ่งที่เราต้องการได้ แล้วจะไปเริ่มต้นที่ Framework เลยดีมั้ย ขอบอกเลยว่าตอนเริ่มต้นอย่าเลยเชียว เพราะสิ่งที่จะทำให้เราไปต่อได้อย่างยืนยาวคือพื้นฐานของภาษา ไม่ใช่ Framework (เนื่องจาก Framework มันเกิดใหม่อยู่เรื่อย และที่มีอยู่ก็ดับไป)

ขั้นที่ 2

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

1.สร้างโปรแกรมเพื่อแก้ปัญหาให้ตัวเอง โดยมองว่าเรามีปัญหาอะไนในชีวิตบ้าง แล้วเลือกสร้างโปแกรมเพื่อแก้ปัญหานั้นๆ เช่น 30 แล้ว ยังไม่มีเมีย สร้างแอปหาคู่มันซะเลย ถ้าสุดท้ายเราได้คู่จากโปรแกรมที่เราสร้าง นั่นหมายความว่าเราเขียนโปรแกรมได้แล้ว การสร้างโปรแกรมเพื่อแก้ปัญหาให้ตัวเอง เราจะมีตัวเองเป็นคนตรวจสอบว่าโปรแกรมที่เราสร้าง สามารถใช้งานได้จริงหรือไม่ มีข้อผิดพลาดหรือไม่ หรือจะปรับปรุงยังไงได้ แต่ในปฏิบัติ เราควรเริ่มต้นจากการแก้ปัญหาเล็กๆในชีวิตก่อน เช่นโปรแกรมจดบันทึก โปรแกรมแจ้งเตือนสำหรับคนขี้ลืม อย่ามองว่าการทำโปรแกรมที่มีอยู่ในท้องตลาดเยอะแยะเป็นเรื่องที่ไม่น่าทำ แต่ให้พิจารณาว่าโปแกรมที่มีเยอะแยะในท้องตลาดมีข้อบกพร่องอะไร เราจะทำได้ดีกว่าหรือไม่ เพราะโปรแกรมที่ประสบความสำเร็จคือโปแกรมที่มีคนใช้เท่านั้น

2.จากที่บอกไปข้างต้นว่าความสำเร็จของโปรแกรมมันวัดจากการที่มีคนใช้ ดังนั้นสำหรับมือใหม่ แนะนำให้เขียนโปรแกรมแจกมันซะเลย เพราะมันให้ประโยชน์หลายข้อ

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

ขั้นที่ 3

ทักษะที่ควรมีและการพัฒนา

1.ทักษะที่จะขาดไม่ได้ของการโปรแกรมเมอร์คือ อัลกอริทึม การไม่เข้าใจสิ่งนี้จะทำให้เราเขียนโปรแกรมได้อย่างจำกัด หรือ เขียนได้ยากขึ้น ยกตัวอย่างเช่น ถ้าเราเก่งคณิตศาตร์ เราก็สามารถเขียนโปรแกรมจำพวก Photoshop ได้ แต่ถ้าเราไม่เก่ง สิ่งที่เราทำได้อาจเป็นแค่โปรแกรม Paint (การประมวลผลรูปภาพอาศัยการคำนวณทางคณิตศาตร์ในการทำงาน) แต่ทักษะเหล่านี้สามารถฝึกฝนได้ ยิ่งถ้าเรามีประสบกรณ์มากขึ้นเท่าไร ทักษะด้านนี้ก็จะพอกพูนมากขึ้นไปเอง

2.ทักษะที่สำคัญอีกอย่างของโปแกรมเมอร์คือ ตรรกะ เพราะการเขียนโปรแกรมมีได้แค่ 2 อย่างเท่านั้นคือ จริง หรือ เท็จ และ ตรรกะของคอมพิวเตอร์ คงที่ ทุกกรณี (ไม่เหมือนคนที่ ตรรกะ แปรผันตามปัจจัยภายนอก) ดังนั้นการเขียนโปแกรมจึงจำเป็นต้องมีตรรกะที่ชัดเจน เพราะการใช้ ตรรกะผิด อาจทำให้ผลลัพท์ผิดได้

3.ทักษะสุดท้าย คือ ทักษะด้านภาษาอังกฤษ เนื่องจากคนออกแบบโปรแกรมส่วนใหญ่ใช้ภาษาอังกฤษ การใช้ภาษาอังกฤษได้คือสิ่งสำคัญที่จะทำให้เราได้รับข้อมูลเพิ่มเติมจากชุมชนที่แข็งแกร่งกว่า เช่น Stack overflow ซึ่งเบื้องต้นทักษะทางภาษาที่สำคัญคือ อ่านออก คำแนะนำสำหรับผมคือ หมั่นอ่านครับ แล้วแปลไปทีละตัว ซึ่งวิธีที่ง่ายกว่าก็ใช้การแปลของ Google เข้าช่วย ถึงภาษาที่ได้มันจะแปลกๆสักหน่อย แต่ก็พออ่านรู้เรื่อง ซึ่งถ้าเราฝึกฝนบ่อยๆ อีกหน่อยก็จะอ่านได้เอง