เริ่มต้นการใช้งาน
ใครๆ ก็โค้ดได้ใน 7 วัน
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 เดินไปข้างหน้า ยินดีด้วย! คุณเขียนโปรแกรมแรกของคุณได้แล้ว!
วันที่ 2: ฟังก์ชัน
บทนี้จะสอนให้คุณโค้ดอย่างกระชับมากขึ้นและประหยัดเวลาด้วยการจัดกลุ่มคำสั่งเพื่อสร้างฟังก์ชัน แทนที่จะต้องใส่ turnLeft() 3 ครั้งเพื่อให้ Byte เลี้ยวขวา คุณก็สามารถสร้างฟังก์ชันชื่อ turnRight() ที่ทำการหมุนซ้าย 3 ครั้งจากเพียงคำสั่งเดียวได้
คุณยังจะได้เรียนรู้เกี่ยวกับการแตกปัญหาใหญ่ๆ ให้กลายเป็นข้อย่อยๆ ซึ่งเป็นกระบวนการที่เรียกว่า Decomposition ซึ่งคุณสามารถแก้ไขได้อย่างรวดเร็วด้วยการใช้ฟังก์ชันนั่นเอง
วันที่ 3: คำสั่ง for loop
ได้เวลาสำหรับเครื่องมือใหม่แล้ว “loop” จะแสดงถึงจำนวนครั้งที่ Byte ทำตามคำสั่ง ซึ่งจะเป็นประโยชน์เมื่อภูมิทัศน์นั้นเริ่มซับซ้อนมากขึ้นเรื่อยๆ
ถึงหลายๆ พัซเซิลจะดูง่าย แต่ก็มีอีกหลายอันที่คุณต้องทดลอง พลาดพลั้ง และกลับไปแก้ไขข้อผิดพลาดที่ทำลงไป ยกตัวอย่างเช่น ถ้า Byte เดินเข้าไปชนกำแพงหรือตกขอบไป ก็อาจจะสันนิษฐานได้ว่าคุณใส่คำสั่ง moveForward() เยอะเกิน หรือใส่จำนวน loop บ่อยไป เป็นต้น
ทิปส์: Swift Playgrounds จะช่วยให้คุณเห็นข้อผิดพลาดด้วยการให้คุณรันโปรแกรมในความเร็วหลายระดับ เพียงแตะที่สัญลักษณ์เวลา โหมดที่ช้าที่สุดจะไฮไลต์แต่ละโค้ดที่ Byte กำลังทำตาม ส่วนโหมดเร็วจะเหมาะสำหรับการดูเร็วๆ ว่าโค้ดของเรานั้นเวิร์คหรือเปล่า
วันที่ 4: โค้ดที่ทำงานผ่านเงื่อนไข
ได้เวลาสำหรับโค้ดที่ทำงานผ่านเงื่อนไขกันล่ะ นี่จะทำให้ Byte มีปฏิสัมพันธ์กับข้อมูลที่อยู่ตรงหน้า เช่น ให้ Byte เก็บเพชรเมื่อมันยืนอยู่ใต้เพชรเท่านั้น
บางทีคุณอาจจะเขียนโค้ดที่ทำงานผ่านเงื่อนไขที่ไม่เกิดผลตามที่คุณต้องการ เพราะฉะนั้นถ้า Byte ไม่ทำตามคำสั่งที่อยากได้ ก็อย่าไปโกรธมันเลยนะ (มันจะตีหน้าเศร้าเคล้าน้ำตาทันที) แต่ก็ตลกดีที่ได้เห็นมันเดินชนกำแพงครั้งแล้วครั้งเล่าเหมือนกัน
วันที่ 5: ตัวดำเนินการเชิงตรรกะ
ขั้นต่อไปจะเป็นบทเรียนเรื่องตัวดำเนินการเชิงตรรกะ ซึ่งจะให้ Byte มีปฏิกิริยากับสถานการณ์ต่างๆ ตามเงื่อนไข เช่น isOnGem ผลก็จะขึ้นอยู่กับคำตอบว่าจริงหรือเท็จ (เรียกว่าบูลีน) และทำให้เราควบคุมว่า Byte จะทำอะไรหากเงื่อนไขที่ว่านั้นเป็นจริงหรือเท็จ เป็นต้น
นี่จะเป็นบทเรียนสำคัญในเรื่องการโค้ดของคุณ เพราะก่อนหน้าเราสั่งได้แค่ให้ Byte ทำตามคำสั่ง แต่ตอนนี้มันกำลังตัดสินใจด้วยตัวเอง ถึงแม้ว่าเราจะโปรแกรมให้มันตัดสินใจตามนั้นก็ตาม แต่มันก็กำลังฉลาดขึ้นเรื่อยๆ นะ (รวมถึงเราด้วย)
วันที่ 6: คำสั่ง while loop
มาถึงจุดนี้ คุณก็จะเริ่มเห็นภาพแล้วว่าแอปที่ใช้กันอยู่ทุกวันนี้นั้นใช้คำสั่งประเภทไหนที่เราเรียนกันมาบ้าง จากนี้ไปคุณอาจจะเริ่มคิดแบบโค้ดก็เป็นได้ เช่น ลองจินตนาการว่าเราเขียนโค้ดให้ displayTutorial() เฉพาะเมื่อมีผู้ใช้เปิดแอปขึ้นมาครั้งแรกเท่านั้น
คำสั่ง “while loop” จะแก้ปัญหาตรงกันข้าม มันจะบอกให้คำสั่งนั้นทำซ้ำไปเรื่อยๆ ตราบใดที่เงื่อนไขนั้นเป็นจริง ยกตัวอย่างเช่น คุณสามารถบอก Byte ให้เดินตรงไปข้างหน้าเรื่อยๆ ตราบใดที่ไม่มีทางซ้ายหรือขวา (ในบางกรณี การเขียนโปรแกรมก็เหมือนการคุยกับเด็กที่เชื่อฟังทุกอย่างที่เราพูดทุกคำ ถ้าคุณไม่บอกให้ Byte ดูว่ามีกำแพงหรือเปล่า เขาก็จะวิ่งตรงเข้าหามันทันทีเลย)
วันที่ 7: อัลกอริทึม
ยินดีด้วย! คุณมาถึงบทสุดท้ายของสัปดาห์นี้แล้ว บทเรียนวันนี้จะเป็นการทบทวนทุกสิ่งที่เราเรียนมาตลอด 7 วัน นั่นก็คือการจัดกลุ่มคำสั่งเข้าด้วยกันเพื่อสร้างคำสั่งตามเงื่อนไขที่ชัดเจน เพื่อให้คอมพิวเตอร์ปฏิบัติตาม (ซึ่งจริงๆ คุณก็ได้เรียนเขียนอัลกอริทึมมาหลายวันแล้ว เพียงแต่ไม่รู้ตัวเท่านั้นเอง)
นอกจากนี้คุณยังจะได้เรียนรู้ที่จะปรับแต่งคำสั่งของคุณเพื่อให้ตอบสนองต่อสถานการณ์ที่ซับซ้อนมากยิ่งขึ้นด้วย เช่น ถ้า Byte มีหลายวิธีในการทำภารกิจให้สำเร็จ แล้วจะรู้ได้อย่างไรว่าวิธีไหนคือวิธีที่เห็นผลเร็วที่สุดนะ?
ถึงโลกนี้ยังมีอะไรอีกมากมายให้เรียนรู้ แต่การได้มาถึงจุดนี้และสนุกไปกับมัน ก็น่าจะเพียงพอที่จะทำให้คุณมุ่งมั่นที่จะไปต่อได้แล้วล่ะ