CodeGym: ตอนที่ 2

All lectures for TH purposes
ระดับ, บทเรียน
มีอยู่

1. การเรียนรู้จากการปฏิบัติ

การเรียนรู้ Java ขึ้นอยู่กับการปฏิบัติ

มีคนที่รัก CodeGym สุดหัวใจ และก็มีคนที่เกลียดสุดหัวใจ แต่ถึงกระนั้นนักวิจารณ์ที่ร้ายกาจที่สุดของ CodeGym ก็จะเห็นด้วยทันทีว่ามันมีงานจำนวนมากที่น่าประทับใจ และเหตุผลที่มีหลายแบบเป็นเพราะการฝึก CodeGym ทั้งหมดมีการฝึกฝนเป็นรากฐาน

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

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


2. ประเภทของงาน

งานประเภทต่างๆ มากมายรอคุณอยู่ที่ CodeGym มาดูรายการหลัก:

งานที่คุณเขียนโปรแกรม

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

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

งาน EPIC มักอิงจากเนื้อหาการเรียนรู้ในอนาคตในบทเรียนที่คุณยังไม่ได้ปลดล็อก พวกเขาเป็นที่นิยมในหมู่นักเรียน CodeGym ที่รู้สึกว่าหลักสูตรนี้ง่ายเกินไปสำหรับพวกเขา คนอื่นๆ สามารถข้ามงานเหล่านี้และกลับมาทำในภายหลังได้ เมื่อพวกเขาคุ้นเคยกับทฤษฎีที่เกี่ยวข้องแล้ว

โครงการ

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

นั่นเป็นเหตุผลที่ CodeGym แนะนำงานโครงการ — งานขนาดใหญ่ที่แบ่งออกเป็น 5-35 งานย่อยทั่วไป คุณทำงานย่อยทั้งหมดตามลำดับ และจบลงด้วยโปรแกรมขนาดใหญ่

ในตอนท้ายของแต่ละระดับหลังจากระดับ 20 จะมีงานโครงการขนาดใหญ่หนึ่งงาน ซึ่งแบ่งออกเป็นงานย่อยยี่สิบงาน นอกจากนี้ยังมีงานเกมอีก 6 งานซึ่งเป็นโครงการด้วย และมีงานโครงการหนึ่งสำหรับการรับเข้าฝึกงานออนไลน์ โดยรวมแล้วมี 27 งานโครงการในหลักสูตรทั้งหมด

แบบทดสอบ

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

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


3. สถานะงาน

แต่ละงานใน CodeGym มีสถานะพิเศษ สถานะสามารถเปลี่ยนแปลงได้เมื่อคุณแก้ปัญหา

งาน CodeGym แต่ละงานเชื่อมโยงกับบทเรียน ในขั้นต้น คุณจะไม่สามารถเข้าถึงงานใดๆ ได้ ซึ่งหมายความว่าคุณจะไม่สามารถแก้ไขงานเหล่านั้นได้

เมื่อคุณเปิดบทเรียนถัดไป งานทั้งหมดในบทเรียนจะพร้อมให้แก้ไข นั่นคือสถานะจะเปลี่ยนเป็น "ว่าง"

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

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

ผู้ใช้ที่สมัครสมาชิก Premium Mentor มีเวลาอีก 3 วันในการพยายามเขียนโซลูชันอื่นๆ สำหรับงาน หลังจากช่วงเวลาเพิ่มเติมนี้หมดลง งานจะย้ายเข้าสู่สถานะ "ปิด" และสถานะนี้จะไม่เปลี่ยนแปลงอีกต่อไป


4. ข้อกำหนด

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

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

เพื่อให้ได้คำตอบสำหรับคำถามนี้ คุณต้องการใครสักคนที่จะเจาะลึกวิธีแก้ปัญหาของคุณ วิเคราะห์มัน และบอกคุณว่ามีอะไรผิดปกติกับมัน ซึ่งจะใช้เวลานานและมีราคาแพง ข้อดีของการยืนยันงานทันทีคือคุณสามารถนั่งลงเพื่อศึกษาเวลา 2:00 น. และทุกอย่างจะทำงานเหมือนเวลาอื่น ๆ

นั่นเป็นเหตุผลที่เราเขียนงานทั้งหมดบน CodeGym ใหม่ ตอนนี้แต่ละงานไม่ได้มีเพียงเงื่อนไขของงานเท่านั้น แต่ยังมีรายการข้อกำหนด 5-10 รายการที่สรุปเงื่อนไขต่างๆ สิ่งสำคัญที่สุดคือ ความต้องการแต่ละข้อจะได้รับการตรวจสอบแยกจากกัน

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

