Nikon V1 + FT-1: “นี่มันโคตร Telephoto!”

เคยเขียน สองวันกับ Nikon V1 ไปเมื่อนานมาแล้ว ตอนนั้นเขียนไปกับการใช้งานเลนส์ที่ติดมา 2 ตัว ในฐานะ “กล้องเซ็นเซอร์เล็ก ที่บังเอิญเซ็นเซอร์ใหญ่กว่าปกติเล็กน้อย และเปลี่ยนเลนส์ได้” ไม่ใช่ “กล้องคอมแพคเซ็นเซอร์ใหญ่” เหมือนที่ใครๆ ปรารถนาให้มันเป็น

วันนี้เกมมันเปลี่ยนไปเป็นอีกเกมนึงเลยครับ และทำให้ผมเข้าใจ Nikon มากขึ้นเยอะ ก็เพราะเจ้า FT-1 Adapter เนี่ยแหละ ที่ทำให้ผมสามารถจะมีเลนส์ซุปเปอร์เทเลโฟโต้ระดับ 800mm ได้ในขนาดและราคาที่เอื้อมถึงได้ .. ทำไมน่ะหรือครับ ก็เพราะว่าเจ้า FT-1 นี่จะทำให้เราใช้เลนส์ F-Mount ปกติกับระบบ Nikon 1 ได้ … ทีนี้ถามว่า แล้วมันไม่ใหญ่ไปหรือ


IMG_1617.jpg
Nikon V1, FT-1 Adapter, 70-300 f/4.5-5.6 VR

ก็บอกตามตรงว่านี่เป็นครั้งแรกที่ผมรู้สึกว่าเลนส์ระดับ 70-300 VR เป็นเลนส์ที่ใหญ่และหนัก ทั้งๆ ที่ปกติไม่เคยรู้สึกแบบนั้นเลย เนื่องจากปกติจะใช้กับ D3s ซึ่งมีบอดี้ที่ใหญ่และหนักกว่าตัวเลนส์ ทำให้ไม่รู้สึกอะไร (และใช้กับเลนส์ที่หนักกว่านั้นซะเคยตัว) … แต่ว่าพอเอา 70-300 ตัวนี้มาใช้กับ V1 นี่รู้สึกได้เลยว่า “บอดี้มันไม่มีน้ำหนักอะไรเลย” … และที่แย่กว่านั้นเล็กน้อย ก็คือตัว 70-300 เองก็ดัน “เบาไป” (หนักไม่พอ) ที่จะทำให้ถือได้แบบมั่นๆ นิ่งๆ เท่าไหร่ ก็โชคดีที่มี VR มาช่วยเอาไว้ ไม่งั้นเน่าได้เหมือนกัน

แล้วมันเกี่ยวอะไรกับชื่อหัวเรื่องล่ะนี่? … ไม่ยากครับ เพราะ Nikon 1 เป็นระบบที่ใช้ crop factor 2.7x ดังนั้นทางยาวโฟกัสก็จะคูณไปเท่านั้น ทำให้ 300mm กลายเป็นเลนส์ 810mm ซึ่งมันคือระดับ “โคตรเทเลโฟโต้” ตัวละหลายแสน หนักหลายกิโล ขนาดเป็นบาซูก้า … แต่นี่มันอะไรกัน โคตรเทเลโฟโต้ในราคาที่เอื้อมแตะได้เลยนะนั่น .. แล้วมันทำอะไรได้บ้างล่ะ

ลองดูตัวอย่างแรกนะครับ รูปแรกเพื่อเป็นการเปรียบเทียบ จะเป็นรูปที่ผมถ่ายจาก iPhone 4s ซึ่งมีทางยาวโฟกัสเทียบเท่าที่ประมาณ 35mm ซึ่งเป็นระยะ wide-normal ไม่ได้กว้างมากขนาดที่จะเตะอะไรออกไปให้ดูไกลขึ้น (กล้อง iPhone 4s จะแคบกว่า iPhone 4 ซึ่งอันนัั้นจะประมาณ 28mm ถ้าผมจำไม่ผิด) โดยอยากให้ลองสังเกตดูตรงที่ผมวงไว้นะครับ (กดเพื่อดูรูปใหญ่ได้ จะได้เห็นง่ายๆ หน่อย)


IMG_1672.jpg

ทีนี้ …​ ลองมาดูอานุภาพของ “810mm f/5.6” (เทียบเท่า จริงๆ แล้วคือ 300mm x 2.7 f/5.6) กันบ้างนะครับ ว่าจะเป็นยังไง … จากจุดเมื่อกี้น่ะแหละครับ มันกลายเป็นรูปนี้


DSC_4053.jpg

ต้องบอกว่า “นี่มัน!!!!!” ได้เท่านั้นครับ … มันทำให้ผมรู้สึกว่า Nikon 1 เป็น “ระบบ” ที่น่าใช้ขึ้นมาอีกเยอะ เพราะมันเพิ่มโอกาสได้ภาพแบบมหาศาล กับภาพที่ปกติเราจะไม่มีโอกาสได้เลย (นอกจากจะใช้ Superzoom Bridge Camera หรือที่หลายคนเรียกติดปากว่า DSLR-Like อะไรแบบนั้น .. ซึ่งก็จะยิ่งได้เซ็นเซอร์เล็กจัดไปอีก เลนส์ก็คุณภาพไม่ค่อยดีเท่าไหร่อีก) … และยังไม่นับกับการใช้กับ Primes ตัวอื่นๆ เช่น 50/1.8 ซึ่งทำให้กลายเป็น 135 f/1.8 นะครับ (แต่เนื่องจาก sensor มันเล็ก มันจะได้ DoF เท่ากับเลนส์ 135 เปิดประมาณ f/4 บน Full Frame นะ)

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


IMG_1671.jpg

เมื่อใช้กับ “810mm f/5.6” ตัวนี้ ก็จะได้ภาพต่อไปนี้ครับ


DSC_4047.jpg

ประเด็นอื่นๆ นอกจากนั้นก็คือ โฟกัส ผมพบว่าความเร็วในการโฟกัสไม่ใช่ปัญหาเลย โฟกัสได้เร็วมาก แต่จะมีปัญหาว่ามันมีอาการ Focus Hunting พอสมควร ซึ่งปกติแล้วไม่เคยเจอเลนส์ตัวนี้เป็นบน FX เลย ซึ่งตอนนี้ผมกำลังพยายามเรียนรู้นิสัยมันอยู่ว่ามันจะ Hunt ในกรณีไหนบ้าง แล้วจะแก้ปัญหาหรือมี workaround อย่างไรได้บ้าง … ส่วนเมื่อผมลองเอามาใช้กับ Continuous Mode นี่สนุกมากเลยทีเดียวครับ เพราะมันทำให้มีโอกาสได้ภาพมากขึ้นอีกเยอะมากเลย

ทดสอบ Dynamic Range ของ Fuji X-Pro1 JPEG

