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

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

“การเขียนโปรแกรม”​ มันเป็นเรื่อง “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”) โดยดัดแปลงให้เหมาะกับการเป็นบทความบนเว็บ

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

 

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

On January 3, 2012, in Article, Just-a-Thought, by rawitat

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

เมื่อนานมาแล้ว ผมได้มีโอกาสอ่านหนังสือเรื่อง 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
  • เรื่องการศึกษาที่เน้นไปที่ผลลัพธ์ก็ไม่ใช่ยกเว้น เพราะสิ่งที่อยู่ในขั้นตอนสุดท้ายก็คือ “เครื่องมือ” ไม่ว่าจะเป็นสูตรคำนวน หรืออะไรก็แล้วแต่ ดังนั้นหลายครั้งเราจะเริ่มที่ปลายเหตุ คือ สอนการใช้เครื่องมือให้ได้ผลลัพธ์ โดยไม่สนใจสิ่งต่างๆ ก่อนหน้านั้นทั้งหมด และหลายคนก็สับสนไปว่า การใช้เครื่องมือเป็น คือการเข้าใจ ด้วยซ้ำ
  • ฯลฯ ฯลฯ และ ฯลฯ

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

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


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 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 บ้างซะแล้ว

 

เนื่องจากก่อนหน้านี้ผมได้เขียนหนังสือ “คู่มือเขียน iPhone App” ซึ่งออกมาในช่วงคาบลูกคาบดอก ระหว่างรอการเปลี่ยนแปลง จาก iOS 4 เป็น iOS 5 และ Xcode 4 เป็น Xcode 4.2 ซึ่งเป็นการเปลี่ยนแปลงระดับ “Major Change”

ใจจริงผมอยากจะเขียนให้อิงกับ iOS 5 และ Xcode 4.2 เป็นหลักตั้งแต่ต้น แต่ในขณะนั้นไม่มีใครบอกได้ว่าทั้งสองตัวนี้จะออกมาเมื่อไหร่ และด้วยเหตุผลหลายๆ อย่าง รวมถึงความต้องการของสำนักพิมพ์ ที่อยากจะออกสู่ตลาดเร็วๆ ในขณะที่ยังไม่มีเจ้าอื่นออกมา (ซึ่งผมเข้าใจเหตุผลนี้ และไม่มีปัญหาใดๆ ทั้งสิ้น) ทำให้เราตัดสินใจทำมันออกมาเป็น “iOS 4 และ Xcode 4″ เพื่อให้ออกมาได้ก่อน และหลายคนได้เริ่มก่อน

และด้วยเหตุผลของ NDA ทำให้ผมไม่สามารถที่จะเขียนถึงรายละเอียดอะไรของ iOS 5 และ Xcode 4.2 ได้เลย

ทีนี้ปัญหาก็เลยเกิดขึ้น เมื่อ iOS 5 ออกมาแล้ว และ Xcode 4.2 ออกมาแล้ว (และไม่สามารถหา Xcode 4.0, 4.1 ได้ง่ายๆ อีกต่อไปแล้ว เพราะ Xcode ที่อยู่บน Mac App Store มันเป็น 4.2) ปัญหาง่ายๆ มันก็เลยเกิดขึ้น เพราะว่ามันมีการเปลี่ยนแปลงมากมาย อย่างที่ผมบอกไว้ ทั้งในระดับตัวภาษา Objective-C, iOS SDK และตัว Xcode เอง โดยเฉพาะอย่างยิ่งเมื่อ Default Settings ทุกอย่างนั้นกำหนดให้ใช้ความสามารถใหม่โดยปริยาย

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

สำหรับท่านที่ไม่สนใจจะศึกษาเพิ่มเติม หรืออยากจะทำตามหนังสือเล่มแรกอย่างเดียว ผมมีคำแนะนำว่า เวลาสร้างโปรเจคใหม่ ให้เลือก “ไม่ใช้ Storyboard” และ “ไม่ใช้ Automatic Reference Counting” เสมอครับ

ตอนนี้ผม “พับ” โครงการที่จะเขียนหนังสือเล่ม 2 ออกตีพิมพ์เรียบร้อยแล้วครับ แต่จะ “เขียนใหม่ทั้งหมด” เป็น iOS Development Series โดยไม่เหลือเยื่อใยกับของเดิม เป็นการเขียนใหม่ 100% ทั้งตัวอย่าง เนื้อหา เรียบเรียง โดยจะทำเป็น e-Book only และขายผ่านเว็บไซต์ของ Code App และอาจจะผ่าน App ซึ่งออกแบบมาเฉพาะสำหรับหนังสือเล่มนี้ เท่านั้น โดยมีเนื้อหาแบ่งเป็นหลายเล่ม ตั้งแต่เริ่มต้นเขียนโปรแกรมด้วย Objective-C เต็มๆ เล่มเลยทีเดียว

อดใจรอกันสักหน่อยนะครับ

 

เพิ่งได้ของเล่นใหม่มาปลอบใจตัวเองหลังน้ำลด เพราะว่า Fujifilm X100 ที่เคยเขียนรีวิวไว้ที่นี่ เกิดเปียกน้ำ จากการที่วางไว้บนพื้นรถ และน้ำเข้ารถตอนหนีน้ำ แล้วก็ยังไม่ได้ส่งซ่อม GF1 ก็โดนขโมยไปเรียบร้อย แต่คิดว่าต้องมีกล้องตัวเล็กๆ คุณภาพดีหน่อยไว้พาไปไหนมาไหนง่ายๆ ….. ก็หาเรื่องเสียเงินเล่นอีก ว่างั้นเถอะ … และคราวนี้ก็มาถึงคราวของ Nikon V1 น้องใหม่ของค่าย Nikon ที่ผมใช้ D-SLR อยู่

