มาเรียนเขียนโปรแกรมง่าย ๆ กัน!! : Mindset


      เจ้าของบล็อกเชื่อว่า คนที่กดเข้ามาอ่านบทความนี้ คือคนที่อยากจะเรียนรู้การเขียนโปรแกรม ตั้งแต่พื้นฐาน แต่บางครั้ง มันก็เป็นเรื่องยากมาก ๆ ที่จะทำความเข้าใจหลักการเขียนโปรแกรมได้ สิ่งที่เจ้าของบล็อกอยากจะแนะนำเลยก็คือ การอ่านแค่หนังสือหรือบทความ ไม่สามารถทำให้คุณเขียนโปรแกรมได้ สิ่งที่จะทำให้คุณเข้าใจในการเขียนโปรแกรมมากที่สุดก็คือ "การลงมือทำ" แต่ยังไงก็ตามเจ้าของบล็อกก็จะตั้งใจเขียนบทความเพื่อมือใหม่เข้าใจง่าย ๆ นะ 😙😙


พื้นฐานมาจากกระบวนการคิด

      สิ่งแรกที่คุณได้เรียนรู้ การเขียนโปรแกรม ในหลาย ๆ ที่มักจะให้คุณรู้จักกับ Flow chart ก่อนใช่มั้ย แน่นอนว่ามันสำคัญมากในการเริ่มเขียนโปรแกรม แต่สิ่งที่สำคัญกลับไม่ใช่ Flow chart แต่สิ่งสำคัญคือวิธีคิดอย่างเป็นระบบต่างหาก

      ในรอบ ๆ ตัวเรา ทุกอย่างเต็มไปด้วยโจทย์ปัญหามากมายนับไม่ถ้วนในแต่ละวัน แม้แต่วิธีการเดินทางไปโรงเรียน หรือที่ทำงานของคุณ คุณบอกได้หรือเปล่าว่า การเดินทางของคุณเหมือนเดิมทุกวัน เช่น นั่งรถเมล์ไปทำงาน แน่นอนว่าไม่ จะมีบางครั้งที่คุณนั่งแท็กซี่บ้าง นั่งวินมอไซต์บ้าง หรือนั่งรถไฟฟ้า BTS บ้าง 

      เหตุผลที่เปลี่ยนวิธีการเดินทาง เพราะมันอาจจะมีปัจจัยภายนอกบางอย่างที่ทำให้วิธีการเดินทางแบบเดิมของเราไม่มีประสิทธิภาพ เช่น เวลาที่เราเร่งรีบ การนั่งรถเมล์คงไม่ตอบโจทย์ เราก็อาจจะใช้รถแท็กซี่ แต่ถ้าหากเรารู้มาว่าวันนี้รถต้องติดแน่ ๆ เราก็ใช้ BTS

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

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


อ่านน้อย ๆ ทำเยอะ ๆ

      อย่างที่บอกไปตอนแรก ๆ เลยว่า การอ่านแค่หนังสือหรือบทความ ไม่สามารถทำให้คุณเขียนโปรแกรมได้ สิ่งที่จะทำให้คุณเข้าใจในการเขียนโปรแกรมมากที่สุดก็คือ "การลงมือทำ"

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

      หนังสือเขียนโปรแกรมเล่มแรกของเจ้าของบล็อกใช้เวลา 6 เดือนกว่าจะอ่านจบเล่ม เพราะต้องทั้งอ่านทั้งลงมือทำมันไปด้วย ทำจนเข้าใจมันจริง ๆ ไม่ใช่ว่าทำได้แล้ว แล้วไปอ่านต่อ แบบนั้นเดี๋ยวก็ลืม ลองท้าทายตัวเองโดยการตั้งโจทย์ยาก ๆ แล้วแก้ปัญหาให้ได้ หรือไม่ก็ลองหาทำโจทย์ในเว็บ programming.in.th 

      ที่สำคัญเลย จากประสบการณ์ของเจ้าของบล็อก ถ้าหากต้องการเรียนรู้การเขียนโปรแกรมให้เข้าใจ สิ่งที่เราต้องรู้จักคือ

"สังเกตุ ตั้งคำถาม หาคำตอบ"

      เราต้องคอยตั้งคำถามอยู่ตลอดว่า เอ๊ะ ทำไมตรงนี้มันเขียนอย่างนี้ เราเขียนแบบนี้ได้มั้ย ทำไมต้องทำแบบนี้ มันดีกว่าแบบนี้ยังไง นี่คือการตั้งคำถาม และเราก็ควรหาคำตอบให้มันด้วย เพราะจากการสังเกตุ และตั้งคำถาม มันทำให้เราได้เรียนรู้มากกว่าที่มันมีแค่อยู่ในหนังสือ และมันจะทำให้เราอ่านหนังสือเข้าใจมากขึ้นด้วย



ตั้งเป้าหมายให้ใหญ่แล้วทำเล็ก ๆ

      อันนี้เป็นสิ่งที่สำคัญมาก ๆ เลยทีเดียว แน่นอนว่าเรามีเป้าหมายใหญ่ ๆ ว่าเราอยากเป็นโปรแกรมเมอร์หรือนักพัฒนานวัตกรรมหรืออะไรก็ตาม เราต้องมีเป้าหมายทั้งในระยะสั้น ระยะกลาง และระยะยาว 

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

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


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

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

ว่าด้วยเรื่องหน่วยความจำ สิ่งที่หลายคนมองข้าม : รู้จักกับ Memory

คณิตศาสตร์กับโปรแกรมมิ่งมันเป็นยังไงนะ ตอนที่ 1 เกริ่นพีทาโกรัส

Pointer กับตัวแปร Array นะจ๊ะ.. [Back to basic แต่ไม่ basic]