Fanboi Channel

มิตรสหายนักพัฒนาซอฟต์แวร์ท่านหนึ่ง

Last posted

Total of 131 posts

102 Nameless Fanboi Posted ID:4Q4IOnswrC

การเขียนโปรแกรมเป็น Literature หรืองานเขียนแบบหนึ่ง และในการทำงานเขียน การเลือกใช้ช่องไฟ ใช้คำพูดที่แตกต่างหรือคงเส้นคงวาในแต่ละส่วน กานวางย่อหน้า การเลือกคำ มีผลต่อความรู้สึกของคนอ่าน

เช่นกัน การแบ่งเลเยอร์ การเลือกใช้ชื่อในแต่ละบริบท การแบ่งไฟล์ หรือแม้แต่การเคาะ enter ก็มีผลที่แตกต่าง

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

โปรแกรมมิ่งก็เช่นกัน รู้ design pattern น่ะดี แต่งานเขียนจริงจะแค่เขียนตาม pattern แล้วบอกว่าสวยแล้วก็คงไม่ใช่

Programming มันมีส่วนที่เป็นศิลป์เยอะทีเดียวล่ะ

นักเขียนทำไง เขาเขียน อ่านเอง ให้คนอ่าน เก็บ feedback มาปรับปรุง แค่นั้นแหละ

103 Nameless Fanboi Posted ID:4Q4IOnswrC

>>101 QtImageCropper ใช้แค่รีวิวภาพ ไม่มีผลกับการประมวลผลหลัก คอมเมนท์โค้ดทิ้งได้เลย

104 Nameless Fanboi Posted ID:P0IDNoGSn2

ปัญหาด้านเทคโนโลยีใหญ่และสะสมมานมนานในองค์กร หาคนมาทำงานว่ายากแล้ว สิ่งที่ยากกว่าและส่วนใหญ่ไม่ให้ความสำคัญมากพอก็คือกระบวนการจัดการองค์ความรู้ ความรู้ส่วนใหญ่เก็บไว้ที่ตัวบุคคล เมื่อคนเก่งเหล่านั้นออกไป คนใหม่มาก็ใช่ว่ามาถึงแล้วจะทำงานได้เลย ไม่มีคนสอนงานเก่า งมเองกว่าจะได้เท่าคนเดิมส่วนใหญ่ก็เจ็บและเจอปัญหาจนออกไปก่อน ทำให้การทำงานและธุรกิจสะดุด ไม่เกิดการพัฒนาอย่างต่อเนื่อง ต้องทำใหม่ตลอด
แนวทางที่องค์กรที่บริหารจัดการเรื่องนี้สำเร็จก็มี
1. หาพาร์ทเนอร์มาดูแลแทน ก็มาความเสี่ยง ช่วงแรกก็ต้องเรียนรู้ ว่าเวิร์คหรือไม่ ระยะยาวความรู้จะไปอยู่กับพาร์ตเนอร์หมด
2. ต่างประเทศ เอกชน จะลงทุนสนับสนุนมหาวิทยาลัย สถาบันวิจัย เป็นคนเก็บและพัฒนาองค์ความรู้ เอกชนจะเก็บแค่ส่วนต่างเฉพาะที่เป็นความลับไม่ต้องการเผยแพร่
3. เปิด opensource ให้ชุมชน ช่วยดูแล
4. เปิดหน่วยงานสถาบันเพื่อดูแลเรื่องนี้เอง

105 Nameless Fanboi Posted ID:eAF1.y2tQe