ตอนท้ายรีวิวของ X100 ผมเขียนทิ้งท้ายไว้ว่า

ลึกๆ แล้ว ผมก็ยังหวังว่าจะได้เห็น Nikon SP กลับมาเกิดใหม่เป็นกล้องคอมแพคเซนเซอร์ใหญ่ แบบ X100 สักวัน

ฝันนี้จะเป็นจริงหรือไม่ ลองดูกันเลยครับ

หมายเหตุ: บอกไว้นิดนึงก่อน ว่าทุกรูปที่เห็นในนี้ เป็น Out-Of-Camera JPEG (นอกจากรูปที่ผมลองดึงเพื่อลอง Dynamic Range) ใช้โหมด Standard บ้าง Vivid บ้าง และเพิ่ม Sharpen ในกล้อง เพราะค่า Default มันต่ำไป ใช้ Auto White Balance ทุกรูป โดยมีปรับไปทางสีเย็นบ้างเป็นบางรูป (ปรับในกล้อง) และตั้ง Auto ISO ไว้ ถ่ายโหมด A, S, P แล้วแต่กรณี ทุกรูปย่อโดย Lightroom 3 ซึ่งจะติด Sharpen เพิ่มมาอีกนิด … คลิกบนรูปจะเห็นรูปขนาดใหญ่ขึ้น (แต่ไม่ใช่ขนาดเต็ม)


DSC_0032.jpg
เจ้าไอโฟน (V1, 10-30, 19.6mm, 1/30s, f/5.6, ISO 450)

Nikon V1 (และ J1 ด้วย) เป็นกล้องที่ผมเชื่อว่า “คนเล่นกล้อง” หลายคนดู spec แล้วส่ายหัว เบือนหน้า เพราะว่ามันเป็นกล้องที่ “ขนาดเซนเซอร์ใหญ่ไม่จริง” คือ เล็กกว่า Micro 4/3 เสียอีก เรียกได้ว่าขนาดของเซนเซอร์ของ Nikon 1 ทั้งสองตัว จะอยู่ตรงกลางระหว่าง M4/3 และเซนเซอร์กล้องคอมแพคขนาดใหญ่ (พวก LX5, P7000 อะไรพวกนี้) พอดีเป๊ะ

แล้วถ้าเซนเซอร์มันเล็ก แล้วมันมีข้อเสียอะไรล่ะ? ที่เห็นง่ายๆ ก็ 2 ข้อเต็มๆ ครับ คือ

  • การถ่ายภาพในที่แสงน้อย ซึ่งเรื่องนี้ผมเคยทำ Pencast ไปแล้วครั้งหนึี่ง ลองย้อนดูได้ที่ Pencast: Digital Camera Image Sensor 101 …. แต่เรื่องการใช้งานในที่แสงน้อยนี่ผมไว้ใจ Nikon นะ เพราะผมเคยตาค้างมาแล้วกับ D3s แล้วก็จะว่าไป P7000 ก็ไม่ได้น่าเกลียดเลย
  • เรื่อง Shallow-Depth-of-Field (DoF) หรือการถ่ายชัดตื้น ซึ่งเป็นข้อจำกัดเชิงฟิสิกส์แบบเดียวกัน ที่ว่ายิ่งเซนเซอร์เล็ก ก็ยิ่งถ่ายชัดตื้นยาก (เหตุผลอยู่นอกเหนือขอบเขตของรีวิวนี้ ถ้าสนใจวันหลังจะทำ Pencast ไม่ก็เขียนบทความให้อีกครั้ง วันนี้ขอบายก่อน)

แค่นี้ หลายคนก็ยี้แล้ว โดยไม่ต้องสนใจการใช้งานจริงแต่อย่างใด … แต่เมื่อผมลองใช้งานจริงแล้ว ผมคิดยังไงกับมันล่ะ?


DSC_0110.jpg
แมวมอง (V1, 30-110, 110mm, 1/30s, f/5.6, ISO 2800 — ยังพอดูได้)

รูปร่างและขนาด

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

  • ขนาดและน้ำหนักมันกำลังเหมาะกับมือพอดี ถ้าเล็กกว่านี้หรือบางกว่านี้ ผมคงจะถือมันลำบาก
  • “เลนส์” … เนื่องจากมันเป็นคอมแพคเปลี่ยนเลนส์ได้ ดังนั้นมีแต่บอดี้เปล่าๆ คงไม่มีประโยชน์เท่าไหร่แน่ แต่เมื่อใส่กับเลนส์แล้วมันจะบาลานซ์กันได้ดีแค่ไหน (ลองนึกถึง NEX กับเลนส์ 18-55 Kit ซึ่งผมลองจับดูแล้วรู้สึกว่ามันอยู่บนปากเหวของคำว่าบาลานซ์แล้ว ถ้าเป็นเลนส์ระยะไกลกว่านั้นคงรู้สึกมากกว่านั้นแน่ๆ หรือว่าจะลองนึกภาพ E-P, GF ใส่กับ Panasonic 45-200 ก็ได้ จะเห็นว่ามันไม่บาลานซ์เอาซะเลย นั่นแหละ ผมถึงแทบไม่เคยใช้ GF1 กับ 45-200 เลย)

ที่เคยมีการสัมภาษณ์ใครสักคน (ผมจำไม่ได้ ขออภัย) ว่า Nikon คิดเรื่องพวกนี้ “ทั้งระบบ” ไม่ใช่แค่เรื่องของเซนเซอร์ หรือขนาดตัวกล้อง เท่านั้น ท่าจะจริงแฮะ (แต่ว่าพอลองดูเลนส์ครอบจักรวาลอย่าง 10-110 แล้ว … เออ ตัวใหญ่อลังการเหมือนกัน ไม่รู้ว่าจะหลุดบาลานซ์ขนาดไหน)