ครั้งก่อนเคย ทดสอบ Dynamic Range กับ X100 JPEG ไปแล้ว และก็เคยลองเล่นๆ ขำๆ กับไฟล์ JPEG จาก Nikon V1 ใน สองวันกับ Nikon V1 รีวิว .. ช่วงวันหยุดสงกรานต์นี้เพิ่งจะมีโอกาสเอา Fujifilm X-Pro1 ไปทดสอบภาคสนามจริงๆ จังๆ เป็นครั้งแรก (หลังจากถ่ายเล่นๆ รอบๆ บ้านมาพักหนึ่ง) … ยังไม่เขียนรีวิวนะ แต่ตอนนี้เห็น DR ของ JPEG มันแล้ว​ “ว้าว” จนทำใจไม่เขียนเฉพาะเรื่องนี้แบบลัดคิวไม่ได้

เริ่มก่อนเลยก็แล้วกัน นี่ JPEG ดิบๆ จากกล้อง ไม่ได้ทำอะไรเป็นพิเศษทั้งสิ้น (กดดูรูปใหญ่ขึ้นได้นะ)


DSCF7535.jpg
X-Pro1, 18/2, 1/60s, f/5.6, ISO 200, Film Mode: Velvia

ไม่ต้องพูดพร่ามทำเพลงมาก เปิด Lightroom 4 อาวุธคู่ใจคนถ่ายรูปหลายคน ปรับแบบไม่คิดอะไรเลย ตบ Highlight ดึง Shadow … เอาแบบสุดๆ ไปเลยทั้งคู่ แค่นี้จริงๆ สาบานได้ (สิ้นคิดที่สุด)


lr_dr_adj.png

จากนั้นดูผลลัพธ์ … แม่จ้าว แทบจะกรี๊ดสลบ เดี๋ยวนี้ JPEG มันเก็บข้อมูลในไฟล์แบบเหลือเฟือเหลือใช้ขนาดนี้ นี่ขนาดผมถ่ายแค่ JPEG Normal นะ ไม่ใช่ JPEG Fine (ซึ่งไฟล์ใหญ่กว่า มีข้อมูลมากกว่า บีบอัดน้อยกว่า)


DSCF7535-2.jpg

ภาพที่ได้นี่มันอารมณ์ทำ HDR กลายๆ เลยนะเนี่ย (ถึงมันจะมีขอบม่วงชัดเจนมากตรงหลังคาก็เถอะ) มีข้อมูลเก็บไว้ให้เล่นเยอะขนาดนี้ … เหตุผลที่จะถ่าย RAW ก็น้อยลงไปอีกข้อนึงล่ะนะ … จริงๆ แล้วตอนนี้ถ้าไม่นับเรื่อง White Balance กับ Simulate Multiple Exposure นี่ก็ไม่รู้จะถ่าย RAW ไปทำอะไรแล้ว (สำหรับผมนะ เหตุผลของท่านก็เป็นเหตุผลของท่านครับ ผมเคารพเหตุผลที่คนอื่นถ่าย RAW เสมอ)

จากอดีต สู่อนาคต (ไม่ใช่แบบที่คิดนะ…)

มนุษย์เรา จะมองเห็นแต่อดีตโดยธรรมชาติ

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

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

แล้วอนาคตล่ะ?

หลายคนบอกว่าอนาคตต้องใช้ใจมอง ต้องจินตนาการ แต่เราจินตนาการยังไงล่ะ?

โดยปกติแล้วจากการทำงานของสมองคนเรา จะจดจำทุกสิ่งทุกอย่างไว้โดยไม่มีใครเข้าใจว่าสมองจำอย่างไร สมองมีระบบฐานข้อมูล การ Indexing การทำ Memcache การ Query การทำ Hashing การ Search การ Sort อย่างไร เรารู้แต่ว่าสมองส่วนหนึ่งจะทำงานเหล่านี้เองอย่างอัตโนมัติเมื่อมันอยากจะทำ (เราสั่งมันไม่ค่อยได้ด้วยนะ) … จากนั้นสมองอีกส่วนหนึ่งก็ค่อยเอาสิ่งที่ได้คืนมาเนี่ยแหละ มาผสมผสาน เรียบเรียง ออกมาใหม่ ซึ่งอาจจะเป็นสิ่งที่ไม่เคยเห็น ไม่เคยเจอ ไม่เคยมีมาก่อนก็เป็นได้

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

ลองดูภาพนี้จากการนำเสนอในงาน ThinkCamp ครั้งล่าสุดของผม


ThinkCamp.004.jpg

ความทุกข์ของคนเรา มันมีอยู่แค่นี้แหละครับ: อดีต และ อนาคต ส่วนปัจจุบันคือความว่างเปล่าทั้งสิ้น

อดีต เราทุกข์กับความเสียใจ ความเสียดาย ความผิดหวัง ความผิดพลาด ฯลฯ ส่วนอนาคตที่เป็นเงาของอดีตผสมผสานกันนั้น เราจะทุกข์กับอะไรล่ะครับ ถ้าไม่ใช่ “กลัวเงาอดีต” ที่มันตามหลอกตามหลอน กลัวที่จะเป็นอย่างที่อดีตเป็น กลัวที่ความเสียใจ ความเสียดาย ความผิดหวัง ความผิดพลาด ฯลฯ เหล่านั้นมันจะเกิดขึ้นซ้ำกับเราอีก

แล้วจะทำอย่างไรดีกับอนาคต?

มันมีคำคมๆ อยู่เยอะแยะมากมายเกี่ยวกับเรื่องนี้ แต่ผมคงไม่พูดถึงพวกมันมากนัก เพราะคำคมส่วนมากจะมีไว้ให้โลกสวย มีไว้สนองนี้ดทางความคิด ที่รู้แล้วต้องบอกว่า “แล้วไง” ซะมากกว่า …. ยกเว้นไว้อันหนึ่ง …

“Don’t worry about what anybody else is going to do… The best way to predict the future is to invent it.
— Alan Kay

อนาคต ฝันถึงไม่ได้หรอกครับ เพราะมันจะเป็นเพียงแค่เงาอดีต ผสมผสานกับความอยาก ความกลัว ฯลฯ ในใจเราเท่านั้นเอง

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

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

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

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

กลับมามองที่โลกกลมๆ แป้นๆ ใบนี้สักนิด … กับคำถามที่ผมใช้บ่อยที่สุด


ThinkCamp.006.jpg

ใครคิดใครฝัน ว่าโลกมันจะมาเป็นแบบนี้กันบ้าง? ผมเชื่อว่าคนนับร้อยนับพัน ที่ช่วยกันเปลี่ยนช่วยกันหมุนมันจนมาเป็นแบบที่เราอยู่ทุกวันนี้ ไม่ได้คิดไม่ได้มี Master Plan อะไรมากมายเลย ว่าโลกมันจะมาเป็นแบบนี้ … แต่ผมเชื่อว่าคนเหล่านั้น “ทำ” โดยไม่ได้คิดว่าอนาคตมันจะเป็นอย่างไรมากมาย

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

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

