Last posted
Total of 1000 posts
บันเทิงชิบหาย ตัวจริงมาโพสม้าเองเปล่าวะ เอางี้ ย้ายไปห้อง netwatch ไหม เดี๋ยวมีเรื่องแฉ สนุกๆ อีกเยอะ
พวกที่มาดิสเครดิต NN นี่คือพวกโค้ดสตาที่เจ็บแค้นเพราะตัวเองกลายเป็นมีม่ ๆ ในโม่งเลยหาคนมาระบานใส่สินะ
เหมือนเห็นคน รี router แว๊ปๆ 555+
>>>/netwatch/6276/ ตั้งละ
พอละ เลิกเล่นมุขละ...
ที่จริงผมเขียนโปรแกรมเป็น เก่งเอาเรื่องเลยล่ะ...
ที่บอกว่ามือใหม่หัดเขียน ช่วง 2-3 เดือนนี้ เพราะจะหลบดราม่า แต่ ดูละ
ไอ้พวกนี้ก็ดราม่าอยู่ดี
...
สรุป ผมนี่เคยเข้าแข่งเขียนโปรแกรม
ชนะเลิศ อันดับ 1 รายการ bsc contest 2007 จากผู้เข้าแข่งทั่วประเทศ
...
และสอบได้ใบ cer หลายใบ
...
คนเรามีดี ไม่ต้องอวดอ้าง แต่รอบนี้ขอนิดนึง ไม่ไหวกับคนประเภทนี้จริงๆ
เลยต้องตอกสักหน่อย
...
ใครที่อยากได้ความรู้ บางส่วน จากผม ศึกษาได้ที่
www.javathailand.com
www.javathailand2.com
มีสองอันครับ ขอไม่สอนแบบส่วนตัวนะ
#มิตรสหายท่านหนึ่ง
Justice Animation video
Short Note ตลาด Tech ปลายปี 2018 #ไทยคำอังกฤษคำจัดๆนะ
- ตลาดมือถือกลายเป็นตลาด Consumer เต็มตัวแล้ว แทบไม่มี Innovation มาเกี่ยวข้องละ ถ้าสนใจ Next Era ควรจะ Fade Down จากมือถือได้แล้ว
- Mobile App จบ(ไปนาน)แล้ว จากนี้อยู่ได้ก็แค่แอป ฯ เฉพาะทางที่จำเป็นเท่านั้น แต่ความต้องการ Mobile Developer ก็ยังสูงอยู่ ด้วยเหตุผลบางประการ
- Mobile Games จะยังเติบโตต่อไป แต่ก็จะผูกขาดกับ Publisher เจ้าใหญ่ ๆ มากขึ้นเรื่อย ๆ
- Crytocurrency พิสูจน์ตัวเองระดับหนึ่งแล้วว่าไปไม่รอด คงจะตายไป 99.9% ตามที่คาดไว้ สาเหตุหลักคือ Adoption ไม่เกิดขึ้นจริง
- ใครทำธุรกิจเกี่ยวกับ Cryptocurrency ปรับตัวดี ๆ
- แต่ตัว Store of Value น่าจะมีอย่างน้อยหนึ่งตัว และก็คงหนีไม่พ้น Bitcoin อาจจะใช้จ่ายจริงไม่ได้ แต่คงเก็บมูลค่าได้ คงจะเห็นชัดหลัง Halving ครั้งถัดไป
- Public Blockchain ยังต้องหาตัวเองต่อไปว่าจะไปยังไงต่อ เข้าสู่ Mass Adoption ไม่ได้เพราะยากเกินไป พอคน Mass ใช้ไม่เป็นก็ไม่ใช้กันและมันก็ไม่มีทางเกิด ต้องรอ Generation ต่อไปที่ทุกอย่างง่ายขึ้น อาจจะต้องรอ Crypto Bank เกิด
- แต่ Private Blockchain นี่โตเอา ๆ ทั้งตลาด Enterprise และตลาด B2G ถ้าใครจะจับ Blockchain ควรหันไปทางโน้น ไม่ใช่ Public Blockchain รวยไปหลายรายละฮ้าบบบ
- คาดว่า Public Blockchain น่าจะเหลือรอดแค่ไม่ถึง 10 สาย
- ICO จบแล้ว ต่อจากนี้ถ้าจะมีอะไรรอดก็ STO
- แต่ STO เราคาดว่าน่าจะไม่ขอระดุมทุนจาก Public เท่าไหร่ คงทำเป็น Private Funding กลับเข้าสู่รูปแบบเดิม ก็คือคนทั่วไปน่าจะไม่ได้ลง
- ใครจะทำ ICO Portal คิดดี ๆ ไม่ได้ห้ามทำแต่วางแผนดี ๆ ให้เหมาะสมกับตลาดที่เปลี่ยนไป อย่ายึดเอาโมเดลปีที่แล้วมาทำ เจ๊งชัวร์
- AI เป็น Next Era อย่างเป็นทางการ บอกแล้วบอกอีกและก็ยังจะบอกต่อไป จับ AI ซะแล้วจะรุ่งเรืองในยุคถัดไป
- แม้แต่การเติบโตของตลาดมือถือก็จะผูกกับ AI โดยเฉพาะ Mobile Photography ที่จำนวนเลนส์ยังไม่สำคัญเท่า AI ฉลาด ๆ ถ้า Flagship รุ่นถัดไปของยี่ห้อไหนไม่มี AI มาเกี่ยวข้อง พูดเลยว่าลำบากแล้ว
- ไม่ใช่แต่ Developer ที่ต้องปรับตัว สื่อก็เช่นกัน ถ้าจะยังเล่นแต่เรื่องเดิม ๆ ก็จะจืดละ หันไปเล่นเรื่อง AI แล้วสื่อนั้น ๆ จะโดดเด่นขึ้นมาทันที
- Tensorflow ดูมีภาษีดีสุดในแง่ Production Deployment พี่ Google เค้าวิชั่นดี
- VR ยังหาทางตัวเองอยู่ ด้าน Content Creator ค่อนข้างไม่ชอบที่จะทำ Content VR เพราะถ่ายยากและ Consume ยาก ตลาดนี้จึงไม่โตเพราะ Content ด้วยและตัวแว่นก็ยังใช้งานยากด้วย
- แต่ตลาดที่ Prove แล้วว่าเวิร์คสำหรับ VR คือ Gaming ทั้งแบบ B2C และ B2B2C (ร้านเกม) เสพย์ยากก็เดินเข้าร้านแล้วทุกอย่างก็ง่ายเอง
- AR กลายเป็น Gimmick มากกว่าฟีเจอร์ แต่ก็มีการใช้งานจริงในบางตลาดแล้ว แต่ส่วนใหญ่เน้นไปทาง Entertainment เช่น แต่งหน้า แต่งตัว ก็ไม่ใช่ Everyday Use อยู่ดี พวกส่อง ๆ เล่นเกมมันก็แค่ว้าว สุดท้ายเล่นครั้งเดียวเลิก ต้องหาช่องทางกันต่อไปครับ
ตลาดช่วงนี้มีอะไรเกิดขึ้นเยอะ ปรับตัวกันไปให้ทันนะฮ้าบบบ
สรุปให้ + ความเห็นเพิ่ม
- หมดยุค App กาก แต่ความต้องการ Dev ยังมี เพราะ App ในรูปแบบบริษัทยังมีความสำคัญ ไม่หมดงาน แต่งานงอกเงินเท่าเก่า หรือน้อยลง
- อย่าไปเล่น Crytocurrency ICO ช่วงนี้ รอกลางปีหน้า ถ้าไม่ Fail จะเห็นการ halving ปี 2020
ใครจะซื้อการ์ดจอเล่นเกมก็ซื้อซะ มีเวลาให้ซื้อย่างน้อยไปถึงกลางปีหน้า ส่วน dev ใครจะทำก็ทำไป แต่เงินเดือนจะไม่พาราก้อนเท่าปีที่แล้ว
- หมดยุค VR ตั้งแต่ facebook เท Rift
- AR หลอกแดกได้แป๊ปๆ จบข่าว
- ยุคแห่งการหลอกแดกด้วยคำว่า AI เริ่มขึ้นแล้ว ของจริงมีแค่ไม่กี่เจ้าที่เหลือขยะที่เอาชื่อ AI ไปแปะ
ถามหน่อยครับเพื่อนโม่ง ปกติงานdev ถ้าเรียกเงินเดือนเรท30-35k นี่ความคาดหวังของบ.เขาจะอยู่ที่ประมาณไหน
ถามหน่อยครับเพื่อนโม่ง ปกติงานdev ถ้าเรียกเงินเดือนเรท30-35k นี่ความคาดหวังของบ.เขาจะอยู่ที่ประมาณไหน
crypto นี่มาขาลงแต่ว่าสงสัยว่ามันจะดับสูญไปเลยไหม เพราะเรื่องขุดเหี้ยไรนี่กูไม่ซี แล้วกูไม่สนกับcryptoหน้าใหม่ๆที่ขาดความเสถียรและขาดจุดเด่นด้วยนะ คือ กูคงแลกเปลี่ยนมาเพื่อใช้จ่ายแบบไม่ต้องโดน สคบ. หรือห่าไรตรวจสอบบัญชีย้อนหลังนี่แหละ
มีใครรู้จักหรือทำงานบริษัทD-Sci Corปอเรชันที่ทำmytcasมั้ย อยากถามว่าไมงานกาก งบน้อยหรอ
var data = Array.apply(null, {length:10000})
ทำไมโค้ดนี้ใน JavaScript เป็นการสร้าง Array เปล่า 10,000 ช่อง
จะเอาตัวรอดในการทำงานสมัยนี้ จะเก่งด้านเดียวต่อไปไม่ได้แล้ว ต้องมีความรู้แบบตัว "T"
คือ มีทั้งความรู้รอบตัว/ทักษะด้านอื่น ๆ ที่เอื้อต่อการทำงาน (ทักษะแนวราบ.. หัวของตัว T) และความรู้ที่เชี่ยวชาญของเราเองโดยตรงที่เป็นแนวดิ่ง (แกนลำตัวของตัว T)
ทฤษฎีนี้มีมาหลายปีแล้ว แต่มันเริ่มชัดขึ้นเรื่อย ๆ ๆ ๆ ๆ
เช่น วิถีชีวิตของชาวเดฟ..
- จะมาเก่งภาษาใดภาษาหนึ่งหรือแพลตฟอร์มใดแพลตฟอร์มหนึ่งไม่ได้อีกต่อไปแล้ว ต้องรู้ภาษาอื่น ๆ บ้าง
- จะเก่ง coding อย่างเดียวไม่ได้.. ทักษะเกื้อหนุนอย่าง UI/UX, graphic design, database design, admin, network, cloud etc พวกนี้ก็ควรมีวิชาติดตัวเอาไว้บ้าง การมาอ้างว่าผมเป็นแบ็คเอนเดฟ ผมทำฟร้อนท์เอนด์ไม่ได้.. ระวังจะตกงานเอาง่าย ๆ
แล้วนอกจากทักษะที่เสริมวิชาชีพหลักของตัวเองแล้ว ก็ควรใช้เวลาไปพัฒนาทักษะอื่น ๆ ที่ไม่เกี่ยวกับอาชีพหลักติดตัวไว้เป็นทางเลือกในชีวิตบ้างก็ดี
เป็นแรงงานสมัยนี้มันยากนะ แต่มันไม่ใช่เพราะเศรษฐกิจไม่ดี มันเป็นเพราะเราต้องแข่งขันกันมากขึ้นหลายเลเวล ตอนนี้เราต้องแข่งขันกับเครื่องจักรด้วย ไม่ได้แค่แข่งกันเองระหว่างมวลมนุษย์อีกต่อไปแล้ว.. ใครคิดจะย่ำอยู่กับที่ ก็เตรียมเก็บเงินไว้ให้พอใช้ตอนไม่มีงานทำก็แล้วกัน
https://web.facebook.com/photo.php?fbid=2553382784704383&set=gm.2437279452952268&type=3
รับสมัครงาน programmer ขาวมาก
ทำไมruby on railsตามพวกเว็บสมัครงานแม่งรับแต่seniorวะ ไม่เข้าใจ
กูรู้สึกไม่ชอบความรู้สึกเหยียดผู้หญิงในที่ทำงานของกูเลย แต่ก็ไม่รู้จะเอาอะไรไปเถียงเค้า
เพราะรับโปรแกรมเมอร์ผู้หญิงมากี่คนๆก็ทำงานห่วยทุกคนจริงๆ
ถึงโดยธรรมชาติผู้หญิงจะสนใจเรื่องเทคโนโลยีน้อยกว่าผู้ชายกูว่ามันก็ไม่ใช่ข้ออ้างว่าเค้าจะทำงานไม่ดีนะ
งานก่อนของกูก็มีผู้หญิงที่ไม่ได้สนใจด้านนี้อยู่ในทีมเยอะ แต่ทำงานออกมาดีกันได้
เหมือนซวยรับคนที่ไม่ตั้งใจทำงานแล้วก็ไม่ค่อยมีความรับผิดชอบเข้ามามากกว่า
ก็ไม่เกี่ยวกับเพศจริง ๆ ผู้หญฺงทำงานเก่งมีเยอะ น่าจะอยู่ที่การคัดกรอง
นี่กูงงมากกว่าว่าทำไมโปรแกรมเมอร์ ญ ในสายงานนี้มันถึงได้มีสถิติน้อยสัสๆเลย เท่าที่กูเห็นๆมานะ โปรแกรมเมอร์เพศแม่เหมาะกับไปทำงานเชิงสายวิจัยมากกว่า กูเห็นอาจารย์ในภาควิชานี่ผู้หญิงมีส่วนช่วยในการเขียนตำราตีพิมพ์เยอะพอสมควรแต่ว่าต้องระดับเก่งๆมันสมองดีระดับนึงนะ เพราะที่ไม่เก่งไรมาก ดาดๆครึ่งๆกลางๆจะเป็นแบบไอที่โม่งตัวบนๆกล่าวมา แถมบางทีเจอแบบฝีมือกากละรับสภาพสังคมโปรแกรมเมอร์ไม่ได้อีกนี่ก็มี
งานมันไม่เป็นมิตรกับการสุขภาพความงามมั้ง
นั่งทั้งวัน แดกจนอ้วน สายตาสั้น เล็บมือไว้ยาวไม่ได้ แถมอยู่นานๆเป็น SJW อีก
กูดูคลิป “หลักการเขียนโปรแกรมเบื้องต้นจากศูนย์ถึงร้อย” ครบหมดแล้ว ตอนนี้กูกำลังเรียนเขียน C จากเว็บ “Programming.in.th“ ถ้าเรียนจบกูจะเรียน C จากคลิปของ prasertcbs ต่อจนครบ แล้วอยากสร้างเกมง่ายๆที่พอทำได้สักเกมสองเกมเพื่อเป็นการรวบยอดความรู้ทั้งหมดที่เรียนมา จากนั้นกูควรศึกษาเรื่อง oop ต่อหรือเปล่าวะหรือควรทำอะไรต่อไป
>>901 แค่นั้นก็เกินพอ ส่ิงที่มึงควรทำคือลองเขียน project มาซัก 1-2 ตัวก่อน จากนั้นไปดูเครื่อง opp แล้วเอา project เดิมมาเขียนใหม่
ถ้ามึงบ่นกว่า project เดิมที่เขียนไป กาก นั้นคือมึงสอบผ่านแล้ว
เข้าเรื่องอยากเขียน เกมง่ายๆ ไปหา game engine ซักตัวมาลองเล่นดูดีกว่า ไปเอา C มาเขียนทั้งหมด เดี๋ยวมึงได้บ้าตายก่อน คอนเซ็บที่ต้องเล่นกับ time frame คือส่ิงที่ต้องเรียนรู้อันดับแรก
สำหรับ Game engine ถ้าให้แนะนำ แบบใช้ยาวก็ Unity
แต่ถ้ามึงเป็นมือใหม่จริงๆ กูแนะนำให้เริ่มที่ Clickteam Fusion ก่อนจะดีกว่า ถึงพีเจอร์เก่าแล้ว แต่สำหรับทำเกมง่ายๆ ก็เกินพอ อีกอย่างระยะเวลาในการเรียนรู้ engine นี้สั้นมาก ไม่เกินอาทิตย์น่าจะได้เกมง่ายๆ เป็นรูปร่างซักตัว ให้มึงเค้าใจคอนเซ็บ เรื่อง time frame แล้วค่อยโดดไปเล่น Unity ต่อ
ทำไมหลังๆ Clang มาแรงจัง
ถ้ากูอยากได้ web service ที่ fix URL ตายตัวซักที่นึง เวลา request มาแค่ get ง่ายๆอย่างเดียว ไม่ต้องส่ง parameter อะไรเลย
response เป็น json เล็กมากๆที่มีแค่ 2-3 node แต่ว่ากูต้องเปลี่ยน response ได้เองโดยที่ใช้ URL เดิม
จำนวนคนใช้น้อยมากแค่หลักร้อย วันนึง request ไม่กี่ครั้ง มันมีที่ไหนรับ host อะไรพวกนี้ฟรีๆแนะนำบ้างมั้ย
127.0.0.1 กับ 0.0.0.0? ต่างกันยังไงครับ
อยากรู้ว่าถ้าทำ web หรือ app แล้วเรามีการเก็บสถิติการใช้งานแบบ anonymous
อย่างเช่นดูแค่ว่าลูกค้าใช้ feature ไหนเยอะน้อย มีคนใช้ประมาณเท่าไหร่
ข้อมูลที่เก็บระบุตัวคนไม่ได้ และไม่ได้เอาไปใช้ยิง ads หรือหาประโยชน์อะไรนอกจากปรับปรุงระบบของเราเอง
ในทาง กม. มันต้องขึ้นบอกคนใช้หรือบังคับให้เค้ากดยอมรับว่ามีการเก็บข้อมูลอะไรงี้ก่อนมั้ย
ใครไม่กล้าพูดกับ stakeholder เพื่อนร่วมทีมหรือหัวหน้า ว่า “ไม่รู้เว้ย เอาแบบนี้ละกัน น่าจะเวิร์ค” จำประโยคนี้ไปใช้นะครับ “Information ไม่พอ (ไม่รู้เว้ย) เลยเลือก heuristic (เอาแบบนี้ละกัน) ที่ statistically better (น่าจะเวิร์คกว่า)” ความหมายเดียวกันเป๊ะๆ แต่ดูดีมีหลักการมีความน่าเชื่อถือกว่า
ปล. แต่ให้เลือกของที่น่าจะเวิร์คกว่า (statistically better) จริงๆ นะ ไม่ใช่มโน เพราะเขาตีกลับมาได้นะว่าทำไมถึงน่าจะเวิร์ค
Database กับ datastructure ต่างกันตรงไหนวะ
กูผู้ชายนะ ไม่รู้ว่ากูคิดมากไปป่าว
แต่กูไม่ชอบ meme ที่เอารูปผู้หญิงที่เขียนโปรแกรมประมวลผลรูปหลุมดำ มาตัดต่อล้อว่าเค้าเขียนโปรแกรม hello world อะไรพวกนี้เลยว่ะ
มันยิ่งเป็นการโชว์ว่าวงการนี้แม่ง sexist อย่างที่คนเค้าด่ากันจริงๆ
มีใครเป็นเหมือนกูมั้ย ทำงานมาเกิน 5 ปี แล้วรู้สึกเบื่องานโคตรๆ ตอนแรกก็คิดว่ากูคงอิ่มตัวกับเรื่องเขียนโปรแกรมนะ
พอได้ลองทำอะไรเล่นขำๆของตัวเอง อย่างลองศึกษาเทคโนโลยีใหม่ๆที่ไม่เกี่ยวกับงานแล้วก็ยังสนุกอยู่
แต่พอต้องทำงานจริงแล้วเบื่อมาก กูไม่เคยอินกับพวก goal ขององค์กรที่อยู่เลย ทำงานก็ถือว่าทำให้ดีตามหน้าที่ไปงั้นๆ
คือก็ไม่ได้ถึงกับทำแบบลวกๆส่ง แต่ก็ไม่มีมานั่งเกลาแก้แล้วแก้อีกอะไรแบบนี้
จบใหม่ควรเรียกเท่าไหร่วะ
ทุกวันนี้พวกมึงใช้ ภาษา / framework อะไรทำงานกันบ้างวะทุกคน
ปกติพวกมึงรับ requirement ผ่าน SA กันป่ะ หรือรับจาก business แล้ว design เอง
เด็กจบใหม่จะหางาน python ได้ป่ะวะ กุยื่นไปกี่ที่ๆบอกว่ารับ java dev
>>921 หายากมาก จะเจอก็ไปซะชานเมืองหรือ ตจว. จ๋าๆไปเลย มึงต้องไปต่างประเทศเท่านั้นอ่ะถ้าจะหากินด้วยpython ไม่งั้นก็ pantip.com หวังว่าจะยังเปิดรับ บ้านเรายังดักดานกับแค่จาวาอยู่เพราะคอมมูนิตี้ในไทยใหญ่สุด มีตั้งแต่ฉลาดเป็นกรดกับไร้ปริญญาเหมือนSIRNมาทำงานในวงการนี้
ตอนนี้กุ outsource .net ปสก1 ปีครึ่ง ณ ตอนนั้น เงิน 35k + ค่านุ้นนี่นั่น = 38k
ตอนนี้ ปสก 2 ปีครึ่ง พวกมึงว่ากุจะเรียก 50k ได้ป่าววะ หรือถ้าที่เดิมไม่ให้ตามต้องการ ไปหาที่ใหม่มึงว่า โอกาสหายากง่ายแค่ไหน
ประสบการณ์จำนวณปี <> งานที่ทำได้
ยังมองไม่ออกเลยว่า LibraBFT จะสเกลเพื่อรับ Transaction per second (tps) เพิ่มได้ยังไง #GeekAlert #ไม่ใช้ภาษามนุษย์นะโพสต์นี้ #เตือนละนะ
.
LibraBFT ถึงจะเป็น Consensus Protocol กลุ่ม BFT ที่พัฒนาขึ้นมาจากตัวแรก ๆ เยอะมาก แต่ก็ยังไม่ใช่ Perfect Solution อยู่ดี (อย่างน้อยก็ใน Approach ปัจจุบัน)
.
BFT ตัวที่โบราณหน่อยแต่ดังก็คือ PBFT (Practical Byzantine Fault Tolerance) เพราะมันง่ายสุด คือให้ทุก Validator คุยกันเลย ทำให้มีข้อความที่ต้องส่งถึงกันถึง n^2 ถึง n^4 แล้วแต่จะออกแบบ (n คือจำนวน Validator) สุดท้าย Big O เลยล่อไป O(n^3) โดยเฉลี่ย ทำให้เวลามี Validator เยอะ ๆ มันเลยอืดลงเรื่อย ๆ ไม่สามารถสเกลได้
.
ในคำว่า Scalability ของโลก Blockchain ไม่เหมือนกับ Scalability ในโลกของ Centralized Server ปกติเท่าไหร่ คือพวก Centralized Server เนี่ยยิ่งเพิ่มเครื่องจะยิ่งรับ Concurrency ได้มากขึ้น แต่สำหรับ Decentralized เนี่ย มันจะยิ่งหน่วงลงเรื่อย ๆ เพราะเครื่องต้องสื่อสารกันมากขึ้น*
.
(*แล้วแต่ออกแบบ แต่ส่วนใหญ่เป็นแบบนั้น หรือถ้าไม่ใช่ก็จะแลกมาด้วยอะไรบางอย่างเสมอ)
.
BFT ก็พัฒนามาเรื่อย ๆ เพื่อลด Big O ลง อย่าง Tendermint ก็ BFT ที่ O(n^2) และล่าสุด vmware ก็นำเสนอ BFT ที่ประสิทธิภาพดีที่สุดอย่าง Hot-Stuff ออกมา Big O อยู่ที่ O(n) เท่านั้น แปลว่าการเพิ่มเครื่องไม่ได้ทำให้หน่วงขึ้นมากเหมือนอันเก่า ๆ ทุกอย่างเป็น Linear
.
เบื้องหลังของ Hot-Stuff คือเป็น BFT แบบ "Leader-based" ก็คือแทนที่จะใช้วิธีคุยกันด้วยทุก Validator แบบ PBFT ก็เปลี่ยนเป็นให้ทุก Validator มาคุยกับ Leader ซึ่งมีตัวเดียวแทน ข้อความเลยส่งกันด้วย O(n) เท่านั้น
.
และความหมายใน Paper ที่บอกว่า LibraBFT สเกลได้ก็คือ "สเกลจำนวน Validator ได้" ไม่ได้แปลว่าจะเพิ่มจำนวน Transaction per second ได้แต่อย่างใด
.
และพอมองไปยาว ๆ ก็ยังไม่เห็นว่าการโตของจำนวน Validator จะทำให้ระบบมันทำงานได้เยอะขึ้นเลย มีแต่จะช้าลง ๆ ตะหาก
.
ข้อได้เปรียบของ LibraBFT (Hot-Stuff) คือ คิดว่าน่าจะรับได้หลายพัน tps ตั้งแต่แรกแหละ แค่เค้าลิมิตไว้ที่ 1,000 tps ก่อนด้วยเหตุผลหลายประการ แต่สุดท้ายถ้าปลดล็อคมันก็จะมีเพดานของมันอยู่ดี
.
และสเปคเครื่องที่จะรัน Validator Node ได้ก็ถือว่าโหดเหมือนกัน เพราะยิ่งต้องรับ tps ได้มากขึ้น พวก CPU, RAM ก็จะต้องยิ่งสูงขึ้นเร็วขึ้น Harddisk ก็จะยิ่งบวมเร็วขึ้น แปลว่าค่า Maintainance ของ Validator Node ก็จะสูงขึ้นเรื่อย ๆ ด้วย ไม่รู้จะถึงจุดที่คนรู้สึกเสียใจที่ตั้ง Validator Node มั้ย
.
เท่าที่พิจารณาดู ช่องทางที่เหมาะสมกับการสเกล tps ก็มีอยู่สอง Approach คือ
.
1) Sharding
.
2) Off-chain Solution
.
ซึ่งก็ยังไม่มีข้อมูลจากฝั่งไหนเลยว่าจะทำมั้ย แต่ก็มีโอกาสที่ Calibra จะทำ ในกรณีนั้นก็จะไม่มีปัญหาเรื่องสเกลละ ตัว Libra ก็คงให้อยู่ 1000 tps ต่อไปได้อีกนาน
.
ไว้รอดูกันต่อไปจ่ะ
เรื่อง MVC ต่อจากเมื่อวานหน่อย .... เห็นมีคนแชร์กันเยอะ
ลองมองว่า MVC ไม่ใช่ Design Pattern และไม่ใช่แค่ Architecture Pattern สำหรับอะไรอย่างใดอย่างหนึ่งโดยเฉพาะ
MVC มันเป็น "ปรัชญา" สำหรับ Separation of Concern
1. M = ตัวตนของสิ่งที่ "มัน" เป็น
2. V = ภาพที่ "มัน" ถูกมองเห็น ถูกใช้งาน
3. C = ตัวกลางระหว่าง M, V
สิ่งที่เรามองเห็น อาจจะไม่ใช่สิ่งที่มันเป็น .... สิ่งที่มันเป็นอาจจะไม่ใช่สิ่งที่เราใช้และต้องการ .... เราต้องแยกปัจจัยพวกนี้ให้ได้ ไม่ใช่ไปยึดติด
ถ้า M ยึดติดกับ V ก็ไม่ดี ... ถ้า V ยึดติดกับ M ก็ไม่ดี .... ก็ต้องแยกสองอย่างนี้ออกจาก ...
ทางเดียวที่ทำได้ ก็ต้องมี C มาเป็นตัวกลาง .....
อย่าไปยึดติดอะไรกับมันมากนัก ปรัชญาของมันทำให้เรางอก "MVC ภายใน MVC" ได้อีกเยอะแยะมากมาย
เอาหลักการนี้ไปจับกับอะไรก็ได้ทั้งนั้นแหละ ..... ลองดูนะ .... เช่น
1. ถ้าเราถือว่าข้อมูลใน DB เป็น "ตัวตน" และ Entity/Model ใน Application เป็นสิ่งที่มันถูกมองเห็น ถูกนำไปใช้ เราก็ใช้ SQL Query (และอาจจะ + ORM) เป็นตัวกลาง ..... เราก็จะไม่ยัด SQL ไปใน Entity/Model เพราะมันคือ View ของ Data ใน DB ... เราก็เขียน Persist layer มาจัดการ
2. ถ้าเราถือว่า Object ใน Application ของเราเป็น "ตัวตน" และ JSON ที่ถูกพ่นออกไปเป็นสิ่งที่มันถูกนำไปใช้ เราก็สร้าง JSON Presenter สำหรับมันในบริบทต่างๆ เป็น View และใช้ตัวกลางอะไรสักอย่างมา Map ไป
อะไรแบบนี้เป็นต้น
MVC มันห่วย ถ้าเรามองมันเป็นแค่ Fixed Architectural Implementation ในบริบทใดบริบทหนึ่ง และมันห่วยเสมอเมื่อบริบทมันไม่ใช่บริบทเดียวกับที่มันถูก Implement มา .....
แต่หลาย Architecture ที่เกิดขึ้น ที่คนบอกว่ามันเจ๋งมากมาย ต้องทำแบบนี้ถึงจะถูก ฯลฯ ก็คือการเอาความคิดแบบ MVC นี่แหละ ไป Refactor แต่ละ Layer ของ MVC .....
ที่เมื่อวานผมเขียน MVC ของ Enterprise มันอยู่ใน Presentation ของ 3-Tier แต่ MVC หลายตัวมันคือ 3-Tier ตรงๆ เลย .... มันก็อีแบบนี้แหละ .... พอ Presentation ของคุณมันใหญ่ มันก็ถูก Refactor ด้วยความคิดแบบ MVC .... แล้วเราก็เรียกมันว่า "MVC Architecture " .... จนกลายเป็นว่า MVC ของเรามันไม่เท่ากัน
ทั้งๆ ที่จริงๆ แล้วมันเป็นหลักการ เป็นปรัชญา .... และเป็น Recursive Pattern .... คือมันสามารถ apply ตัวมันเองลงไปใน layer ไหนก็ได้ของตัวเอง .... เพราะแต่ละ layer ของมัน เมื่อมันเริ่มโตขึ้น มันก็จะ self-similar แบบเดียวกับตัวมันเองน่ะแหละ .... นี่คือ Recursive pattern ชัดๆ .....
หรือถ้าจะเอาปรัชญากว่านั้น ก็ถ้าเราถือว่า "สิ่งที่อยู่ในโลกจริงๆ หรือสิ่งที่ User พูดถึง เป็นตัวตนจริงๆ" และ "ข้อมูลใน DB เป็นสิ่งที่มันถูกมองเห็นหรือถูกนำไปใช้ในระบบเรา" .... เราก็จะมี "คนออกแบบระบบหรือคนออกแบบข้อมูล" (เช่นเราน่ะแหละ) หรือ "คนกรอกข้อมูล" เป็น Controller .....
อีกครั้ง:
สิ่งที่เรามองเห็น อาจจะไม่ใช่สิ่งที่มันเป็น .... สิ่งที่มันเป็นอาจจะไม่ใช่สิ่งที่เราใช้และต้องการ .... เราต้องแยกปัจจัยพวกนี้ให้ได้ ไม่ใช่ไปยึดติด
ถ้า M ยึดติดกับ V ก็ไม่ดี ... ถ้า V ยึดติดกับ M ก็ไม่ดี .... ก็ต้องแยกสองอย่างนี้ออกจาก ...
อย่าไปยึดติดอะไรกับมันนักเลย ลองมองให้ลึกกว่าเปลือกที่แต่ละ Framework หรือแต่ละ Implementation บ้างก็ดี
ทุกวันนี้ Hacker มีเทคนิคที่สุดยอดมากกก
มากซะจนผมคิดว่า app และ web 50%
สามารถ hack ได้ในทางใดทางหนึ่ง
ส่วนหนึ่งน่าจะเป็นเพราะว่า
Developer ไม่รู้ว่าจะ Secure API อย่างไร
.
.
Security ของ API เป็นตัวชี้ชะตาของ app
ถ้า app ไม่ดังก็ไม่เท่าไหร่
แต่ถ้าเกิดดังขึ้นมา มีคนเล่นเยอะหน่อย
มันก็จะมีคนมาลองแฮ็คระบบ
ยิ่งถ้ามีของรางวัลล่อใจ ยิ่งลองของกันสนุกสนาน
ทำโปรแกรมเมอร์หมดอนาคตเลยนะบางที
.
.
โพสต์นี้จะสอนการออกแบบ security ของ API 6 ข้อ
ไม่ได้ strong ขนาด hack ไม่ได้ 100%
แต่ก็ไม่อ่อนขนาด ใครๆก็ hack ได้
และถ้า system ถูก hack ก็ต้องจำกัดความเสียหายได้
และเตือนไว้ก่อนเลยว่า post นี้ยาววววว
.
.
การออกแบบ API ให้คิดไว้เลยว่า โดนแน่ๆ
โดยเฉพาะ API ที่ใช้ร่วมกันระหว่าง mobile และ web app
ยิ่งต้องออกแบบอย่างเข้าใจธรรมชาติของ platform ที่ต่างกัน
.
.
เริ่มจากข้อ 1 สำคัญสุด ให้ใช้ https ทั้งหมดทุก request
เพื่อป้องกันคนเข้ามาแก้ข้อมูล request ระหว่างทาง
ถ้าเรียกมาเป็น http ให้ server reject request เลย
.
.
ข้อ 2 ใช้การ Authen ด้วย accessToken
การสร้าง accessToken ผมจะใช้ JWT ในการสร้าง
JWT = JSON Web Token
ถ้าสนใจ ผมแนะให้เพิ่ม shuffle key ซ้อนเข้าไปอีกชั้น
เพื่อทำให้ไม่สามารถดูข้อมูลใน JWT payload ได้ง่าย
เพราะ spec ของ JWT ใช้ base64encode
ซึ่งสามารถแกะห่อดูได้ง่ายเกิ๊นน
.
.
ใน accessToken ให้เก็บเฉพาะ UID อย่างเดียว
และ UID อย่าเอา ID ของ user มาใช้ตรงๆ
ให้ encrypt ID ให้กลายเป็น string ยาวๆก่อน
อย่าให้ hacker เดา UID คนอื่นได้
อ่านที่ผมเขียนดีๆ encrypt นะ ไม่ใช่ encode
เกิด hacker สามารถปลอม accessToken ได้
ก็ไม่รู้จะปลอมเป็นใครอยู่ดี
เพราะ UID มันเดาไม่ได้ ความน่าจะเป็นสูงเกิน
.
.
JWT จะยังเชื่อถือได้อยู่ถ้ายังไม่โดนโขมย secret key
เมื่อไหร่ก็ตามที่ key โดนโขมย
hacker จะปลอม token ได้ทันที
ให้คิดในแง่ร้ายที่สุดไว้ก่อนว่า มันอาจจะโดนโขมยได้
ต้องมี plan B เอาไว้จัดการเมื่อ key โดนโขมยไปแล้ว
.
.
ถ้า key JWT โดนโขมย จะต้องเปลี่ยน key ที่ฝั่ง server
สิ่งที่เกิดขึ้นคือ api ทั้งหมดจะส่งค่ากลับว่ายังไม่ได้ login
ทำให้ user ทุกคนถูก logout auto และต้อง login ใหม่หมด
.
.
ข้อ 3 การเรียก api จาก app จะต้องมี signature ส่งไปด้วย
signature = SHA256(
accessToken = (userId::clientId) = ใครทำ
endpoint = ทำอะไร
parameters = ทำอย่างไร
nonce = ทำเมื่อไหร่
appId = เรียกจาก app ไหน
==============================
secret = token ลับ
)
.
.
nonce คือเวลาปัจจุบันของ client
ซึ่งจะต้องส่งไปที่ server พร้อมกับ parameter อื่นๆ
ฝั่ง server ตรวจสอบ ถ้า current_time() - GMT(nonce) > 2 นาที
request จะถูก reject เพื่อกัน replay attack
.
.
secret มีประโยชน์ ถึงแม้จะใช้ https ก็ตาม
ถ้า hacker ดักเอา accessToken คนอื่นมาได้
ก็จะปลอมเป็นคนอื่นไม่ได้ถ้าไม่รู้ secret
.
secret จะไม่ส่งทาง network เด็ดขาด
จะฝังไว้ใน app เมื่อ compile แต่ละ version
ถ้า secret ถูกโขมยไปได้จะต้อง update app ใน store
โดย app version เดิมทั้งหมด จะใช้ไม่ได้
ก็ต้องยอม ก็ดันโดนโขมย secret นี่นา
เห็นมั้ยว่าต้องคิดในทางเลวร้ายที่สุดเผื่อไว้ด้วย
.
.
การเรียก api จาก mobile app จะมีข้อดีกว่า web
คือไม่สามารถปลอม request ได้เลย
ถึงแม้จะใช้ accessToken ของตัวเองในการยิง api
เนื่องจากไม่รู้ secret ที่ฝังไว้ใน app
.
.
อย่างไรก็ตาม server ห้ามเชื่อใน request โดยไม่ตรวจค่าอื่นๆ
เนื่องจาก web app สามารถยิง api ได้ด้วย accessToken
โดยไม่ต้องมี secret ลับ
เพราะ web app จะไม่มี secret และถึงอยากมี secret ก็มีไม่ได้
มีไปก็ถูก copy เอาไปใช้อยู่ดี เพราะใช้ javascript เปลือยๆ
.
.
ข้อ 4 เมื่อเรียก api จาก web app จะต้องใส่ accessToken ใน header
อย่าริอาจเอา accessToken ใส่ไว้ใน URL
เนื่องจาก accessToken มันก็คือรหัสผ่านดีๆนี่เอง
URL บางทีก็โดน history ไว้ใน browser
URL บางทีก็โดน copy ส่งให้เพื่อน
และทุกครั้ง URL ก็จะโดน log ไว้เป็น file ไว้ใน server
รอเวลา hacker แหกด่าน server เข้ามาเจอ log เข้าสักวัน
.
.
ข้อ 5 จะต้องมี CSRF_token ใน cookie
ซึ่งต้องถูก generate ใส่เอาไว้มาจากฝั่ง server
CSRF_token อันนี้สำคัญมาก ถ้าไม่มีนี่โจมตีง่าย
แต่ผลกระทบของ CSRF attack นี่รุนแรง
มีไว้เอามาใช้ทำอะไรไปดูที่ข้อ 6
.
.
ข้อ 6 การเรียก api จาก web app จะต้องมี signature ส่งไปด้วย
signature = SHA256(
accessToken = (userId::clientId) = ใครทำ
endpoint = ทำอะไร
parameters = ทำอย่างไร
nonce = ทำเมื่อไหร่
appId = web
================================
secret = CSRF_token
)
signature ต่างกับ mobile app ตรงที่ appId = web เสมอ
และ secret ก็คือ CSRF_token
เอาไว้กัน Cross Site Request Forgery
แปลเป็นไทยคือ web อื่นจะมายิง api ของเว็บเราไม่ได้
เพราะว่า web อื่นจะมองไม่เห็น cookie ของเว็บเรา
ดังนั้นถึงปลอม parameters ได้ แต่ก็ปลอม signature ไม่ได้
เพราะต้องใช้ CSRF_token ในการสร้าง
.
.
ยังมีอีกเยอะที่ต้องทำ แต่ 6 ข้อนี้เป็นจุดเริ่มต้นของทุกสิ่ง
สมัย ป. ตรี เรียน optimization theory ผมจำสมการทั้งหมดไม่ได้นะเยอะมากและเป็นวิชาที่ยาก ประกอบกับตอนนั้นติดเกม เข้าเรียนน้อย
แต่ takeaway ที่ใช้ได้จนทุกวันนี้คือ
1. เรา optimize (maximize, minimize) สอง variable พร้อมกันไม่ได้ ในโลกจริงผมพบว่าใช่ เพราะถ้าบอกว่าต้องปรับปรุงของสองอย่างพร้อมกันแล้วของสองอย่างมี correlation ระหว่างกัน หรือมี constraint ที่ใช้ร่วมกัน คนทำงานจะสับสนมาก แล้วพังไม่ได้อะไรเสมอ และมักเป็นสาเหตุของ office politic
2. เรา optimize ได้ก็ต่อเมื่อมี constraint บางอย่างกำกับเท่านั้น
โม่ง กูถามหน่อย ไอหนูเนยที่มันชอบเขียนblog ลงทำmediumนี่ืใช่ที่มันเคยเปิดคอร์สกั๊กๆเนื้อหาในudemyป้ะ?
ปกติ outsource .net หมดสัญญาต่อใหม่ อัพเงินกันเท่าไหร่วะ ที่เก่ากุบอกว่า จะเพิ่มให้ไม่ถึง 10,000 เดี๋ยวจะบอกว่าเท่าไหร่งี้อ่ะ
ปล. เงินกุยังไม่ถึง 40k
ไอ้ เควนทิน เบ็ค (Mystertio) ที่ทำตัวเป็นคนดีตอนแรกๆ แม่งจริงๆแล้วเป็นตัวโกง อดีตลูกน้องโทนี่
ตอนมันตาย แม่งยังเฉลยออกทีวี อีกว่า สไปเดอร์แมน คือ Peter Parker โคตรเหี้ย
แถมนิค ฟิวรี่ ในเรื่อง ดันเป็น ทาลอส (สครัล ในเรื่องกัปตันมาร์เวล) ปลอมตัวมา ไม่ใช่นิคจริงๆ อึ้งสัสๆ โคตรเนียน
เพื่อนๆโม่งต้องไปดู Spiderman Far From Home ให้ได้นะครับ
หนูเนยคือคนที่แม่งเคยอวยคริปโตชิบหายหลอกคนไปลงทุนตอนนี้เจ๊งไปละ กากสัสๆ
อาจารย์เดฟจะเปิดสอนคลาส Math for programmer แล้วนะ ตั้งหน้าตั้งตากดกันให้ดีครับ
มึงเคยได้ยินลูกค้าพูดเรื่องเงินเดือนเราในออฟฟิศกันไหม กุนึกว่าเค้าจะไม่รุ้เงินเดือนกุละ กุเป็น contract จะออก
แล้วกุเรียกบริษัท head ไป ลูกค้ากุที่ on site นั่งคุยกับแผนกอื่นแบบเบาๆ แล้วบอกว่า เนี่ย กุจะออกแล้วหมดสัญญา แผนกอื่นก็ถาม เงินเดือนเท่าไหร่ ปรากฏว่าลูกค้า onsite กูรุ้เว้ย ว่ากุเงินเท่าไหร่ เค้าก็คุยกันไปเบาๆ กุก้แกล้งไม่ได้ยินเพราะคุยกับอีกคนอยู่ แล้วเค้าก็ถามกันว่ากุขอขึ้นเงินเท่าไหร่ ปรากฏอีกว่า รุ้เรทเงินกุด้วยว่ากุขอขึ้นเท่าไหร่(ตอนกุขอขึ้นกุไปขอกับ head นะ ไม่ใช้บริษัทลูกค้า) ประเด็นคือพูดกลางที่ทำงาน ใครอยุ่ตรงนั้นแม้มรู้หมด 55555
>>951 โปรแกรมเมอร์ทั่วๆไปถ้าไม่ได้ทำงานเฉพาะทางบางด้านกูว่าก็ไม่ได้ต้องเก่งคณิตนะ
คณิตบางเรื่องที่แฝงมากับการเขียนโปรแกรมพื้นฐานมันก็ถูกใช้งานในอีกรูปแบบนึง
>>952 กูไม่เคยโดนเอง แต่เคยได้ยินลูกค้ากระซิบคุยกันเรื่องนี้ของคนอื่นในทีม เค้าคงเห็นกูใส่หูฟังอยู่เลคิดว่ากูไม่ได้ยินมั้ง
ประมาณว่าคนนี้ทำงานมาหลายเดือนแล้ว ปสก. หลายปี บริษัทต้นสังกัดก็โม้ไว้เยอะ ค่าตัวไม่ถูก แต่ทำงานไม่ค่อยดี เค้าเลยคุยๆกันรื่องนี้
กูเข้าใจว่าเค้าไม่ได้เห็นเงินเดือนโดยตรงนะ เค้ารู้แค่ว่าค่าตัวที่บรษัทต้นสังกัดเก็บเงินเท่าไหร่ จะให้เงินเดือนพนักงานเท่าไหร่ก็อีกเรื่อง
ถ้าเก่งชีวะน่ะรุ่งทุกคน
เดี๋ยวนี้อะไรๆ แม่งก็ big data ไงมึง
data จากงานวิจัยทางชีวะมันก็ใหญ่ขึ้น การจัดการ/วิเคราะห์ ต้องปรับตาม
ถ้าไม่เอาเด็กชีวะมาเรียนคอม ก็เอาเด็กคอมมาเรียนชีวะ ซักอย่างล่ะวะ
เพื่อนกูไปทำทาง neuroscience ช่วยแพทยสมองทำวิจัย
เงินเดือน 350 k ละ
หัวหน้าบอกว่าเราทำงานไม่ดี มีทางเลือกคือให้ลาออกเองซึ่งจะไม่เสียประวัติ หรือจะให้ไล่ออกแล้วรับเงินชดเชย จะเอาไงดี
นั่งอ่าน FB feed พบว่าคนในสังคมรอบตัวผมส่วนมาก เข้าว่า การ Coding โดยไม่ใช้คอมพิวเตอร์นั้นเป็นอย่างไร ดีอย่างไร และดีกว่าการสอน Coding โดยเริ่มจากการ "เขียนโค้ดในคอมพิวเตอร์" อย่างไร
ผมเองก็เขียนไปโพสท์หนึ่งเมื่อคืน ถึงจะไม่ได้เปิด public ส่วนหนึ่งเพราะผมขี้เกียจเจอกระแสสังคมแบบไม่จำเป็น
หลายคนอาจจะคิดว่าพวกนี้เป็น "ไดโนเสาร์" ที่เคยเรียนมาแบบนั้นมานานมาแล้ว และคิดว่าเด็กสมัยนี้ยังต้องเรียนแบบสมัยตัวเอง ..... หลายคนคิดว่ามันคือการเขียนโค้ดแบบเขียนในคอมพิวเตอร์ ลงกระดาษ .....
แต่จริงๆ แล้วไม่ใช่เลย
พวกนี้เข้าใจว่า Coding คือ Algorithmic Problem Solving ... และการเริ่มที่การเขียนโค้ดในคอมพิวเตอร์ นี่อาจจะเป็นอุปสรรคเสียด้วยซ้ำ ....
ในมหาวิทยาลัย วิชาสำคัญอย่าง Data Structures, Algorithms หรือวิชาอย่าง Problem Complexity Analysis ตลอดไปจน Theory of Computation นั้นไม่ถูกให้ความสำคัญ ทั้งคนเปิดสอนและคนเรียน
คนสอน ถึงอยากจะเปิดสอนก็เปิดสอนไม่ค่อยได้ เพราะไม่ค่อยมีคนเรียนหรอก ... ถ้าเป็นวิชาบังคับก็รอดไป แต่ถ้าเป็นวิชาเลือกนี่ ..... ผมเคยเปิดนะ มีคนลง 3 คน ... ปีต่อๆ มาก็เปิดไม่ได้ ... เพื่อนผมบางคนที่เก่งระดับสากล จะเปิดวิขานี้ก็ยังไม่มึคนลงเลย
จะไปเปิดวิชาพวกนี้ไปทำไมกัน ไปเปิดวิชาพวกสอน Syntax ภาษาโปรแกรมดีกว่า .... เด็กลงเยอะดี คิดว่าเอาไปทำงานได้เลย
จริงๆ แล้วจะเรียนภาษาโปรแกรมอะไรมา จะรู้ library แค่ไหน แต่ถ้าเรื่อง Algorithmic Problem Solving อ่อนแอแล้วล่ะก็ .... สุดท้ายก็ทำได้แต่งานระดับพื้นๆ
มันเหมือนกับเรียนภาษาไทย แต่ไม่เคยเรียนเรื่องโครงสร้างของการแต่งวรรณกรรม มันเหมือนกับเรียนกดคีย์เปียโน แต่ไม่เคยเรียนดนตรี ..... อาจจะเรียนเล่นดนตรี แต่ไม่เคยเรียนศาสตร์ของดนตรี หรือการสื่อสารด้วยดนตรี
อาจจะอ่านหนังสือได้ อาจจะฟังเพลงได้ อาจจะเขียนหนังสือลอกหนังสือเล่มอื่นได้ อาจจะเล่นเพลงได้ .....
แต่แต่งวรรณกรรมล่ะ? แต่แต่งเพลงล่ะ?
แล้วคิดว่าจริงๆ แล้ว Value มันอยู่ตรงไหนได้บ้าง? ..... เขียนโค้ดโปรแกรมแบบเดิมๆ ตลอดไปแค่เปลี่ยนภาษา? .... แค่ Maintain โปรแกรมที่คนอื่น (ต่างชาติ) เขียนมาแล้วตลอดไป?
หรือว่าจะทำ Innovation ใหม่ๆ ได้เพราะว่าเราแก้ปัญหาเป็นระบบ?
เห็นว่ามันมีได้หลากหลายมาก .... แต่การเขียนโค้ดในคอมพิวเตอร์เร็วเกินไป ทำให้เราโฟกัสกับปลายเหตุมากกว่าสิ่งที่สำคัญจริงๆ ที่แก่นของมัน
เอาจริงๆ แล้วทุกวันนี้ ผม "Coding โดยไม่ใช้คอมพิวเตอร์" นะ .... ผมใช้กระดานกับชอล์ค กระดาษกับปากกา ... และผมไม่ได้เขียนโค้ดแบบเดียวกับที่ผมเขียนโปรแกรม แต่ผมเขียนโครงสร้างของปัญหา เขียนนิยามของปัญหาต่างๆ และกลไกในการแก้ปัญหาพวกนี้อย่างเป็นระบบ .... และถ้าเป็นไปได้ ผมจะพิสูจน์ correctness ของมัน และเงื่อนไขต่างๆ ของพวกมันเสมอ ...
ทีมงานผมต้องสื่อสารกับผมแบบนี้รู้เรื่อง ต้องอ่าน Mathematical Models และ Computational Structures ต่างๆ ออก
อีกครั้ง การโฟกัสไปที่ "การเขียนโปรแกรมในคอมพิวเตอร์" เป็นอุปสรรคกับการสร้างคนในวงการนี้ด้วยซ้ำไปครับ
อย่าเอาสองเรื่องนี้ไปเท่ากันเลยครับ
ขอบคุณเพื่อนๆ ทุกคนที่ช่วยกันชี้แจงคนละไม้คนละมือครับ
แถมภาพ น้องในทีม Product Owners ของผม กำลังอธิบายแบบจำลองของปัญหาบางอย่าง และการแก้ปัญหา ให้ทีมงานฟัง
ป.ล. แยกกันให้ออกนะครับ การที่เราเข้าใจเรื่องนี้ และเห็นด้วย ไม่ได้แปลว่าเราเป็น "พวกของฝั่งการเมืองบางฝั่ง" ครับ .... เพื่อนผมหลายคนนี่ไม่เอารัฐบาล คสช. ต่อมาถึงรัฐบาลประยุทธ์ชัดเจนมาก แต่เราแยกแยะกันออก ...... บางคนเอาธงด่ารัฐบาลไว้ก่อน คิดว่ารัฐบาลโง่ไว้ก่อน ล้าหลังไว้ก่อน ..... ฯลฯ แยกแยะด้วยนะครับ
อ่ะ กลับมาโลกความเป็นจริงกัน ......
ปัญหาของการเรียน Algorithmic Thinking หรือ Algorithmic Problem Solving ของบ้านเรา มันก็จะเป็นเรื่องเดียวกับการเรียนการสอนคณิตศาสตร์ครับ
คณิตศาสตร์ ..... กลายเป็นวิชาท่องสูตร วิชาคำนวน วิชาที่เราจะต้อง execute การคำนวนตามลำดับของการคำนวนอะไรบางอย่างโดยที่ไม่รู้ไม่เข้าใจว่าทำไมต้องคำนวนแบบนั้น .... กลายเป็นการท่องจำ execution sequence มากกว่าเข้าใจ logical chain of reason และการสร้างแบบจำลองทางคณิตศาสตร์
(แบบจำลองทางคณิตศาสตร์ นี่ฟังดูยาก แต่จริงๆ แล้วเราอยู่กับเรื่องพวกนี้มาตั้งแต่เริ่มเรียนนะครับ เริ่มจาก "จำนวนและตัวเลข" ครับ ... ตัวเลขมันคือ abstraction/model ของจำนวน .... ดังนั้นเราหาเหตุผลกับตัวเลข มันก็จะนำไปใช้กับจำนวนของสิ่งต่างๆ จริงๆ ได้)
เราไม่สนใจ Language of Mathematics เลย ...... เราไม่เคยรู้ว่ามันมีด้วยซ้ำ .....
เหมือนกับเรียนดนตรีด้วยการท่องจำตัวโน๊ตทั้งเพลง หรือเรียนดนตรีด้วยการฝึกแต่เทคนิคการเล่นเครื่องดนตรีต่างๆ โดยไม่เรียน "ความเป็นดนตรี" เลย .....
เราพลาดมหาศาลกับการเรียนการสอนคณิตศาสตร์ ..... ผมเห็นว่าทางออกหนึ่งของเราก็คือ การเรียน Algorithmic Problem Solving นี่แหละ ที่จะทำให้เราคิดอะไรเป็นเหตุเป็นผลกันมากขึ้น เหมือนกับที่เราควรจะทำได้เมื่อเรียนคณิตศาสตร์ ...
คณิตศาสตร์บ้านเรามันโดนทำลายไปหมดล่ะครับ จะกลับไปแก้มันตอนนี้ก็สายเกินไปแล้ว
ผมได้แต่หวังอย่าให้การเรียน Algorithmic Problem Solving กลายเป็นการท่องจำวิธีการแก้ปัญหา กลายเป็นการท่องจำ Sequence of Instructions ตายตัว โดยไม่เข้าใจแบบจำลองของปัญหาต่างๆ ... ไม่ว่าจะใช้หรือไม่ใช้คอมพิวเตอร์ก็ตาม
สิ่งที่ทำให้ผมพอจะหวังในแง่ positive กับเรื่องนี้ได้ ก็คือ จริงๆ แล้วภาคการศึกษาของเราตื่นตัวพอสมควรในเรื่องนี้ คนที่เข้าใจมันจริงๆ ช่วยกันหลายคนอยู่ในการสอนคนที่จะต้องไปสอน (ครู) ในภาคส่วนต่างๆ ช่วยกันอบรมช่วยกันอะไรหลายอย่าง ......
สุดท้ายมันคงไม่กลายเป็นประวัติศาสตร์ที่ซ้ำรอยกับคณิตศาสตร์
แถมครับ หนังสือดีๆ เล่มเล็กๆ อ่านคืนเดียวจบ ..... ลองอ่านหน้าแรกได้ครับ
เรียนโค้ดดิ้งโดยไม่ต้องมีคอมพ์ได้มั้ย ?
.
ส่วนตัวตอนสมัยยังเด็ก ที่บ้านไม่ค่อยมีเงิน จะซื้อคอมพ์ใช้นี่ไม่ต้องหวัง แต่ตัวเองก็อยากเขียนโปรแกรมเป็นมาก ก็เลยต้องใช้วิธีออกแบบโปรแกรมลงกระดาษ แล้วค่อยไปลงโค้ดที่ห้องคอมพ์โรงเรียน
.
และก็ได้รู้ตอนนั้นว่าที่เขียนลงกระดาษกับที่เขียนลงตีพิมพ์มันคนละศาสตร์กัน
.
เรื่องแรกที่อาจต้องแยกให้ออกก่อนเลยคือ "Coding" กับ "Problem Solving" มันเป็นคนละศาสตร์กันโดยสิ้นเชิง
.
ศาสตร์ของการแก้ปัญหา (Problem Solving) เป็นเรื่องของการคิด การวางแผน การวิเคราะห์ ตรรกศาสตร์ ฯลฯ ส่วน Coding เป็นการลงมือเขียนโค้ดเพื่อให้เห็นผลลัพธ์ออกมา
.
Problem Solving ไม่จำเป็นต้องใช้คอมพ์ มีวิชาที่ใช้สอนกันมาตั้งแต่สมัยชาติปางก่อนอย่าง Flow Chart สมัยนี้ก็ยังถือว่ามีประสิทธิภาพอยู่ ช่วยสอนวิธีการคิดเป็นขั้นเป็นตอนได้เป็นอย่างดี เขียนบนกระดานได้เลย สอบด้วยกระดาษก็ได้ อันนี้เห็นด้วย
.
แต่พอมาเรื่อง Coding ... มันเป็นเรื่องของการใส่โค้ดเข้าไปเพื่อดูผลลัพธ์ ไม่ต้องแก้ปัญหาอะไรก็ได้ โปรแกรมแรกที่เราเขียนคือเอาโปรแกรมภาษาเต่ามาวาดรูปกังหันลมบนจอคอมพ์ หมุนไปหมุนมา ไม่ได้ใช้ตรรกศาสตร์อะไรทั้งสิ้น แต่ที่ต้องใช้คือ ... คอมพ์
.
ถ้าให้เทียบกับการเย็บผ้า ก็เหมือนว่าเรียนเย็บผ้าแต่ไม่มีเข็มกับด้ายนั่นแหละ บอกให้เขียนการเย็บในกระดาษเอานะ ก็เรียนได้นะ แต่ไม่มีประโยชน์อะไรเลย
.
แต่ถ้าเปลี่ยนไปสอนเรื่องการด้นถอยหลังมีวิธีคิดยังไง การเย็บแบบซ่อนตะเข็บทำได้ยังไง อันนี้โอเค สอนในกระดาษได้ เอาไปคิดต่อได้
.
ดังนั้นคงต้องไปแยกแยะให้ได้ก่อนว่าตกลงอยากจะสอนโค้ดดิ้งหรือสอนการคิดแก้ปัญหากันแน่ คนละเรื่อง คนละศาสตร์ คนละเทคนิค
.
แต่ถ้าสุดท้ายจะสอนโค้ดดิ้งจริง ๆ แล้ว การไม่มีคอมพ์มันสอนแล้วหวังผลอะไรไม่ได้หรอกครับ
.
จะว่าไปราคาเรือดำน้ำลำนึงนี่ซื้อคอมพ์แจกโรงเรียนทั่วประเทศได้เป็นล้านเครื่องเลยนะ
.
อันนี้สอนในกระดาษกันได้อยู่ครับ ไม่ต้องใช้คอมพ์
ทำไมมึงไม่ไปโพสใน >>>/tech/6362/
ไอ้พวก ไอพี เขารู้ได้ไงว่าบ้านที่ไหน
อย่างไอ้ 192.168.1.1
https://www.facebook.com/groups/647718825333067/permalink/2121722874599314/
มีคนหมิ่นโค้ดสตาร์ของเราครับ
พวกมึง Outsource .net ปสก 2 ปีครึ่ง ฝีมือทั่วไป เงินเดือนเท่าไหร่กันแล้ววะ กุ 45k มากหรือน้อย
เพื่อนโม่ง ตอนนี้สายวิศวะคอม หรือ It สายไหนน่าเรียนกว่ากัน มีงานรองรับมากกว่า
พวกมึง
เวลาเขียนหน้าเว็บพวก html ต้องไม่ควร bind script หรือชื่อ function ต่างๆ ไปตรงๆ ใช่ไหมวะ กุเห็นเว็บใหญ่ๆดังๆ เคยกด f12 ไปดู เหมือนเค้าเขียน class ไว้ แล้วไปเขียนการทำงานใน class script อีกที กุเข้าใจถูกป่าว แล้วชื่อ class แม่งก็เขียนแบบชื่อไม่สื่ออ่ะ แบบไม่รู้เรื่อง แต่โปรแกรมเมอร์เค้ามี doc เรื่องชื่อแปลกๆ กันเอง (ชื่อแปลกเอาไว้ให้คนอื่นอ่านไม่ค่อยออกเวลามาแกะเว็บ) กุเข้าใจถูกป่าววะ ตอนนี้กุเขียนเว็บแม่งใส่ชื่อ function แล้ว bind กับ html ไปตรงๆ เกือบทุกอันเลย คือเวลาแกะดูแล้วเปลี่ยน html นุ้นนี่นั่น เว็บมันทำงานแปลกๆ หรือกรณีนี้ควรไปเช็คฝั่ง backend
อย่างบางเว็บของ google กุเหนเค้าใส่ html ประมาณนี้อ่ะ <span class="VfPpkd-Q0XOV"><div class="VVsfQ"></div></span>
กุควรเปลี่ยนวิธีดีไหม
เพราะมึงมันโง่ไม่ยอมเรียนกับโค้ดสตาร์
ทำไมพวกมึงต้องไปแขวะโค้ดสตาร์อะไรนี้วะ กูไม่รู้บอกกูที
เห็นคนแชร์เรื่องสัมภาษณ์งานในสมาคมอะไรซักอย่าง ทำให้อยากเขียนสิ่งนี้ขึ้นมาเลย
ชีวิตนี้ ผมสัมภาษณ์งานไม่ผ่านเยอะมากเลยนะ น่าจะเยอะกว่าที่หลายคนคิดไว้
แต่สุดท้าย เวลามันใช่ มันใช่ของมันเอง
ตอนที่ผมเข้า Taskworld ใหม่ๆ ใช้ Git เป็นงูๆ ปลาๆ มาก Javascript build รวมกันยังไงก็ไม่รู้ คนอื่นเขา Grunt เขา Webpack ของเราที่ทำมาตลอดยังแค่ใช้ script มารวมๆ กันอยู่เลย เขียน React ก็ไม่เคย ตอนนั้นได้งานทำ SPA มาคือเขียน Framework SPA เล็กๆ เอง เพราะไม่รู้จัก React
ที่อื่นจะไม่รับก็ไม่แปลก จะบอกว่าไม่เชี่ยวชาญพอก็เถียงไม่ได้แหละ
แล้วสุดท้าย ก็น่าประหลาดใจที่มันเป็นที่ๆ เหมาะกับตัวเองในช่วงชีวิตตอนนั้นมากๆ มันมีเคมีที่เข้ากัน และทั้งผมทั้งบริษัทก็ได้เติบโตจากกันและกันมากมายมหาศาล
=============================
ถ้าเรามองจากมุมของคนที่ออกแบบสัมภาษณ์ ไม่แปลกเลยที่จะหาวิธีการพัฒนาให้มันแฟร์ขึ้น แม่นยำขึ้น ดีขึ้น
แต่ถ้าเราเป็นคนสัมภาษณ์ ก็อยากจะให้มองมันอย่างเข้าใจ
บางปัจจัยอย่างเราอาจจะท้องเสียวันนั้นพอดี คนสัมภาษณ์อาจจะรีบร้อนวันนั้นพอดี หรือแม้แต่บริษัทมีปัจจัยอะไรซักอย่างให้อยู่ดีๆ ต้องรัดเข็มขัด ตัด Headcount ที่จะรับเพิ่ม ทั้งๆ ที่กำลังจะรับอยู่แล้ว ก็เกิดได้
บางทีมันไม่มีใครผิดใครถูกหรอก หรือเปล่าประโยชน์ที่จะไปหา
มันก็แค่ไม่ใช่เวลาไม่ใช่โอกาส ก็แค่นั้น
=============================
ผมเชื่ออย่างหนึ่งว่า กฎแรงดึงดูดมีจริงนะ
ผมเป็นคนที่ออกความเห็นเยอะ เขียนอะไรเยอะ
คนชอบก็มี คนไม่ชอบก็มี พูดมากขนาดนี้ คนหมั่นไส้ก็คงมีเยอะแน่ๆ
บางคนมาเห็นความเห็นแล้วจะตัดโอกาสของเราไม่อยากร่วมงานกับเรา ไม่อยากให้โอกาส คิดว่าแบบแนวคิดของเราไร้สาระ ตัดโอกาสทิ้ง เกิดขึ้นได้มั้ย ก็คิดว่าเกิดขึ้นได้
แต่ชีวิตมันกินทุกโอกาสไม่ได้
และการที่เราเลือกที่จะเป็นตัวเอง แสดงความเป็นตัวตน ก็จะนำพาโอกาสที่ใช่เข้ามาหา และผลักโอกาสที่ไม่ใช่ออกไป
ผมเชื่อว่า โอกาสที่ใช่ จะยอมรับความเป็นตัวเรา และทำให้เราดึง Best version ของตัวเองออกมาได้ โอกาสที่ใช่ จะรู้สึกอุ่นใจกับตัวตนของเรา
โอกาสที่ไม่ใช่ จะไม่ยอมรับความเป็นตัวเรา จะรู้สึกว่าตัวตนของเราไม่เหมาะกับเขา จะอึดอัดกับความเป็นตัวตนของเรา
มันเป็นธรรมดาของโลกนี้ ไม่ได้มีใครผิดใครถูก มันแค่เข้ากันไม่ได้
สัมภาษณ์งานก็เหมือนกัน ถ้ามันไม่เหมาะ เวลามันไม่ใช่ โอกาสไม่ใช่ มันก็ไม่ได้ ก็แค่นั้นแหละ
=============================
อยากให้กำลังใจน้องๆ หรือเพื่อนๆ พี่ๆ ที่อาจจะกำลังย้ายงาน
วันนี้เราสัมภาษณ์ไม่ผ่าน เราอาจจะคิดว่า มันต้องมีใครผิด ไม่ฉันผิด ก็อีกคนผิด ไม่ฉันแย่ ก็บริษัทแย่ พยายามอธิบายด้วยแนวคิดผิดถูก
ความผิดหวังเป็นเรื่องธรรมดา ผมผ่านมาเยอะนะ
แต่จริงๆ โลกมันซับซ้อนกว่านั้น เป็นสีเทามากกว่านั้น
อยากให้เชื่อมั่นว่าสุดท้ายโลกจะหาสิ่งที่ใช่เข้ามาหาเรา ผลักสิ่งที่ไม่ใช่ออกไปจากเรา
กฎแรงดึงดูดมีจริงเสมอ ผมเชื่อ และก็ผ่านมาแล้ว
ย้อนกลับไปคิดก็ขอบคุณโลกนี้ที่สุดท้ายพาโอกาสที่ใช่เข้ามาในชีวิต ผลักโอกาสที่ไม่ใช่ออกไป มันอาจจะเป็นโอกาสที่ใช่ของคนอื่น เป็นโอกาสที่ดีในสายตาคนอื่น แต่ไม่ใช่ของเรา
แต่กฎแรงดึงดูดจะทำงานได้ดี เราต้องมั่นคง ต้องมี Integrity คอยพัฒนาตัวเองในแนวทางที่ตัวเองเป็นอยู่สม่ำเสมอ จนความเป็นตัวตนชัดเจนขึ้น
ถ้าเราไม่มี Integrity ไม่มีความชัดเจน หลอกลวงไปเรื่อย ทำตัวเฉไฉไปมาต่อโลกนี้ โลกจะเลือกให้เราไม่ถูก กฎแรงดึงดูดก็จะงง ไม่รู้ว่าจะดึงอะไรเข้ามา โลกก็จะดึงดูดสิ่งต่างๆ เข้ามาในชีวิต อย่างมั่วซั่วสะเปะสะปะไปหมด ให้เราเสียเวลาปวดหัว
ความไม่ชัดเจนนั้นอาจจะเกิดจากความไม่มั่นใจในตัวเอง หรืออาจจะเกิดจากเจตนาที่หลอกลวง ผมมิอาจตัดสินว่ามาจากเจตนาใด
แต่ผมเชื่อว่า โลกนี้จะงง สรรหาพื้นที่ให้คุณไม่ถูก กฎแรงดึงดูดจะสับสน ดึงดูดสิ่งต่างๆ เข้ามาอย่างมั่วซั่วเละเทะ ถ้าคุณไม่มีความชัดเจน
ชีวิตช่วงไหนที่ผมสับสนกับตัวเองมากๆ โอกาสต่างๆ ที่เข้ามาก็จะสับสนมาก พอๆ กับความสับสนภายในจิตใจ
ผมถึงเชื่อในกฎแรงดึงดูด
และก็อยากเตือนด้วย
ถึงแม้จะเชียร์ว่า ให้เป็นตัวตนของตัวเอง แต่ก็อย่าให้ความเป็นตัวเรามันไม่ได้ไปบดบังคนอื่น Abuse คนอื่น
ว่าการทำให้ตัวเองเด่นโดยกดคนอื่นให้ด้อย โยนความผิดให้สิ่งรอบข้าง โดยอ้างว่านี่คือความเป็นตัวตน ฉันไม่แคร์ วางตัวเหนือกว่า มันไม่น่ารักนะ
มันผลักโอกาสต่างๆ ออกไปนะ มันจะดึงดูดคนที่คิดว่า "การกดคนอื่นเพื่อให้ตัวเองเด่นเป็นธรรมดาโลก" เข้ามาในชีวิตนะ
แสดงความเป็นตัวตนในกาลเทศะและเวลาที่เหมาะสม ไม่กดคนอื่นลงเพียงเพื่ออยากขับเน้นตัวเองให้เด่นขึ้น
ทั้งให้กำลังใจและก็เตือนสตินะ
Bloc pattern เป็นไงบ้าง ดีไหม
Stack overflow ลุกเป็นไฟ
ไอ้ห่า genderpolitic ไปถึงไหน พังถึงนั่น
ใครเป็นแฟนขับอาจารย์
กบถาวร แห่ง ชวาไทยแลนด์บ้าง
ชมรมโปรแกรมเมอร์ใสๆไม่กินมาม่าหายไปไหน
ใครเคยทำ dtac มั่งวะ โบนัสเค้าได้กันกี่เดือน
แต่กุเหนป้ายโฆษณา เหมือนเค้าตัดโบนัสเปน ไตรมาส รึป่าววะ แล้วได้เยอะไหมแต่ละไตรมาส
โค้ดสตาร์ทำให้เน็ตเหี้ย
ควยถอกเย็ดแม่แอดมินกะเทยควายควยโค้ดสตาร์
เย็ดแม่แอดมิน หัวยควย แอดมินเย็ดกะเทยหัวควย
หัวควยกาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
หี
หี
หั
หี
หี
หี
หี
หี
หี
หี
หี
หรี
กะหรี่หน่อแต่ดหัวควยอิเล็กทรอนิกส์
ควยถอกเย็ดแม่แอดมินกะเทยควายควยโค้ดสตาร์
เย็ดแม่แอดมิน หัวยควย แอดมินเย็ดกะเทยหัวควย
หัวควยกาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
กาพี้
หี
หี
หั
หี
หี
หี
หี
หี
หี
หี
หี
หรี
กะหรี่หน่อแต่ดหัวควยอิเล็กทรอนิกส์
Topic has reached maximum number of posts.
Please start a new topic.
Be Civil — "Be curious, not judgemental"
All contents are responsibility of its posters.