มาเรียนเขียนโปรแกรมง่าย ๆ กัน!! : Mindset
พื้นฐานมาจากกระบวนการคิด
สิ่งแรกที่คุณได้เรียนรู้ การเขียนโปรแกรม ในหลาย ๆ ที่มักจะให้คุณรู้จักกับ Flow chart ก่อนใช่มั้ย แน่นอนว่ามันสำคัญมากในการเริ่มเขียนโปรแกรม แต่สิ่งที่สำคัญกลับไม่ใช่ Flow chart แต่สิ่งสำคัญคือวิธีคิดอย่างเป็นระบบต่างหาก
ในรอบ ๆ ตัวเรา ทุกอย่างเต็มไปด้วยโจทย์ปัญหามากมายนับไม่ถ้วนในแต่ละวัน แม้แต่วิธีการเดินทางไปโรงเรียน หรือที่ทำงานของคุณ คุณบอกได้หรือเปล่าว่า การเดินทางของคุณเหมือนเดิมทุกวัน เช่น นั่งรถเมล์ไปทำงาน แน่นอนว่าไม่ จะมีบางครั้งที่คุณนั่งแท็กซี่บ้าง นั่งวินมอไซต์บ้าง หรือนั่งรถไฟฟ้า BTS บ้าง
เหตุผลที่เปลี่ยนวิธีการเดินทาง เพราะมันอาจจะมีปัจจัยภายนอกบางอย่างที่ทำให้วิธีการเดินทางแบบเดิมของเราไม่มีประสิทธิภาพ เช่น เวลาที่เราเร่งรีบ การนั่งรถเมล์คงไม่ตอบโจทย์ เราก็อาจจะใช้รถแท็กซี่ แต่ถ้าหากเรารู้มาว่าวันนี้รถต้องติดแน่ ๆ เราก็ใช้ BTS
ทั้งหมดที่เจ้าของบล็อกได้กล่าวมานั้น มันคือ การแก้โจทย์ปัญหาและไม่มีวิธีการที่ดีที่สุดในการแก้ไขปัญหานั้น แต่มันคือวิธีการแก้ปัญหาที่เหมาะสมที่สุดสำหรับสถานการณ์นั้นต่างหาก
"เริ่มต้น กระบวนการ เงื่อนไข การทำซ้ำ จุดจบ"
หลัก ๆ พื้นฐาน คือเราเริ่มจากอะไร จบที่ไหน จบในที่นี้หมายถึงเราแก้ไขปัญหาอะไร ส่วนกระบวนการ เงื่อนไข การทำซ้ำ แล้วแต่สถานการณ์และความเหมาะสม ไม่ต่างจากการเขียนโปรแกรม
อ่านน้อย ๆ ทำเยอะ ๆ
อย่างที่บอกไปตอนแรก ๆ เลยว่า การอ่านแค่หนังสือหรือบทความ ไม่สามารถทำให้คุณเขียนโปรแกรมได้ สิ่งที่จะทำให้คุณเข้าใจในการเขียนโปรแกรมมากที่สุดก็คือ "การลงมือทำ"
ในบางครั้งคุณจะรู้สึกว่า หนังสือเขียนโปรแกรมทำไมมันยากจัง อ่านยังไงก็อ่านไม่เข้าใจ ถ้าคุณไม่เข้าใจตรงไหนก็ลองหยุดก่อน แล้วลองจับคอมขึ้นมา เล่นเกมส์! เอ้ยย เขียนโปรแกรม
หนังสือเขียนโปรแกรมเล่มแรกของเจ้าของบล็อกใช้เวลา 6 เดือนกว่าจะอ่านจบเล่ม เพราะต้องทั้งอ่านทั้งลงมือทำมันไปด้วย ทำจนเข้าใจมันจริง ๆ ไม่ใช่ว่าทำได้แล้ว แล้วไปอ่านต่อ แบบนั้นเดี๋ยวก็ลืม ลองท้าทายตัวเองโดยการตั้งโจทย์ยาก ๆ แล้วแก้ปัญหาให้ได้ หรือไม่ก็ลองหาทำโจทย์ในเว็บ programming.in.th
ที่สำคัญเลย จากประสบการณ์ของเจ้าของบล็อก ถ้าหากต้องการเรียนรู้การเขียนโปรแกรมให้เข้าใจ สิ่งที่เราต้องรู้จักคือ
"สังเกตุ ตั้งคำถาม หาคำตอบ"
เราต้องคอยตั้งคำถามอยู่ตลอดว่า เอ๊ะ ทำไมตรงนี้มันเขียนอย่างนี้ เราเขียนแบบนี้ได้มั้ย ทำไมต้องทำแบบนี้ มันดีกว่าแบบนี้ยังไง นี่คือการตั้งคำถาม และเราก็ควรหาคำตอบให้มันด้วย เพราะจากการสังเกตุ และตั้งคำถาม มันทำให้เราได้เรียนรู้มากกว่าที่มันมีแค่อยู่ในหนังสือ และมันจะทำให้เราอ่านหนังสือเข้าใจมากขึ้นด้วย
ตั้งเป้าหมายให้ใหญ่แล้วทำเล็ก ๆ
อันนี้เป็นสิ่งที่สำคัญมาก ๆ เลยทีเดียว แน่นอนว่าเรามีเป้าหมายใหญ่ ๆ ว่าเราอยากเป็นโปรแกรมเมอร์หรือนักพัฒนานวัตกรรมหรืออะไรก็ตาม เราต้องมีเป้าหมายทั้งในระยะสั้น ระยะกลาง และระยะยาว
การตั้งเป้าหมายสำคัญกับการเขียนโปรแกรมยังไง? ตอนก่อนที่เจ้าของบล็อกจะเริ่มเขียนโปรแกรมแบบจริง ๆ จัง ๆ เจ้าของบล็อกได้ตั้งปณิธานและเป้าหมายในระยะกลางของเจ้าของบล็อกไว้ว่า จะทำหุ่นยนต์ที่บังคับได้ ผ่าน Application บนมือถือ และปณิธานว่า "เราจะเก่งขึ้นให้ได้" เป้าหมายที่เจ้าของบล็อกตั้ง ไม่ใช่เพราะว่าเจ้าของบล็อกมีความรู้พอที่จะทำมันได้ แต่เพราะว่าเจ้าของบล็อกเชื่อว่าตัวเองจะทำได้ ถึงแม้ว่าเราจะไม่เคยรู้จัก ไม่เคยสำผัสหรือเรียนรู้มันมาก่อนก็ตาม
การตั้งเป้าหมายจะทำให้เราโฟกัสอยู่แค่กับเป้าหมาย เพราะงั้น ในการเขียนโปรแกรมเราก็จะรู้แล้วว่า เราเขียนโปรแกรมไปทำไม ควรรู้เรื่องอะไรบ้าง ไม่ใช่ว่าศึกษาโปรแกรมแบบสุ่ม ๆ ไปเลย โดยที่ไม่รู้ว่า มันจำเป็นที่จะต้องรู้หรือเปล่า พูดง่าย ๆ คือ การมีเป้าหมายมันทำให้การศึกษาการเขียนโปรแกรมเป็นในทิศทางเดียว เพื่อจุดประสงค์เดียวไม่ใช่แบบหว่านแห
รูปนี้เหมือนจะไม่เกี่ยวนะ แต่จริง ๆ แล้วนอกจากภาพจะสวยแล้วก็แฝงไปด้วยความหมายอะไรหลาย ๆ อย่าง มันเป็นภาพ ธรรมชาติ.. ธรรมชาติของวัยเด็ก เป็นวัยที่ไม่รู้จักกลัว ถึงแม้ว่าการเล่น การเตะฟุตบอลมันอาจจะทำให้เราล้มบ้าง บาดเจ็บบ้าง แต่เหตุผลที่เรายังเล่นมันอยู่ก็เพราะว่ามันสนุก :)
ความคิดเห็น
แสดงความคิดเห็น