ผมชอบสุภาษิตจีนโบราณนะ ที่ว่าการเดินทางไกลแสนลี้ มันเริ่มจากก้าวเพียงก้าวเดียว … แต่ผมจะต่อให้มันครบสมบูรณ์ขึ้นก็แล้วกัน ว่า


ThinkCamp.007.jpg

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

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

[update 01/04/2555]: วันนี้ไปโพสท์อะไรลง facebook นิดหน่อย คิดว่าเกี่ยวๆ กันนิดหน่อย ก็เลยขอ update ตรงนี้ด้วย

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

ว่าด้วย “ข้อสอบ O-NET”

ช่วงนี้ของปีทีไร จะมีเรื่องเฮฮาที่ทำให้จิตตกอยู่ทุกปี ก็คือเรื่องของ “ข้อสอบ O-NET” ซึ่งแต่ละปีจะมีโจทย์ ตัวเลือก และเฉลย ที่โคตรจะปวดตับ

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

ผมนั่งสงสารเด็ก และสมเพชข้อสอบอยู่ทุกปี บางครั้งคิดด้วยซ้ำไปว่า “ไอ้เด็กที่มันได้คะแนนสูงๆ นี่มันเป็นคนแบบไหน?” จนวันหนึ่งผมมานั่งคิดๆ ดู แล้วก็พบกับความจริงอันน่าเศร้าใจข้อเล็กๆ

ข้อสอบ แท้จริงแล้วมันคืออะไร? มันก็เป็นแค่ “เครื่องมือวัด” เหมือนกับไม้บรรทัด ที่ไม่ได้บอกเลยด้วยซ้ำว่าใครเก่งไม่เก่ง ใครโง่ใครฉลาด ใครดีใครเลว … มันบอกแค่ว่า “ใครเหมาะกับระบบที่สุด” ระบบเป็นเช่นไร ก็ย่อมมีแนวโน้มที่จะออกข้อสอบแบบนั้นเพื่อคัดคนที่เหมาะสมกับระบบที่สุด เข้าไปหล่อเลี้ยงรักษาระบบให้คงอยู่ไปเรื่อยๆ ….​ (ลองนั่งนึกภาพหนังเรื่อง The Matrix ผ่านตาสักรอบนะ)

ถ้าระบบนั้นๆ เป็นระบบของผู้สร้าง ข้อสอบย่อมวัดการสร้าง ถ้าระบบนั้นๆ เป็นระบบของผู้รับ/ผู้เสพ ข้อสอบย่อมวัดการรับ/จำ/เสพ เป็นต้น

แล้วบ้านเราล่ะ? … จากประสบการณ์ทำงานในบ้านเราของผม ผมสรุปได้อย่างหนึ่งว่า

คนที่จะได้ดีใน “ระบบ” ของบ้านเรานั้น ไม่ใช่คนเก่ง ไม่ใช่ผู้สร้าง ไม่ใช่คนมีความคิด ไม่ใช่ ฯลฯ อะไรที่คนวาดอุดมคติเอาไว้เลย แต่ต้องเป็น “คนที่คิดเหมือนผู้ใหญ่/คนมีอำนาจ พูดเหมือนผู้ใหญ่/คนมีอำนาจ” แบบเป๊ะๆ ไม่ว่ามันจะต่างจากความจริงของตัวเอง ความคิดตัวเอง สิ่งที่เป็นตัวเองแค่ไหนก็ตาม

(ผมเน้นว่า “ระบบ” นะ พวกที่ต่อสู้กับ The Matrix ไปสร้าง Zion เองในบ้านเราแล้วได้ดี ก็มีถมเถนะ)

ลองดูข้อสอบข้อเด็ดของ O-NET ปีนี้นะครับ … พวกเล่นถามว่า

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

แล้วเฉลยก็คือ “ปรึกษาครอบครัว”

ฟังดูดีนะครับ อุดมคติและหลอกตัวเองไปวันๆ ดีมาก ที่ผมอยากจะถามก็คือ ถ้าเด็กไม่มีครอบครัวให้ปรึกษา หรือถ้าสภาพครอบครัวนั้นไม่เคยฟังลูก พ่อแม่ไม่เคยเข้าใจลูก พ่อแม่ไม่เคยฟังลูกเลย ทำอะไรก็ผิดหมด ฯลฯ อะไรแบบนี้ แล้ว “เด็กจะอยากปรึกษาครอบครัวมั้ย?” และยิ่งกว่านั้น “ครอบครัวแบบนี้ เป็นที่ปรึกษาให้เด็กได้มั้ย?” และ “ปรึกษาไปแล้วได้อะไร(วะ)?”

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

กลับมาเรื่องเดิมครับ …. เด็กที่ตอบข้อนี้ว่า “ปรึกษาครอบครัว” แล้วได้คะแนน ทำแบบนั้นจริงหรือไม่? หรือแค่ “ได้คะแนนเพราะคิดตรงกับผู้ใหญ่/ผู้มีอำนาจ” โดยบังเอิญเท่านั้น? … ระบบเรามันกรองคนที่บังเอิญคิดตรงกับผู้ใหญ่/ผู้มีอำนาจให้เข้าไปได้ดีในระบบเป็นจำนวนมากครับ และไม่ใช่แค่เฉพาะข้อสอบ O-NET เท่านั้นนะครับ ยังมีระบบวัดผล/ข้อสอบอีกหลายตัวที่เข้าอีหรอบนี้ ก็เหมือนกับระบบการให้รางวัลคนในองค์กร หรืออะไรทั้งหลายทั้งแหล่ ที่ต้องเป็นแบบ “ใช่ครับท่าน ยอดเยี่ยมครับ เห็นด้วยครับ” อะไรแบบนี้ตลอดเวลาน่ะแหละ

คิดแล้วเศร้า ปลง …. ว่าแล้ว Morpheus อย่างผม ก็ก้มหน้าก้มตาค้นหา Neo ออกจาก The Matrix ต่อไป

[อัพเดท 03/03/2012]: มีคนบอกผมว่า “อาจารย์ครับ ผิดแล้ว เค้าเฉลยจริงๆ ว่าไปเตะบอลครับ ส่วนที่เฉลยว่าไปปรึกษาพ่อแม่ นี่เป็นคำเฉลยของอดีตผู้อำนวยการหน่วยงานที่ออกข้อสอบครับ ไม่ใช่คนปัจจุบัน” …

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

เรื่องเล่า ของ “เสาสองต้น”

คุณแม่ผมเคยเล่าให้ฟังเมื่อนานมาแล้ว กับเรื่องของ “เสาสอนต้น ที่คำวิหาร”

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

ตรงกันข้าม ถ้ามันอยู่ห่างกันเกินไป วิหารก็พังลงมาจากตรงกลาง น้ำหนักของหลังคาที่รองรับไว้ จะมากเกินไป เกินกว่าช่องว่างตรงกลางที่เกิดจากเสาสองเสาที่ห่างกันนั้นจะรองรับไว้ได้

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

….. ชีวิตของคนสองคน ก็เหมือนกับเสาสองต้นที่ค้ำวิหาร ….

