ต้องทำอย่างไรถึงจะได้เป็นนักพัฒนาสมาร์ทคอนแทรค (Smart Contract Developer)

Chainlink Thailand
Chainlink Community
2 min readJan 3, 2022

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

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

ผู้ที่ต้องการเป็นนักพัฒนาสมาร์ทคอนแทรคมักจะมีคำถามมากมายเกี่ยวกับการเปลี่ยนแปลงนี้ เช่น Web 3.0 developer stack คืออะไร? ควรเรียนรู้ภาษาการเขียนโปรแกรม (coding languages) ตัวใด? จำเป็นต้องมีทักษะทางเทคนิคใดบ้าง? และจะเรียนรู้ได้อย่างไร บทความด้านล่างนี้ จะสามารถตอบคำถามเหล่านี้และอื่น ๆ ได้อีกมากมาย และจะนำคุณไปสู่โลกแห่งการพัฒนาสมาร์ทคอนแทรค

ภาษาบล็อคเชน

ภาษาหลักของสมาร์ทคอนแทรคบล็อคเชนคือ Solidity และมี Vyper เป็นคู่แข่งสำคัญ Solidity เป็นภาษาคงที่ (มีการประกาศตัวแปรไว้ล่วงหน้า) และต้อง compile ก่อน ซึ่งหมายความว่าคุณต้องประมวลผลเพื่อแปลงเป็นไบนารี่ (binary) ก่อนเพื่อนำไปใช้งาน ต่างจาก Python ที่เป็นภาษาแบบอินเตอเพรต (interpreted languages) Solidity เป็นภาษาที่พัฒนาโดย Gavin Wood มีจุดประสงค์เพื่อแก้ไขปัญหาที่ Ethereum เผชิญในปี 2014 และเป็นภาษาเริ่มต้นของเครือข่ายที่เข้ากันได้ (compatible chains) กับ Ethereum Virtual Machine (EVM) ทั้งหมดในปัจจุบัน ไม่ว่าคุณจะกำลังพัฒนาบน Ethereum, Avalanche, Polygon, Binance Smart Chain (BSC) หรือ EVM อื่นๆ คุณจะต้องมีความรู้และความเชี่ยวชาญใน Solidity ก่อน อย่างไรก็ตามยังมีบางเชนที่ไม่ได้อยู่ในกลุ่ม EVM และถูกโปรแกรมด้วยภาษาอื่นๆ เช่น Solana ไม่ได้ใช้ Solidity แต่ใช้ภาษา Rust และ C/C++ ที่มีอยู่ก่อนแล้ว เป็นต้น

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

คุณยังสามารถปรับใช้ layer 2 (L2) ได้บน Ethereum เช่น Arbitrum ซึ่งเป็น EVM compatibility อย่าเต็มรูปแบบแต่ธุรกรรมต่างๆ จะถูก “rolls up” เพื่อบีบอัดเป็นก้อนเดียวกันดังนั้นจึงมีปริมาณธุรกรรมสูงขึ้น ซึ่งหมายความว่าราคาจะถูกลงและมีความเร็วมากขึ้น สำหรับเชน EVM อื่นๆ ต่างก็นำเสนอรูปแบบการปรับปรุงความสามารถในการปรับขนาดที่เหนือกว่า Ethereum เช่น BSC ใช้ transaction blocks ที่ขนาดใหญ่กว่า, Polygon เป็น sidechain ที่แลกการกระจากอำนาจบางส่วนเพื่อการปรับขนาด, Avalanche ใช้อัลกอริทึ่ม consensus แบบใหม่เพื่อปรับปรุงราคาและความเร็วในการทำธุรกรรม

ในบทความนี้เราจะเน้นไปที่เชน EVM ผ่าน Solidity เนื่องจากเป็นตัวเลือกยอดฮิตที่สุด

ทักษะทางเทคนิค (Technical Skills)