DSC_0086.jpg
วาล์วน้ำหลังตึก (V1, 30-110, 74.3mm, 1/60s, f/5.0, ISO 200)

เลนส์

ไหนๆ ก็พูดถึงเรื่องเลนส์แล้ว ก็ขอเขียนถึงเรื่องนี้หน่อยก็แล้วกัน

V1 ชุดที่ผมได้มา เป็นชุด Dual Lens ซึ่งจะมีเลนส์ 2 ตัว คือ 10-30mm, f/3.5-5.6 (ระยะประมาณ 27-80mm) และ 30-110mm, f/3.8-5.6 (ประมาณ 80-300) ซึ่งครอบคลุมการใช้งานประมาณ 90% ที่ผมใช้ จะติดหน่อยก็ตรงที่หลายครั้งยังรู้สึกว่าเทียบเท่า 27mm มันแคบไปหน่อย (ตามประสาคนติด 24-70 และมี 14-24) ทำให้รู้สึกอยากได้อะไรที่มันกว้างกว่านี้ไว้สักตัวเหมือนกัน เช่น 6-13mm (ประมาณ 16-35) แต่คงจะตามมาทีหลัง เพราะว่าตอน M4/3 ออกใหม่ๆ ก็มีแต่ Prime, Normal Zoom กับ Tele เหมือนกัน แล้วก็มี 7-14 เป็น Ultra-Wide Zoom ออกมาทีหลัง


DSC_0670.jpg
สถานีสุดท้าย …​ ก่อนการเดินทางนิจนิรันดร์ (V1, 10-30, 10mm, 1/320s, f/7.1, ISO 100)

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


DSC_0104.jpg
กองใบไม้ร่วงบนพื้น (V1, 30-110, 110mm, 1/250s, f/6.3, ISO 280)

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

เรื่องเลนส์มีอีก 3 อย่างที่ไม่พูดถึงไม่ได้ ก็คือ การออกแบบ การ Focus และ Hood

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


DSC_0499.jpg
แอบมอง (V1, 30-110, 74.3mm, 1/100s, f/5.6, ISO 200)

เรื่องการโฟกัส ก็ต้องยอมรับว่า “ไวและเงียบ” ทั้งสองตัว (ผมยังไม่ได้ลอง 10-110 และ 10/2.8) แต่มาตายเอาตรง Manual Focus เนี่ยแหละ คือ มันมีบางจังหวะที่ผมอยากจะปรับโฟกัสเองแบบด่วนๆ แต่ว่าเลนส์นี้มันดันไม่มีวงแหวนปรับโฟกัสบนตัวเลนส์เลยน่ะสิ ต้องปรับผ่านกล้อง (กดปุ่ม หมุนวงแหวนด้านหลัง ทำนองนั้น) ก็เลยรู้สึกว่า “อย่าดีกว่า ช่างมัน” หัดเรียนรู้นิสัย Auto-Focus ของมันให้ชินๆ จะดีกว่า


DSC_0106.jpg
ล้มในอ้อมกอด (V1, 30-110, 51.2mm, 1/125s, f/5.0, ISO 200)

สุดท้ายก็เรื่อง Hood ซึ่งจริงๆ ก็ไม่ได้เกี่ยวกับเลนส์โดยตรงหรอก … แต่ในกล่อง V1 มันมีมาให้แต่ HB-N103 สำหรับ 30-110 แต่ไม่ยักกะมี HB-N101 สำหรับ 10-30 มาให้ด้วย ตอนแรกผมคิดว่าผมเผลอทำตกหรือเอาไปวางไว้ไหน โทรไปถามที่ร้านก็ได้คำตอบว่า ไม่มีให้ (เหมือนกันทุกกล่อง) …. อันนี้พูดไม่ออก เพราะว่า Lens Hood นี่สำคัญมากเลยถ่ายรูปย้อนแสง มันช่วยเรื่อง Contrast เรื่องอะไรพวกนี้เยอะเลย ตอนนี้ก็เลยต้องยกมือป้องแสงเอา ลำบากเปล่าๆ ก็คงต้องรอใครเอาเข้ามาขาย ไม่งั้นก็ต้องสั่งจาก e-Bay อีกแล้ว

สุดท้าย … บ่นนิดหน่อย ที่ไม่มี Fast Prime (2.8 กับ Prime นี่ผมถือว่า “ไม่ Fast” แล้วนะ) สำหรับระยะ Normal หรือ Wide-Normal เลย 10mm เทียบเท่า 28mm นี่ ผมว่าใช้ยากไปหน่อย … ได้อิทธิพลมาจาก NEX มากไปหรือเปล่าไม่รู้ .. ถ้ามีประมาณ 18/1.8 (เทียบเท่า 50mm) จะน่าสนใจมาก แถมเลขด้วยซะด้วยนะ


DSC_0144.jpg
Lonely Chair (V1, 30-110, 110mm, 1/250s, f/6.3, ISO 180)

ก็คงต้องรอ Adapter ที่จะทำให้พวกเลนส์ AF-S จาก D-SLR มันใช้ได้นะ คิดๆ ดู 50/1.8 ก็ตัวไม่ใหญ่เท่าไหร่ เอามาใส่นี่ได้ระยะ 135 เลยทีเดียว (แถมได้ DoF เทียบเท่ากับ 135mm เปิดที่ประมาณ f/4.8 ซึ่งก็แคบพอดู ไม่น่าเกลียดเท่าไหร่เลย)

