สรุปสิ่งที่ได้จากการทำ #100DaysOfCode

สรุปสิ่งที่ได้จากการทำ #100DaysOfCode
Photo by Pankaj Patel / Unsplash

ว่าจะเขียนสรุปนานแล้ว แต่ไม่มีเวลาว่างเท่าไหร่ เนื่องจากช่วงต้นปี ผมได้ลองทำ challenge ตัวเองในการทำ #100DaysOfCode ผ่าน Twitter คือ การเขียนโค๊ดทุกๆ วันให้ได้ 100 วันติดต่อกัน ที่มาคือ ก่อนหน้านั้น ผมเว้นว่างจากการ Coding ไป 6-7 เดือน (ช่วงนั้นผมตัดสินใจลาออกมาพัก) ไม่ได้แตะโค๊ดเลย ทำให้รู้สึกว่าต้องพัฒนา รื้อฟื้นสกิลของเราซะหน่อยแล้ว เพราะผมมองว่า ถ้าผมจะกลับไปทำงานจริงๆ เราต้องมีสกิลที่ดีกว่านี้ ไม่ใช่นับแต่ประสบการณ์ทำงาน แต่สกิลไม่มีเลย ก็เลยเป็นที่มาให้ทำ #100DaysOfCode

สามารถดู Hashtag #100DaysOfCode ของผมใน Twitter ได้ที่นี่ ครับ ผมเริ่มทำ Challenge คือวันที่ 15 มกราคม ถึง 25 เมษายน ครับ

ซึ่งตัว #100DaysOfCode เค้าไม่ได้กำหนดรูปแบบหรือกฎว่า ต้องไม่เคยเขียนโค๊ดมาก่อน หรือต้องทำนู้น ทำนี่ ให้ได้อย่างน้อย 1 ชั่วโมง กฎเราสามารถกำหนดเองได้ และผมก็กำหนดเองครับ กฎของผมมีแค่

  • ลงมือโค๊ด จะเป็นตาม Tutorial ตาม Course อะไรก็ได้หมด ขอแค่มันทำให้เราพัฒนาตัวเองก็พอ และ ต้องไม่เกี่ยวกับงาน (งานผมเป็น Software Developer ถ้านับด้วย ก็ไม่ได้ Challenge พอดี ฮ่าๆ)
  • ทุกๆ วันจะต้องสรุป สิ่งที่เรียนรู้ แล้วก็ติด HashTag #100DaysOfCode เพื่อเป็นแรงบันดาลใจให้คนที่ทำเหมือนๆกัน (แต่เอาจริงๆ เจอแต่ Bot มา Like & Retweet 🤣)
  • เป้าหมายของผมมี 2 อย่างคือ 1. เรียนรู้ Blockchain & Smart Contract และ 2. รื้อฟื้นสกิล Web Development ของตัวเอง
ถ้าดูหน้า Github ของผม จะเห็นว่า activity ในช่วงที่ทำ challenge (บางวันมันข้ามเที่ยงคืน เลยถูกนับเป็นวันใหม่)

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

สิ่งที่ผมได้จากการทำ Challenge นี้คือ

  • ได้เป็นผู้ใช้งาน (User) ครั้งแรก โดยการลองซื้อ NFT บน Opensea เพื่อที่จะได้รู้การทำงานต่างๆ พอเวลาเราเป็น Dev เราก็จะเข้าใจว่า มันต้องมีขั้นตอนการ Connect Wallet มีการขอ Permission ต้อง Approve / Sign รวมถึงการ Read/Write Contract อะไรพวกนี้
  • ได้เริ่มหัดเขียน Smart Contract หลักๆ คือ หัดเขียน Solidity + Hardhat จากคอร์ส Buildspace ใช้เวลาเรียน + Research ตาม topic / keyword ที่ได้จากคอร์สเพิ่มเติม
  • หัดทำ NFT แบบ On-Chain และแบบ Off-Chain รวมถึงการทำ Generative NFT ด้วยการใช้ Library อย่าง HashLips ช่วยในส่วนของ Art Engine.
  • ได้ลอง Deploy Contract บน Chain อื่นๆ (EVM) เช่น Polygon, Avalanche, BNB Chain, Moonbeam ซึ่งสามารถใช้ Solidity Code เดิมได้เลย ต่างกันแค่ RPC และ Blockchain config นิดหน่อย
  • ได้อ่าน Aave Docs อยู่ช่วงนึง เพราะอยากลองทำ Lending ตอนนั้น จำได้ว่า ยังไม่เข้าใจฝั่ง Smart Contract มาก ทำให้ใช้ได้แต่ Ethers.js และ aave js / utilities
  • ได้รู้จัก NEAR Protocol และได้ลองเป็นผู้ใช้ โดยการซื้อขายผ่าน Paras
  • ได้อ่าน Docs ของ Harmony ONE และลอง take course ZKU One (Zero Knowledge University ของ ONE) ด้วย แต่ก็พบว่า ไม่ใช่แนวทางที่ตัวเองชอบแฮะ และก็มันต้องตั้งใจและใช้เวลามากกว่าที่คิด ซึ่งผมแบ่งเวลาไม่ได้ ก็ยกเลิกไปหลังจากเรียนไป 3 weeks
  • หัดเรียน NEAR ผ่าน NEAR Workshop และก็ NEAR Education / NEAR Docs
  • เริ่มหัดเขียน Rust โดยเน้นไปที่ส่วน Blockchain ทำให้สนใจพวก Solana, NEAR, Polkadot เป็นพิเศษ แต่ก็ได้ลองเอามาทำ REST API โดยใช้ Actix หรือทำ Command Line ง่ายๆ ด้วย Clap บ้างนิดหน่อย
  • เรื่อง Rust นี่ยอมรับว่าเป็นเรื่องที่เข้าใจยากสำหรับผม ผมวนเวียนอ่าน Rust Docs / ทำ Rustlings อ่านบล็อก อ่านหนังสือ เพื่ออยากให้ Fundamental มันดีกว่านี้
  • ด้วยการที่เราตั้งใจศึกษา Rust อยู่แล้ว ก็ทำให้ได้เรียนรู้ Solana การทำ Smart Contract บน Solana การใช้ Anchor รวมถึง Solana Pay
  • ได้เข้าไปเรียน Solana Blockchain Development Bootcamp ที่จัดโดย Chainlink (เรียนผ่าน Zoom) 2 วัน แม้จะเป็นแค่ Overview แต่ได้ไอเดีย ได้มุมมองอะไรดีๆ หลายอย่างเลย
  • ลองเขียน Smart Contract ด้วย ink! ครั้งแรก รวมถึงลอง Substrate และ Polkadot Ecosystem