กระจกหน้าต่างแค่บานเดียว … ที่ไร้การเหลียวแล

เรื่อง “เล็กๆ น้อยๆ” ที่ส่งผลใหญ่โตระยะยาว หรือที่เรียกว่า Butterfly Effect อันโด่งดังจาก Chaos Theory นั้น มีตัวอย่างให้เห็นเยอะแยะมากมาย และหนึ่งตัวอย่างที่เป็นที่รู้จักกันดีในวงกว้างก็คือ “ทฤษฎีกระจกหน้าต่างแตก”

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

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

จากกระจกบานหนึ่งไปอีกบานหนึ่ง จากบ้านหนึ่งก็จะลามไปอีกบ้านหนึ่ง จนมากขึ้นๆ เหมือนกับมะเร็งที่ลุกลามในอวัยวะ ที่หากปล่อยไว้จนลุกลาม ก็ยากจะรักษาเยียวยาได้

เรื่องเล็กๆ น้อยๆ หรือ little bits ที่ส่งผลใหญ่โตในระยะยาว เพราะผลของมันจะลามจากเรื่องหนึ่งไปยังอีกเรื่องหนึ่ง มากขึ้นๆ ทุกที

เรื่องนี้สอนอะไรเราบ้าง?

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

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

ก็ใช่สิ … มันก็แค่กระจกบานเดียว จะไปมีผลอะไรมากมาย

แต่เชื่อผมสิ ว่า a little bit goes a long way … ผีเสื้อกระพือปีกในอเมริกา อาจส่งผลให้เกิดพายุถล่มญี่ปุ่นก็ได้ … ถ้าผลของมันมีโอกาสกระทบต่อไปเรื่อยๆ เรื่อยๆ

หัดเขียนโปรแกรมยังไงให้เก่ง?

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

ก่อนอื่น ต้องทำความเข้าใจพื้นฐานก่อน ว่า

“การเขียนโปรแกรม”​ มันเป็นเรื่อง “Skill การสื่อสาร”

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

ปัญหาอันดับแรกๆ ที่ผมพบก็คือ “คิดเป็นขั้นตอนไม่เป็น”

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

ยกตัวอย่างง่ายๆ ในชีวิตประจำวัน เช่น “ถ่ายเอกสารชีทนี้มาแจกทุกคนในกลุ่ม” ซึ่งดูเหมือนจะง่ายนะ ทำกันประจำ แต่จะสื่อสารออกมาอย่างไร? เพียงแค่นี้พอหรือไม่? คำตอบคือ “ไม่พอ” เพราะถ้าเราไปพูดคำนี้กับคนที่ไม่รู้จักกลุ่มเรา จะรู้มั้ยว่ามีกี่คน? แม้แต่คนในกลุ่มเอง บางทียังต้อง “นับ” เลย

ดังนั้นในการสื่อสาร เราจะมีปัจจัยตั้งต้นคือ “ชีท” และ “กลุ่มคน”​ และปลายทางที่เราต้องการคือ “ทุกคนในกลุ่ม ได้รับชีทที่ถ่ายเอกสารแล้ว” ถ้าจะสื่อสารเป็นกระบวนการแบบโปรแกรม หรือฟังก์ชั่นทางคณิตศาสตร์ ก็จะได้ลักษณะนี้

จำนวน = นับ(คนในกลุ่ม)
ชีทที่ถ่ายเอกสารแล้ว = ถ่ายเอกสาร(ชีท, จำนวน)
คนที่ได้รับชีท = แจกจ่าย(ชีทที่ถ่ายเอกสารแล้ว, คนในกลุ่ม)

เป็นต้น

ปัญหาอันดับต่อไปที่ผมพบก็คือ การให้ความสำคัญกับตัวภาษาโปรแกรมมากไปในตอนแรก (แต่น้อยไปในระยะหลังจากนั้น)

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

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

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

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

ตัวอย่างง่ายๆ ผมเชื่อว่าแทบทุกคนรู้จัก

printf("Hello, world\n");

(หรืออะไรก็ได้ที่เทียบเท่ากัน ซึ่งแตกต่างกันไปตามภาษา) ซึ่งมักจะได้เรียนกันในคลาสแรก ไม่ก็หนังสือบทแรก แต่จะมีกี่คนเชียวที่ “เล่น” กับมันต่อ เอาไปหัดสื่อสารมันต่อ ลองหาดูว่าจะประยุกต์หรือพลิกแพลงมันอย่างไรได้บ้าง เช่น จะลองให้แสดง

Name            Lastname        Sword
Byakuya         Kuchiki         Senbonsakura
Sousuke         Aizen           Kyokazuigetsu

โดยช่องว่างให้เว้นว่างทั้งหมด 2 Tab และให้ได้โดยใช้ printf เพียงตัวเดียว ทำได้หรือไม่ อย่างไร อะไรทำนองนี้

======================================

สรุปสั้นๆ การเขียนโปรแกรมก็เหมือนกับการสื่อสาร คิดว่าทำอย่างไรให้สื่อสารเก่ง ก็ทำแบบนั้นกับการเขียนโปรแกรม หลายคนอยากจะพูดภาษาอังกฤษเก่ง แต่เจอฝรั่งทีไรวิ่งหนีทุกที ให้พูดก็ไม่ยอมพูด แล้วมันจะเก่งได้อย่างไร ต่อให้วันๆ นั่งท่องไวยากรณ์ นั่งท่องศัพท์ ก็ไม่เคยมีประโยชน์ … พูดในฐานะคนที่พูดได้ 3 ภาษา ฟังออก 4 อ่านออก 6 ภาษา (แต่เป็นงูๆ ปลาๆ ไม่ค่อยแข็งแรงเท่าไหร่ซะ 3) นะครับ

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

สุดท้ายคือ ให้ “ลงมือทำ” เพราะความ “อยากได้” มันไม่เคยมีประโยชน์เลย ถ้าไม่ “ลงมือทำ”

======================================

เรื่องสุดท้าย … แต่ก่อนอื่นต้องขอเล่าเรื่องตัวเองให้ฟังสักหน่อย ผมมีวิธีการเรียนเขียนโปรแกรมอยู่อย่างหนึ่ง ซึ่งโดยส่วนตัวแล้วมันเวิร์กสำหรับผม คือ

หัดให้ “มือ” เขียนโค้ด อย่า copy & paste เด็ดขาด และอย่าใช้สมองคิดโค้ดโดยไม่จำเป็น

เวลาผมจะหัดเขียนโปรแกรมในภาษาใหม่ และหัดจากหนังสือ ไม่ว่าจะเป็นหนังสือใครเขียน (และแน่นอน ว่าผมลองทำแบบนี้กับหนังสือตัวเองด้วย) ผมจะ “อ่านเนื้อหาผ่านๆ” ก่อน 1 เที่ยว จากนั้น “พิมพ์” โค้ดเหล่านั้นเองด้วย “มือตัวเอง” ผมจะไม่เคย copy & paste โค้ดในช่วงของการเรียนรู้เลย เพราะว่าสิ่งที่สำคัญที่สุดคือ มือผมต้องโค้ดเป็น

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

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