การใช้งาน

เท่าที่ลองใช้งานดู เห็นได้ชัดเจนว่า V1 ไม่ได้ถูกสร้างมาสำหรับพวกนักเล่นกล้อง ที่ชอบควบคุม ชอบเล่น DoF ชอบปรับค่าโน่นนี่ อะไรพวกนี้เลย แต่มันถูกสร้างมาสำหรับคนที่ต้องการยกกล้องขึ้นมาถ่าย ถ่าย ถ่าย แล้วก็ถ่าย ซะมากกว่า พูดง่ายๆ ว่าพวกชอบ D-SLR อาจจะหงุดหงิด จะปรับอะไรก็ต้องเข้าเมนู แต่ก็ยังดีนะที่เมนูมันไม่ซับซ้อนเท่าไหร่ ตรงไปตรงมา ง่ายพอควร ปรับไม่กี่ครั้งก็ชินแล้วว่าอะไรอยู่ตรงไหน ไม่ต้องอะไรมาก ขนาดการจะปรับ PASM ยังต้องเข้าเมนูเลย … แต่ว่าพวกที่เคยใช้คอมแพคตัวเล็กๆ (ที่ไม่ใช่พวก Advanced) มาก่อนจะรู้สึกเฉยๆ


DSC_0156.jpg
ถ่ายรูปวาด (V1, 30-110, 89.9mm, 1/10s, f/5.6, ISO 3200 — ก็ยังพอรับได้)

ถ้าใครเคยใช้กล้องคอมแพคของ Nikon มาก่อน ก็คาดหวังได้ไม่ยากว่ามันจะมีอะไรให้ปรับได้บ้าง นอกจาก PASM แล้วก็มีพวก Picture Control, Auto ISO, Vibration Reduction, อะไรพวกนี้น่ะแหละ แต่ที่ผมผิดหวังมากที่สุดก็คือ การตั้ง Auto ISO นี่เราไม่สามารถกำหนด “ความไวชัตเตอร์ต่ำสุด” ได้เลย นั่นคือ กล้องมันจะเลือก ISO ให้เราเองตามใจมัน โดยที่เราไม่สามารถควบคุมอะไรเลย อันนี้เป็นผลเชิงลบอย่างมากสำหรับผม เพราะว่าโดยปกติแล้วผมจะชอบตั้งความไวชัตเตอร์ต่ำสุดไว้เหมาะกับประเภทภาพที่จะถ่าย เช่น ถ้ารู้ว่าจะไปที่ๆ ต้องถ่ายคนเยอะหน่อย ก็จะตั้งความไวไว้สูงหน่อย (อย่างน้อย 1/125s) ถ้าลดลงต่ำกว่านี้เมื่อไหร่ เตะ ISO ขึ้นได้เลย ยอม ..​ แต่ว่าตัวนี้นี่ ไม่มีการตั้งพวกนี้เด็ดขาด ก็เลยต้องเลี่ยงไปใช้โหมด Shutter-Priority แทนอย่างเลี่ยงไม่ได้ (ปกติผมจะใช้โหมด Aperture-Priority และตั้ง Auto-ISO พร้อมกำหนด Shutter-Speed ต่ำสุดเอาไว้)


DSC_0120.jpg
สงบ (V1, 30-110, 71.6mm, 1/15s, f/5.6, ISO 800)

อ่อ แล้วก็ทุก Option จะแทบไม่มีปรับละเอียดนะ เช่น Active D-Lighting จะมีแค่ On/Off ไม่มีรายละเอียดแต่อย่างใด

ที่ผม “ไม่ชอบเลย” กับการใช้งาน V1 ก็คือ ปุ่มเลือกรูปแบบการถ่าย (ภาพนิ่ง ภาพเคลื่อนไหว ฯลฯ) มันอยู่ใกล้ตำแหน่งวางนิ้วมือ และแม่เจ้าประคุณก็เปลี่ยนง่ายซะเหลือเกิน ไปแตะๆ หน่อยก็เปลี่ยนซะแล้ว ยกกล้องขึ้นมากดชัตเตอร์ คิดว่าจะถ่ายภาพนิ่ง กลายเป็นภาพเคลื่อนไหวซะงั้น ใครออกแบบตรงนี้สมควรโดนด่าจริงๆ …. แล้ว Dial ก็มีไม่เต็มวง แบบนี้จะช่วยเอา PASM มาใส่ไว้ตรงนี้หน่อยก็ไม่ได้ (เหมือนพวก D-SLR ที่ยังมี PASM อยู่ปนกับ Scene-Mode เลย)


DSC_0486.jpg
นางรำ (V1, 30-110, 110mm, 1/500s, f/6.3, ISO 100)

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

แต่ Auto Focus มันไวจริงๆ นะ ;-) แล้วก็ถ้าเลือกใช้ Electronic Shutter ล่ะก็ เงียบเป็นเป่าสาก ไม่มีเสียงใดๆ ทั้งสิ้น และเนื่องจากเลนส์ Tele ระยะไกล (เทียบเท่า 80-300) มันตัวเล็กมาก มาก มาก ดังนั้นมันเป็นกล้อง Sniper ชั้นดีชัดๆ .. โดยเฉพาะอย่างยิ่งถ้าใช้ J1 ที่สีสันเป็นมิตร ไม่เป็นภัยนะ ยิ่งดูโอเคเข้าไปอีก


DSC_0380.jpg
เณรกระซิบ (V1, 30-110, 110mm, 1/200s, f/7.1, ISO 100)

ภาพที่ได้

หลายคนคงสนใจตรงนี้ที่สุด (หลายคนเลิกสนใจตั้งแต่ spec แล้ว)


