programming.in.th สุดยอดเว็บฝึกแก้โจทย์โปรแกรมมิ่งอันดับ 1 ของไทย

   By: DH Team

   อัปเดตล่าสุด Jan. 25, 2023

programming.in.th สุดยอดเว็บฝึกแก้โจทย์โปรแกรมมิ่งอันดับ 1 ของไทย

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

TopCoderLeetCodeCodeChef, etc แต่ถ้าถามหาแพลตฟอร์มของไทย เรียกได้ว่าแทบจะไม่มีหรือน้อยมาก และแน่นอนว่าเราคงไม่ได้เอาไปเปรียบเทียบกับแพลตฟอร์มระดับโลกเหล่านี้ 

และนี่คือสุดยอดเว็บโปรแกรมมิ่งในตำนานอีกหนึ่งเว็บของไทย ที่ปรับโฉมหน้าเว็บใหม่ พร้อมทั้งโจทย์ที่น่าสนใจเพิ่มขึ้นมากมาย พร้อมทั้ง UX/UI ที่เรียบง่าย สวยงาม ที่สำคัญใช้งานง่ายมาก ๆ แถมยังฟรีอีกต่างหาก ทำให้เรียกได้เต็มปากว่า "นี่คือหนึ่งในแพลตฟอร์มของคนไทย ที่ดีที่สุดในการแก้โจทย์ในตอนนี้" (ถ้าผิดพลาดตรงไหน หรือมีแพลตฟอร์มอื่นนอกจากนี้ ก็สามารถคอมเมนต์ได้เลยนะครับ จะขอขอบคุณมาก) โดยเว็บไซต์นี้จะเป็นเว็บไหนไปไม่ได้นอกจาก programming.in.th สุดยอดเว็บไซต์ในการเรียนเขียนโค้ดในตำนานของคนไทย ภายใต้การดูแลของ สถาบันส่งเสริมการสอนวิทยาศาสตร์และเทคโนโลยี ( สสวท. )  (ตอนนี้ยังเป็นเบต้าเวอร์ชั่น) 


โดยมีคำอธิบายส่วนหนึ่งของเว็บไซต์ที่บอกไว้ว่า

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


โดยจุดเด่นของแพลตฟอร์มคือ (update)

  • มีโจทย์เยอะและหลากหลาย มีโจทย์ให้ทำกว่า 734 ข้อ ตั้งแต่ระดับง่ายไปจนถึงยาก
  • ทราบผลคะแนน Submission ได้แบบ Real Time
  • มีบทเรียนเกี่ยวกับ data structure & algorithms ซึ่งเป็นหัวใจหลักและพื้นฐานที่สำคัญมาก ๆ ของด้านโปรแกรมมิ่ง
  • หน้าเว็บออกแบบมาใช้งานได้ง่าย สะดวก รวดเร็ว
  • มีผู้ใช้งานเยอะ ล่าสุดคือ 15,630 คน  (ข้อมูลล่าสุด วันที่เขียน วันที่ 18 พฤศจิกายน 2565)
  • มีความน่าเชื่อถือ โจทย์สามารถอ้างอิง และฝึกฝนเพื่อไปแข่งระดับนานาชาติได้


ทำไมต้องฝึกแก้โจทย์ปัญหา

ก่อนที่จะไปดูวิธีการใช้งานและฟีเจอร์แจ่ม ๆ เรามาอ่านข้อดีกันก่อนว่า ทำไมต้องมีการฝึกการแก้โจทย์ปัญหา

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

เมื่อทราบถึงข้อดีกันแล้ว เราจะนิ่งเฉยอยู่ได้ไง ไปฝึกกันโลดเด้อ :)  วันนี้เราจะไปดูกันครับว่าทางเว็บเวอร์ชันใหม่นี้มีฟีเจอร์อะไรเด็ด ๆ บ้าง และขั้นตอนการใช้งานเป็นอย่างไร ไปอ่านและรับชมพร้อม ๆ กันได้เลยครับ



หน้าตาของเว็บ




ตารางของผู้ใช้ที่ทำการ Submissions ล่าสุด

ขั้นตอนการใช้งาน

1. ทำการสมัครหรือ Sign Up