ซึ่งนี่คืออีกปัญหาที่ผมพบ ซึ่งเป็นปัญหา “ใหญ่ที่สุด” คือ ผู้ฝึกเขียนโปรแกรม ต้องการได้ผลลัพธ์สำเร็จรูปเร็วเกินไป ฉาบฉวยเกินไป ต้องการโค้ดที่เอาไป copy & paste ได้ กด compile & run เห็นผลลัพธ์ แล้วคนขยันหน่อย ก็อาจจะกลับมานั่งอ่านโค้ดบ้าง นอกนั้นก็ปล่อยๆ มันไป เพราะได้ผลแล้ว

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

ผมมีข้อสังเกต ว่าถึงระบบการศึกษาบ้านเรามันจะไม่ได้แย่ลงกว่าเดิมเท่าไหร่ แต่ทำไมคนเดี๋ยวนี้เขียนโปรแกรมแย่ลงกว่าเมื่อก่อนมาก ก็เพราะมันเริ่มต้น “ง่ายเกินไป” และ “ฉาบฉวยเกินไป” มีโค้ดอยู่แล้ว copy & paste ง่าย แค่ Ctrl+C, Ctrl+V ก็จบแล้ว หรือไม่ก็ download งานที่เสร็จแล้วมา unzip แล้วใช้งานได้เลย ดังนั้นโค้ดจะไม่ผ่านมือเลย ซึ่งนี่คือเรื่องที่หลายคนอาจมองว่ามัน “เล็กน้อย” แต่จริงๆ แล้วนี่คือเรื่องที่ “ใหญ่ที่สุด” เรื่องหนึ่ง

สมัยผมหัดเขียน C++ 98 (ที่เป็น Standard แรกที่มี STL) ผมซื้อหนังสือ The C++ Standard Template Library ของ Nicolai Josuttis มานั่งอ่านผ่านๆ ทั้งเล่มก่อน 1 เที่ยว และ “นั่งลอก” โค้ดทุกบรรทัดด้วยมือตัวเอง ทั้งเล่ม จากนั้นค่อยพยายามศึกษารายละเอียดอีกครั้งในเบื้องลึก

ซึ่งนี่เป็นวิธีเดียวกับที่ผมศึกษา Perl, Ruby, Objective-C, Mathametica, Haskell, OCaml, Scheme และภาษาอื่นๆ ที่ผมเขียนเป็น และเขียนพอเป็น

และนี่แหละ เป็นสาเหตุที่ผม “ไม่อยากให้โค้ด” สำหรับโปรแกรมจากหนังสือคู่มือเขียน iPhone App ของผม ซึ่งพิมพ์โดยสำนักพิมพ์ Provision

สรุปสั้นๆ: อยากเขียนโปรแกรมเก่ง ต้องหัด “เขียน” โปรแกรมครับ อย่าหัดแต่รันโปรแกรมที่คนอื่นเขียนแล้ว

======================================

หวังว่าคงจะเป็นประโยชน์บ้าง …​ จริงๆ แล้วเนื้อหาบทความนี้ คัดมาจาก “บทแรก” ของหนังสือเล่มใหม่ที่ผมกำลังเขียนอยู่ (ยังไม่มีชื่ออย่างเป็นทางการ แต่ประมาณ “คิดและโค้ด ผ่านภาษา Objective-C”) โดยดัดแปลงให้เหมาะกับการเป็นบทความบนเว็บ

รออ่านนะครับ ผมหวังว่าจะเป็นหนังสือที่ดี(นะ)

ทวนเข็มนาฬิกา

หมายเหตุ: บทความในตอนนี้เป็นส่วนหนึ่งของการบรรยายหลายต่อหลายครั้งของผม

เมื่อนานมาแล้ว ผมได้มีโอกาสอ่านหนังสือเรื่อง The Information Master ของ John McKean ซึ่งมีผลการสำรวจถึงเรื่องการลงทุนในด้านต่างๆ ทั้งตัวเลขที่ลงทุนจริง และตัวเลขที่ทาง McKean แนะนำว่าควรจะเป็น ดังนี้


mckean.006.jpg

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

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

ผลที่ได้ทำให้ผมขนลุกทันที เพราะนี่คือสิ่งที่ผมแสวงหามานาน

ลองดู “สิ่งที่ควรเป็น” ดูก่อนนะครับ


mckean.005.jpg

อย่างที่บอกว่าผมไม่ได้สนใจอะไรมากมายนักกับตัวเลข แต่สนใจมากกว่าจะมีอะไรที่สะท้อนภาพสิ่งที่ผมคิดว่า “เป็นจริง” กับบ้านเราได้บ้าง และนี่ก็คือสิ่งนั้นครับ และภาพที่สิ่งนี้สะท้อนให้เราได้เห็นกันก็คือ “การพัฒนา” อะไรก็แล้วแต่ที่เราจะนึกออก ไม่ว่าจะเป็นระบบฐานข้อมูล ระบบสื่อสิ่งพิมพ์ดิจิทัล ระบบการศึกษา ระบบ ฯลฯ

เมื่อเราลองมอง “ภาพที่ควรเป็น” นี้ ภาพวงกลมที่เราเห็น ก็เหมือนกับ “หน้าปัดนาฬิกา” ที่เริ่มต้นเดิน ณ เวลา 0 คือเริ่มจากสีฟ้าอ่อน ซึ่งก็คือ “คน” ซึ่งจะเห็นว่า ต้องใช้ “ทรัพยากร” (เงิน เวลา ความพยายาม ฯลฯ) ประมาณ 20% และต้องเริ่มต้นจากจุดนี้ จากนี้เมื่อมี “คน” แล้ว ก็ต้องมีพัฒนา “กระบวนการ” เพื่อให้คนเหล่านี้ทำงานด้วยกัน สิ่งนี้จะต้องใช้ทรัพยากรอีกประมาณ 15% และเมื่อมี “คนที่ทำงานเป็นขั้นตอนกระบวนการ” เป็นแล้ว ก็ต้องจัดระบบระเบียบการทำงาน การประสานงานอื่นๆ หรือ “ระบบการทำงาน” (Organization) อีก 10% ต่อด้วยการพัฒนาวัฒนธรรมการทำงานของระบบการทำงานอีก 20% และเมื่อได้สิ่งเหล่านี้แล้ว ความรับผิดชอบเฉพาะทางที่เกิดจากความเชี่ยวชาญที่ได้ทำงานมา ซึ่งก็จะเกิดขึ้น และจะต้องพัฒนาจนกลายเป็น Leadership ในด้านนั้นๆ อีก 10% และเมื่อได้ถึงจุดนี้แล้ว กระบวนการทั้งหมดก็จะเริ่มสร้าง (Create/Generate) องค์ความรู้ ข้อมูล ฯลฯ ต่างๆ ขึ้นมา ไม่ว่าจะเป็นรูปของกระดาษ หรือรูปแบบอื่นๆ ซึ่งจะต้องพัฒนาเพิ่มขึ้นอีก 15% สุดท้ายของวัฏจักรก็คือ การพัฒนาเทคโนโลยีหรือเครื่องมือขึ้นมาเพื่อรองรับกระบวนการทั้งหมด อีกเพียง 10%