DSC_0236.jpg
หลับปุ๋ย (V1, 30-110, 53.1mm, 1/15s, f/5.0, ISO 900)

จากข้อจำกัดของเซนเซอร์อย่างที่รู้กันดี ทำให้ผมบอกได้ว่า ถ้าเราคาดหวังคุณภาพระดับ D-SLR ละก็ ผิดหวังแน่นอน ก็แหงล่ะ ขนาดเซนเซอร์มันใกล้เคียงกับคอมแพคมากกว่า D-SLR นี่นา แต่มันทำได้ขนาดไหนล่ะ?

จากการใช้งานจริงๆ ผมพบว่ามันทำได้ดีกว่าที่ผมคาดไว้ … โดยความคาดหวังของผมคือ “P7000 ที่ถ่าย ISO สูงดีกว่า P7000 อยู่ 1 Stop และมี DoF ที่ตื้นกว่า P7000 ที่ความยาวโฟกัสเทียบเท่ากันในระบบ 35mm อยู่ 1 Stop เช่นเดียวกัน” พูดง่ายๆ ว่า P7000 ใช้ ISO 1000 ได้ผลเป็นไง หมอนี่ต้องใช้ ISO 2000 ได้ผลประมาณนั้น และ P7000 ที่ทางยาวโฟกัสเทียบเท่า 140mm เปิด f/5.6 ได้ผลยังไง หมอนี่ที่เทียบเท่า 140mm เปิด f/8 ต้องได้ผลประมาณนั้น


DSC_0454.jpg
เล่นลม (V1, 30-110, 110mm, 1/1250s, f/8, ISO 100)

เริ่มจากเรื่อง ISO สูงกันก่อน โดยหลังจากถ่ายรูปใช้ Auto ISO โดยใช้เพดานบนสำหรับ ISO คือ 3200 ผมพบว่าผมรับ ISO สูงของกล้องตัวนี้ได้สบาย ถ้าจะเอาแค่โพสท์ภาพลงเว็บ หรือว่าใช้ภาพทั่วๆ ไป ไม่ได้พิมพ์อะไรใหญ่มาก ไม่ได้โพสท์ Crop 100% ลงเว็บ ผมว่ามันใช้งานได้สบายๆ ถึง ISO 3200 นะ ปกติภาพลงเว็บก็ไม่ค่อยจะเกินกรอบขนาด 800×800 กันอยู่แล้ว แต่แน่นอนว่าเมื่อดูที่ 100% ก็จะเห็น Noise มาเพียบ และรายละเอียดหายไปบ้าง แต่สำหรับการใช้งานของผมกับกล้องตัวนี้ ก็ไม่มีปัญหาอยู่แล้ว และผมเชื่อว่ากลุ่มเป้าหมายของกล้องตัวนี้ก็คงไม่มีปัญหาเช่นกัน


DSC_0248.jpg
เงาสะท้อนในกระจก (V1, 30-110, 110mm, 1/125s, f/5.6, ISO 500)

ถัดมาก็เป็นเรื่องสีสันของภาพ …. และนี่คงจะเป็นคำตอบสำหรับสิ่งที่ผมค้นหามานานเสียที เพราะว่ามัน “น่าจะ” ให้สีได้ “Nikon” อย่างที่ผมคุ้นเคยมากพอสมควร แต่ว่าจะเป็นแบบนั้นจริงหรือเปล่าก็ไม่รู้ เพราะผมยังมีความรู้สึกนิดๆ ว่ามันต่างจากภาพจาก D3s ที่ผมคุ้นเคยอยู่หน่อย อาจจะเพราะว่า Auto White Balance มันให้ผลต่างกันก็เป็นได้ อันนี้เป็นความรู้สึกล้วนๆ เพราะว่ายังไม่ได้ลองเอา D3s มาถ่ายภาพเดียวกันเทียบดู แต่สำหรับ Auto White Balance นี่เราสามารถปรับแต่งค่าของมันใน 2 แกน (Temp และ Tint) ได้ไม่ยาก ก็ลองๆ ปรับเอาตามที่ชอบ เช่น ผมรู้สึกว่าภาพมัน “อุ่น” เกินไป ก็ไปปรับ Auto White Balance ให้มัน “เย็น” ลง 1 ช่อง เป็นต้น .. แต่สรุปว่า สีสวยครับ เขียวเป็นเขียว ฟ้าเป็นฟ้า ดูเป็นธรรมชาติ อาจจะติดอุ่นนิดๆ


DSC_0306.jpg
ประจันหน้า (V1, 30-110, 71.6mm, 1/125s, f/4.8, ISO 160)

ถัดมาก็เรื่อง “ชัดตื้น” ที่หลายคนฟันธงว่า “ไม่ได้” ตั้งแต่เห็น spec ของเซนเซอร์ (และเลนส์ที่ออกมา ไม่ใช่ Fast Tele-Prime) ทั้งที่จริงๆ แล้วการทำชัดตื้นขึ้นกับปัจจัยไม่กี่อย่าง คือ ระยะห่างสัมพัทธ์ระหว่างวัตถุ ฉากหลัง และตัวรับแสง ซึ่งพอเป็นเซนเซอร์ขนาดเล็ก ก็ต้องใช้เลนส์กว้าง และ Crop ตรงกลางมาใช้งาน (ที่เรียกว่า Crop factor ว่ากี่เท่าๆ น่ะแหละ กรณีของ APS-C คือ 1.5 M4/3 คือ 2 และ Nikon 1 คือ 2.7) ทีนี้พอเป็นเลนส์กว้าง จะให้ระยะห่างสัมพัทธ์มันได้มากพอที่จะทำชัดตื้น ก็ใช้วิธีง่ายๆ คือ อยู่ใกล้วัตถุที่จะถ่ายให้มากที่สุด จ่อได้ยิ่งดี ใช้รูรับแสงกว้างที่สุด และเลือกฉากหลังที่อยู่ไกลที่สุด และถ้าเป็นเลนส์ทางยาวโฟกัสยาว จะช่วยได้มากขึ้น