วันนี้แปลกๆ มานั่งคิดย้อนเวลาไปว่าชีวิตเรามาอยู่ตรงจุดนี้ได้ยังไง ก็เลยมานั่งเขียนลงโน้ตเอาไว้ เขียนไปเขียนมา ขอเอามาแปะเลยละกันเพราะคิดว่าน่าจะมีประโยชน์สำหรับเพื่อนๆเช่นกัน
.
.
.
ผมเชื่ออย่างยิ่งว่าชีวิตเราทุกคน(และผม)ได้ดีเพราะมีคนสนับสนุนเสมอ
.
ตั้งแต่ช่วงเติบโตจนก่อนถึงวัยทำงาน พ่อแม่และพี่ชายพี่สาวผมทุกคนมอบทรัพยากรให้ผมศึกษาและลองเล่นในเรื่องต่างๆมาโดยตลอด ไม่ว่าจะเป็นเครื่องเกม คอมพิวเตอร์ อุปกรณ์อิเล็คทรอนิคส์ต่างๆ เรียกว่าอยากได้อะไรมาลอง 90% ผมจะได้โดยที่ตัวเองไม่ต้องเสียเงินเองเลย ผมถือว่าเป็นช่วงเวลาที่สำคัญมากๆเพราะมันทำให้ผมพร้อมในด้านทักษะกว่าคนอื่นในช่วงอายุที่ใกล้ๆกัน
.
พอเข้ามหาลัย ตอนเรียนรามฯ ผมก็ได้เพื่อนในซุ้มรามฯช่วยสนับสนุนโดยการพาไปให้รู้จักกับ “พี่ป้อม” เจ้าของร้านสติ๊กเกอร์ที่ใหญ่ที่สุดในซีคอนสแควร์สมัยนั้น ร้านใหญ่ มีคอมให้เล่นหลายเครื่อง มีกล้อง Digital Camera ของ Sony อย่าง Mavica ให้เล่น สมัยโน้นต้องบอกเลยว่าเท่ห์มากๆ
.
หลังจากได้รู้จักกับพี่ป้อม แกก็สนับสนุนผมด้วยการจ้างให้ทำงานที่ร้าน ไม่ว่าจะถ่ายรูป รีทัชภาพลูกค้าก่อนพิมพ์ออกมา เรียกว่าซองเงินเดือนซองแรกผมได้มาจากที่นี่ล่ะ ยังคงจำความรู้สึกแรกได้เลย โคตรดีใจที่เราสามารถทำงานแลกเงินได้แล้ว แถมพี่ป้อมยังได้หางานเขียนโปรแกรมบริหารสมาชิกโบสถ์คริสต์มาให้อีกงาน รวมไปถึงจ้างไปติดตั้งระบบร้านเน็ทให้หลายๆร้าน คือได้เล่นอะไรเยอะมากๆ
.
หลังจากนั้นก็มี “พี่ไก่” สนับสนุนผมต่อ เราเจอกันทาง Pantip และพี่ไก่ก็ได้มอบโอกาสให้ผมแบบยิ่งใหญ่มากโดยนัดผม นศ.รามฯกระจอกๆคนนึงให้ไปทานข้าวด้วยกันกับพี่ธานี (เจ้าของบริษัท PE&E) และทำการแนะนำผมให้กับพี่ธานีจนพี่ธานีว่างจ้างให้ผมไปทำงานด้วยเงินเดือนที่ดีมากๆสำหรับนศ.ที่ยังเรียนอยู่อย่างผม (เรียนแบบไม่เรียน 5555)
.
พอทำงาน PE&E ไปสักพัก ผมก็ได้ไปเรียนเขียนโปรแกรมที่ CTT แล้วก็ได้รับการสนับสนุนจาก “พี่โช” โชคชัย จันทร์เชย และ “คุณมิ้งก์” ต่อ โดยให้ไปลองฝึกเป็นเทรนเนอร์สอนเขียนโปรแกรมดู แถมยังได้รับการชวนให้ไปเปิดบริษัท Software House ด้วยกันต่ออีกทอด ต้องบอกเลยว่าช่วงนี้เป็นช่วงที่เปลี่ยนชีวิตผมไปมากที่สุดอีกช่วง ได้เรียนรู้อะไรเยอะมากๆในการทำธุรกิจ
.
ในระหว่างที่ทำ Software House ผมก็ยังคงได้รับการสนับสนุนจากผู้ใหญ่ทางฝั่งลูกค้าเสมอ ไม่ว่าจะเป็น ผอ.จากภาครัฐต่างๆ นายตำรวจนายทหารต่างๆ หรือแม้แต่ผู้บริหารระดับสูงในบริษัทเอกชนใหญ่ๆ ผมยังคงจำชื่อคนที่สนับสนุนผมได้อย่างดีจนวันนี้ ไม่ว่าจะเป็น “พี่เมฆ” “ดร.อธิป” “เอ” จากทรูที่เวลามีงานมีปัญหาก็ไม่เคยทิ้งกัน ฯลฯ
.
พอจบเส้นทาง Software House ผมก็ยังไม่วายได้รับการสนับสนุนต่อจากเมนทอร์ทางด้าน IM ของผมอย่าง “Patric Chan”...
.
อยากจะขอขอบคุณทุกคนอย่างสุดซึ้ง ผมคงไม่มีวันนี้ถ้าไม่มีทุกคนคอยสนับสนุน ผมจะทำชีวิตต่อไปให้ดีที่สุดไม่ให้ผิดหวังที่ได้รับการสนับสนุน และผมก็จะสนับสนุนหลายๆชีวิตให้ดีขึ้นด้วยเช่นกันครับ
.
ด้วยรักและเคารพเสมอ
ก๊วง
.
ปล. ความเชื่อเดียวที่ผมคิดว่าอาจจะเป็นกุญแจสำคัญที่ทำให้มีคนสนับสนุนผมอย่างต่อเนื่องคือ: “ความจริงใจ” ที่ผมมีให้เค้า
.
ถ้าวันนี้เราน้อยใจว่าไม่มีคนสนับสนุน ลองมอบความจริงใจให้กับคนที่เราติดต่อด้วยดูครับ ผมเชื่อว่าคนเราสัมผัสเรื่องพวกนี้ได้ :)

106 Nameless Fanboi Posted ID:W21i7NhCgC

นายกฤษฎา ธนบูลย์พงษ์ เป็นพวกล้มเจ้า
มีความคิดกบฏ และต้องการล้มล้างสถาบันพระมหากษัตริย์

107 Nameless Fanboi Posted ID:xc+QiaN7dT

เมื่อวานได้คุยกับเพื่อนสนิทที่เป็นระดับเทพด้านไอที เรามีความเห็นตรงกันว่า สิ่งนึงทีน่ากลัวของวงการไอทีในปัจจุบันคือความไม่รู้จริง และความเห่อกระแสตามแฟชั่น ทำให้หลายคนมองบางเทคโนโลยีเป็นคำตอบในทุกเรื่อง ไม่ว่าจะเป็น Big Data, AI, Blockchain แล้วพวกแก่ๆอย่างเราที่ยืนอยู่บนความคิดพื้นฐาน ถ้าไปขัดแย้ง ก็เหมือนกับเป็นเต่าที่ตกยุค ตามไม่ทัน ขวางโลก เลยอยากจะฝากแนวความคิดไว้กับคนุร่นใหม่ที่จะโตไปเป็นคนชี้นำสังคมว่า

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

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

ปล.ที่คุยกันเมื่อวาน มีการพูดถึง NP-Complete กับ Non-Deterministic ด้วยนะ

108 Nameless Fanboi Posted ID:xPFg1+6tlM

วันพฤหัสคุยกับ Passapong Champillon Thaithatgoon กับ Keattiwut Joe Kosittaruk อยู่ว่า Functional programming อาจจะไม่เหมาะกับทุกงาน วันนี้จับ Physics engine นี่น่าจะอันนึงที่อาจจะทำ FP แล้วไม่ธรรมชาติ

เขียน Object ให้เป็น Ball.addKineticEnergy(right, 100) แล้วซ่อน State x,y ปัจจุบันไว้ใน Object เป็นโมเดลที่เหมาะกับเกมมากกว่าพยายามเปิดเผย x,y นะ

