การเข้าร่วมพัฒนา Bitcoin Core ( Amiti Uttarwar )
แปลโดย : Claude 3.7 Sonnet / source : https://medium.com/@amitiu/onboarding-to-bitcoin-core-7c1a83b20365
Last updated
แปลโดย : Claude 3.7 Sonnet / source : https://medium.com/@amitiu/onboarding-to-bitcoin-core-7c1a83b20365
Last updated
Amiti Uttarwar
ในช่วงปีที่ผ่านมา ฉันได้หลงเข้าไปในหลุมกระต่ายอันแสนวิเศษของการมีส่วนร่วมในการพัฒนา Bitcoin Core ตลอดเส้นทาง ฉันโชคดีมากที่ได้รับคำแนะนำและการสนับสนุนจากหลายคน และฉันได้เรียนรู้เทคนิคต่างๆ ด้วยตัวเอง ในบทความนี้ ฉันอยากรวบรวมและแบ่งปันเครื่องมือที่ฉันพบว่ามีประสิทธิภาพ
การมีส่วนร่วมใน Bitcoin Core เป็นเพียงหนึ่งในหลายวิธีที่จะช่วยพัฒนา protocol นี้ ตัวเลือกอื่นๆ รวมถึง (และมีมากกว่า) การมีส่วนร่วมในการอภิปรายทางเมลลิสต์ การวิจัยเกี่ยวกับช่องโหว่การโจมตีหรือเทคนิคการขยายขนาด (scaling) การมีส่วนร่วมในการพัฒนาหนึ่งใน Lightning clients [1] [2] [3] [4] หรือการพัฒนาเครื่องมือที่เกี่ยวข้องเช่น secpk256k1 library หรือโครงสร้างการทดสอบที่ดีขึ้น แต่บทความนี้ไม่ครอบคลุมหัวข้อเหล่านั้น
บทความนี้เกี่ยวกับ Bitcoin Core ผ่านมุมมองของประสบการณ์การเริ่มต้นของฉัน ฉันหวังว่ามันจะช่วยให้คุณค้นพบเส้นทางของตัวเองในการมีส่วนร่วม
อันดับแรก อ่าน white paper ให้ได้ จริงๆ นะ ถ้าคุณยังไม่ได้อ่าน ให้หยุดอ่านบทความนี้และไปอ่าน white paper เลย >> ( )
การเข้าใจหลักการพื้นฐานเชิงแนวคิดของการทำงานของ Bitcoin เป็นสิ่งจำเป็นในการทำ PR (Pull Request) ที่มีความหมายให้กับ Bitcoin Core (รวมถึง PR ขนาดเล็กส่วนใหญ่) มีหลายวิธีที่จะเรียนรู้ ฉันจะเริ่มด้วยการอ่านหนังสือสักเล่ม (Mastering Bitcoin, Programming Bitcoin หรือ Grokking Bitcoin) สำหรับการสำรวจเนื้อหาออนไลน์ ฉันจะแนะนำให้เข้าไปที่รายการแหล่งข้อมูลของ Jameson Lopp หรือหลักสูตรของ Chaincode Labs แหล่งแรกมีเนื้อหากว้างกว่า แต่แหล่งที่สองมุ่งเน้นที่การพัฒนา protocol โดยเฉพาะ
ถ้าเป้าหมายของคุณคือการมีส่วนร่วมใน Bitcoin Core อย่าติดอยู่กับการพยายามเรียนรู้รายละเอียดของทุกแนวคิด มีหลายหัวข้อที่มีความละเอียดอ่อนไม่สิ้นสุด เป้าหมายคือการเข้าใจในระดับสูงและได้สัมผัสกับส่วนต่างๆ ของระบบ ต้องใช้เวลาในการทำความเข้าใจพื้นฐานของการทำงานของระบบ distributed consensus นี้
จดหมายข่าวรายสัปดาห์ Bitcoin Optech เป็นวิธีที่ดีที่สุดในการเรียนรู้เกี่ยวกับการพัฒนาทางเทคนิคในระบบนิเวศนี้ Dave Harding เป็นผู้เชี่ยวชาญด้านภาษาที่ทำให้การติดตามความเคลื่อนไหวล่าสุดเป็นเรื่องที่เข้าถึงได้ง่าย ฉันขอแนะนำอย่างยิ่งให้สมัครรับข่าวสาร
กระบวนการนี้ไม่ได้สิ้นสุดเมื่อคุณตัดสินใจว่าต้องการมีส่วนร่วมใน Bitcoin Core มีความซับซ้อนและการพัฒนาภายในโครงการมากพอที่จะทำให้ใครก็ตามยุ่งอยู่ได้หลายชั่วชีวิต เพื่อเลือกว่าคุณจะให้ความสนใจกับอะไร จะเป็นประโยชน์ถ้าระบุสิ่งที่คุณไม่ต้องการให้ความสนใจ (อย่างน้อยก็ในตอนนี้)
การทำการเปลี่ยนแปลง การพัฒนาทั้งความกว้างและความลึกล้วนสำคัญ การหาสมดุลที่เหมาะสมเป็นศิลปะที่พัฒนาไปตามกาลเวลา ความกว้างช่วยเพิ่มการเปิดรับแนวคิดใหม่ๆ และช่วยระบุว่างานใดมีความเกี่ยวข้อง เพื่อที่จะเสนอ PR ที่ปรับปรุง codebase การเข้าใจบริบทภาพใหญ่นั้นสำคัญพอๆ กับการศึกษาลงลึกในแง่มุมหนึ่งและทำความคุ้นเคยกับชุดการเปลี่ยนแปลงที่คุณเสนออย่างเต็มที่
คนที่อยากช่วยเหลือมักชอบแนะนำสิ่งต่างๆ เพิ่มเติมที่คุณควรอ่าน/เรียนรู้/บริโภค/เข้าใจ... ฉันได้ทำแบบนั้นอย่างชัดเจนไปแล้วข้างต้น - ฉันแนะนำหนังสือ 3 เล่ม รายการเนื้อหาที่ไม่มีที่สิ้นสุด 2 รายการ และจดหมายข่าวรายสัปดาห์ 1 ฉบับ นั่นก็ในส่วน "ก่อนที่คุณจะเริ่ม"! ยังมีแรงกดดันโดยนัยเมื่อคุณมีปฏิสัมพันธ์กับผู้อื่นที่จะต้องมีความรู้เกี่ยวกับหัวข้อจำนวนมากเพื่อมีส่วนร่วมในการสนทนาที่เกิดขึ้น นี่เป็นเรื่องดีสำหรับความกว้าง แต่มีเพียงคุณเท่านั้นที่สามารถสร้างเส้นทางของคุณเองเพื่อมุ่งหาความลึก เพื่อที่จะทำ PR คุณจำเป็นต้องพัฒนาความรู้เฉพาะทาง (ไม่ว่าพื้นที่ผิวจะเล็กแค่ไหนก็ตาม) ที่ช่วยให้คุณสามารถนำเสนอการเปลี่ยนแปลงได้ อย่าติดอยู่ในขั้นตอน "การบริโภค" การมุ่งเน้นจะช่วยให้คุณก้าวไปสู่ขั้นตอน "การสร้าง"
สิ่งนี้ยิ่งสำคัญมากขึ้นหากคุณไม่ได้ใช้เวลาทั้งวันทำงานกับ Bitcoin มันเป็นโครงการที่ซับซ้อนอย่างไม่น่าเชื่อ สร้างพื้นที่ให้ตัวเอง แม้แต่งานที่ดูเหมือนง่ายก็อาจใช้เวลาพอสมควร
โอเค พอกันทีสำหรับคำแนะนำในชีวิตตอนนี้ กลับไปที่รายละเอียดโครงการกัน...
Clone repo, compile มันและรันการทดสอบ
อ่านเอกสารสำหรับนักพัฒนาในโครงการ:
คู่มือ Contributing to Bitcoin Core เป็นความรู้ที่จำเป็นสำหรับการเริ่มต้น รวมถึงปรัชญาของ pull request และวิธีการทำงานของกระบวนการ review
Developer Notes ควรอ่านผ่านๆ ในตอนแรก จากนั้นกลับมาอ่านอีกครั้งก่อนที่คุณจะเปิด PR เพื่อให้แน่ใจว่าคุณปฏิบัติตามมาตรฐานปัจจุบัน
Productivity Notes มีเทคนิคที่มีประโยชน์อย่างมากที่จะได้รับในส่วนต่างๆ ของการพัฒนาขั้นตอนการทำงานของคุณ ฉันขอแนะนำอย่างยิ่งให้ทำสี่ข้อแรกทันที (ติดตั้ง ccache, ใช้ ./configure ให้เป็นประโยชน์, compile ด้วย make -j [num-cores], และกำหนด build targets)
อ่านบทความการเริ่มต้นที่เขียนโดย Jimmy Song และ John Newbery
เข้าร่วมการ review PR รายสัปดาห์ การ review PR มีความสำคัญต่อโครงการ ที่เกี่ยวข้องมากขึ้น ในขณะที่คุณกำลังเริ่มต้น มันเป็นวิธีที่มีประสิทธิภาพในการเรียนรู้เกี่ยวกับ codebase และกระบวนการ merge review club เป็นวิธีที่จะทำความคุ้นเคยกับชุดการเปลี่ยนแปลงเฉพาะด้วยการสนับสนุนจากผู้อื่น คุณค่าที่คุณสามารถได้รับจาก review club เป็นผลโดยตรงจากพลังงานที่คุณเต็มใจลงทุน บันทึกรายสัปดาห์ช่วยให้เกิดความตระหนักถึงรูปแบบต่างๆ เช่น สถาปัตยกรรมทางเทคนิคและบริบททางประวัติศาสตร์ ซึ่งต้องใช้เวลานานกว่าที่จะพัฒนาด้วยตนเอง ไม่ว่าคุณจะเข้าร่วมการประชุมและเพียงแค่สังเกตการณ์หรือใช้เวลาสำรวจโค้ดล่วงหน้าและมีส่วนร่วม คุณแน่ใจได้ว่าจะได้เรียนรู้มากมาย การเตรียมตัวล่วงหน้าช่วยให้คุณใช้ประโยชน์จากเซสชันเพื่อแสดงคำถามหรือสร้างความมั่นใจเกี่ยวกับความเข้าใจของคุณในโค้ด
เมื่อคุณเริ่มปรับตัวเข้ากับ codebase คุณอาจรู้สึกพร้อมที่จะทำ PR แต่ไม่แน่ใจว่าจะเลือกการมีส่วนร่วมที่มีคุณค่าต่อโครงการได้อย่างไร มีความเป็นไปได้สูงว่าช่องทางต่างๆ ที่กล่าวถึงในโพสต์นี้จนถึงตอนนี้มีมากพอที่จะช่วยให้คุณได้พบกับช่องว่างที่มีความหมายซึ่งรอให้คุณทำงาน แต่ถ้าคุณยังคงค้นหา นี่คือตัวเลือกอื่นๆ:
ติดตามป้ายกำกับ good first issue และ up for grabs สำหรับ up-for-grabs ตรวจสอบให้แน่ใจว่าคุณกรองเพื่อรวมทั้งที่เปิดและปิดแล้ว
ค้นหา codebase ด้วยสตริง "TODO" และพิจารณาดูว่ามีอันไหนที่เหมาะสมกับระดับความคุ้นเคยของคุณกับ codebase หรือไม่ ฉันเคยพบบางอันในการทดสอบที่ดูเหมาะสำหรับผู้เริ่มต้น
เลือกส่วนของ codebase (หรือหนึ่งในส่วนที่อยู่ในเอกสารการมีส่วนร่วม) และให้ความสนใจกับ PR ที่เกี่ยวข้องที่กำลังเปิด ถ้าคุณติดตาม PR conversations คุณจะแน่นอนว่าสังเกตเห็นสิ่งที่ต้องทำตามมา นอกจากนี้ คิดอย่างมีวิจารณญาณเกี่ยวกับวิธีทดสอบการเปลี่ยนแปลง การเปิด PR เพื่อแก้ไขสิ่งที่ต้องติดตามและเพิ่มความครอบคลุมของการทดสอบจะเป็นที่ชื่นชมอย่างมาก คุณยังสามารถทำความคุ้นเคยกับส่วนโดยการเยี่ยมชมประวัติ pr-review-club ที่เกี่ยวข้อง
ธรรมชาติของการมีส่วนร่วมในโอเพนซอร์สหมายความว่าไม่มีระบบการจัดการโครงการแบบรวมศูนย์ ตามมาด้วยการมีชุดการเปลี่ยนแปลงที่เป็นประโยชน์ต่อโครงการแต่ไม่จำเป็นต้องเป็นการใช้ความสนใจและทักษะของผู้เขียน PR อย่างคุ้มค่าที่สุด ดังนั้น ส่วนหนึ่งของการเริ่มต้นในฐานะผู้มีส่วนร่วมคือการหาการมีส่วนร่วมที่ (เฉพาะทางแต่) มีประโยชน์ซึ่งอยู่ตามเส้นโค้งการเรียนรู้ของคุณ PR แรกของฉันคือการดำเนินการตาม PR แบบ up-for-grabs นี้
ฉันรู้สึกประหลาดใจมากที่ได้สังเกตเห็นว่ามีผลไม้ที่อยู่ต่ำ (งานง่ายๆ) ให้มีส่วนร่วมมากแค่ไหน ฉันไม่เคยคาดหวังมาก่อนที่จะพิจารณาโครงการ Github อย่างรอบคอบ
สำหรับปริมาณ "street-cred" และความน่าขยาดของโครงการ Bitcoin Core ช่างน่าทึ่งที่เห็นว่าการมีส่วนร่วมนั้นเข้าถึงได้ง่ายเพียงใด การสังเกตรายการงานที่ไม่มีที่สิ้นสุด (ทั้งง่ายและซับซ้อน) ทำให้เห็นเป็นรูปธรรมว่าโครงการ Bitcoin ยังอยู่ในช่วงเริ่มต้นและมีความต้องการผู้มีส่วนร่วมเพิ่มอย่างชัดเจน
เมื่อฉันเริ่มเรียนรู้ C++ ฉันได้หนังสือดีๆ มาบ้าง แต่จริงๆ แล้ว ฉันยังคงกำลังอ่านมันอยู่
การเรียนรู้แบบลงมือทำได้ผลดีที่สุดสำหรับฉัน และฉันมุ่งเน้นไปที่การเรียนรู้ส่วนที่เกี่ยวข้องมากที่สุดของภาษาที่จะช่วยให้ฉันอ่าน codebase ของ Bitcoin Core ได้
ดังนั้น ฉันจึงเขียนโค้ด เมื่อฉันพบกับแนวคิด C++ ใหม่ๆ ฉันอ่านเอกสารและพยายามแยกฟังก์ชันการทำงานในโปรแกรมตัวอย่าง ฉันมักจะเปิดแท็บ tmux ที่ฉันเรียกว่า c++ play เสมอ โปรแกรมเหล่านี้ยังทำหน้าที่เป็นเอกสารของแนวคิดที่ฉันได้ทดลองใช้ เครื่องมือที่ยอดเยี่ยมอีกอย่างคือ Compiler Explorer ฉันพบว่าการไฮไลต์ที่มีรหัสสีนั้นมีประโยชน์อย่างยิ่งสำหรับการเปรียบเทียบหลายวิธีในการดำเนินฟังก์ชันการทำงานเดียวกันเพื่อดูว่าความแตกต่างนั้นเป็นเพียงผิวเผิน ถูก optimize ออกไป หรือเปลี่ยนแปลงงานที่ทำอย่างพื้นฐาน
เพื่อศึกษาแนวคิด C++ เฉพาะเชิงลึก ฉันสนุกกับการดูการพูดคุยของ CppCon โดยเฉพาะแทร็ก "Back to Basics"
นี่เป็นจุดเริ่มต้นที่ดี แต่บางครั้งฉันต้องการคุยกับมนุษย์ ในตอนแรก ฉันมีคำถามเกี่ยวกับเครื่องหมายวรรคตอนที่ฉันไม่รู้ว่าจะ google อย่างไร (เช่น การเรียนรู้ว่า : ที่วางอย่างระมัดระวังบ่งชี้ถึง initializer list) ทุกวันนี้ ฉันมักต้องการยืนยันความเข้าใจที่ฉันได้รับจากเอกสารและการทดลอง
ฉันได้พบกับชุมชนออนไลน์ที่ยอดเยี่ยมบางแห่งที่มีคนแปลกหน้าเต็มใจที่จะช่วยชี้ทางให้ฉัน สำหรับ C++ มี cpplang slack, ช่อง ##C++-general irc และชุมชน #include<C++> ที่มีเซิร์ฟเวอร์ discord ฉันรู้สึกประหลาดใจที่คนแปลกหน้าบนอินเทอร์เน็ตมีประโยชน์มากเพียงใด ฉันยังได้แวะเข้าไปที่ช่อง #git irc สำหรับคำถามเฉพาะเกี่ยวกับ git
ฉันสนับสนุนการขอความช่วยเหลือ แต่โปรดเคารพและคิดอย่างรอบคอบเกี่ยวกับวิธีที่คุณทำ ทำการตรวจสอบอย่างละเอียดและพยายามหาคำตอบด้วยตัวคุณเองก่อน มีความสุภาพและใช้ช่องทางการสื่อสารที่เหมาะสมสำหรับคำถามของคุณ ผู้คนไม่ได้เป็นหนี้คำตอบคุณ ความช่วยเหลือใดๆ ที่เสนอมาล้วนมาจากความเอื้อเฟื้อ
การเลือก irc client: ฉันพบว่า irccloud เป็น client ที่เรียบง่าย สวยงาม ที่ไม่จำเป็นต้องลงทุนในเครื่องมือ นอกจากนี้ยังมีตัวเลือกในการมี username และบันทึกที่ถาวรโดยเสียค่าธรรมเนียมเล็กน้อย มีตัวเลือกมากมายสำหรับ irc client แต่ฉันแนะนำให้มุ่งเน้นพลังการตัดสินใจของคุณไปที่การตัดสินใจที่มีอิทธิพลมากกว่าและเลือก client ตามความต้องการ
แหล่งข้อมูล Bitcoin ที่ฉันชื่นชอบส่วนใหญ่กระจายอยู่ทั่วบทความนี้ แต่นี่คือบางส่วนที่ฉันอยากเน้นย้ำสำหรับการใช้งานโค้ด:
Developer reference สำหรับ P2P messages และ RPCs
Bitcoin stack exchange มีการอภิปรายเฉพาะเกี่ยวกับการพัฒนา protocol กระจายอยู่ในคำถามและคำตอบต่างๆ มันไม่ได้ถูกจัดทำดัชนีได้ดีโดย Google ดังนั้นจึงคุ้มค่าที่จะเข้าชมเว็บไซต์โดยตรงและค้นหาตามหัวข้อ
Fabian Jahr ได้รวบรวมเอกสารที่ครอบคลุมเกี่ยวกับเทคนิคการ debug [talk] [gist]
ฉันชอบภาพรวมสถาปัตยกรรมที่ James O'Beirne ให้ไว้ [talk] [slides]
หากคุณกำลังต่อสู้กับแนวคิดทางเทคนิคและไม่แน่ใจว่าจะลองอะไร โปรดติดต่อฉัน! ฉันไม่ได้มีคำตอบทั้งหมดอย่างแน่นอน แต่ฉันยินดีที่จะระดมความคิดเพื่อหาทางแก้ไข
มีหลายวิธีที่ดีในการเพิ่มการเปิดรับการพัฒนาในระบบนิเวศ Bitcoin นี่คือตัวเลือกที่มีสัญญาณต่อสัญญาณรบกวนสูง:
มีการประชุม irc ทุกวันพฤหัสบดีเวลา 19:00 UTC ใน #bitcoin-core-dev
ช่อง #bitcoin-core-pr-reviews บางครั้งก็ใช้เพื่ออภิปรายกระบวนการและเครื่องมือ ดังนั้นการให้ความสนใจอาจเป็นประโยชน์
กลับไปดูหลักสูตร bitcoin ของ Chaincode Labs มีเนื้อหาที่ยอดเยี่ยมมากมายในนั้น - การพูดคุย, เอกสาร และแม้แต่ความท้าทายในการเขียนโค้ด!
เข้าร่วมการประชุมที่มีคุณภาพสูง
ดูวิดีโอจากการประชุมก่อนหน้านี้ ฉันได้เรียนรู้มากมายโดยใช้เวลาเดินทางไปทำงานเพื่อฟังและดูวิดีโอจาก Bitcoin Edge Dev++ [2017] &[2018]
หากคุณอาศัยอยู่ในเมืองที่มีตัวเลือกนี้ ให้เข้าร่วมการสัมมนา Socratic
อ่าน bitcoin wiki โดยเฉพาะหน้า protocol และ privacy
Chaincode เพิ่งเริ่มต้น podcast ที่มุ่งเน้น protocol
การทำความคุ้นเคยกับ Bitcoin protocol ไม่ใช่งานง่าย โดยเฉพาะอย่างยิ่งถ้าคุณมีภาระผูกพันในชีวิตอื่นๆ เช่น งานเต็มเวลาหรือการเป็นนักเรียน ฉันใช้บัตรคำทบทวนแบบระยะห่าง (spaced repetition flashcards) เพื่อจดจำข้อมูลใหม่ๆ ฉันขอแนะนำอย่างยิ่ง มันช่วยเร่งความสามารถของคุณในการจดจำข้อมูลเพื่อที่คุณจะได้ใช้เวลามากขึ้นในการเรียนรู้แนวคิดใหม่ๆ หรือการนำสิ่งที่คุณได้เรียนรู้ไปใช้ ฉันใช้ Anki เพื่อสร้างบัตรคำจากแล็ปท็อปของฉันและทบทวนจากโทรศัพท์ของฉัน นี่มีข้อดีเพิ่มเติมคือการเรียนรู้แนวคิดในขณะเดินทางและอนุญาตให้ช่วงเวลาว่างใดๆ ถูกใช้ไปกับงานเฉพาะใน codebase
จับตาดูโปรแกรม Chaincode residency ฉันรู้สึกขอบคุณอย่างลึกซึ้งที่ได้มีโอกาสเข้าร่วมเมื่อฤดูร้อนที่แล้ว และมันเป็นการเปลี่ยนเกมในแง่ของการนำฉันเข้าสู่โครงการ แต่โปรดตระหนักว่ามันเป็นโปรแกรมที่มีการแข่งขันสูง และการมีส่วนร่วมใดๆ ใน Bitcoin Core ที่คุณทำไว้ล่วงหน้าจะเพิ่มโอกาสในการได้รับการยอมรับของคุณ (การมีส่วนร่วมใน review club, การ review PR, การทำ PR เป็นต้น)
การมีส่วนร่วมใน Bitcoin Core นั้นยาก แต่ไม่ได้เป็นไปไม่ได้เลย ฉันไม่เคยเขียน (หรือแม้แต่อ่าน) C++ มาก่อนที่จะเริ่มการเดินทางนี้ เป็นเรื่องธรรมชาติที่จะรู้สึกกลัว แต่อย่าให้สิ่งนั้นหยุดคุณ
อดทนกับตัวเอง ทุกอย่างที่ฉันเคยทำใน Bitcoin Core ใช้เวลาอย่างน้อยหนึ่งหรือสองชั่วนิรันดร์ที่จะสำเร็จ ครั้งหนึ่งฉันใช้เวลา 3 วันเต็มในการทดสอบแบบบูรณาการ (integration tests) ทดลองวิธีต่างๆ ในการเติม mempool ด้วย transactions ความพยายามแรกๆ ของฉันต้องการการตั้งค่าการทดสอบที่ยาวเกินไป ดังนั้นฉันต้องลองวิธีต่างๆ ต่อไป อย่าติดอยู่กับเรื่องเล่าภายในที่ว่า "สิ่งนี้ควรจะง่าย" มุ่งเน้นไปที่สิ่งที่คุณสามารถเรียนรู้และพยายามต่อไป
เมื่อเริ่มต้น เป็นเรื่องง่ายที่ "Bitcoin Core" และ "core contributors" จะดูเหมือนเป็นองค์กรใหญ่ที่คลุมเครือซึ่งเป็นไปไม่ได้ที่จะเข้าไปมีส่วนร่วม แต่มีประโยชน์ที่จะรักษามุมมองว่าผู้มีส่วนร่วมเป็นเพียงบุคคลที่หลงใหลใน Bitcoin ฉันประหลาดใจอย่างยิ่งที่ได้ค้นพบว่าผู้คนมีประโยชน์และให้การสนับสนุนมากเพียงใด ทุกคนที่ทำงานในโครงการมีข้อจำกัดด้านแบนด์วิดธ์อย่างมาก ดังนั้นหากคุณกำลังทำการมีส่วนร่วมที่มีความหมาย ผู้คนจะให้กำลังใจ
นี่เป็นสิ่งสำคัญ อย่าเริ่มต้นด้วยการแก้ไขคำผิดใน PR จงอดทน ลงทุนในการเรียนรู้ของคุณ สังเกตโครงการ และระบุว่าคุณสามารถมีส่วนร่วมที่มีความหมายได้อย่างไร
ไม่ว่าคุณจะอยู่ตรงไหนในเส้นโค้งการเรียนรู้ของคุณ คุณสามารถเป็นสินทรัพย์ให้กับโครงการได้ หากคุณมุ่งมั่นที่จะทุ่มเทพลังงานและมีความสามารถในการคิดอย่างมีวิจารณญาณและเรียนรู้ คุณคือสินทรัพย์ อย่าให้ความหยิ่งหรือความไม่มั่นคงนำคุณหลงทาง
เพื่อสรุป ฉันขอแบ่งปันความคิดเล่นๆ สักหน่อย...
หากเราจะวาดภาพเส้นทางการเรียนรู้ต่างๆ เพื่อมีส่วนร่วมใน Bitcoin Core มันจะไม่เรียงลำดับอย่างสวยงามและเป็นเส้นตรงเหมือน blockchain แน่นอน ไปตามเส้นทางของคุณเอง ไปทัวร์ชมวิวสวยๆ บ้าง และสนุกให้เต็มที่
การเดินทางในโลกของโอเพนซอร์สทำให้ฉันนึกถึงการเดินป่าออฟเทรลเป็นอย่างมาก
ในการเดินป่า ฉันจะตรวจสอบพื้นที่ที่ฉันต้องการเยี่ยมชมบนแผนที่ภูมิประเทศ (topo) ก่อนและวาดเส้นทางคร่าวๆ ของการเดินทางที่ตั้งใจไว้ โดยพยายามอยู่ในภูมิประเทศที่นุ่มนวลที่สุด แผนที่ภูมิประเทศของอาณาจักร bitcoin ไม่มีอะไรเทียบกับแผนที่ USGS ที่ช่วยให้ฉันเดินทางผ่าน Sierra ได้อย่างดี ดังนั้น เมื่อนำทางใน Bitcoin คุณต้องประกอบแผนที่คร่าวๆ ของพื้นที่ด้วยความเข้าใจเพียงเล็กน้อยก่อน แล้วจึงวางแผนวิธีการเข้าถึง ความหวังของฉันสำหรับบทความนี้คือทำให้กระบวนการนั้นง่ายขึ้นเล็กน้อย
การเดินตามเส้นทางจริงต้องมีการทำซ้ำอย่างต่อเนื่อง ในทุกๆ ก้าว คุณรับข้อมูลใหม่ที่คุณใช้เพื่อระบุเส้นทางที่มีแรงต้านน้อยที่สุดเพื่อให้คุณสามารถใช้พลังงานของคุณในการผจญภัยลึกเข้าไปในภูมิประเทศที่เป็นภูเขา คุณต้องให้ความสนใจกับรายละเอียดของทุกก้าว แต่ยังต้องสนใจเส้นทางระดับมหภาคที่มันกำลังนำไปสู่ด้วย
กระบวนการนี้คล้ายกันใน Bitcoin เมื่อคุณเรียนรู้มากขึ้น คุณจะได้เห็นภูมิประเทศที่กำลังจะมาถึงและต้องแก้ไขเส้นทางอย่างต่อเนื่องเพื่อให้ตัวเองเดินหน้าต่อไปอย่างสมเหตุสมผล บางครั้งคุณอาจพบกับหน้าผาและต้องถอยกลับไปลองเส้นทางอื่น การค้นหาเส้นทางต้องใช้พลังงานและความสนใจมาก คุณต้องเป็นทั้งผู้นำทางและนักเดินเท้า
ฉันอาจเพิ่มความยาวของบทความนี้เป็นสองเท่าโดยการลงลึกในความคล้ายคลึงกันของประสบการณ์ของฉัน แต่แทนที่จะทำเช่นนั้น ฉันจะจบบทความนี้ด้วยสิ่งนี้ -
โชคดี! ฉันหวังว่าจะได้พบคุณบน GitHub :)
หากคุณมีคำถามหรือข้อเสนอแนะ โปรดส่งข้อความส่วนตัวถึงฉันทาง Twitter
ขอบคุณผู้อ่านทบทวนของฉัน: Jonas, Carla และ Paul