จะเห็นว่า ถ้าเรารู้ว่าเราทำอะไรอยู่ ก็เล่นชัดตื้นได้ไม่ยากไม่เย็นอะไรเท่าไหร่


DSC_0730.jpg
ผลิใบ (V1, 30-110, 110mm, 1/400s, f/5.6, ISO 100)

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


DSC_0360.jpg
คุณพ่อ (V1, 30-110, 110mm, 1/200s, f/6.3, ISO 400)

จะเห็นว่าฉากหลังที่ไกลหน่อย เบลอจะไม่กวนใจกวนสายตาก็จริง แต่ตรงต้นไม้เนี่ยสิ “รก” มาก … และที่สำคัญ เจ้าเลนส์ 30-110 นี่ไม่ใช่เลนส์ที่ Bokeh สวยแต่อย่างใดเลย ลักษณะแย่ๆ ของ Bokeh เห็นชัดเจนมาก ไม่ว่าจะเป็นพวก Double-Line หรือพวกขอบหนานุ่มยัดไส้กรอก ดังนั้นยิ่งต้องเลือกฉากหลังดีๆ เพราะว่าถ้ามันไกลไม่พอแล้ว มันจะรกจนบางทีรู้สึกว่า “แล้วจะเบลอทำไมวะ ยิ่งเบลอยิ่งรำคาญ”

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


DSC_0513.jpg
เศร้ากันถ้วนหน้า (V1, 10-30, 16.3mm, 1/50s, f/5.6, ISO 400)

ผมเคยถ่ายรูปเวลาไปเที่ยวให้กับคนในกลุ่มเป้าหมายที่ว่านี้ด้วย D3s แล้วฉากหลังมันเบลอนิดหน่อย ด้วยธรรมชาติของกล้อง Full-Frame ถึงจะเปิดถึง f/8 ก็ยังมีปัญหา … คนในภาพบอกผมว่า “ภาพเสีย เพราะมันมีส่วนเบลอ” นี่แหละคือ “กลุ่มเป้าหมาย” ก็ลองคิดดูขำๆ เล่นๆ ว่ารูปที่ต้องการชัดทั้งรูปแบบข้างบนนี้ ถ้าใช้ Full-Frame ถ่าย จะต้องเปิดรูรับแสงเท่าไหร่


DSC_0638.jpg
ดอกไม้ช่อสุดท้าย (V1, 10-30, 30mm, 1/125s, f/5.6, ISO 110)

เรื่อง Dynamic Range เป็นอะไรที่ผมยังไม่ได้ลองแบบจริงจัง ว่ากล้องตัวนี้เก็บรายละเอียดในเงาและในจุดจ้าได้ดีแค่ไหน โดยเฉพาะอย่างยิ่งในกรณีถ่าย JPEG (คนอ่าน blog นี้จะทราบว่าผมถ่าย JPEG เป็นหลัก และถ่าย RAW เมื่อจำเป็นจริงๆ คือต้องตั้งใจจะเก็บ RAW เพราะจะเอาไปทำอะไรบางอย่างจริงๆ เท่านั้น) แต่เท่าที่ลองเล่นๆ ดู ก็พบว่ายังดึงโน่นตบนี่ได้บ้าง อาจจะไม่ได้ดีขนาดกล้องอีกหลายตัว ซึ่งก็แน่นอนตามธรรมชาติของเซนเซอร์ ลองดูตัวอย่าง 2 รูปต่อไป


DSC_0398-before.jpg
JPEG จากกล้อง (V1, 10-30, 30mm, 1/320s, f/5.6, ISO 100)

ลองทำรูปนี้ง่ายๆ ด้วยการดึง Shadow ตบ Highlight และปรับโน่นนี่นั่นนิดหน่อยแบบลวกๆ ใน Lightroom 3 ก็จะเห็นว่าหลายอย่างยังอยู่


DSC_0398-after.jpg
ลองปรับ Highlight, Shadow ง่ายๆ ใน LR3

ส่งท้าย

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


DSC_0726.jpg
ใบไม้ในสวน (V1, 30-110, 110mm, 1/250s, f/5.6, ISO 200)

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


DSC_0679.jpg
แม้ร่างตน เขาก็เอา ไปเผาไฟ (V1, 30-110, 30mm, 1/1600s, f/4.0, ISO 100)

ไว้ F-Mount Adapter ออกมาเมื่อไหร่ ผมคงจะกลับมาเขียนถึงตัวนี้อีกครั้ง ว่าเป็นอย่างไรบ้าง สำหรับตอนนี้คงต้องจบแค่นี้ก่อนครับ


DSC_0656.jpg
ลาก่อนครับ คุณยาย (V1, 10-30, 15.7mm, 1/500s, f/5.6, ISO 100)

 

ทีมงาน Code App จัด Training สำหรับ iOS 5 SDK & Xcode 4.2 ครับ จัดเต็ม 4 วัน 17, 18, 24, 25 ธันวาคม รายละเอียดดูได้จากเว็บไซต์ของ Code App ครับ

พัฒนา iOS Application ด้วย iOS 5 SDK & Xcode 4.2