นั่นคือ เทคโนโลยีหรือเครื่องมือที่จะมีนั้น เป็น “ผล” ที่ “ปลายเหตุ” ที่มีหน้าที่ “ช่วย” ให้ “คน” ซึ่งทำงานด้วย “กระบวนการบางอย่าง” ใน “ระบบงาน” ที่มี “วัฒนธรรมการทำงาน” และมี “หน้าที่ความรับผิดชอบอันเกิดจากความเชี่ยวชาญ” และต้องสร้างและใช้ “สารสนเทศ” ทำงานได้ดีขึ้น เท่านั้นเอง

แล้วมันเกิดอะไรขึ้น? สิ่งที่ผมต้องการจะสื่อถึงกรณี “บ้านเรา” คืออะไร?

บ่อยครั้งมาก ที่เราต้องการการพัฒนาอย่างเร่งด่วนฉาบฉวย ซึ่งมักจะหมายถึงการ “เร่งมีอย่างที่คนอื่นมี” ไม่ว่าจะเป็นการเร่งมีระบบฐานข้อมูลเหมือนที่คนอื่นมี การเร่งมีสิ่งพิมพ์ดิจิทัลบน iPad เหมือนกับที่คนอื่นมี การเร่งจะมีเว็บขายของเหมือนที่คนอ่ืนมี ใช่ไหมล่ะครับ?

ความต้อง “มีอย่างที่คนอื่นมี” แสดงให้เห็นว่า เราจะต้องเคยเห็นมาก่อนว่าคนอื่นมีอะไร นั่นคือ เราจะต้องเห็น “ผล” ที่​ “ปลายเหตุ” ซึ่งก่อให้เกิดความอยากได้เหมือนเขาบ้าง เราอาจจะศึกษากระบวนการของเขาทั้งหมด ย้อนกลับไปว่ามาได้อย่างไร ส่งคนไปศึกษาดูงาน อ่านหนังสือ ฯลฯ ก็แล้วแต่

ลองดูกราฟของ “สิ่งที่เกิดขึ้น” บ้างครับ


mckean.006.jpg

ความน่ากลัวที่น่าสนใจก็คือ “การเดินย้อนทวนเข็มนาฬิกา” ซึ่งจะมุ่งเน้นไปที่ “การมีเครื่องมือสุดท้ายเหมือนกับเขา” โดยที่ไม่ได้สร้างคน กระบวนการทำงาน ระบบงาน วัฒนธรรมการทำงาน ฯลฯ อะไรไว้รองรับเลย และเมื่อมีเครื่องมือตามที่ต้องการแล้ว ก็ค่อยหาข้อมูลมาใส่ระบบอย่างลวกๆ จากนั้นก็กำหนดหน้าที่การทำงานในระบบอย่างลวกๆ (อาจจะตามตำรา หรือตามที่ได้ดูงานมา) ในวัฒนธรรมการทำงานที่ถือได้ว่า Non-Existing จากนั้นอาจจะตั้งระบบ แผนก หรือองค์กรขึ้นมาทำงานหน้าที่นั้นอยากลวกๆ และสุดท้ายก็คือ หาคนมาใส่ให้เต็มงาน โดยที่คนเหล่านี้ไม่ได้ถูกสร้างมาสำหรับอะไรแบบนี้เลย

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

==================

ลองดูกรณีศึกษากันหลายๆ กรณีนะครับ

  • หลายบริษัท/องค์กรเร่งไปที่การมีมาตรฐาน ISO, CMMI ตามกระบวนการประกันคุณภาพ (Quality Assurance; QA)​ โดยไม่ได้สนใจที่มาที่ไป รากฐานของมันเลย และยังทุ่มทรัพยากรไปกับการทำสิ่งเหล่านี้โดยใช่เหตุ และถือว่าเมื่อมีการใช้เครื่องมือเหล่านี้เหมือนชาวบ้านเค้า ก็ถือว่าเรามีคุณภาพแล้ว
  • หลายองคก์กรที่พัฒนาโปรแกรม เร่งไปที่การมี “เครื่องมือ” ต่างๆ ในการพัฒนาองค์กร เช่นสารพัดวิธีในการทำ Agile หรือสารพัดวิธีในการจัดการซอฟต์แวร์ เช่น Personal Software Process โดยที่เมื่อมีการทำพวกนี้แต่เปลือก ก็ถือว่ามีแล้ว โดยทั้งที่จริงๆ แล้ว “คน” ยังเขียนโปรแกรมกันแทบไม่เป็นเอาซะเลยด้วยซ้ำ กระบวนการทำงานของแต่ละคนเองก็ยังไม่เป็นรูปเป็นร่างอะไรเลย ยังทำงานร่วมกันไม่ได้เลย ฯลฯ
  • ผมพบบ่อยๆ ว่าเวลาเราไปดูงานที่ประสบความสำเร็จ เราจะเห็นภาพสุดท้าย โครงสร้างองค์กร หน้าที่ความรับผิดชอบต่างๆ ว่ามีแผนกอะไร ใครต้องทำอะไร ดังนั้นสิ่งที่เกิดขึ้นบ่อยในบ้านเรา คือ การลอกแบบจากปลายเหตุ ตั้งองค์กรตาม แบ่งแผนกตาม หาคนมาทำงานตาม โดยไม่ได้เริ่มจากการสร้างอะไรเองเลย ดังนั้นก็จะมีอะไรหลายอย่างที่มันไม่ function ตามที่มันควรจะเป็น
  • ระบบฐานข้อมูล เป็นอะไรที่ว่ากันยาวมาก หลายคนต้องการ “ระบบ” ขึ้นอย่างรวดเร็ว และเวลาที่เราบอกว่า มันต้องเริ่มจาก “คนใช้ข้อมูลอะไรในการทำงานอยู่ในปัจจุบันบ้าง” และข้อมูลอะไรจะต้องเชื่อมโยงกับอะไรที่มีอยู่แล้วบ้าง คนมักไม่ค่อยสนใจ คิดว่าจะต้องเริ่มด้วยการพัฒนาระบบเลย หรือดีกว่านั้น ซื้อระบบสำเร็จรูปมาใช้เลย ทั้งๆ ที่ระบบที่มันใช้งานได้ดี ส่วนมากจะใช้เวลานับปี วางรากฐานเรื่องข้อมูล และระบบข้อมูล ว่าใครใช้อะไรอยู่แล้วบ้างในการทำอะไร และข้อมูลนั้นเอามาจากไหน จากนั้นวางความเชื่อมโยงกับสิ่งที่มีอยู่แล้ว และค่อยพัฒนาระบบ ซึ่งจะใช้เวลาอีกหลายปี เป็นต้น
  • เว็บไซต์หรือเว็บแอพพลิเคชั่นก็เช่นเดียวกัน ที่เริ่มจากการ “อยากมีเว็บเหมือนคนนั้นคนนี้” โดยที่ไม่ได้สนใจ “การเริ่ม” ที่เหมือนกับเขาเลยแม้แต่น้อย จะเอาแต่ปลายเหตุอย่างเดียว
  • เรื่องเดียวกันก็เกิดขึ้นกับการพัฒนาแอพพลิเคชั่นทั่วไป การพัฒนา Digital Publishing ก็ไม่ใช่ข้อยกเว้น ที่จะเริ่มจากการเห็นคนอื่นมีกัน แล้วจะเร่งรัดไปที่ปลายเหตุอย่างฉาบฉวย ไม่ได้สร้าง “คนที่เข้าใจกระบวนการ มีความสามารถในการทำงานจริงจัง” ขึ้นมาเลย
  • เรื่องที่เห็นชัดเจนมากที่สุดเรื่องหนึ่งคือ Knowledge Management หรือ KM ที่ผมเห็นหลายที่บ้ากันจังเลย กับเครื่องมือสารพัด ไม่ว่าจะเป็นแผนภูมิก้างปลา กับการมี Blog ภายในองค์กร ที่แต่ละคนสามารถมาแชร์ความรู้กันได้ แล้วก็มีคนเขียนแค่ไม่กี่คน เขียนเรื่องอะไรก็ไม่รู้ พอมี Blog และมีคนเขียนคนสองคน ก็ถือว่า “องค์กรได้ทำ KM แล้ว” ซึ่งเป็นเรื่องโง่บัดซบ องค์กรในฐานะ “สิ่งมีชีวิต” จะดำรงอยู่ได้ด้วยอะไรในฐานะ “สภาพแวดล้อมและอาหาร” ยังไม่รู้เลย ดังนั้นตัวองค์กรเอง ต้องเรียนรู้อะไรเพื่อให้มันอยู่รอดได้ พัฒนาได้ อันนี้ก็ตอบไม่ได้ ในเมื่อไม่เป็น Learning Organization แล้วจะทำ Knowledge Management ไปเพื่ออะไร … ที่น่าเศร้า คือคนมันโดนล้างสมองไปแล้วว่า การทำ KM คือการมี Blog
  • เรื่องการศึกษาที่เน้นไปที่ผลลัพธ์ก็ไม่ใช่ยกเว้น เพราะสิ่งที่อยู่ในขั้นตอนสุดท้ายก็คือ “เครื่องมือ” ไม่ว่าจะเป็นสูตรคำนวน หรืออะไรก็แล้วแต่ ดังนั้นหลายครั้งเราจะเริ่มที่ปลายเหตุ คือ สอนการใช้เครื่องมือให้ได้ผลลัพธ์ โดยไม่สนใจสิ่งต่างๆ ก่อนหน้านั้นทั้งหมด และหลายคนก็สับสนไปว่า การใช้เครื่องมือเป็น คือการเข้าใจ ด้วยซ้ำ
  • ฯลฯ ฯลฯ และ ฯลฯ
  • (อัพเดท 2021): เรื่อง Agile, DevOps และสารพัดก็เช่นกัน

