เริ่มต้นการใช้งาน

ใครๆ ก็โค้ดได้ใน 7 วัน

เมื่อเรียนพื้นฐานกับ Swift Playgrounds

Swift Playgrounds

Learn real coding the fun way

ดู

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

เปิด "playground" แรกที่ชื่อ Learn to Code 1 ขึ้นมา และค่อยๆ ไปทีละบทจนครบเจ็ด เพียงวันละบท คุณก็จะเริ่มเห็นภาพแล้วว่าการคิดอย่างนักพัฒนานั้นเป็นอย่างไรภายใน 1 สัปดาห์

มาดูกันดีกว่าว่ามีอะไรบ้าง

วันที่ 1: คำสั่งอย่างง่าย

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

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

ใส่คำสั่ง Swift แรกของคุณด้วยการพิมพ์ moveForward() และคลิก รันโค้ดของฉัน และดู Byte เดินไปข้างหน้า ยินดีด้วย! คุณเขียนโปรแกรมแรกของคุณได้แล้ว!

เรียนรู้การโค้ดด้วยการช่วย Byte แก้พัซเซิลเพื่อเก็บเพชร

วันที่ 2: ฟังก์ชัน

บทนี้จะสอนให้คุณโค้ดอย่างกระชับมากขึ้นและประหยัดเวลาด้วยการจัดกลุ่มคำสั่งเพื่อสร้างฟังก์ชัน แทนที่จะต้องใส่ turnLeft() 3 ครั้งเพื่อให้ Byte เลี้ยวขวา คุณก็สามารถสร้างฟังก์ชันชื่อ turnRight() ที่ทำการหมุนซ้าย 3 ครั้งจากเพียงคำสั่งเดียวได้

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

วันที่ 3: คำสั่ง for loop

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

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

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

ฟังก์ชันและ loop จะทำให้การสั่งคำสั่งซ้ำๆ เป็นเรื่องง่าย อย่างในพัซเซิลนี้ที่มีแอ็กชันเหมือนกันซ้ำๆ กัน เป็นต้น

วันที่ 4: โค้ดที่ทำงานผ่านเงื่อนไข

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

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

วันที่ 5: ตัวดำเนินการเชิงตรรกะ

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

นี่จะเป็นบทเรียนสำคัญในเรื่องการโค้ดของคุณ เพราะก่อนหน้าเราสั่งได้แค่ให้ Byte ทำตามคำสั่ง แต่ตอนนี้มันกำลังตัดสินใจด้วยตัวเอง ถึงแม้ว่าเราจะโปรแกรมให้มันตัดสินใจตามนั้นก็ตาม แต่มันก็กำลังฉลาดขึ้นเรื่อยๆ นะ (รวมถึงเราด้วย)

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

วันที่ 6: คำสั่ง while loop

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

คำสั่ง “while loop” จะแก้ปัญหาตรงกันข้าม มันจะบอกให้คำสั่งนั้นทำซ้ำไปเรื่อยๆ ตราบใดที่เงื่อนไขนั้นเป็นจริง ยกตัวอย่างเช่น คุณสามารถบอก Byte ให้เดินตรงไปข้างหน้าเรื่อยๆ ตราบใดที่ไม่มีทางซ้ายหรือขวา (ในบางกรณี การเขียนโปรแกรมก็เหมือนการคุยกับเด็กที่เชื่อฟังทุกอย่างที่เราพูดทุกคำ ถ้าคุณไม่บอกให้ Byte ดูว่ามีกำแพงหรือเปล่า เขาก็จะวิ่งตรงเข้าหามันทันทีเลย)

วันที่ 7: อัลกอริทึม

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

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

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