How to programming..? Part 2 : Learning by doing!

หลังจากห่างหายไปนาน วันนี้จะมาแนะนำเว็บไซต์สำหรับการฝึกเขียนโปรแกรม (เว็บเรียนรู้และฝึกทำโจทย์) ช่วยท้าย ๆ จะแถมเว็บที่ใช้ฝึกเขียนเว็บดี ๆ ให้ด้วยนะ มาเริ่มกันเลยดีกว่า ^0^!!

1. https://programming.in.th/

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

ปล.สำหรับใครที่รู้จักค่ายสอวน. เด็กในค่ายเริ่มแรกมักจะใช้โจทย์จากเว็บนี้ฝึกกันด้วยนะเออ

2. https://www.codecube.in.th/

อันนี้เป็นเว็บที่โจทย์เป็นภาษาไทยอีกเว็บนึง ใครที่คิดว่าโจทย์ในเว็บข้างบนไม่พอ มาลองทำในเว็บนี้เพิ่มต่อเลย แต่ขอบอกว่า เว็บนี้ยากระดับนึงจากข้างบนเลยแหละ ถ้าชอบความท้าทายโจทย์ อยากลองดูก็ได้!!!! ‘w’

3. https://www.codecademy.com/

เว็บนี้ผู้เขียนแนะนำเป็นอย่างยิ่งมาก ๆ เพราะเป็นการ Learning by doing!!!! อย่างแท้จริง เว็บจะเป็นแนวลักษณะสอนแต่ละภาษาอย่างเป็นขั้นตอนและมีให้ลองทำขณะที่เรียนเลยด้วย *0*!!! มีหลายภาษาให้เรียน ทั้ง Java, Python รวมถึงมีคอร์สเรียนด้านเว็บเยอะมาก ๆ เช่น JavaScript, Ruby, SQL, HTML, CSS การออกแบบเว็บไซต์ การใช้ Git ซึ่งมีการแบ่งส่วน ๆ อยู่ใน Catalog อย่างชัดเจน

4. https://codecombat.com

เว็บนี้มาในลักษณะเกม โดยแต่ละด่านจะสอนเป็นเรื่อง ๆ ทีละขั้นตอน ทำให้แม้ไม่เคยเขียนโค้ดก็ไม่รู้สึกยากมากเกินไป เมื่อผสมกับเกมทำให้เวลาเล่นรู้สึกเพลิดเพลิน โดยในเว็บมีให้เลือกทั้งหมด 4 ภาษา ได้แก่ Python, JavaScript, CoffeeScript, Lua โดยสองภาษาสุดท้ายยังอยู่ในช่วงทดลอง

5. https://www.codingame.com

เว็บนี้จะมาในแนวเกมแบบเดียวกับ codecombat เลย แต่จะมีความยากและท้าทายขึ้น เพราะ codecombat จะเริ่มทีละขั้นตั้งแต่พื้นฐานแบบง่าย ๆ ขณะที่เว็บนี้จะเน้นการคิดมากขึ้น โดยสามารถเลือกภาษาที่จะใช้เขียนได้ เช่น C, C++, C#, Java, JavaScript, Python 3, Bash, Kotlin, Objective-C, PHP อื่น ๆ อีกมากมาย (เยอะมากจริง ๆ)

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

6. https://www.codewars.com

เว็บนี้มีโจทย์ท้าทายและสนุก ๆ ให้ทำได้เรื่อย ๆ ซึ่งเหมาะกับผู้ที่อยากจะฝึกฝนสกิลการแก้ปัญหาและเพิ่มความคล่องแคล่วในการใช้แต่ละภาษา ภาษาที่เว็บนี้รองรับจะได้แก่ C++, JavaScript, Java, PHP, Kotlin, Python และอื่น ๆ ซึ่งมีเยอะพอสมควร ถ้าเปิดในหน้าแรก จะมีโจทย์แนะนำให้ลองแก้ แต่ถ้ารู้สึกยากไป ก็สามารถเข้าไปดูโจทย์อื่น ๆ ทำได้ ซึ่งแบบเป็นหมวดให้เลือกชัดเจน โดยเว็บนี้แบ่งความยากง่ายด้วย kyu โดยไล่จาก 8kyu, 7kyu, …, 1kyu มีโจทย์อยู่ฝั่งซ้ายและให้เขียนโค้ดแก้ปัญหาทางด้านขวา

ปล. เว็บนี้เหมาะกับคนที่มีพื้นฐานการเขียนโปรแกรมและต้องการหาโจทย์ฝึกเขียน

7. https://checkio.org/

เว็บนี้จะคล้าย ๆ กับเว็บก่อนหน้า (อีกแล้ว!! 5555 ก็การเขียนโค้ดคือการฝึกหนิเนอะ) เว็บนี้จะมีให้เลือก 2 ภาษา คือ Python และ JavaScript เน้นโจทย์ ยิ่งเคลียร์โจทย์ในแต่ละด่านเยอะจนถึงที่กำหนด ก็จะมีด่านใหม่พร้อมโจทย์ใหม่ ๆ ในด่านนั้น ๆ เปิดเพิ่มขึ้นให้ฝึก ยากขึ้นไปเรื่อย ๆ

อันนี้จะเป็นรายชื่อโจทย์ในด่าน Electronic Station

อันนี้จะเป็นรายละเอียดของโจทย์ เมื่อเราจะเขียนโปรแกรมเพื่อแก้โจทย์ข้อนี้ก็ให้เลือก Solve It เพื่อเขียนโปรแกรมแก้

8. https://www.hackerrank.com/

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

อันนี้เป็นตัวอย่างคอร์ส Data Structure ซึ่งแบ่งเนื้อหาให้เลือกทำชัดเจน

