หลายๆ เหตุผลที่ ทำไม๊ ทำไม..ก็เขียนโปรแกรมไม่เก่งซะที

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

นี่เป็นเหตุผลหนึ่งในหลายๆ ข้อที่ผู้เขียนลิสต์มาให้ว่าทำไมพวกโปรแกรมเมอร์มือใหม่ถึงเขียนโปรแกรมไม่ได้ยังไงก็ยังเขียนไม่ได้อยู่ยังงั้น

หมายเหตุ* วันนี้จะเน้นในมุมมองของนักเรียนภาคคอมละกัน 

why-cant-program

มีคนเอาไปทำอินโฟกราฟิกด้วยล่ะ


1. เขียนโปรแกรมให้ได้ดีต้องมี "หัว" และ "จินตนาการ"

โปรแกรมมิ่งไม่ได้เหมาะกับคนทุกคนหรอกนะ!

แต่ละคนมีรูปแบบการคิดที่ต่างกัน บางคนคิดแบบเป็นระเบียบจัดอะไรๆ วางแผน เป๊ะๆ แต่บางคนมักใช้อารมณ์เป็นตัวตัดสินใจ โทรนัดเพื่อนไว้แต่ฉันอยากไปที่โน่น โทรยกเลิกละกัน ไปล่ะ

คนที่จะเขียนโปรแกรมให้ดี (ไม่ได้พูดว่าเก่งนะ พูดว่าเขียนให้"ดี") ได้นั้นจะต้องมีลำดับการคิดที่ค่อนข้างเป๊ะ! เขาต้องรู้ขั้นตอนการทำงานของโปรแกรมทุกอย่าง อย่างละเอียด เจาะลึก หลังจากนั้นถึงค่อยมาสั่งงานให้โปรแกรมทำงาน

ก่อนที่โปรแกรมจะฉลาดได้ โปรแกรมเมอร์ต้องฉลาดก่อน

คำว่าฉลาดในที่นี้หมายถึงรู้ว่าโปรเซสของเราเนี่ยมันทำงานยังไงแค่นั้นนะ

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

> พยายามจัดความคิดตัวเองให้เป็นขั้นตอน และเป็นระเบียบ ลดความคิดแนวคิดแบบตามใจฉันลงหน่อย

2. ไม่ได้อยากเขียนโปรแกรมได้จริงๆ

พูดง่ายๆ คือยังทุ่มเทไม่พอ ฉันไม่ได้อยากเขียนโปรแกรมเป็นขนาดนั้น แค่เข้าคณะที่มันต้องเรียนเขียนโปรแกรมเท่านั้น

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

อาทิตย์นึงคุณอาจจะมีคาบเรียนโปรแกรมมิ่งแค่ไม่กี่ชั่วโมง คุณคิดว่ามันพอรึเปล่าล่ะทำหรับทำให้เขียนโปรแกรมเก่ง?

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

3.ไม่เข้าใจเลย อาจารย์สอนไม่รู้เรื่อง

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

> "อ่านเองมันซะเลย ไม่ง้ออาจารย์ (ในวิชาที่ฟังอาจารย์ไม่เข้าใจเลย) "

4. คิดว่าตัวเองทำไม่ได้

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

ถ้าคุณแย้งว่า "ฉันก็คิดว่าตัวเองต้องทำให้ได้แล้วนะ แต่ไม่เป็นจะได้เลย" ผู้เขียนก็ให้คอมเม้นท์ว่าถ้าคุณมีความมุ่งมั่นว่าตัวเองทำได้จริงแล้วนั้น

> คุณจะหาวิธีทำให้ตัวเองทำได้เองโดยไม่ต้องให้ใครมาบอกว่าคุณจะต้องทำอย่างไร

5. ใจร้อน อยากเขียนเป็นเร็วๆ .. โปรแกรมมิ่งคือการสะสมไปเรื่อยๆ นะ

แค่ขยันหรือตั้งใจเรื่อนไม่กี่คาบ หรือแนวคิดที่ว่าฉันอยากสร้างโปรแกรมออกมาเป็นผลงานตั้งแต่คาบแรกเลยน่ะ มันไม่(ค่อย)มีหรอกนะ

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

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

ผู้เขียนคงไม่มีอะไรจะบอกนอกจาก



> "สู้ๆ นะ น้องๆ ที่กำลังเดินตามมา (รวมถึงตัวเองที่กำลังเดินตามรุ่นพี่ไปอีกที)"

6. เขียนโค้ดก่อนโดยที่เรายังไม่รู้เลยว่าโปรแกรมต้องทำงานยังไง