หลังจากนี้จะมี Training ระดับ intermediate และ advanced แบบเจาะเฉพาะเรื่องมาเรื่อยๆ ครับ เช่น Data Persistent & Core Data, Web Services, Core Image, Social Network Applications เรื่องละ 1-2 วัน คอยติดตามนะครับ แต่สำหรับแต่ละเรื่องพวกนี้จะไม่ลงพื้นฐานแล้ว จะเจาะเข้าเรื่องเลย เพราะว่าผมไม่อยากทำ Training แบบกว้างๆ เรื่อยๆ แต่ไม่ได้อะไรแบบลงลึกเท่าไหร่

สำหรับคอร์สนี้ ลงทะเบียนได้ในลิงค์ข้างบนครับ

 

6 ธันวาคม 2554 … วันที่คุณยายได้จากไปอย่างไม่มีวันกลับ

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


DSC_6090.jpg

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

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

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


DSC_5968.jpg

ประกอบกับการที่คุณยายรักในหลวงมาก … อุตส่ารอให้ผ่านวันที่ 5 ธันวาคมไปเสียก่อน เพราะพอผ่านวันเฉลิมฯ ไปไม่กี่นาที คุณยายก็จากไปสงบ

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

ผมแค่อยากบอกว่า … คุณยายครับ หลับให้สบายนะครับ ไม่ต้องห่วงหลาน หลานทุกคนของคุณยายดูแลตัวเองได้


DSC_7517.jpg

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

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

6 ธันวาคม 2554 … วันที่คุณยายได้อยู่กับหลานๆ ทุกคนพร้อมๆ กันได้ในทุกที่ ไม่ว่าหลานยายแต่ละคนจะอยู่ที่ไหน ไม่มีข้อจำกัดของเวลา ร่างกาย และสังขารมาเป็นกำแพงกั้น


DSC_5974.jpg

คุณยายเหนื่อยมาเยอะแล้วครับ หลับให้สบายนะครับ คุณยายจะไม่ต้องเหนื่อยอะไรอีกแล้ว คุณยายได้ตื่นแล้ว จากฝันที่เรียกว่า “ชีวิต”

 

หนีน้ำ 2554

On November 30, 2011, in Personal, by rawitat

วันที่ 28 ตุลาคม 2554 วันที่ชีวิตผมเริ่มเปลี่ยนไปอีกครั้ง

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


photo1.JPG
จากระเบียงชั้นสอง ไม่กี่วันก่อนจะตัดสินใจหนีออกมา



photo-2.jpg
ทางเข้าหมู่บ้าน ไม่กี่วันก่อนหนีออกมา จุดนี้ความสูงพื้นที่มากกว่าตรงบ้านประมาณหนึ่งฟุต

แต่มันทำให้ผมพบความจริงง่ายๆ หลายอย่างมาก กับวิถีชีวิตที่เปลี่ยนไป … และมันอาจจะเปลี่ยนชีวิตผมไปแบบไม่มีวันกลับ

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

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

จากการที่ไม่มีรถ และถนนเส้นทางที่รู้จักในการไปที่ต่างๆ ถูกตัดขาดหลายเส้น ทำให้ชีวิตผมเปลี่ยนไป ….

เมื่อเช้านี้ ผมได้โพสท์ใน Facebook ของตัวเองว่า

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

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

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

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

คงบรรยายความรู้สึกตัวเองที่มีในขณะนี้ได้พอสมควร

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

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

ซึ่งมันก็เหมือนกับชีวิตของผมในช่วงหนีภัยน้ำท่วมนี้

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

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

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

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

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

ปิดด้วยรูปลูกชายสุดที่รัก ผู้ลี้ภัยหมายเลข 1. ที่พาหนีออกมาตัวแรกเลย


iphonephoto1.jpg

 

ขอเขียนอะไรเพิ่มเติมให้กับบทสัมภาษณ์ผมที่ลงหนังสือพิมพ์กรุงเทพธุรกิจเมื่อวันจันทร์ที่ 3 ตุลาคม (วันนี้แหละ) สักนิดหน่อย

Link: “รวิทัต ภู่หลำ” เผยเคล็ด สร้างซอฟต์แวร์ต้องลงมือ “ทำ” (กรุงเทพธุรกิจ)

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

แต่มีประเด็นสุดท้าย ที่เกี่ยวข้องกับ Silicon Valley ที่ผมคงต้องขอขยายความเพิ่มอีกนิด ว่าทำไมผมถึงต้องพูดถึงมันในการสัมภาษณ์นั้นด้วย