==================

ผมขอปิดบทความนี้ด้วยภาพนี้ภาพเดียวครับ ซึ่งคือสิ่งที่สำคัญที่เราจะต้องช่วยกันทำ


transforming.jpg

เปลี่ยนจากวงกลมซ้าย ที่เดินย้อนทิศทางเข็มนาฬิกา ที่ทำให้เรามีอะไรหลายอย่างที่มันฉาบฉวย ไม่ยั่งยืน ไม่มีประโยชน์จริง แต่เป็นภาพลวงตาที่หลอกเราไปวันๆ ว่า “เรามีแล้ว” ไปเป็นวงกลมขวา ที่เดินตามเข็มนาฬิกา ที่จะทำให้เรามีอะไรเป็นของตัวเอง ไม่จำเป็นต้องเหมือนกับใคร ใช้งานได้จริง มีประโยชน์กับตัวเราเอง องค์กรเราเอง และไม่ใช่ภาพลวงตา

สิ่งที่เราเห็นว่าคนนั้นคนนี้มี และหลายต่อหลายครั้งที่เราเห็นแล้วเผลอคิดไปว่า “เพราะเค้ามีสิ่งนั้น เค้าเลยดีกว่าเรา” มันเป็นเพียงแค่ “ยอดภูเขาน้ำแข็ง” เท่านั้นเอง


iceberg.018.jpg

ซึ่ง “ยอดภูเขาน้ำแข็ง” ที่ว่านี้ หมายถึงสิ่งที่เราเห็นลอยพ้นจากน้ำ ซึ่งจะมีเพียงแค่ 10-20% ของภูเขาน้ำแข็งทั้งก้อนเท่านั้น และการที่เราเข้าใจรูปร่างมันผิด และไปประมาทมัน เรือที่ไม่มีวันจมอย่างไทเทนิค ยังอับปางมาแล้วเลย …​. แต่นี่คือสิ่งที่หลายต่อหลายคนอาจจะมองเห็น แต่เพียงเท่านี้ ….

พฤติกรรมฝังราก จากการศึกษา

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

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

วันนี้จะขอพูดเรื่อง “การศึกษา” เพียงเรื่องเดียวเท่านั้น แต่แก่นแท้ที่สำคัญ มันขยายผลไปเป็นอะไรก็ได้ที่คุณผู้อ่านจะเปรียบเทียบและตีความได้ และเราต้องไม่ลืมว่าการศึกษา คือสิ่งที่สร้างพฤติกรรมฝังรากได้มากที่สุด รองจากพฤติกรรมของคนในครอบครัว

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

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

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

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

…………………………..

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

สิ่งที่เกิดขึ้นตลอด “กระบวนการสร้างคน ผ่านการศึกษา” ตั้งแต่อนุบาล ประถม มัธยม ถึงมหาวิทยาลัย เป็นเวลาเกือบ 20 ปี มันหล่อหลอมให้ “ผลลัพธ์” ซึ่งก็คือ “คน” ที่ถูกสร้างขึ้นมานั้น มีความฉาบฉวย เน้นไปที่การได้ผลอย่างเร่งด่วน คิดอะไรแค่เฉพาะหน้า ลงมือทำไม่เป็น และไม่ยินดีลงมือทำ รับความเสี่ยงในการลงมือทำและจะไม่ได้ผลที่ต้องการไม่ได้ หาความช่วยเหลือมากกว่าให้ความช่วยเหลือ เห็นแก่ตัว คิดเอาแต่ได้ คิดแต่สบาย อยากได้อะไรต้องมีคนทำไว้ให้อยู่ก่อนแล้ว แค่หาแล้วเอามาเป็นของตัวเอง

…………………………………………………