ถ้าเป็น FP จริงๆ มัน Equivalent อยู่แล้ว จะทำเป็น nextContext = context |> addKineticEnergy(ball, right, 100) |> nextFrame() เพื่อเก็บ context ก็ได้ แต่ก็ไม่รู้ว่า Natural ขนาดไหน ลองอ่านคู่มือ Physics engine ใช้ Object-oriented Model หมดเลย ขนาดใน Javascript นะ

แต่ที่มั่นใจคือเขียนเกมกับใช้ Physics engine การให้เข้าถึง X,Y ที่เป็น State ได้ง่ายๆ มันไม่ใช่ มันควรจะเข้าถึงผ่าน Mutation ที่เป็นธรรมชาติในโลกจริง อย่าง Gravity, Force, KineticEnergy พอมัน Emphasize state mutation มากกว่าตัว State แล้วผมว่าโมเดลด้วย Object + Message parsing มันจะเน้นย้ำในสิ่งที่ควรเน้นย้ำให้เห็นชัดเจน และทำให้ส่วนที่ไม่ควรจะถูกเน้นย้ำเข้าถึงยากขึ้น

ซึ่งนั่นแหละคือการ "ออกแบบโค้ด"

109 Nameless Fanboi Posted ID:R/a2IAxm3e

นายนเรศร์ ปรีดากิจเกษมกุล เป็นพวกล้มเจ้า

มีความคิดกบฏ และต้องการล้มล้างสถาบันพระมหากษัตริย์

และต้องการ เซาะกร่อน และทำลาย ระบอบประชาธิปไตยอันมีพระมหากษัตริย์ทรงเป็นประมุข ให้สิ้นไปจากประเทศไทย

110 Nameless Fanboi Posted ID:B/E.iltyNe

ครั้งสุดท้ายที่ผมจะโพสท์เกี่ยวกับดราม่า "Coding" นะครับ

ผมไม่ขอพูดอะไรมาก นอกจากแปะหนังสือ "Coding as a Playground" ที่เขียนโดย Professor ด้าน Child Study & Human Development และยังเป็น Adjunct Professor ทาง Computer Science จาก Tufts University (มหาวิทยาลัยระดับโลก ถาม Sanpawat Kantabutra ได้)

ผมตัดมาบางหน้า ที่บอกว่า Coding มันเป็นการเรียนและฝึกอะไร และมันไม่ใช่ว่าเรียนไปเพื่อไปประกอบอาชีพเขียนโปรแกรมคอมพิวเตอร์แต่อย่างใด ..... มันเป็นการเรียน Way of Thinking มากกว่าเรียนรู้ Tools และการใช้ Tools (การเขียนโปรแกรมคอมพิวเตอร์เพื่อสั่งงานคอมพิวเตอร์ ด้วยภาษาโปรแกรม เป็นการเรียนรู้ Tools และใช้ Tools)

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

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

Coding with Objects หรือใน Everyday Life ก็ทำได้ (ถึงตัวอย่างในหนังสือจะใช้ Robot แต่จริงๆ ก็ไม่จำเป็น ให้เด็กเล่นด้วยกันก็ได้ .... จริงๆ ผมเห็นว่าวิชา Coding น่าจะเป็นการเล่นเกมแบบ Rule-based ให้เหมาะกับวัยด้วยซ้ำ จากโดมิโน บันไดงู ไปหาพวก Board Game)

ดังนั้น คำว่า Coding มันไม่ได้มีความหมายแคบเฉพาะกับ Computer Programming ที่เราต้องเขียน (Programming Language) Code ... แต่มันมีความหมายกว้างกว่านั้นมาก

แน่นอนว่าเมื่อโตๆ ไป (ระดับมัธยม) ก็จะมีการนำ Digital Tools หรือแม้แต่ Computer Programming เพิ่มเข้ามาเอง .... เพราะนั่นเป็นการประยุกต์ใช้ Coding ไปกับคอมพิวเตอร์

ผมจะไม่พูดเรื่องนี้ล่ะครับ ใครจะเชื่ออะไรก็เชื่อไป คิดอะไรก็คิดไป

แต่ขอร้อง อย่าคิดด้วยอคติที่ว่ารัฐบาลโง่ คิดอะไรปัญญาอ่อน ฯลฯ แต่เพียงอย่างเดียว ..... รัฐบาลทำอะไรโง่ๆ เยอะ ทำอะไรที่เราไม่เห็นด้วยเยอะ แต่มันไม่ได้แปลว่าทุกเรื่องที่ทำมันโง่นะครับ ....

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

พูดอีกอย่างคือ ไม่ว่าใครจะเป็นรัฐบาลช่วงนี้ เรื่องนี้ก็จะถูกยัดใส่มือให้พูดช่วงๆ นี้ (+/- ไม่กี่ปี) อยู่ดีแหละครับ

111 Nameless Fanboi Posted ID:lPpfvs.p8d

Make sure you don’t hire engineers with “shiny object syndrome”.

What is that?

It’s when an engineer gets easily distracted by every cool new technology, framework, or library that comes out and wants to include that into what their working on just because it’s the “cool new thing” everyone is using.

A lot of Silicon Valley engineers have this problem.

It’s ok to play around with new tech, but you need to make sure it doesn’t distract you from business objectives.

Engineers should be using technology that is widespread, proven in production environments and has mature documentation. This will increase speed of development while reducing bugs and maintenance work.

It has happened over and over again in which a cool new library is introduced and then after a few months, it’s abandoned by the authors because it was just a “side project” and they don’t have time to “maintain it”. This screws you over and creates massive tech debt.

If your product is full of new and unproven tech, you are setting your business up for failure.

Either because you’re going to waste more time rewriting everything and/or when you hire more people, they have no experience with the new tech and will get frustrated.

112 Nameless Fanboi Posted ID:AhbCzfjIm1

coding ไม่ใช้คอม (อีกครั้ง และครั้งสุดท้าย)

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