สามารถเริ่มสมัครใช้งานโดยกดที่ Sign Up เพื่อลงทะเบียน


ลงทะเบียนเข้าใช้งาน


2. ยืนยันการสมัครผ่าน e-mail

เมื่อทำการลงทะเบียนเรียบร้อย ระบบจะส่งลิ้งค์เพื่อยืนยันการสมัคร ผ่านทางอีเมล์ที่ได้กรอกไว้ ทำการคลิ๊กที่ลิ้งค์ตามเมล์ที่ส่งมาได้เลย


ยืนยันตัวตนผ่านอีเมล์


3. ทำการ Log in เข้าใช้งาน

เมื่อยืนยันอีเมล์เสร็จสิ้นเรียบร้อย ก็สามารถล็อกอินเข้าใช้งานได้แล้ว โดยการล็อกอินนั้น ทาง programming.in.th ก็ได้กำหนดไว้ 4 วิธี ดังนี้

  1. ล็อกอินผ่าน Google
  2. ล็อกอินผ่าน Facebook (ยังไม่สามารถล็อกอินผ่านเฟสบุ๊คได้ในตอนนี้ ระบบกำลังปรับปรุง)
  3. ล็อกอินผ่าน GitHub
  4. ล็อกอินผ่าน E-mail 


ซึ่งในบทความนี้จะเป็นการล็อกอินผ่าน E-mail 


ล็อกอินผ่านอีเมล์




เฟสบุ๊คยังไม่สามารถล็อกอินได้ในตอนนี้


4. เข้าหน้า Task เพื่อเริ่มหาโจทย์ที่กำหนดให้

เมื่อล็อกอินเข้าใช้งานเรียบร้อยแล้ว ตอนนี้ก็สามารถที่จะเริ่มมองหาโจทย์เพื่อที่จะแก้โจทย์ต่อไป ซึ่งจะเริ่มจากง่ายไปยาก โดยให้เริ่มจากโจทย์แรกเลยก็คือ A + B problem  ซึ่งโจทย์ข้อนี้จะเป็นข้อแรกสุดและแน่นอนว่าง่ายสุดเช่นกัน โดยจะขออนุญาตสปอยด์สั้น ๆ คือ

โจทย์ข้อนี้ให้รับ input มา 2 ค่า แล้วนำสองค่านี้มารวมกัน และก็ให้แสดงผลออกผ่านทางหน้าจอ

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

ปล. ก่อนทำโจทย์ได้ ต้องมีพื้นฐานการเขียนโปรแกรมมาก่อน เช่น ภาษาไพธอน เป็นต้น ส่วนภาษาไหนบ้างที่รองรับสำหรับแพลตฟอร์มนี้ อ่านต่อด้านล่างได้เลยครับ


โจทย์ต่าง ๆ


5. ดาวน์โหลดโจทย์ (ไฟล์ PDF) 

เมื่อคลิ๊กเลือก task หรือโจทย์ที่ต้องการเรียบร้อย ระบบจะขึ้น pop-up แจ้งเตือนให้ดาวน์โหลดโจทย์ผ่าน PDF คลิ๊กเพื่อดาวน์โหลด


ดาวน์โหลดโจทย์ในรูปแบบ PDF


6. ทำโจทย์ผ่าน IDE หรือ Text Editor ที่ต้องการ

ทางเว็บไม่ได้มี Text Editor แบบออนไลน์ให้เราสามารถเขียนผ่านเว็บได้ ดังนั้นเราสามารถเลือกเขียนใน IDE หรือ Text Editor ที่ต้องการได้เลย โดยที่ได้รับความนิยมไม่ว่าจะเป็น PyCharm (IDE), Sublime Text, Visual Studio Code, Atom เป็นต้น ในบทความนี้จะใช้ตัว IDE คือ PyCharm ซึ่งเป็น IDE ที่นิยมที่สุดในการเขียนไพธอน โดยทำการสร้างโปรเจคท์ได้ตามภาพด้านล่าง ซึ่งคงไม่ต้องอธิบายตรงส่วนนี้มาก หลาย ๆ คนน่าจะคุ้นเคยกันดีอยู่แล้วครับ หรือสำหรับใครที่ยังไม่ได้ติดตั้งหรือดาวน์โหลด PyCharm ก็สามารถดาวน์โหลดและดูวิธีการติดตั้งแบบง่าย ๆ ในคลิปนี้ได้เลยครับ ติดตั้ง PyCharm เพื่อเขียนไพธอน