ผมพูดเสมอว่า “ผมไม่โทษนักศึกษาหรอก คนเหล่านี้เป็นผลผลิตที่สมบูรณ์ ของสังคมการศึกษาที่ล้มเหลว”

การสอบโปรเจคจบของนักศึกษาปีสี่ ที่เพิ่งจะผ่านไปเมื่อไม่นานนี้ สะท้อนภาพนี้ได้ชัดเจนพอสมควร

น้องๆ ปีนี้ คือนักศึกษาที่ผมสอนวิชา Programming Platforms and Environment ไปเมื่อสองปีก่อน ซึ่งในปีนั้นเมื่อไหร่ก็ตามที่ผมให้โจทย์ที่ต้องเขียนโปรแกรมบ้าง น้องๆ ส่วนมากจะ “รอเพื่อน” จนกระทั่งมีใครสักคนทำได้ แล้วลอกมันส่งกันเกือบยกชั้น .. น้องๆ ส่วนมากจะ “ไม่สามารถอธิบาย” แต่ละบรรทัด/แต่ละส่วนของโปรแกรมได้ ว่ามันคืออะไร มันมีไปทำไม ถ้าถามผลการทำงานของโปรแกรมอย่างฉาบฉวย จะตอบได้ แต่อย่าถามนะ ว่าไอ้บรรทัดนี้ มันมีไว้ทำไม มันทำงานเมื่อไหร่ อย่างไร มันทำแบบอื่นได้มั้ย มันเอาไปใช้ทำอะไรได้บ้าง จะเงียบ ตาย ทันที … น้องๆ แทบทุกคนจะ “ทำการบ้านเฉพาะข้อง่ายๆ” ที่คำตอบมันชัดหรือหาได้ง่าย

สอนก็แล้ว ให้ตกก็แล้ว ว่าก็แล้ว ฯลฯ

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

……………………………………..……………………………

ถ้านักศึกษากลุ่มนี้ยังจำได้ ผมเคยเขียน “บทเรียนสุดท้าย ที่ผมไม่มีโอกาสสอนคุณในห้องเรียน” ลงใน “ข้อสอบปลายภาค” และ ณ วันนี้ ผมขอเขียนมันอีกครั้งหนึ่งที่นี่

____ บทเรียนสุดท้าย ที่ผมไม่มีโอกาสสอนคุณในห้องเรียน ______

อาจารย์ที่ผมเคารพมากท่านหนึ่ง (Prof. Brian Harvey; University of California at Berkeley) เคยพูดเอาไว้ว่า เหตุผลที่ นักศึกษาควรศึกษาทุกอย่างเอง หัดทําอะไรเอง ชนกับปัญหาเอง วิเคราะห์การแก้ปัญหาเอง ไม่ลอก ไม่ถามหาความช่วยเหลือ ก่อนเวลาอันควร ไม่ควรเขียนโปรแกรมให้กัน หรือคิดวิธีการแก้ปัญหาให้กัน ไม่ใช่เพราะเรื่องจรรยาบรรณ เรื่องชื่อเสียง ไม่ว่า จะของตัวเองหรือสถาบัน เรื่องฝีมือการทํางาน ฯลฯ หรือเรื่องอะไรก็ตามที่มันอุดมคติ แต่เพราะ “พฤติกรรมอะไรก็ตาม ที่คุณสร้างให้ตัวเอง สมัยเรียน มันจะเป็นพฤติกรรมที่ฝังรากลึก แก้ไม่ได้ ตอนที่คุณไปทํางาน”

มันเหมือนกับการเขียนโปรแกรมให้ตัวเอง คอมไพล์ … แล้วไปเห็นผลการรันในตอนทํางานจริง

ผมไม่อยากเห็น พนักงานที่อ้างว่า ไปเที่ยว กิจกรรม ฯลฯ ในคืนวันอาทิตย์ จนไม่สามารถมาทํางานได้ในวันจันทร์ เพราะนั่น เป็นวันทํางาน คุณก็ต้องรับผิดชอบมันในฐานะวันทํางาน

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

ผมไม่อยากเห็น พนักงานที่ไม่คิดเอาสิ่งที่ตัวเองเห็น จากเรื่องรอบๆ ตัว ไม่ว่าจะเป็นนิยาย ภาพยนต์ การเมือง สิ่งแวดล้อม ฯลฯมาเป็นข้อคิดที่ดีในการทํางานพนักงานที่มองไม่เห็นว่าทุกอย่างมันเป็นกระจกสะท้อนซึ่งกันและกันอยา่งไรมันเกี่ยวขอ้ง เกี่ยวพันกันอย่างไร

ไม่ว่าคุณจะทํางานไอทีหรือไม่กต็ามพฤติกรรมเหล่าน้ีจะติดตัวคุณไป

ดังน้ันผมหวังว่าจะไม่ได้ยินคําพูดของคุณที่ว่า“จบแล้วผม/หนูจะไม่ทํางานด้านนี้ดังนั้นให้ผม/หนูผ่านเถอะครับ/ค่ะ” อีก

ผมอยากเคารพคุณทุกคน ในฐานะ “นักศึกษา” ในวันนี้ และ “เพื่อนร่วมวงการ” ในอนาคต

ขอบคุณครับ

… และคุณคงเข้าใจแล้วว่า วิชานั้น ที่ผมบอกว่า มหาวิทยาลัย การศึกษา และครอบครัว มันก็เป็น Programming Platform และ Environment ที่มันโปรแกรมพฤติกรรมฝังรากให้กับพวกคุณ ที่มันแก้ไม่ได้ ถ้าพวกคุณไม่พยายามคิดจะทำอะไรบางอย่างกับมันบ้าง มันแปลว่าอะไร … เพราะสิ่งไหนที่มันเป็นในวันนั้น วันนี้ก็เป็นอย่างนั้น

The App Must Go On (แปลงจาก The Show Must Go On)

อารมณ์พาไป เลยแปลงเพลง The Show Must Go On จากอารมณ์โปรแกรมเมอร์ซะหน่อย

Empty projects – what are we coding for
Abandoned usages – I guess we didn’t know who it’s for
On an on, does anybody know what we are looking for

Another feature, another API
Behind the curtain, in the source code files
Thousands of lines, does anybody want to write it anymore

The app must go on
The app must go on
Inside my code is breaking
The bugs appear so freaking
But my brain still works on

Whatever happens, I can’t leave it all to chance
Another query, another failed access
On an on, does anybody know what we are coding for

Algorithm isn’t working, I must feel chiller now
I’ll soon be doing a cutting-corner now
Outside the deadline is approaching
But inside there’re bugs aching to be free

The app must go on
The app must go on
Inside my code is breaking
The bugs appear so freaking
But my brain still works on

A little bug is like the wings of butterflies
Single line can crash the app and die
I can’t cry – my friends

The app must go on
The app must go on
I’ll code it with a grin
I’m never giving in
On – with the code –

I’ll top the bill, I’ll overkill
I have to find the will to carry on
On with the –
On with the code –
The app must go on.

ท่าทางจะต้องเก็บไว้ร้องใน Karaoke บ้างซะแล้ว