ภาษาแบ็กเอนด์ระดับ low-level ที่ compile แล้ว เช่น C/C++ เป็นจุดเริ่มต้นที่ดีในการเรียนรู้โปรแกรม Solidity ผู้ที่มีพื้นฐานการพัฒนาเว็บหรือมีประสบการณ์เกี่ยวกับภาษาเช่น JavaScript และ Python จะต้องปรับให้เข้ากับ mindset low-level Solidity ซึ่งคุณอาจพบว่าตัวเองทำงานโดยตรงบน bit ต่างๆ ของตัวแปร (variable) อย่างไรก็ตาม โปรแกรมเมอร์ด้านบล็อคเชนแบบ full-stack ก็ต้องการทั้งสองทักษะ เนื่องจากมันผ่านไลบรารี web3.js, ethers.js และ web3.py ที่ส่วนใหญ่เชื่อมต่อกับสมาร์ทคอนแทรค Solidity นักพัฒนาที่ดีจะสามารถจัดการทั้งสัญญา Solidity backend หรือ JS/Python frontend ได้ แต่นักพัฒนาที่ยอดเยี่ยมจะสามารถจัดการได้ทั้งสแต็ก ไลบรารีสัญญา OpenZeppelin ก็เป็นแหล่งที่ดีในการดึงข้อมูล เนื่องจากช่วยให้นักพัฒนาไม่ต้องยุ่งยากกับการเขียนสัญญาทั่วไปบางอย่าง เช่น สัญญาโทเค็น

บางครั้งทักษะที่สำคัญที่สุดในการพัฒนาคือความปลอดภัย วันหนึ่งสมาร์ทคอนแทรคของคุณอาจมีมูลค่าหลายพันล้านดอลลาร์ ดังนั้นการไม่มีข้อบกพร่องเลยจึงมีความสำคัญสูงสุด ช่องโหว่เช่นการกลับเข้ามาใหม่ (reentrancy) มีความสำคัญที่ต้องพิจารณาในสมาร์ทคอนแทรค เนื่องจากสมาร์ทคอนแทรคมักจะเรียกใช้ฟังก์ชันสมาร์ทคอนแทรคอื่นๆ จึงเป็นไปได้ที่ฟังก์ชันอื่นๆ จะขัดขวางการทำงานของสมาร์ทคอนแทรคของคุณ นี่เป็นสาเหตุของการแฮ็ก ETH DAO ที่มีชื่อเสียงมูลค่า 70 ล้านเหรียญสหรัฐ แนวคิดด้านความปลอดภัยเป็นสิ่งสำคัญสำหรับนักพัฒนาสมาร์ทคอนแทรค

ขั้นตอนการพัฒนาสำหรับสัญญาเหล่านี้เป็นอย่างไร? มีเครื่องมือและ IDE ที่จะช่วยเราหรือไม่? แน่นอนอยู่แล้ว! IDE ที่ได้รับความนิยมคือ Remix ซึ่งเป็น IDE บนเว็บที่สามารถจัดการทั้งการรวบรวมสัญญาและการปรับใช้สัญญาของคุณบนเครือข่ายที่คุณเลือก นอกจากนี้ Truffle และ Brownie ยังเป็นกรอบการพัฒนาที่สร้างขึ้นเพื่อช่วยเหลือคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับกระบวนการตั้งแต่ต้นจนจบ รวมถึงวิธีใช้เฟรมเวิร์กเหล่านี้ เราขอแนะนำให้เข้าไปดูที่หลักสูตรสมาร์ทคอนแทรคอย่างละเอียด โดย แพทริค คอลลินส์ Lead Developer Advocate ของ Chainlink Labs มอบให้ผ่าน freeCodeCamp: Solidity, Blockchain และ Smart Contract Course — บทช่วยสอน Python ระดับเริ่มต้นถึงผู้เชี่ยวชาญ

โดยสรุปแล้ว สิ่งที่คุณควรทำความคุ้นเคยเพื่อเป็นนักพัฒนาสมาร์ทคอนแทรคคือ

  • Solidity
  • JavaScript
  • Python
  • web3.js/web3.py
  • ethers.js
  • Truffle
  • Brownie
  • Remix

ชุมชน

ชุมชนมีความสำคัญอย่างยิ่งในพื้นที่สมาร์ทคอนแทรค ด้วยนวัตกรรมมากมายที่เกิดขึ้นอย่างรวดเร็วจึงเป็นเรื่องยากที่จะติดตามข่าวสารต่างๆ ด้วยตัวเอง นั่นเป็นเหตุผลที่นักพัฒนาสร้างเครือข่ายบน Twitter, เข้าร่วม hackathons เพื่อพบกับนักพัฒนารายอื่นและนักลงทุนหรือนายจ้างที่มีศักยภาพ, รับเงินรางวัล Gitcoin เพื่อช่วยในการพัฒนาโอเพ่นซอร์ส, เข้าร่วมในสัมมนาต่างๆ เช่น Smart Contract Research Forum และสนทนาบน Discord เพื่อเรียนรู้และให้ความรู้

