The search for ‘Edge’

25. July 2010

280px-Roulette_-_detail

 

ถ้ามีเกมเกมนึงมีกฎว่า โยนเหรียญเที่ยงตรงแล้วออกหัว จะได้ 1.001 บาท แต่ถ้าออกก้อย จะต้องเสียเงิน 1.000 บาท มันจะเป็นเกมที่น่าเล่นมากๆ เพราะเหรียญเที่ยงตรงยิ่งโยนมากเท่าไหร่ จำนวนที่ออกหัวต่อที่ออกก้อยก็จะเข้าใกล้ 1 มากกว่านั้น

ในกรณีแบบนี้ จะเห็นว่าผู้เล่นค้นพบ ‘กลยุทธ’ ที่จะทำให้ตัวเองได้กำไร (เสมอ) จากการพนันได้ พูดอีกแบบว่าผู้เล่นมี ‘Edge’ สำหรับเกมโยนเหรียญอันนี้

เรื่องอื่นๆที่ไม่ใช่เรื่องการพนันก็คล้ายๆกัน

  • ร้านอาหารมี edge เหนือร้านอื่นคือทำเลดี ลูกค้าติดปากอาหาร พ่อครัวเก่ง ….
  • กระเป๋า/ นาฬิกา/ เสื้อผ้าแบรนด์ดังมี edge คือคนติดแบรนด์ เป็นค่านิยมของสังคม
  • เซลล์มี edge คือหน้าตาดี พูดเก่ง เครือข่ายเยอะ โน้มน้าวเก่ง
  • บริษัทโทรคมนาคมมี edge คือได้สัมปทาน จำนวนคู่แข่งมีจำนวนจำกัด
  • ผู้นำเข้าสินค้ามี edge คือช่องทางนำเข้าที่ต้นทุนต่ำกว่ารายอื่น
  • เจ้าของ software house มี edge คือ connection เยอะมากคอย source งานให้เรื่อยๆ
  • เทรดเดอร์มีอัลกอริทึมจะทำให้เทรดได้โดยได้กำไรในระยะยาวและจำกัดความเสี่ยง
  • …. มากมาย

ถ้าไม่รู้สึกว่ามี edge ในสิ่งที่กำลังจะทำแล้ว โอกาสจะประสบความสำเร็จในสิ่งที่ทำคงมีน้อย ทุกวันนี้คุณมี ‘edge’ ในสิ่งที่ตัวเองทำ (หรือกำลังจะทำ) อยู่รึเปล่า ?

Life ,

เขียนโค้ดละลายแม่น้ำ

30. August 2009

ตั้งแต่เริ่มทำงานมา ตามลักษณะงานที่มันเป็นการเขียนโปรแกรมสั้นๆอยู่แล้วซึ่งส่วนใหญ่ก็เป็นการดัดแปลงโปรแกรมตัวอย่าง ทำให้ผมเขียนโค้ดน้อยลงอย่างมากเทียบกับสมัยเรียน (เลยต้องมาระบายอารมณ์ตามบลอกตามที่ท่านเห็น ฮะๆ)

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

  • โค้ดสมัยเรียนค่ายโอลิมปิก
  • โปรแกรมรายรับรายจ่ายง่ายๆบน Windows Mobile และโปรแกรมอื่นๆที่เคยส่ง บ.สามารถ
  • โปรแกรม ChemLive! ที่ส่ง MS Imagine Cup
  • โปรเจควิชา Database + Software Engineering ที่คณะ
  • โปรเจคที่เคยส่งงาน RFID ของ NECTEC
  • โปรเจคย่อยๆมากมายในวิชาเรียนอื่นๆ เช่น Fund Dist, Computer Security, Operating System, Computer Graphics, Image Processing, ..

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

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

  • ผมไม่มั่นใจในงาน งานบางอันที่ต้อง “รีบปั่นรีบส่ง” หลังงานเสร็จ ผมจะคิดในใจ (ดังๆ) ว่า “ของมันไม่ดีจริง” แล้วหลังจากนั้นถ้ามีโอกาสอะไรที่จะเอาไป “ต่อยอด” งานได้ ผมจะรู้สึกหวั่นๆ เหมือนกำลังโดนจับผิด หลายครั้งมีโอกาสดีๆเช่น บ.ข้างนอก อยากให้เอาโปรแกรม ChemLive! ไปทำต่อ ผมก็ (น่าจะ) เป็นคนเดียวในทีมที่ไม่สบายใจเอาซะมากๆ ผมไม่อยากแบกรับภาระจากการซ่อมบำรุงงานที่ผมไม่มั่นใจ งานบางชิ้นในลักษณะนี้ก็เลยหายไปจากสารบบโดยปริยาย –..-‘’ เป็นนิสัยเสียที่น่าจะโดนเพื่อนๆร่วมทีมว่าอยู่เยอะเหมือนกัน
  • งานไม่มั่นใจในผม หลายครั้งการเอางานที่เราคิดว่า “นี่ทำมาดีมากแล้วนะ” ไปส่งประกวด แล้ว Feedback จากกรรมการมันไม่เป็นไปอย่างที่คิด มันก็ทำให้เสียกำลังใจและพาลไม่อยากทำต่อได้ครับ ตัวอย่างที่เข้าเคสนี้คือโปรแกรม RFID ที่ค่อนข้างจะทุ่ม effort กันสูงมากทั้งทีม แต่มีปัญหาเรื่องการนำเสนอ (อ่านต่อที่ “การนำเสนอสำคัญกว่าโค้ด”)
  • ผมกำลังทำการบ้านส่ง ผมไม่ได้เขียนโค้ด อันนี้เป็นพวกโปรเจคในคณะ ที่ส่วนใหญ่จะมีเดดไลน์และ scope ชัดเจน มันต่างจาก “ปั่นส่ง” ในข้อแรกตรงที่ งานในลักษณะนี้ มันเป็น “ปั่นส่ง” จากเริ่ม คือก็ทำให้เสร็จๆไปงั้น แต่ในเคสแรกตอนแรกอาจจะทำด้วยความสนุก แต่ตอนหลังโดนบีบให้ปั่น พอส่งเสร็จก็ลืมไปเลยว่าเคยทำ เช่นพวก Database หรือ Software Engineering

จวบจนสองโปรเจคสุดท้ายก่อนเรียนจบ คือ Game Programming กับ Senior Project  ผมก็รู้สึกว่าได้สร้าง “คุณค่า” ไว้พอสมควร

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

ส่วน Senior Project ถึงแม้ผลลัพธ์มันจะออกมาไม่ดีเท่าไหร่และได้ชมเชยใน NSC แต่ผมก็รู้สึกว่าได้ตั้งใจทำเต็มที่แล้ว และทุกอย่างที่ทำทุกวันนี้ก็เข้าถึงได้โดยง่ายเพราะเอาไปวางไว้บน Project Hosting หลายครั้งยังต้องเข้าไปดู Code C++ ที่ตัวเองเขียนอยู่เลย (เพราะบางทีจำไม่ได้ว่าเขียนยังไง - -‘’)

ผมมีแนวทาง (ที่ตอนนี้ใช้อยู่เอง) ในการเพิ่ม “คุณค่า” ให้โปรแกรมที่เขียนดังต่อไปนี้

    1. พยายามทำให้ Source Code ที่เขียนและงานที่ทำเข้าถึงง่ายที่สุด สมัยนี้มีเว็บประเภท Project Hosting ให้ใช้เยอะแยะ ทั้ง Git Hub, Google Code, Code Plex, Source Forge (แต่ก่อนประเทศไทยมี Code Bank ด้วย แต่ไม่รู้เจ๊งไปรึยัง)
    2. จดบันทึกสิ่งที่ทำอยู่ ไม่ต้องละเอียดมาก (แต่ก็อย่าแย่ถึงขั้น “โอ้ววว ไพธอนหล่อแสรดดด” –..-‘a) เอาแบบไว้อ่านคนเดียวก็ได้ จะ Tweet หรือจะ Blog ก็น่าจะเวิร์คเหมือนกัน อันนี้จะเหมือนการ Document ตลอดเวลา แล้วตอนหลังเวลาติดปัญหาเดียวกันจะได้กลับมาดูได้ นอกจากนั้นอาจจะได้วิธีการที่ดีกว่าเดิมจากเพื่อนๆที่มาอ่านอีก (แนะนำวิธีจด)
    3. วิ่งเข้าหาสิ่งใหม่ๆให้บ่อยๆ ในงานที่ทำเล่นๆหรือที่เดดไลน์มันไม่บีบคั้นมาก ลอง “เลือก” อะไรที่มันแตกต่างจากเดิม (และดูดีมีอนาคต :P) มาลองบ้างดีมั้ย?? สมัยนี้มีพวก Framework, Libraries, ภาษาใหม่ๆ ให้ลองใช้เยอะแยะ
    4. อย่าปั่นงาน ..ทำยากโคดว่ะ

ขอให้สนุกกับการเป็นนักเขียนโค้ด “เชิงคุณค่า”

Direction , ,