รวมแหล่งเรียนรู้ Web3 / Blockchain สำหรับ Developers
สวัสดีครับ ช่วงนี้ผมกำลังสนใจและศึกษา Web3 / Blockchain / dApp จริงๆจังๆ ใช้เวลาเลิกงาน หรือวันหยุดที่มีในบางครั้ง เพื่อนั่งเรียน (ตอนนี้งานที่ทำยังเป็น Web Dev ปกติครับ) วันนี้ก็เลยคิดว่า ลองทำการรวบรวม Platform หรือเว็บไซต์
  • รื้อฟื้นสกิล Web Development ของตัวเอง ตอนนั้นจำได้ แก้ไขเว็บ Devahoy ที่ใช้ Gatsby 3 มาเป็น Gatsby 4 สุดท้าย ก็เปลี่ยนยกชุด ไปใช้ Next.js เลย เพราะว่า เจอปัญหาจุกจิกกับ Gatsby เยอะ จนบางที ตั้งใจจะเขียนแค่บทความเฉยๆ แต่ก็ต้องมานั่ง fix bug ไม่ได้ Publish บทความซักที
  • จำได้ว่าช่วงนั้น สกิล React แทบลืมเกือบหมด เลยไปนั่งรื้อฟื้น การใช้งานแค่ React Context API ก็ยังทำไม่ได้แล้ว ต้องอ่าน Docs หรือขนาด
  • ได้ฝึก LeetCode อยู่ช่วงนึง (หลังๆ ก็ไม่ได้เข้าไปเลย หลังจาก Challenge 🤣)
  • ได้ดู Youtube Video เยอะขึ้นมากๆ (จากปกติที่ไม่ชอบดู Video เพราะใจร้อน เน้นอ่าน เพราะมัน scan หาข้อความสำคัญง่ายกว่า แต่พอมาดู Video ก็พบว่า มันก็ได้เห็นอีกมุมมองนึงเหมือนกัน เรียกว่า ก็ผสมๆ กันไป ดู Video + อ่าน Blog อะไรก็ได้ ที่ทำให้เราเข้าใจ และเรียนรู้มันได้

สรุป

หลังจากจบ #100DaysOfCode ผมก็ยัง Keep learning ต่อทุกๆวันครับ อาจจะมีบางวันขี้เกียจบ้าง ก็นั่งเล่นเกม พักผ่อนครับ ไม่ได้ต้องเป๊ะทุกๆวัน แต่ก็พบว่า มันเหมือนสร้างนิสัย ให้เราขยัน และมีวินัยมากขึ้น รวมถึงได้เริ่มมองเห็นแนวทางแล้วว่าตัวเองชอบอะไร ไม่ชอบอะไร เพราะก่อนหน้านี้เราไม่รู้ว่าเราจะโฟกัสไปที่ตรงไหนกันแน่ วิธีที่ดีที่สุด ก็ลองทำดู ลงมือทำ แล้วเราก็จะรู้เองว่า เราชอบอะไร อยากทำอะไร  สำหรับใครที่หลงเข้ามาอ่าน ลองตั้ง Challenge ตัวเองขึ้นมา และลองทำกันดูนะครับ เริ่มจากเล็กๆก่อนก็ได้ สิ่งสำคัญคือการลงมือทำ

Happy Coding ❤️