ผมไม่ชอบดราม่า ผมไม่สนใจว่าใคร หรือพรรคไหนเป็นคนพูดประเด็นนี้ มันไม่ใช่สาระ ผมสนใจแค่ context ที่ debate กันอยู่ในสังคมเท่านั้น

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

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

โพสที่ผ่านมา แปลกดี

โปรแกรมเมอร์อาชีพส่วนใหญ่เห็นด้วยกับผม (p->q)
คนที่ด่าส่วนใหญ่ไม่ใช่โปรแกรมเมอร์อาชีพ (!q->!p)

(อันนี้ตรรกศาสตร์พื้นฐาน Transposition rule นะครับ ย้ำว่าผมใช้คำว่าส่วนใหญ่ ผมไม่ได้ stereotype มีโปรแกรมเมอร์อาชีพบางคนไม่เห็นด้วยกับผม และก็มีคนที่ไม่ใช่โปรแกรมเมอร์เห็นด้วยกับผมจำนวนมาก (!p->q) เขียนกันไว้ก่อนโดนด่าอีก เพราะผมไม่ชอบดราม่านะ)

สรุปประเด็นคำถามหลายๆ คนที่เห็นแย้งกับโพสของผม

**************************************
Q: บางคนบอกว่า coding ไม่เขียนโปรแกรมจะเรียก coding ได้ไง..?

A: coding ไม่ได้ตีความว่าต้องเขียนโปรแกรมเป็นบรรทัดๆ ด้วยภาษาคอมพิวเตอร์ อย่างเดียว Lego Mindstorm ก็ coding ด้วย drap and drop, Scratch ของ MIT เป็นแพลตฟอร์มสอนเด็กให้เข้าใจ coding ด้วย GUI (ลองเข้าไปดูที่ https://scratch.mit.edu) ทั้งหมดคือการสอน coding โดยไม่ใช้ภาษาโปรแกรมทั้งนั้น และทั้งหมดนั้นสามารถทำอะไรที่คล้ายๆ กันได้โดยไม่ต้องใช้คอมพิวเตอร์ คอมพิวเตอร์เป็นเพียง "tool" ในการอำนวยความสะดวกเท่านั้น ซึ่งมันก็จะตามมาด้วย "ข้อเสีย" แบบที่ผมเคยได้พูดไปแล้ว)
ภาษาโปรแกรมเป็นแค่ 1 วิธีในการสร้างกระบวนการแก้ไขปัญหาอย่างเป็นระบบเท่านั้น

**************************************
Q:บางคนบอกว่า ถ้าอยากฝึกวิธีคิด วิธีแก้ปัญหา มีวิชา math และ logic แล้วนี่ จะเรียนซ้ำซ้อนทำไม..?

A: ถ้าจะพูดแบบนี้ทุกวิชาในโลกนี้เรียนเพื่อฝึกคิดและแก้ปัญหาทั้งนั้น ไม่ใช่เฉพาะ math หรือ logic
แต่เราไม่ได้เรียน coding เพื่อแก้ปัญหาแบบตรงๆ แต่เราเรียน coding เพื่ออธิบายปัญหาและวิธีแก้ "อย่างเป็นระบบ" (อันนี้เอามาจากคำตอบของคนในทีมผมเอง ขออนุญาตไม่ระบุนาม) ซึ่งวิชา math และ logic ไม่ได้เน้นเรื่องนี้

**************************************
Q: เรียน coding ด้วยกระดาษ โปรแกรมบั้กก็แก้ไม่ได้ รันโปรแกรมก็ไม่ได้ จะไปมีประโยชน์อะไร

A: สมัยพวกผมเรียน พวกผมคอมไพล์ด้วยตา เช็คบั้กด้วยสมองคิด ซึ่งสิ่งเหล่านั้นบ่มเพาะให้พวกผมเป็นโปรแกรมเมอร์ที่ดีขึ้น รอบคอบขึ้น ละคิดละเอียดขึ้น

**************************************
Q: ถ้างั้นก็อย่าใช้คำว่าวิชา coding ให้คนเข้าใจผิด จะใช้คำว่าวิชา computational thinking หรืออะไรก็ใช้ไป

A: ผมก็ยังยืนยันว่า ตำราฝรั่งทั้งจาก MIT, google จากมหาวิทยาลัยดังๆ หนังสือเด็กของฝรั่ง ส่วนใหญ่ก็ใช้คำว่า coding อย่าตีความ coding เป็นการเขียนภาษาคอมพิวเตอร์เพียงอย่างเดียว
และถ้าคุณเลือกใช้คำอื่น ต่อให้มันจะเป็นคำที่ตรงเป๊ะๆ อย่าง computational thinking หรืออะไรก็ตามแต่ ก็จะยิ่งยากที่จะทำให้สังคมเข้าใจมากยิ่งขึ้นไปอีก "ลองจินตนาการรมต พูดว่า เราต้องให้เด็กเรียนวิชา computational thinking" ในสภาดูสิครับ

**************************************
Q: เป้าหมายของการเรียน coding คืออะไร
A: สำหรับผม ผมไม่ได้คิดว่าเด็กที่เรียน coding จะต้องเขียนโปรแกรมคอมพิวเตอร์เป็น รันโปรแกรม python หรือ java ได้ ไม่จำเป็นเลย
ที่ผ่านมาเราให้เด็กเรียนวิชาอ่าน เขียน ไม่ได้เพื่อเรียนจบไปเป็นนักอ่านข่าวอาชีพ หรือนักเขียนอาชีพใช่ไหมครับ แต่เราให้เค้าเรียนเพื่อให้มี skill พื้นฐานในการสื่อสารปฏิสัมพันธ์
เช่นเดียวกันเราให้เด็กเรียน coding ไม่ได้เพื่อไปเป็นโปรแกรมเมอร์อาชีพ แต่เราให้เค้าเรียนเพื่อมี skill พื้นฐานในการคิดแก้ปัญหาอย่างเป็นระบบ

สุดท้ายนี้ ผมไม่ได้บังคับให้ทุกคนเห็นด้วย ความเห็นของผมเป็นแค่ความเห็นหนึ่งของโปรแกรมเมอร์ที่เขียนโปรแกรมมา 25 ปี (ผมเริ่มเขียนโปรแกรมตั้งแต่อยู่ม. 3) ผ่านอะไรมาในระดับนึงที่น่าจะพอให้ความเห็นกับสังคมได้

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

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

ขอบคุณครับ

113 Nameless Fanboi Posted ID:AhbCzfjIm1

ประชาพิจารณ์ หลักสูตร ict ของ สสวท

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

ก่อนอื่น ต้องบอกว่า มีทีมงานร่างหลายหลาก ยืน ภู่วรวรรณ เป็นประธาน และมีอาจารย์มหาลัยหลากหลายแห่ง และ ครูผู้สอนจากทั่วประเทศ มาช่วยกันปล้ำจนเป็นรูปร่างได้

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

ทีนี้ปรับน้อยคือยังไง เราพยายามเปลี่ยนวิธีคิดว่า เราจะไม่เรียนคอมพิวเตอร์ แต่เราจะสอน "วิธีคิด"

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

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

ผมขอให้ keyword ของประถมต้นว่า "Unplugged" ซึ่งก็คือเรียน ict กับชีวิตจริงเป็นหลัก (แน่นอนว่า ถ้ามีเครื่องจะเสียบปลั๊กก็ไม่ได้ว่าอะไร)

ประถมปลายนี่ เด็กเริ่มใช้เน็ตเป็น เล่นไลน์ ค้นเน็ต ลอกการบ้านจาก วิกิ ส่งครูได้ การเข้าใจเครื่องมือที่มีไม่ว่า จะ I(nternet) หรือ C(omputer) หรือ T(elecomm) ก็จะเริ่มแถวๆนี้แหละ แต่เราจะให้เด็กคิดว่าอะไรควรหรือไม่ควร เนื้อหาบางอย่างได้สอดแทรกเข้าไปเช่น logical fallacy เพื่อให้เด็กสามารถมีตรรกะที่จะต่อต้านข่าวปลอม หรือ พฤติกรรมไม่เข้าท่าในเน็ต เด็กเราจะได้ไม่โดนแชร์ลูกโซ่ หรือ โดนหลอกบริจาคทั้งที่บ้านไม่จนได้

ผมให้ keyword ของประถมปลายว่า "Daily" ซึ่งหมายถึงการใช้ ict กับชีวิตประจำวัน ไม่ว่าในการเรียนวิชาต่างๆ การเขียนบล๊อกหรือส่งเมล์ควรเรียนในภาษาไทย การคำนวณด้วยคอมพิวเตอร์ควรอยู่ในคณิตศาสตร์วิทยาศาสตร์ การทำภาพกราฟิกควรอยู่ในวิชาศิลปะ

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

การเรียนใน ม.ต้น จึงเน้นระเบียบและเทคโนโลยีการเก็บข้อมูล ตั้งแต่แบบสอบถาม แบบสำรวจ จนกระทั่ง Internet of Things (IoT) แล้วแต่ว่าโรงเรียนไหนจะไหว ย้ำอีกที เราสอนวิธีคิดนะ ไม่ได้สอนการใช้เทคโนโลยี

ผมให้ keyword ของ ม.ต้นว่า "primary data"

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

ซึ่งผมให้ keyword ของ ม.ปลายว่า "secondary data"

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

แต่อุปสรรคที่สำคัญอย่างหนึ่งคือ การเปลี่ยน mind set จาก "ทำอะไรได้ แปลว่า คิดได้" มาเป็น "คิดได้ เดี๋ยวก็ทำได้เอง" ยังเป็นความท้าทายอย่างยิ่งครับ

114 Nameless Fanboi Posted ID:AhbCzfjIm1

ว่าจะไม่พูดเรื่อง Coding แล้วเชียว ... ขออีกสักโพสท์ละกัน

ผมว่าปัญหาหนึ่ง ก็คือเรามองมันใน Context แคบๆ แค่ Computer Programming น่ะครับ (อันนี้เป็นปัญหา โดยเฉพาะคนในวงการไอที -- พอเห็นอะไรที่เกี่ยวกับเรื่องนี้ก็ตีความไปทางที่ตัวเองทำ -- Coding with Computers, Coding Computer Programs, etc)

ลองคิดแบบนี้ครับ .....

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

ต้องลองคิดว่า

คนที่จะเป็น Designer, พยาบาล, พ่อครัว, คนอยากเรียนอักษรฯ, คนอยากเรียนเกษตรฯ, คนอยากเรียนอะไร ก็ควรเรียน Coding

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

มันอาจจะเกิดมาจากการเขียนโปรแกรมคอมพิวเตอร์ครับ แต่ทำไมเราจะคิดให้มันอยู่ในบริบทที่ใหญ่กว่านั้นไม่ได้ ....

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

ยกตัวอย่างเช่น เล่นเกมหาทางออกกับเด็ก .... แทนที่จะบอกว่า "ก็หาไปเรื่อยๆ จนกว่าจะเจอทางออก" หรือ "ลองแล้วไม่ได้ ก็ลองใหม่" ... เป็น "เลือกทางซ้ายก่อนเสมอ แล้วไปเรื่อยๆ ถ้าเจอทางตัน ให้ย้อนกลับมาจุดสุดท้ายที่มีทางเลือก แล้วเลือกทางถัดมา" .... อะไรแบบนี้เป็นต้น

ถ้ารอบๆ ตัว ทั่วๆ ไป .... การบอกทางให้มีประสิทธิภาพ (เวลาถามว่าอะไรไปยังไง) ก็ต้องอาศัย Coding ..... การแก้ปัญหาต่างๆ ก็ต้องใช้ Coding .... อะไรทำนองนี้

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

แน่นอนว่า Computer Programming เป็น Context หนึ่งของ Coding แต่ไม่ใช่ทั้งหมด

ถ้าเด็กๆ ได้เรียน Coding ใน General Context หรือ Daily Lives มาแล้ว การนำมาประยุกต์ใช้กับการเขียนโปรแกรมคอมพิวเตอร์ก็เป็นเรื่องที่ง่ายขึ้นมาก (Note: ปัญหาของเด็กเรียน CS/IT/CE บ้านเราเลยครับ ... รู้แต่ Syntax แต่ "Coding ไม่เป็น")

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

ผมขอแปะ link ไป product ตัวหนึ่งใน Amazon ละกันครับ ....

"Littlecodr - Kids Coding Game"

https://www.amazon.com/Littlecodr-46618-Kids-…/…/B0199Q3PEI/

อันนี้เป็น Card Game สำหรับเด็กอายุ 4 ขวบขึ้นไป เป็น Card คำสั่ง ที่เอามาต่อกันเป็น Instruction เล่นกับเพื่อนได้ (สมมติว่าเพื่อนเป็น Robot ก็ได้)

ประเด็นคือ .... ถ้าฝรั่งไม่ใช้คำนี้ กับการสอนอะไรแบบนี้ แล้วทำไม Product ตัวนี้มันชื่อนี้?

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

ป.ล. สำหรับคนที่อยากแชร์ มันน่าจะได้แค่ amazon link นะครับ เพราะว่าที่ผมเขียนนี่ ผมทำไว้แค่ friends only ครับ

115 Nameless Fanboi Posted ID:6dDocMKiFd

ปัจจัยหนึ่งที่ทำให้ปัญหา Developer หนักขึ้นคือหลายคนเข้าใจแต่การ Scale quantity ของทีมงานเพื่อแก้ปัญหางานเยอะ

Whatsapp - ทีม 30 คน ดูแล 900M Users
Gojek - ทีม 12 คน ดูแล 1 ล้านคนขับ (ไม่ใช่ Users ด้วยนะ ตัว Users เยอะกว่านั้นอีกแน่ๆ)

แล้วผมก็เห็นข่าวทีมงาน 100+ คนทำแอพพลิเคชั่นที่ผมคิดว่า 2-3 คนทำน่าจะได้ คนพัฒนาก็ตีซะใหญ่โตว่าแบบลงทุนเยอะเจ๋งมาก

ผมก็นั่งคิดในใจว่า โครงการนี้ คงใช้เวลา น่าจะใช้เวลา 7-9 เดือน นั่งวางโครงสร้างและ Process ให้ 100+ คนทำงานร่วมกันได้โดยไม่ตีกัน ตอนเขียนจริงอาจจะ 2 สัปดาห์

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

ธรรมชาติงานพัฒนาซอฟต์แวร์ พอคนมันเยอะเกินจุดที่มันเหมาะสม ยิ่งมีคนเยอะก็ยิ่งช้าลง

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

(ส่วนตัวผมเคยบอกเจ้านายหลายครั้งใน Career เลยนะว่า Allocate คนมาเพิ่มไม่ช่วย เอามาก็เหยียบเท้ากันตีกันเปล่าๆ โครงสร้างมันไมไ่ด้รองรับให้คน x คนทำงานด้วยกัน รื้อโครงสร้างให้รองรับก็ยิ่งเลทกว่าเดิม)

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

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

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

เราต้องการจำนวนโปรแกรมเมอร์เยอะขึ้นหรือเปล่านะในตลาด ต่อให้เยอะขึ้น ต้องการเยอะขึ้นเท่าไหร่กันแน่

116 Nameless Fanboi Posted ID:4Pc/Emg+vD

>>115 เข้าใจอะไรผิดปะวะ support ไม่ใช่ dev แล้ว gojek ก็มี dev มากกว่า 12 คนแน่ๆ มึงเอาเรื่องมาปนกันอะ

117 Nameless Fanboi Posted ID:6dDocMKiFd

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

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

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

เปิดคอร์ส
- Programming for Non Tech
- Business for Tech
ดีมะ #ขายของ

118 Nameless Fanboi Posted ID:tAwwkuhc4G

อยากเย็ด แมรี่ สยามดรีม จังเลยครับ

https://imgur.com/Oa4i2CR
https://imgur.com/9q1xksb
https://imgur.com/zbiNqv1
https://imgur.com/3hJrTUj

119 Nameless Fanboi Posted ID:Ek/L2Q92Ro

วันนี้ได้ฟังเรื่องราวหลายๆ อย่างเหลือเกิน

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

พอคิดดีๆ ลูปมันก็ครบ ดีมานด์ซัพพลายก็สมดุล บริษัทไทยเองก็ได้ของดีขึ้น นักพัฒนาไทยเองก็มีความเป็นอยู่ที่ดีขึ้น มันก็ไม่วิกฤติอะไรหรอก สุดท้ายเงินก็หมุนกลับมานักพัฒนาไทยนี่แหละ และของที่ได้ก็กลับมาที่ไทยเหมือนกัน ทุกคนก็วินๆ กันหมด แค่มีเศษเงินหลือๆ กระฉอกออกไปที่เมืองนอกหน่อยบ้างก็คิดซะว่าเป็นค่าน้ำชงน้ำชาไป

เราจะไปเห็นเป็นปัญหาทำไมกันนะ

(สถานะนี้อาจทำลายตัวเองได้)

120 Nameless Fanboi Posted ID:i8pffGD7jH

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

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

แหม่ ..... ผมนี่แทบจะหลุดว่า

"You don't tell a computer scientist who is a mathematician that solving a problem takes time. Time complexity for solving any problem depends on 'how' you solve it.

Don't tell me you need time. Tell me your understanding of the problem and tell me your "solution" ("algorithm" - how would you solve it).

Time isn't a solution. Time is needed for executing a solution."

แหม่ .... จริงๆ เล้ย

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

แม้แต่เรื่องที่ต้องการความเข้าใจมากๆ อย่างคณิตศาสตร์และ Computer Science เรายังเรียนมาเป็นการใช้เครื่องมือแบบจ๋าๆ ได้เลย (สูตร คือ เครื่องมือ, Library คือเครื่องมือ, Programming Languages คือเครื่องมือ ฯลฯ)

เวลาเจอปัญหา เราก็จะไม่ทำความเข้าใจอะไรมัน เราจะพยายามแก้มันทันทีด้วย "เครื่องมือ" ที่เรารู้จัก ....​ ไม่ก็บอกว่า "มันต้องใช้เวลา" .... เพราะเราทำความเข้าใจปัญหาไม่เป็นเลย .....

When all you know is a hammer, everything suddenly looks like a nail.

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

หลายคนบอกว่าต้องใช้เวลา แล้วหวังว่าวันหนึ่งปัญหามันจะหายไป ...... หรือปัญหามันจะแก้ตัวมันเอง .....

แต่ส่วนมาก วิธีการแก้ปัญหาของบ้านเรา คือ "บังคับให้คนอยู่กับปัญหาจนชินไปเอง" ..... นั่นคือ Hammer ของเราครับ ... ตอกให้คนจมลงไปอยู่กับปัญหา

121 Nameless Fanboi Posted ID:uccoHxiZMc

นายกฤษฎา ธนบูลย์พงษ์ เป็นกบฎล้มเจ้า และต้องการล้มล้างสถาบัน

https://imgur.com/uHwZgxV

122 Nameless Fanboi Posted ID:eDHofW5cRm

เคยเห็นกระทู้ถามว่า "ทดสอบรับคนเข้างานด้วย Algorithm เวิร์คมั้ย" ในบอร์ดเมืองนอก

- มีคนแชร์ว่าเคยรับคนที่ไม่ได้อัลกอริธึมแล้วเวิร์ค รับคนที่ไม่ได้แล้วไม่เวิร์คขาดตรงไหน
- มีคนแชร์ว่าเคยรับคนที่ได้อัลกอริธึมแล้วไม่เวิร์ค แชร์ว่ามันทดสอบอะไรได้และที่มันทดสอบไม่ได้คืออะไร
- DHH คนสร้าง Rails ก็ออกมาบอกว่าเขาไม่ใช้แล้วใช้อะไรแทน
- มีคนจาก Top tech (F,M,A,G) ออกมาบอกว่าทำไมเขายังทำอยู่
- มีแม้แต่คนที่ทำ Opensource ระดับโลกที่เคยตกโจทย์อัลกอริธึมตอนไปสมัครงาน ออกมาบอกว่าเขาติดอะไร

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

ดีนะที่ไม่เคยตั้งคำถามนี้ออกไปให้ใครฟังนอกบริษัท เราคุยกันเรานั่งตั้งคำถามกันแล้วเราก็ปรับปรุงวิธีสัมภาษณ์กันเนียนๆ

สังคมข้างนอกเนี่ยมี Prejudge สูงมาก

123 Nameless Fanboi Posted ID:eDHofW5cRm

ว่าด้วยเรื่องการสอบสัมภาษณ์ด้วย Algorithms

- ปกติแล้วจะใช้ในกรณีบริษัทขนาดกลางหรือใหญ่ขึ้นไป บริษัทข้ามชาติหรือบริษัท Startup ที่ต้องการโปรแกรมเมอร์ที่ต้องแก้โจทย์ยาก ๆ หรือต้องทำ Optimization เยอะ ซึ่งมีผลต่อผลกำไรของบริษัทโดยตรง
- โจทย์มักจะคล้าย ๆ กับคอมพิวเตอร์โอลิมปิคหรือ ICM-ICPC ในระดับง่ายถึงปานกลาง ใช้เวลา 30 นาที - 3 ชั่วโมง
- อัตราส่วนในการแก้โจทย์ได้ประมาณ 10%-20% ซึ่งถ้าบริษัทมีคนมาสัมภาษณ์เยอะ ๆ ก็ค่อนข้างคุ้มที่จะได้คนเก่ง ๆ ไปสัมภาษณ์ทัศนคติต่อ
- ปกติแล้วจะมีเพียง 1-2 โจทย์ ง่ายกับปานกลาง หรือปานกลางอย่างเดียว
- บางครั้งโจทย์เหมือนจะเป็นโจทย์ Algorithm แต่จริง ๆ แล้วคุณต้องแก้ด้วยเซนส์ทางคณิตศาสตร์
- บางครั้งแกล้งใส่ Bug ไว้ในคำถามเพื่ออยากรู้ว่าจะแก้ปัญหายังไง บางคนหนีกลับบ้านก็มี บางคนก็เดินมาถาม บางคนก็ทำไปเลย
- เมื่อแก้โจทย์ได้แล้วจะมีการรีวิวโค้ดและสัมภาษณ์วิธีการแก้ปัญหา ดูสไตล์การเขียน ดูวิธีการตอบคำถาม ประสบการณ์และทัศนคติอื่น ๆ ซึ่งมักจะสำคัญกว่าวิธีในการแก้โจทย์
- การมีโจทย์จะทำให้วัดความรอบคอมของคนสอบ และสไตล์การทำงานได้คร่าว ๆ เช่น บางคนมั่นใจมาก ทำแปปเดียวเสร็จแล้วคิดว่าถูกก็ส่งเลย บางคนก็ใช้เวลาจนหมดเพื่อพิจารณาโดยละเอียด บางคนนั่งเขียนเทสให้ด้วย
- โจทย์แบบนี้มักจะใช้ในงานที่เงินเดือนค่อนข้างสูง
- ถามว่ามีประโยชน์ไหม ส่วนตัวคิดว่ามีประโยชน์มากสำหรับงานที่ต้องการคนแบบนี้จริง ๆ หรือใช้ในการคัดกรอง Outlier เก่ง ๆ ในกรณีที่มีคนสัมภาษณ์เยอะ แต่ในบางงานก็ไม่จำเป็น เช่น งาน Client Side (Front End) ก็ทดสอบด้วยการเขียนอย่างอื่นแทน แต่ก็อาจจะมีบางบริษัทที่ต้องการ Optimize ฝั่ง Front End
- การสอบสัมภาษณ์ไม่ใช่ทุกอย่าง บางครั้งบริษัทอาจเลือกจากสิ่งที่คุณเป็น เช่นบริษัทก็อาจจะมีโควต้าจำกัด ถ้าเลือกรับได้แค่ไม่กี่คน แต่มีตัวเลือกที่เก่งเท่ากันและทัศนคติเท่ากันหลาย ๆ คน บริษัทอาจรับคนที่บ้านใกล้กว่า กินเบียร์เก่งกว่า แต่งงานแล้ว(ปัญหาน้อยกว่า) โสด(เวลาว่างเยอะกว่า) เล่นดนตรีเก่ง อะไรแบบนี้ก็มีเหมือนกัน

124 Nameless Fanboi Posted ID:QunGVIa0TM

นายกฤษฎา ธนบูลย์พงษ์ เป็นกบฎล้มเจ้า

และต้องการล้มล้างสถาบันพระมหากษัตริย์

https://imgur.com/uHwZgxV

125 Nameless Fanboi Posted ID:mWpq0Uf3xQ

นายกฤษฎา ธนบูลย์พงษ์ เป็นกบฎล้มเจ้า

และต้องการล้มล้างสถาบันพระมหากษัตริย์

https://imgur.com/uHwZgxV

126 Nameless Fanboi Posted ID:NgHSXg0rmj

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

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

ปล. Facebook, Google, Microsoft, Apple เวลาพูดถึงเรื่องนี้เขาก็ยอมรับนะว่าระบบให้ความสำคัญกับการที่ไม่พลาดท่ารับคนที่ไม่ถึงมาตรฐานมาก ทำให้หลายครั้งก็จะไปพลาดไม่ได้รับคนที่เกินมาตรฐานแต่ไม่เหมาะกับแบบทดสอบไปเสียได้ และก็ยอมรับว่าตอนนี้เป็นแบบนี้เพราะยังหาวิธีดีกว่านี้ไม่เจอ ก็แค่นั้น

127 Nameless Fanboi Posted ID:vqdWOUzumi

>>126 อ่านแล้วเก็ตอยู่นะ สมมติ ไปเอาคนกากๆทำงานไม่ได้มา นี่ก็อายอยู่นะ

128 Nameless Fanboi Posted ID:ArYYlu8/h0

ปกติ id ในโม่งมันมีวิธีอ่านเป็น ip address ไหม

129 Nameless Fanboi Posted ID:PT.PriE3.A

ส่วนตัว ผมไม่ mind เรื่องไม่เชี่ยวชาญ stack ปัจจุบันนะ ไม่ได้อยากได้คนที่ exact match จ๋าๆ ด้วย ผมมองว่าสายงานเราความรู้ตามกันทันแค่อ่าน แต่ความสามารถในการอ่านแล้วซึมซับได้

ผมแชร์อีกมุมละกันว่า ผมไม่เสียดายมากนักกับความเชี่ยวชาญใน stack ปัจจุบันที่ใช้อยู่

130 Nameless Fanboi Posted ID:fwekwgHuoR

bb github รู้สึกว่าแพงไป บางทีต้อง add คนอื่นที่ไม่ได้อยู่ในทีมเข้ามาด้วย แล้วซื้อเป็นรายปีมันต้อง add seat ทั้งปี
จริง ๆ ถ้า github มีระบบ guest แบบไม่เสียตังจะดีกว่านี้

ตอนนี้มีใช้หลาย service ที่ pay per user มันแพงมาก ๆ เลย รับงานมาแทบจะไม่กำไรเพราะไอพวกนี้แหละ

131 Nameless Fanboi Posted ID:/VJqDqGGDF

สำหรับท่านใดที่กำลังให้ความสนใจ Serverless แล้วเกิดข้อสงสัยว่าทำยังไงเราถึงจะสามารถ ย้ายระบบ Web ของเราไปเป็น Serverless ได้บ้าง
.
มีบทความแนะนำจาก freeCodeCamp ครับ แต่จะเป็นการ Migrate ไปที่ Serverless ของ AWS น่ะครับ
.
The Ultimate Guide to Migrating to Serverless
https://www.freecodecamp.org/news/migrating-your-app-to-the-cloud-using-serveless/
.
ขั้นตอน
1. ย้าย API เล็กๆที่ไม่ได้ต่อ DB ก่อน เช่น API การจัดการรูปภาพ, การส่งเมล์ ออกมาที่ AWS Lambda and API Gateway
2. ย้าย DB มาที่ Amazon DynamoDB หรือ Amazon RDS
3. ย้าย API ที่ต่อ DB ที่เหลือมาที่ AWS Lambda and API Gateway
4. ย้ายการเก็บ File มาที่ AWS - Amazon S3
5. ย้าย Static Web ไปวางที่ AWS - Amazon S3 และจัดการ Domain Name ผ่านทาง Amazon Route 53
.
สุดท้ายก็มีแนะนำ Course Free ให้ลองเรียนเพิ่มเติมครับ
https://courses.completecoding.io/p/build-a-serverless-api/
.
ปล. ถ้ายังไม่หนำใจ จัด Course Free นี้ต่อได้เลยครับ
https://serverless-stack.com/
เป็น Course สอนพัฒนา Full-Stack Apps ด้วย AWS Serverless และ React
มาทุกขั้นตอนเลยตั้งแต่สมัครใช้งาน AWS, จัดการ users, เขียน Web API, Web UI, Automation
.
Happy Coding
.
🔥🔥🔥