เกือบจะทั้งหมด .. ใช่เลย ต้องเรียกว่าอย่างนั้น เพราะคนที่เขียนโปรแกรมไม่เก่งเกือบจะทุกคนจะเริ่มโปรเจคด้วยการ "เขียนโค้ด"

เอ๊ะ .. โปรเจคเขียนโปรแกรม ไม่ให้เริ่มด้วยการเขียนโค้ดแล้วจะให้ทำไงล่ะ?

บอกให้เลยว่าคนที่เขาเก่งๆ เขาไม่เริ่มด้วยการเขียนโค้ดหรอกนะ แต่เริ่มด้วยสิ่งที่อาจารย์มักจะสอนเป็นอย่างแรกในคาบการเขียนโปรแกรม นั่นคือ วางแผนเขียน Algorithm หรือวาด Flowchart (เริ่มคุ้นๆ แล้วใช่มั้ย ฮา)

คนที่เก่งเขาไม่เริ่มเขียนหรอกนะ ถ้าเขายังไม่มั่นใจว่าเขาต้องเขียนอะไรกันแน่ ไม่งั้นก็จะเป็นเหมือนคุณๆ ที่หลังจาก new Project มาแล้วก็นั่งงงมองเคอเซอร์กระพริบว่าฉันควรจะเขียนอะไรลงไปกันแน่เนี่ย แต่ส่วนใหญ่แล้วคุณจะไม่เห็นพวกเขาเขียน Flowchart กัน เพราะคนที่เก่งแล้วเขามักจะวาด Flowchart ในหัวได้เลย

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

> Algorithm & Flowchart สำคัญมาก ไม่มีมันก็ไม่ต้องลงโค้ด มันเป็นไปไม่ได้อยู่แล้วที่งานจะออกมาได้ในเมื่อคุณยังไม่มีแผนเลยว่าต้องเดินไปทางไหน

7. ไม่รู้เหรอ ถาม google สิ!

คนเราไม่รู้ทุกอย่างหรอก โดยเฉพาะศาสตร์ที่ออกมาแค่อาทิตย์เดียวก็อาจจะตกรุ่นไปซะแล้วแบบวิทยาการคอมพิวเตอร์

แต่ไม่ต้องห่วง!

จากประสบการณ์ของผู้เขียน 90% หรือมากกว่าของปัญหาที่เราประสบพบเจอนั้น "มีคนเจอมาก่อนเราแล้ว!" (เอ้า เฮ~~)

เมื่อมีคนเจอมาก่อน ก็แปลว่ามีคนหาคำตอบเจอแล้วเหมือนกันว่าปัญหานี้ มันแก้ยังไง Errorแบบนี้ต้องเพิ่มconfigตัวนี้นะ ตรงนี้คุณลืมประกาศvar ตรงนั้ก็ บลาๆๆ

แต่คุณจะหาคำตอบพวกนั้นได้ก็ต้องใช้ Search Engine (โปรแกรมสำหรับค้นหาแบบ google น่ะ) ให้เป็นก่อน รู้มั้ยว่าเวลาที่พวกที่คุณเห็นว่าเป็น God of Programming มันรู้ทุกอย่าง ถามได้ตอบได้ในทันทีนั้น เขาก็อาจจะรู้เท่าคุณนั้นแหละแต่สกิลการค้นหาคำตอบมันเร็วมากจนคุณนึกว่าเขารู้คำตอบอยู่แล้ว

> ลองหาเถอะ ทุกอย่างแทบจะมีอยู่ในโลกอินเตอร์เน็ต เพียงแต่คุณหามันไม่เจอเท่านั้นเอง

8. เจอ Error ความคิดแรกคือเรียกเพื่อนช่วย

แล้วทำไมเพื่อนถึงรู้ล่ะว่า Error นี้มันแก้ยังไง? เคยถามตัวเองแบบนี้ต่อบ้างมั้ย

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

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

วันนี้เอาไว้แค่นี้ก่อน ไว้วันหลังนึกได้เพิ่มจะมาเล่าต่อละกัน

update:

ตอนต่อไปมาแล้วนะ อ่านได้ที่นี่ หลายๆ วิธีที่จะทำให้คุณเขียนโปรแกรมเก่งขึ้น

7211 Total Views 2 Views Today
Ta

Ta

สิ่งมีชีวิตตัวอ้วนๆ กลมๆ เคลื่อนที่ไปไหนโดยการกลิ้ง .. ถนัดการดำรงชีวิตโดยไม่โดนแสงแดด
ปัจจุบันเป็น Senior Software Engineer อยู่ที่ Centrillion Technology
งานอดิเรกคือ เขียนโปรแกรม อ่านหนังสือ เขียนบทความ วาดรูป และ เล่นแบดมินตัน

You may also like...

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *