วันพฤหัสบดีที่ 11 มิถุนายน พ.ศ. 2558

เขาเลือกคนประเภทไหนเข้าทำงาน?

บริษัทนวัตกรรมระดับโลก เขาเลือกคนประเภทไหนเข้าทำงาน?

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

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

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

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

(ฉพาะถ้อยคำที่โดนใจ)**http://www.bangkokbiznews.com/blog/detail/624195

วันพฤหัสบดีที่ 19 กุมภาพันธ์ พ.ศ. 2558

มาตรฐานที่ต้องพัฒนา

มาตรฐาน Http/2 

เมื่อการพัฒนาด้านต่างๆ ก็เปลี่ยนตามกาลเวลา มาตรฐานที่ใช้กันอยู่จำต้องมีการพัฒนาให้เท่าทัน
เพื่อประสิทธิภาพที่ดีขึ้นเรื่อยๆ โพรโทคอล HTTP/2 (เดิมเรียกว่า HTTP/2.0) ถูกร่างขึ้นจาก
โพรโทคอล SPDY/2 ที่กูเกิลพัฒนามาระยะเวลาหนึ่งแล้ว ซึ่งมีการเปลี่ยนแปลงมาตรฐาน
จาก HTTP/1.1 ที่ถูกประกาศใช้งานเมื่อปี ค.ศ. 1999 เป็นจำนวนมาก โดยส่วนใหญ่เป็นการปรับปรุงประสิทธิภาพ ที่ทำให้ช่วยเพิ่มความเร็วการเชื่อมต่อ ปรับปรุงวิธีการเรียกใช้งานให้สามารถร้องขอ
ข้อมูลหลายๆ ชิ้นได้ในครั้งเดียว ทำให้ลดภาระฝั่งนักพัฒนา เช่นการรวมไฟล์ css, js หรือการทำ css sprite ฯลฯ ถึงแม้ว่าตัวร่างมาตรฐานเองไม่ได้บังคับว่าจะต้องเข้ารหัสตลอดเวลา แต่ในทางปฏิบัติ
จริงทั้งฝั่งเซิร์ฟเวอร์และเบราว์เซอร์ต่างก็ระบุว่าถ้าจะใช้ HTTP/2 ต้องทำงานผ่าน TLS/1.2 ขึ้นไปเท่านั้น เท่ากับว่าในการใช้งานจริง HTTP/2 จะถูกเข้ารหัสเสมอ


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

วันอังคารที่ 20 มกราคม พ.ศ. 2558

Project Ara

เมื่อความต้องการที่หลากหลายเกิดขึ้น สินค้าที่ตอบสนองความต้องการนั้น
เริ่มไม่เพียงพอต่อความต้องการ สายการผลิตย่อมมีข้อจำกัดในการผลิต
สินค้าที่หลากหลานเกินตลาดได้ จึงมีไอเดียเร่ิมผลิตสินค้าที่ลูกค้าสามารถเลือก
ชิ้นส่วน ( Module ) มาประกอบกัน แนวความคิดนี้เร่ิมแพร่หลายมาสู่ SmartPhone
เช่น จากการเปิดเผยล่าสุดสมาร์ทโฟน  กูเกิลยังคงจะดำเนินโครงการ Project Ara
แม้จะขายโมโตโรล่าไปเรียบร้อยแล้ว (โมโตโรล่าเป็นผู้ริเริ่ม Project Ara)  
ซึ่ง Project Ara นั้น จะทำให้เราสามารถซื้อชิ้นส่วน Smartphone มาประกอบเองได้ 
เหมือนการประกอบพีซี  ทาง Google ประกาศเดินหน้าโครงการอย่างเต็มที่ คาดดว่า
จะพร้อมจัดจำหน่ายได้จริงในปีหน้า (2015) เสนอราคาเริ่มต้นอยู่ที่ประมาณ 50 ดอลล่าร์
( 1,500 บาท ) จะได้ในส่วนของหน้าจอและชิป Wi-Fi เท่านั้น  
ส่วนฟีเจอร์ตัวอื่นๆ ต้องซื้อเพิ่มเอง


วันจันทร์ที่ 24 พฤศจิกายน พ.ศ. 2557

อนาคตที่เป็นดาบสองคม

แค่ส่องกล้องก็แปลศัพท์ได้!

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

แค่พิมพ์ก็แปลศัพท์ได้!

Official Account TH-EN Translator จะทำหน้าที่เป็นล่ามช่วยแปลเป็นภาษาอังกฤษให้โดยอัตโนมัติ

WeChat translate ซึ่งทำหน้าที่เหมือนวุ้นแปลภาษาของโดเรม่อน ไม่ว่าเราหรืออีกฝ่ายนึงจะทำการแชทมาด้วยภาษาอะไร เราก็สามารถกดแปลเป็นภาษาของเครื่องที่เราตั้งค่าไว้ได้ทันที

แค่พูดก์แปลศัพท์ได้!

Google Translate เวอร์ชันใหม่ มีฟีเจอร์สำคัญคือสามารถฟังเสียงพูดแล้วแปลภาษาออกมาเป็นเสียงพูดในอีกภาษาหนึ่งได้แล้ว

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

แค่ส่องกล้องก็วัดความเร็วได้!

App Traffy bSafe Mobile สำหรับแจ้งร้องเรียนเรื่องความปลอดภัยของการเดินทางโดยรถสาธารณะ แอพพลิเคชั่นนี้สามารถอัพโหลดรูปภาพ คอมเม้นรูปภาพ ทำการวัดความเร็วของรถแบบ real-time เป็นต้น

แค่ส่องกล้องก็วัดระยะได้! 

Smart Measure เพียงแค่ยืนขึ้นและกดชัตเตอร์ วัดระยะนี้ วัดระยะทาง, ความกว้างความสูงและพื้นที่ของเป้าหมายกับโทรศัพท์ของคุณโดยตรีโกณมิติ

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

วันเสาร์ที่ 27 กันยายน พ.ศ. 2557

สถาปัตยกรรม Deep Learning จากปัญญาประดิษฐ์ สู่ระบบต่างๆ

พัฒนาความฉลาดของเครื่องคอมพิวเตอร์ในการเรียนรู้และเข้าใจภาษาธรรมชาติและสามารถทำการตัดสินใจได้ด้วยตนเอง วิธีการฝึกฝนอุปกรณ์คอมพิวเตอร์ซึ่งเป็นส่วนหนึ่งของเทคโนโลยีสาขาปัญญาประดิษฐ์ (Artificial Intelligence) นี้ เรียกว่า “Deep-learning”
ในปัจจุบันเข้าสู่ยุคคอมพิวเตอร์ในรูปแบบอุปกรณ์ติดตัว SmartPhone มีการใส่ algorithm ผสมผสานในซอฟต์แวร์
อำนวยความสะดวกให้แก่ผู้ใช้งาน สามารถประมวลผลข้อมูลจำนวนมากๆด้วยการจำลองเครือข่ายประสาทแบบเดียวกับในสมองของมนุษย์เรา เช่น ในส่วนของระบบจดจำเสียงพูด (Speech Recognition) จะสามารถโทรออกและรับสายด้วยเสียง หรือแม้กระทั้งสนทนา (Voice function) 
อนาคตอาจจะได้เห็นอุปกรณ์ที่มีการพัฒนาด้านนี้มากขึ้นเรื่อยๆ จนอาจทำให้มนุษย์อาจไม่ยากศึกษาหาความรู้ด้วยตัวแต่จะมุ่งเน้นอาศัยระบบนี้มากขึ้น แต่ก็หวังว่าจะมีนักพัฒนาที่สร้างสรรงานให้มนุษย์มุ่งเน้นอาศัยตัวเองมากกว่าระบบที่แสนจะฉลาดด้วยน้ำมือมนนุษย์สร้างมาเอง

วันจันทร์ที่ 8 กันยายน พ.ศ. 2557

USB Connector ที่ยังไม่ใช่อนาคต













image by moddiy.com

USB 3.1 Type-C 

เป็นเทคโนโลยีที่จะมารองรับการทำงานส่งผ่านข้อมูลได้รวดเร็วกว่าถึงเท่าตัวคือ 10 Gpbs 
นอกจากนี้ ยังรองรับเทคโนโลยี USB Power Delivery ที่ใช้ในการรับส่งกระแสไฟฟ้า 100 วัตต์
และยังสามารถเสียบสลับด้านได้โดยไม่มีปัญหา
 ** เทคโนโลยีในลักษณะเพ่ิมความเร็วเพิ่มกำลังมีออกมามากก็เพราะแหล่งข้อมูลต่างๆมีหน่วยวัด
ที่สูงมากขึ้นเรื่อยเช่น รูปภาพมีความละเอียดมากก็จะมีหน่วยจัดเก็บที่มากประมาณ 1 Gbyte ถ้ามี
จำนวนรูปหลายรูปเวลาโอนถ่ายก็จะกินเวลานานจึงต้องมีการพัฒนา Connector

วันพฤหัสบดีที่ 24 กรกฎาคม พ.ศ. 2557

พัฒนาการกับวิธีพัฒนาซอฟท์แวร์สำหรับปัจจุบันและอนาคต

Agile Method

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

กรณีศึกษาใช้ Agile Method