เริ่มทำโจทย์ โดยทำผ่าน IDE หรือ Text Editor ที่ต้องการ ในภาพใช้ PyCharm


เริ่มละเลงเขียนโค้ดลงไปได้เลย โดยต้องตีโจทย์ให้แตกก่อนครับ ถึงจะสามารถเขียนโค้ดลงไปเพื่อแก้ปัญหาได้


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


7. ส่งและอัพโหลดไฟล์คำตอบ

หลังจากเขียนโค้ดเช็คคำตอบให้แน่ใจแล้ว ก็มาถึงขั้นตอนการส่งคำตอบหรือ Submit นั่นเอง โดยทำการเลือกภาษาที่เราเขียนได้เลยครับ ซึ่งในตอนนี้มีรองรับทั้งหมด 5 ภาษา คือ

  1. C++
  2. C
  3. Python (Version 3)
  4. Java
  5. Rust

ซึ่งแน่นอนครับว่า เราใช้ไพธอนในการเขียน ก็ต้องเลือกไพธอน (Python 3)


อัพโหลดไฟล์คำตอบและเลือกภาษาให้ตรงกัน


จากนั้นทำการเลือก "Upload" และระบบก็ลิ้งค์ไปที่ Drive ของเครื่องคอมพิวเตอร์ของเรา จากนั้นก็ทำการเลือกไฟล์ที่เราได้เขียนก่อนหน้า ซึ่งไฟล์นี้มีชื่อว่า grade (grade.py) นั่นเอง ซึ่งถ้าใครที่ใช้ PyCharm ตัวที่อยู่ของไฟล์จะเก็บที่ Main Folder คือ PycharmProjects  ซึ่งในโฟลเดอร์นี้ก็จะเก็บโปรเจคท์ต่าง ๆ ของเราที่ได้สร้างขึ้นมาครับ ตัวอย่างเช่น

C:\Users\Stackpython\PycharmProjects\programming-test\grade.py


เลือกชื่อไฟล์ที่ได้เขียนไว้ก่อนหน้า


8. ลุ้นคำตอบ

และแล้วก็มาถึงขั้นตอนที่ต้องลุ้นระทึกและเต้นเต้นที่สุดกันแล้วครับ นั่นก็คือการลุ้นคำตอบว่า โค้ดที่เรา Submit ขึ้นไปนั้นจะได้คะแนนเท่าไหร่ ซึ่งถ้าได้ 100 (คะแนนเต็ม) ก็ถือว่าทำได้ถูกต้องตามโจทย์ที่ให้มาครับ โดยความหมายของแต่ละส่วนจะเป็นดังนี้

  • Status : สถานะของคำตอบ (Complete คือส่งสำเร็จ)
  • Score : คะแนนที่ได้ (สูงสุด 100) 
  • Time : เวลาในการประมวลผล
  • Memory : หน่วยความจำที่ใช้ไปในการเขียนโค้ด
  • Submitted : วันที่และเวลาที่ส่งคำตอบ
  • User : ชื่อผู้ใช้งาน


ระบบจะแสดงผลลัพธ์ออกมา


9. สามารถดู Solution ในการแก้ปัญหา (เฉลย) ได้ด้วย

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



สามารถเข้าดู solution หรือวิธีการแก้ปัญหาของโจทย์ข้อนั้น ๆ ได้


ก่อนที่จะดูเฉลยหรือ Solution ในการแก้ปัญหาโจทย์ข้อนั้น ๆ ให้ทำด้วยตัวเองจนสุดความสามารถก่อน

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


สรุป

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


Reference

programming.in.th


เปิดโลกการเขียนโปรแกรมและ Software Development ด้วย online courses ที่จะพาคุณอัพสกิลและพัฒนาสู่การเป็นมืออาชีพ เรียนออนไลน์ เรียนจากที่ไหนก็ได้ พร้อมซัพพอร์ตหลังเรียน

เรียนเขียนโปรแกรม