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

จริงๆ แล้วอยากตั้งชื่อหัวข้อว่า "หลายๆ เหตุผลที่ ทำไม๊ ทำไม..ก็เขียนโปรแกรมไม่เก่งซะที (ภาค 2)" ซะมากกว่า แต่เพราะคราวที่แล้วพูดเรื่อง หลายๆ เหตุผลที่ ทำไม๊ ทำไม..ก็เขียนโปรแกรมไม่เก่งซะที ไปแล้ว เรื่องมันต่อกัน แต่ topic คนละประเด็น เลยแยกเป็นหัวข้อใหม่ละกัน

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

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

1. อย่าขี้เกียจที่จะ "คิด"

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

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

คิดเข้าไปเถอะ! ได้-ไม่ได้อีกเรื่องนึง

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

แต่ลองสังเกตดูสิ ถ้าเราคิดไปเรื่อยๆ เราจะคิดเร็วขึ้นเองล่ะ

2. Google ได้ ถามเพื่อนได้ ... แต่อย่าก๊อป

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

แต่! ไม่ว่าเราจะเสิร์จ Google ได้โซลูชั่น (คำตอบ) มา หรือเพื่อนให้เฉลยมา ขอเถอะนะ ... อย่า Copy!

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

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


3. อ่านให้เยอะ เสิร์จให้เป็น อย่ากลัวภาษาอังกษ

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

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

แต่นอกจากอ่านแล้ว เราก็มีโอกาสเจอปัญหาที่ไม่อยู่ในคลังข้อมูลของเรา ก็จะเป็นสเต็ปของการ "ค้นหา"

ใคร ว่าภาคทฤษฎีไม่สำคัญคงต้องเปลี่ยนความคิดใหม่ซะหน่อย เพราะถ้าคุณบอกว่าเจอปัญหาอันนี้แล้วไม่รู้จะเสิร์จถามอากู๋ (Google) โดยใช้คำว่าอะไร นั่นแหละแปลว่าคุณกำลังมีปัญหาว่าคุณไม่รู้จักชื่อของปัญหานี้ในเชิญทฤษฎีไง ล่ะ ตัวอย่างเช่นอยากเรียงเลขจากน้อยไปมาก จะคิดคำเสิร์จว่าอะไรล่ะถ้าคุณไม่รู้จักเรื่องของ Sorting by ascending order

และที่สำคัญคืออย่ากลัวภาษาอังกฤษ! เพราะคำตอบที่เราต้องการหาน่ะส่วนใหญ่มันไม่ได้เป็นภาษาไทยหรอก อยู่ในเว็บประเภท international ทั้งนั้นแหละ ... แต่อย่าลืมนะ! ว่าคำตอบพวกนั้นไม่ได้มาจากฝรั่งซะอย่างเดียว บางครั้งก็เป็นโปรแกรมเมอร์ชาวญี่ปุ่น อินเดีย รัสเซีย จีน บลาๆๆ มาตอบ อังกฤษของพวกนั้นบางคนก็ใช่ว่าจะแข็งแรงนี่นา?

4. ฐานต้องแน่นก่อน เรียนแล้วอย่าทิ้ง

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

อ้าว พี่ ลืมไปแล้วอ่ะ if-else for array คืออะไร ผ่านแล้วผ่านเลย มันจะใช้ได้มั้ย

เวลา สอนน้องๆ วิชาโปรแกรมมิ่งขั้นสูง หรือวิชา Database Network และอื่นๆ แทนที่จะได้สอนเนื้อหาเรื่องต่อไปก็ต้องมาทวนพื้นฐานกันใหม่ แล้วก็ ... หมดเวลา -*-

ดังนั้นขอเถอะ เรียนแล้วอย่าทิ้ง ไม่ใช่เด็กๆ แล้ว เราจะเรียนเอาความรู้ไปทำงาน เราลืมมันไม่ได้!

5. อยากได้ต้องทำเอง

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

ดังนั้น จำไว้เลยว่าอยากได้โค้ดแบบนี้ ต้องทำ (เขียน) เอง

6. error คือหนทางสู่ความเก่งกาจ

"พี่รู้ได้ไงว่าต้องแก้แบบนี้" น้องๆ ชอบถามกันเป็นประโยคยอดฮิตเวลาให้ช่วยดูว่าทำโปรแกรมที่เขียนมามันพัง แล้วเราก็มองดูแป๊ปนึง แล้วก็บอกว่า ลองแก้แบบนี้ดูหน่อยสิ น้องก็หันไปแก้ตาม ปรากฏว่า ... โปรแกรมทำงานได้เลยเว้ยเฮ้ย!

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

ดังนั้น ยิ่งเจอ error ยิ่งบ่อย เราก็ยิ่งเก่ง เพราะค่าพลังการ defense เจ้า error เราจะสูงขึ้นเรื่อยๆ

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

7.คบเพื่อนดีเป็นศรีเก่งตัว

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

อย่างแรกเลยที่คุณจะได้คือ

คลัง solution อเนกประสงค์ ถามได้-ตอบได้-สอนได้

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

8. รับงานจริง เจอลูกค้าจริง

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

ย้ำ! หัวข้อนี้ต่างคนต่างคิดนะ

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

เรารับงานแรกตอนปี2 งานเขียนเว็บทั้งที่ตอนนั้นความรู้ด้านเขียนเว็บแทบจะเป็นศูนย์

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

และบอกได้เลย ว่าลูกค้า โหด (แบบน่ารัก) กว่าอาจารย์เยอะ

บาง คนอาจจะแย้งว่าถ้ารับงานนอกแล้วเกรดตกมันจะดีเหรอ ... ก็รับในระดับที่เกรดไม่ตกสิ อย่ารับเยอะ หรือรับงานตอนปิดเทอมก็ได้ เกรดตกมันไม่ดีอยู่แล้วล่ะ

แต่ถ้าจะทุ่มให้กับเกรดอย่างเดียวตลอด 4 ปีในรั้วมหาลัย ... มันคุ้มมั้ยที่เวลาเราเรียนจบ เวลาไปสมัครงานแล้ว Port-Folio ของเราไร้ซึ่งผลงานของจริงว่าเคยผ่านงานอะไรมาบ้าง คุณเป็นเจ้าของบริษัทคุณจะจ้างใครระหว่างเด็ก 4.00 แต่ไม่มีผลงานเลยว่าเคยทำอะไรจริงๆ มาบ้าง กับเด็กเกรด 3 กว่าๆ ที่มีงานเขียนโปรแกรมจริงๆ มาแล้วถึง 10 ชิ้น

* เป็นกำลังใจให้รุ่นน้องที่กำลังเดินมาตามทางสายนี้ทุกคนนะ มันไม่ได้ง่าย แต่ ... มันก็ไม่ได้ยาก ^___^

4008 Total Views 3 Views Today
Ta

Ta

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

You may also like...

ใส่ความเห็น

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