Scrum
Scrum เป็นรูปแบบการจัดการแบบที่แต่ละคนต่างผลักดันซึ่งกันและกันสามารถนำไปปรับ ใช้ในการบริหารจัดการและควบคุมทั้งโครงงานแบบทำซ้ำและแบบเพิ่มราย ละเอียดในแต่ละขั้นตอน การพัฒนาแบบ Scrum ผู้ใช้ระบบจะต้องทำงานร่วมกับทีมพัฒนาอย่างใกล้ชิด เพื่อที่จะระบุและจัดลำดับความสำคัญก่อนหลังของหน้าที่ของระบบ แล้วเก็บรวบรวมไว้ในรูปแบบที่เรียกว่า Product Backlog ข้อมูลที่อยู่ภายใน Product Backlog ประกอบด้วยลักษณะเด่น การแก้ไขข้อผิดพลาดต่างๆ และความต้องการของผู้ใช้ในส่วนอื่น ๆ เป็นต้น การส่งมอบงานของวิธี scrum จะเป็นชิ้นงานที่ทำงานได้บางส่วนที่เกิดจากการแบ่งงานทั้งงานออกเป็นส่วน ย่อยๆ โดยระยะเวลาระหว่างการส่งมอบงานจะอยู่ในช่วงประมาณ 30 วัน  ดังนั้น Scrum จึงเป็นกระบวนการพัฒนาที่อยู่บนพื้นฐานของ Sprint หมายถึงวิธีการที่ให้เราทำงานเป็นช่วง ๆ คือ ออมแรงไว้ก่อน แล้ว sprint เป็นช่วงๆตามหลักการ คือ 2-4 สัปดาห์

Scrum ประกอบไปด้วยสาระสำคัญ 3 อย่างคือ

1. ทีมงาน มีลักษณะที่สำคัญ 3 ประการคือ

- Scrum Team คือกลุ่มบุคคลที่ปฏิบัติงานจริงประมาณ  5 - 9 คน  แต่ละคนไม่ได้กำหนดงานตายตัว สามารถทดแทนกันได้เสมอ นอกจากนี้แต่ละคนในทีมงานมีหน้าที่ประเมินเวลาของงานที่ต้องทำ แบ่งงานและส่งงานกันเอง
 - Product Owner คือผู้ที่ทำหน้าที่จัดการเรื่อง product backlog   คิด รวบรวม เผยแพร่ให้ทุกคนรับรู้ ได้เห็น เพื่อให้คนในทีมเห็นแนวปฏิบัติในอนาคตว่ามีงานอะไรบ้าง ซึ่งบุคคลคนนี้จะเป็นคนเขียนรายละเอียดและความต้องการของผู้ใช้ด้วย
- Scrum Master คือผู้ที่ทำหน้าที่ดูแลทีมงาน เป็นโค้ชของทีมงาน เป็นคนที่รับ ผิดชอบคุณภาพของผลงาน จัดลำดับความสำคัญของงาน แตกงานให้ที่ประชุมตัดสินใจตามความเหมาะสม

2. กระบวนการทำงาน มีลักษณะที่สำคัญ 3 ประการคือ

- Backlog เป็นรายการของคุณลักษณะที่ต้องทำซึ่งรวมถึงความต้องการจากผู้ใช้  การแก้ไขข้อผิดพลาด และกำหนดคุณลักษณะพิเศษเฉพาะของตัวผลงานโดยคนที่ทำคือ product owner ซึ่งจะจัดลำดับคุณลักษณะตามความสำคัญ จัดรายการเพื่อนำเข้า sprint และจัดการกับรายละเอียดต่างๆของคุณลักษณะเหล่านั้น
- Sprint phase คือช่วงที่จะต้องทำงานซ้ำๆโดยมีกำหนดไม่เกิน 30 วัน ก่อนเริ่ม sprint ก็จะมีการนำ product backlog มาจัดลำดับความสำคัญเพื่อเลือกมาเป็น sprint backlog จากนั้น scrum team จะดู backlog และแตกเป็นงานย่อยๆออกมาและทำการประมาณเวลาที่ใช้ในแต่ละงาน หลังจากได้เวลาและต่อรองกันระหว่างทีมงานแล้ว ก็จะได้รายการของงานและรายการของ backlog
- Daily scrum มีลักษณะเป็นการประชุมอย่างไม่เป็นทางการ อาจเป็นการยืนคุยกัน โดยทุกๆวัน scrum master และ scrum team จะพบปะพูดคุยกันเพื่อทบทวนว่าเมื่อวานทำอะไรไปบ้าง และวันนี้จะทำอะไร มีการถกกันเพื่อแก้ไขปัญหาที่พบเมื่อวาน และจัดการกำหนดงานให้กับทีมงานแต่ละคน
- การสาธิตและการประเมินผลงาน จุดเด่นของ Scrum คือสามารถวัดผลการทำงานได้ มีผังการทำงานที่เรียบง่าย และธรรมดา แต่ทำให้เห็นภาพของ sprintได้อย่างชัดเจนโดยหลักการแล้วก็คือกราฟของงานโดยแกน y แทนจำนวนงานที่เหลือ ส่วนแกน x แทนวันแต่ละวันของ sprint โดยในแต่ละรายการจะมีการปรับเปลี่ยนกราฟ เพื่อแสดงให้เห็นภาพความคืบ หน้าของงาน หลังจากจบ sprint ก็จะเอากราฟนี้มาประเมินผลงานของทีมงาน
(เนื้อหาบางส่วนจาก ฝ่ายพัฒนาระบบคอมพิวเตอร์ ส่วนเทคโนโลยีสารสนเทศ มจร และ http://thumbsup.in.th/ )

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