Hackathons เป็นโอกาสที่ดีในการสร้างทักษะสมาร์ทคอนแทรคของคุณ ที่ Hackathons คุณจะได้เรียนรู้โดยการลงมือทำและฝึกฝนความสามารถของคุณในขณะที่คุณกำลังสร้าง อีกทั้งยังมีสมาชิกรายอื่นๆ ในอุตสาหกรรมจะช่วยแนะนำคุณ — บางทีอาจได้เป็นเพื่อนร่วมกันในโครงการของคุณ! Chainlink Fall 2021 Hackathon เป็นโอกาสที่ดีในการเริ่มต้นสร้าง ด้วยเงินรางวัลรวม $550k ผู้เชี่ยวชาญชั้นนำและ VCs ที่เข้าร่วม รวมถึงคุณจะได้พบประนักพัฒนาอีกหลายพันคนที่อาจช่วยส่งเสริมอาชีพนักพัฒนาสมาร์ทคอนแทรคขอ

คุณได้อย่างมาก แหล่งข้อมูลที่ยอดเยี่ยมอีกประการหนึ่งคือ Chainlink Discord ซึ่ง developer advocates และสมาชิกชุมชนมีความกระตือรือร้นและพร้อมที่จะช่วยคุณในการเริ่มต้น

แหล่งเรียนรู้

มีแหล่งข้อมูลมากมายที่สามารถสนับสนุนการเรียนรู้ของคุณ ตั้งแต่ Hackathons, บล็อก, เซิร์ฟเวอร์ Discord ไปจนถึงช่อง YouTube และอื่นๆ เราได้เลือกแหล่งข้อมูลยอดเยี่ยม 8 แห่งสำหรับผู้ที่ต้องการเป็นนักพัฒนาสมาร์ทคอนแทรคด้านล่าง ตามด้วยทรัพยากรชั้นนำจากแต่ละแหล่ง

  1. Solidity, Blockchain, and Smart Contract Course — Beginner to Expert Python Tutorial
  2. CryptoZombies
  3. ChainShot
  4. Chainlink YouTube
  5. Chainlink Blog
  6. Chainlink Discord
  7. Ethereum.org
  8. ConsenSys Bootcamp

Youtube

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

  1. Dapp University
  2. Ivan on Tech
  3. Eat the Blocks
  4. Patrick Collins
  5. Austin Griffith
  6. Nader Dabit

ชุมชน

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

  1. Chainlink Discord
  2. Hardhat Discord
  3. ConsenSys Discord
  4. Brownie Discord
  5. Ethereum Discord
  6. Reddit ethdev

Hackathons

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

  1. Chainlink Hackathon
  2. ETH Global
  3. ETH India

เริ่มก้าวแรกสู่เส้นทางการสร้างสมาร์ทคอนแทรคของคุณ

มีหลากหลายเส้นทางในการเป็นนักพัฒนาสมาร์ทคอนแทรคซึ่งเราได้นำเสนอตัวเลือกบางอย่างไว้ด้านบนแล้ว แต่ขึ้นอยู่กับคุณว่าจะเลือกแบบใดที่เหมาะกับคุณที่สุด สิ่งที่สำคัญที่สุดคือคุณเริ่มต้น, สร้างบางสิ่งอย่างสนุกสนาน, เริ่มสำรวจและเริ่มถามคำถาม ส่วนที่เหลือจะตามมา ไม่ว่าคุณจะเป็นนักพัฒนาแบ็กเอนด์ นักพัฒนาเว็บ หรือเพิ่งเริ่มงานพัฒนาก็ตาม มีเส้นทางให้คุณประสบความสำเร็จและผู้คนมากมายที่ยินดีให้ความช่วยเหลือ ดังนั้นให้ทำตามขั้นตอนแรก: เข้าร่วม Discords อ่านบทช่วยสอน เข้าร่วม Hackathon และเริ่มสร้างอนาคตที่น่าตื่นเต้นนั่นคือ Web 3.0

เมื่อพูดถึงการสร้าง dApps ที่ปลอดภัยและเต็มไปด้วยฟีเจอร์แล้ว โครงสร้างพื้นฐานออราเคิลที่ได้รับการพิสูจน์แล้วของ Chainlink จะปลดล็อกความเป็นไปได้มากมายสำหรับนักพัฒนา หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Chainlink โปรดไปที่ chain.link, สมัครรับจดหมายข่าว Chainlink และติดตาม @chainlink บน Twitter เพื่อทำความเข้าใจวิสัยทัศน์ทั้งหมดของเครือข่าย Chainlink โปรดอ่านเอกสารทางเทคนิคของ Chainlink 2.0

--

--