9. https://dash.generalassemb.ly เข้าสู่ช่วงแถม

เว็บนี้สอนเขียนเว็บทีละขั้นตอนแบบ Learning by doing project!!! เป็นเว็บที่สอนให้เราลงมือทำไปด้วยเลย จะมีสไลด์สอนอยู่มุมซ้ายบน และมีที่ให้เราเขียนโค้ดอยู่ซ้ายล่าง และเห็นผลลัพธ์จากการเขียนทันทีทางด้านขวา ทำให้เราเห็นการเปลี่ยนแปลงชัดเจน นอกจากนั้นแล้วเว็บนี้มี community บน facebook เวลาที่เราติดปัญหา เราก็สามารถเข้าไปดูในกลุ่มว่าเราทำผิดอะไร ข้อดีคือ ขณะที่เราเรียนจะมี checkpoint ให้เราคอยดูว่าเราเรียนอะไรไปบ้าง ข้อเสียของเว็บนี้อย่างนึงคือ ตรง checkpoint สเปซบาร์ต้องเป๊ะ (อันนี้น่ารำคาญไปนิด 55555) แต่ก็ถือว่าโอเคมาก ๆ

10. https://www.freecodecamp.org ช่วงแถม 2

อันนี้ก็เป็นเว็บสำหรับฝึกเขียนอีกเว็บนึงคล้าย ๆ กับเว็บด้านบน แต่ไม่ได้ based on project แต่จะแบ่งเป็นเรื่อง ๆ ค่อนข้างชัดเจนอยู่ มีสอน jquery รวมถึงการใช้งาน bootstrap ด้วย เหมาะสำหรับผู้เริ่มต้นมาก ๆ และ community ใน facebook ถือว่าดีมาก ๆ มีการให้คำแนะนำและแบ่งปันดี

11. https://www.datacamp.com/ ช่วงแถมพิเศษใส่ไข่ 55555

เนื่องจากเรื่องของข้อมูลในช่วงนี้มาแรงมาก ๆ เรามักจะได้ยินพวก data science, big data, data analysis เราเลยจะมาแนะนำเว็บดี ๆ ที่ช่วยในการเรียนรู้ด้านนี้ได้เป็นอย่างดี อย่างเว็บนี้ โดยด้าน data ภาษาส่วนใหญ่ที่ใช้กันคือ Python และ R ซึ่งในเว็บนี้ก็มีสอนเบื้องต้นของภาษาให้ด้วย เรียกว่าสมบูรณ์แบบเลย เราไม่ต้องไปหาเรียนพื้นฐานจากที่อื่นมาก่อน *0* หรือถ้าอยากเรียนเป็นภาษาไทยก่อนขอแนะนำลิ้งก์นี้เลย 2110101 Computer Programming (Python) ของอ.สมชาย วิดิโอสอนละเอียดมาก ๆ แต่แน่นอนว่าจะให้เกิดประสิทธิผล เวลาเรียนจบแต่ละบทก็ควรหาที่ฝึกฝนเขียนโปรแกรมด้วย เพื่อให้เกิดการใช้งาน ซึ่งจะทำให้เราเข้าใจอย่างลึกซึ้งมากยิ่งขึ้น

ด้านซ้ายจะเป็นเนื้อหา ข้างล่างจะมี intructions เพื่อบอกเราว่าต้องทำอะไร ด้านขวาบนจะเป็นที่เขียนโค้ดเพื่อทำตามคำสั่ง มีปุ่ม Run Code เพื่อดูผลการทำงาน (ดูที่ด้านล่างขวา)

12. https://www.dataquest.io/ ช่วงแถมพิเศษใส่ไข่ 2

อันนี้ทำออกมาในลักษณะเดียวกับเว็บก่อนหน้าเลย ผู้เขียนพึ่งเจอเว็บนี้ไม่นาน แต่ถือว่าน่าสนใจมาก มีให้เลือกคอร์สเลยว่าเราอยากจะศึกษาในด้านไหน ซึ่งจะแบ่งออกเป็น 3 Path ด้วยกัน ได้แก่ Data Analyst, Data Scientist และ Data Engineer แต่ละ Path จะมีการแนะนำ Step การเรียนที่แตกต่างกัน แต่ Step แรกแน่นอน ต้องเริ่มด้วย Python (แน่นอนอยู่แล้ว 55555 ภาษามาแรงทางด้านนี้)  หน้าเว็บในการเรียนรู้จะคล้าย ๆ กับด้านบนเลย ด้านซ้ายมีเนื้อหาให้เรียน ด้านขวาจะมีที่ว่างสำหรับเขียนโค้ด

13. https://www.tinkercad.com/circuits

สำหรับคนที่อยากจะฝึกด้าน IoT เว็บนี้ถือเป็นเว็บที่เห็นภาพมาก สามารถทดลองต่อวงจรและเขียนโปรแกรมทดลองได้ด้วย โดย simulator นี้ใช้บอร์ด Arduino UNO อย่างไรก็ตาม คอนเซปท์ในการเขียนของแต่ละบอร์ดก็คล้าย ๆ กัน ในส่วนของการเขียนโปรแกรมมีทั้งแบบเขียนโค้ดและแบบแปะ block อีกทั้งยังสามารถดาวน์โหลดโค้ดออกมาเป็นไฟล์ .ino เพื่อเปิดบนโปรแกรม Arduino ได้อีกด้วย

 


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

จอมมารน้อย

ก็แค่จอมมารตัวน้อยที่น่ารักที่สุดที่อยากพัฒนาการเขียนโปรแกรมเพื่อสันติสุขของชาวโลก..เท่านั้นเอง >w<

ใส่ความเห็น