เพื่อให้เข้าใจง่ายๆ ผมขอย้อนกลับไปตอนที่ผมเคยให้สัมภาษณ์ออกรายการ “แบไต๋” เมื่อวันอาทิตย์ที่ 25 กันยายน ที่ผ่านมา ว่าจริงๆ แล้วในวงการพัฒนาโปรแกรมที่โตได้และยั่งยืนนั้น มันมีองค์ประกอบสำคัญด้วยกัน 4 อย่าง คือ

  1. Skill ซึ่งถ้าไม่มีแล้วมันก็ทำอะไรได้ไม่ได้ ต่อให้ฝันได้เก่งแค่ไหน เปลี่ยนมันให้เป็นความจริงไม่ได้ ก็เท่านั้น และอย่าคิดว่าไม่เห็นจำเป็นเลย แค่คิดๆ ว่าอยากได้อะไร แล้วก็ไปจ้างคนอื่นทำๆ ก็หมดเรื่อง … ถ้ากรณีแบบนี้จะเกิดเรื่องเพ็ดโด้ๆ ขึ้นมากมาย (คิดว่าต้นตอหลักๆ ของเรื่องการ์ตูนเพ็ดโด้มันมาจากไหนล่ะครับ มันเริ่มต้นมาจากคนที่อยากได้ แต่ประเมินอะไรไม่เป็นเลย ทั้งเวลา ค่าใช้จ่าย ความยากง่าย ฯลฯ ตัวอย่างเช่น เมื่อ 2-3 ปีก่อนเคยมีคนต้องการจะจ้างผมทำเว็บแบบเฟสบุ๊ค ในเวลา 3 เดือน และราคาแค่ครึ่งแสน มาแล้ว)
  2. Budget ยังไงเราก็ยังต้องกินอะไรบ้าง ต้องมีความเป็นอยู่ที่พออยู่ได้บ้างตามอัตภาพ ผมไม่ได้บอกว่าเราต้องรวย แต่แค่ไม่ต้องจนถึงขนาดอยากจะกินมาม่ารสอื่นนอกจากรสที่มันถูกๆ ยังต้องคิด หรือไม่กล้าเดินเข้าร้านอาหารตามห้าง ทั้งๆ ที่เด็กมหาวิทยาลัยที่ยังแบมือขอเงินพ่อแม่เดินเข้ากันเยอะแยะ เท่านั้นไม่พอ ค่าหนังสือ ค่า Video Screencast ดีๆ ค่าอุปกรณ์ที่จะใช้ในการทดสอบโปรแกรม ค่าการ “ขยายทีม” (สำคัญนะครับ … พูดง่ายๆ ก็เงินเดือนเพื่อนร่วมงาน)
  3. Marketing ต่อให้ทำโปรแกรมเจ๋งๆ มาเยอะแค่ไหน โปรแกรมที่คนไม่รู้จัก ก็คือโปรแกรมที่คนไม่ซื้อ ผมพูดถูกมั้ยล่ะ ดังนั้นจะให้คนรู้จักได้ยังไง การทำ Marketing เป็นเรื่องสำคัญ และจริงๆ แล้วมันก็เกี่ยวข้องกับเรื่อง Budget ด้วยน่ะแหละ ตอนนี้บอกตรงๆ ว่าผมยังว่าจะต้องจ้างทำการตลาดให้กับ App บางตัวของผมบ้างแล้วเลย สิ่งนี้จะส่งผลโดยตรงกับเรื่อง Budget ด้วย
  4. Community (และ Environment) เรื่องนี้ “สำคัญที่สุด” ในบรรดาทั้ง 4 เรื่อง ในการจะทำอะไร “สภาพแวดล้อม” ที่เอื้ออำนวยในการทำสิ่งนั้นๆ เป็นเรื่องสำคัญมาก ตัวอย่างเช่น พวกลูกหมอ หรือเด็กที่เกิดและโตในโรงพยาบาล จะมีความต้องการเป็นหมอเฉลี่ยแล้วมากกว่าเด็กอื่นๆ เป็นต้น อันนี้ผมพูดได้จากประสบการณ์ตรงของตัวเอง ว่าสภาพแวดล้อมที่มีการสร้างนวัตกรรมตลอดเวลา เป็น Open & Friendly competition คือ แต่ละคนบอกกันตลอดว่ากำลังทำอะไรอยู่ สิ่งที่แต่ละคนทำ มันเสริมกัน มันคล้ายกัน มันต่างกัน อะไรใช้ด้วยกันได้ อะไรที่เปิด source ให้ช่วยกันพัฒนา อะไรที่ ฯลฯ และเมื่อต่างคนต่างทำได้ ต่างคนต่างเรียนรู้ ก็นัดกันมาทำ Conference ปล่อยของ และสร้าง Partnership ใหม่ ตลอดเวลา เป็นสิ่งที่ผม “คุ้นเคยมาก ที่ญี่ปุ่น” และเป็นสิ่งที่ผมไม่ค่อยจะเห็นเท่าไหร่เลย ในบ้านเรา

Link: คลิปรายการแบไต๋ ผมออกตั้งแต่นาทีที่ 1:08:00​ โดยประมาณ เป็นต้นไป

บ้านเราสนใจแต่เรื่อง Skill ของคนเป็นหลัก “มากเกินไป” คิดว่าคนเก่ง จะอยู่ได้ สร้างสรรค์งานได้ แต่ไม่มีปัจจัยอื่นๆ ที่เอื้ออำนวยเลย โดยเฉพาะอย่างยิ่งข้อสุดท้าย คือเรื่อง Environment และ Community ซึ่งเมื่อผมพูดถึงคำว่า Community นี่ผมไม่ได้หมายถึง การที่เราแค่รู้จักกัน หรือมีรายชื่อ และมีการพบปะกันนานๆ ครั้ง หรือเกาะกันแบบหลวมๆ แบบบ้านเรา และปกติก็ต่างคนต่างอยู่กันอยู่ดี แต่ผมกำลังพูดถึง Virtual Learning Organization ของคนที่ทำงานด้านเดียวกัน ใน Environment ที่เอื้อการสร้างสรรค์ แบบ Open & Friendly.

ผมพูดถึง Silicon Valley เพราะมันเป็นตัวอย่างในการมีสิ่งเหล่านี้ครบ ตั้งใจพูดถึงปัจจัยอีก 3 ตัว (เรื่อง Budget จะเป็นเรื่องของ Venture Capital) ว่าบ้านเราขาดอะไรไปบ้าง และคงเป็นความฝันของคนทำงานด้านนี้ ที่จะไปสัมผัส Community & Environment ที่นั่นสักครั้ง …​ เหมือนกับคนทำงานด้านแฟชั่น คงจะไม่ได้อะไร หากจะเป็นแต่คนเก่งอยู่ใน “กรุงเทพเมืองแฟชั่น” (ตั้งใจประชด) แต่ไม่เคยสัมผัสงานในมิลานเลยสักครั้ง อะไรทำนองนี้แหละครับ