ความต้องการ

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


5. คำแนะนำ

เป็นไปได้ไหมที่จะทำให้งานดียิ่งขึ้นไปอีก? คงจะดีไม่น้อยหากหลังจากการตรวจสอบแต่ละครั้ง คุณได้รับแจ้งว่ามีอะไรผิดปกติในโปรแกรมของคุณอย่างแน่นอน และได้รับคำแนะนำเกี่ยวกับวิธีการแก้ไข ใช่ว่าจะเจ๋ง! เดาอะไร? เราทำเช่นนั้นบน CodeGym 🙂

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

ลองคิดดูสิ ขณะนี้มีงานประมาณ 1,200 รายการบน CodeGym โดยมีข้อกำหนดทั้งหมดประมาณ 10,000 รายการ และมีคำแนะนำหลายประการที่เกี่ยวข้องกับข้อกำหนดแต่ละข้อ ข้อกำหนดบางอย่างมีหลายสิบข้อ ตัวตรวจสอบความถูกต้องของ CodeGym พร้อมที่จะให้คำแนะนำมากกว่า 50,000 รายการสำหรับโซลูชันสำหรับผู้ใช้

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

คำแนะนำ

6. ชุมชน

CodeGym มุ่งเน้นไปที่การฝึกฝนมากมายซึ่งคิดเป็นมากกว่า80%ของกระบวนการเรียนรู้ทั้งหมด เราเปลี่ยนการเรียนรู้เป็นภารกิจที่ยิ่งใหญ่และมีส่วนร่วม (อันที่จริงคือชุดของภารกิจ)

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

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

ชุมชนนักพัฒนาที่ใหญ่ที่สุดในโลก - เว็บไซต์ StackOverflow - เกิดจากความต้องการที่โปรแกรมเมอร์ต้องเรียนรู้จากกันและกัน แนวคิดนั้นเรียบง่าย: คุณถามคำถามและโปรแกรมเมอร์คนใดในโลกสามารถตอบได้ สะดวกใช่ไหม? 🙂

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

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


7. คำถามเกี่ยวกับงาน

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

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

ฟังดูเรียบง่ายและธรรมดามาก แต่จริงๆ แล้วค่อนข้างซับซ้อน

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

คำถามเกี่ยวกับงาน

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

ปุ่มช่วยเหลือ

ประการที่สาม ปลั๊กอิน IntelliJ IDEAมีการทำงานที่คล้ายกัน คุณสามารถคลิกปุ่ม "วิธีใช้" หรือกดคีย์ผสม Ctrl+Alt+W ซึ่งจะเปิดส่วนวิธีใช้ในเบราว์เซอร์ของคุณทันที และแน่นอน ตัวกรองจะแสดงเฉพาะคำถามเกี่ยวกับงานที่คุณกำลังแก้ไขในIntelliJ IDEA

ความช่วยเหลือ IntelliJ IDEA

8. การสร้างคำถาม

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

การสร้างคำถาม

ไม่เหมือนกับบริการอื่น ๆ เช่น StackOverflow, Code Ranch และอื่น ๆ CodeGym ไม่ต้องการให้คุณยัดเยียดข้อมูลสำคัญทั้งหมดลงในชื่อคำถาม เขียนคำถามของคุณตามที่คุณต้องการ

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

การสร้างคำถาม2

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


9. รหัสโซลูชัน

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

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

  • เชื่อมโยงไปยังงานที่ผู้ถามกำลังแก้ไข
  • เงื่อนไขภารกิจให้คนอื่นไม่ต้องไปตามล่ามันที่ไหน
  • รหัสโซลูชัน — ซึ่งอาจรวมถึงไฟล์จำนวนมาก
  • สถานะของข้อกำหนดของงานแต่ละรายการ ได้แก่ สิ่งที่ใช้ได้ผลในปัจจุบันและสิ่งที่ใช้ไม่ได้
  • ข้อความของคำถาม: โดยปกติจะค่อนข้างชัดเจน — วิธีแก้ปัญหาของฉันใช้ไม่ได้ และฉันไม่แน่ใจว่าทำไม

CodeGym แสดงข้อมูลนี้โดยใช้วิดเจ็ตพิเศษที่คล้ายกับวิดเจ็ตWebIDE ท้ายที่สุดแล้ว มันถูกออกแบบมาเพื่อแสดงข้อมูลทั้งหมดนั้น บางทีอาจจะเป็นข้อยกเว้นของคำถามเอง

รหัสโซลูชัน

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

ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION