ฉันกำลังคุยกับเพื่อนเมื่อฤดูร้อนที่แล้วเกี่ยวกับแหล่งข้อมูลที่อาจเป็นประโยชน์สำหรับคนที่กำลังเรียนรู้การเขียนโปรแกรม เพื่อนของฉันบอกว่าพวกเขาคิดว่าบางคนอาจได้ประโยชน์จากรายการโครงการเล็กๆ น้อยๆ ที่สนุกสนาน ซึ่งเป็นสิ่งที่คุณสามารถทำได้ในตอนเย็นหรือวันหยุดสุดสัปดาห์
เลยมาว่ากัน! ฉันชอบเขียนโปรแกรมขนาดเล็กที่มีประโยชน์ในชีวิตของฉัน แบบนี้:
- อา! ปัญหาเล็กๆ น้อยๆ ในชีวิต!
- ฉันรู้ ฉันพนันได้เลยว่าฉันสามารถแก้ปัญหานี้ด้วย CODE เย้.
- การเขียนโปรแกรมแห่งความสุข 4 ชั่วโมงจึงบังเกิด
นี่ไม่ใช่วิธี ปฏิบัติ ที่ได้ผลที่สุดเสมอไป (ปัญหามากมายที่ฉันแก้ไขด้วยการเขียนโปรแกรมสามารถแก้ไขได้โดยใช้เวลาน้อยลงในรูปแบบอื่น) แต่ตราบใดที่เป้าหมายของคุณคือการเขียนโปรแกรมให้สนุกและโปรแกรมของคุณก็ไม่เสียหาย ฉันคิดว่านี่เป็นแนวทางที่ดี 🙂
ต่อไปนี้คือตัวอย่างเล็กๆ น้อยๆ ของโครงการเขียนโปรแกรมส่วนตัวเล็กๆ ที่ฉันทำ ฉันจะไม่พูดถึง “โครงการเรียนรู้” ที่เป้าหมายของฉันคือการเรียนรู้บางอย่างที่เฉพาะเจาะจงเพราะฉันได้เขียนบล็อกโพสต์เกี่ยวกับเรื่องนั้นไปแล้วนับพันล้านโพสต์
สิ่งเหล่านี้เป็นมากกว่าแค่การทำสิ่งที่สนุกโดยไม่มีเป้าหมายการเรียนรู้ที่เฉพาะเจาะจง
เทศกาลละครไม่มีปฏิทิน
Fringe Festival ในท้องถิ่นมีการแสดงมากมาย แต่ไม่มีที่ใดที่ฉันจะดูปฏิทินได้ในหน้าเดียว ดังนั้นฉันจึงเขียนสคริปต์ Python เพื่อขูดเว็บไซต์และสร้างปฏิทิน นี่คือ รหัส และ ผลลัพธ์
การพิมพ์ปกหนังสือขนาดเล็ก
เมื่อเร็ว ๆ นี้ฉันเห็น วิดีโอ TikTok ที่มีคนสร้าง ebook เวอร์ชันจริงขนาดเล็กที่พวกเขาอ่าน ฉันตัดสินใจลองใช้มัน ดังนั้นฉันจึงต้องพิมพ์ปกหนังสือรุ่นเล็กๆ ฉันสามารถปรับขนาดทั้งหมดได้ด้วยตนเอง แต่ฉันตัดสินใจที่จะทำด้วยการเขียนโปรแกรมแทน
ดังนั้นฉันจึงเขียน HTML และ CSS เล็กน้อย ( tinybooks.html ) แปลงเป็น PDF แล้วพิมพ์ออกมา
ทำให้เครื่องสแกนของฉันทำงานได้ดีขึ้น
นี่เป็นเพียง “การเขียนโปรแกรม” แต่ฉันต้องสแกนเอกสารจำนวนมากสำหรับสมาชิกในครอบครัว และฉันไม่ชอบซอฟต์แวร์ที่มีอยู่ ดังนั้นฉันจึงเขียน เชลล์สคริปต์แรปเปอร์ขนาดเล็กสำหรับ scanimage
เพื่อให้กระบวนการง่ายขึ้น สิ่งนี้ช่วยฉันได้มากจริง ๆ และฉันยังคงใช้มันเมื่อสแกน
นัดรับวัคซีน
เมื่อเปิดโดสวัคซีนโควิดครั้งที่สอง ทุกช่องก็เต็ม ปรากฎว่าแบ็กเอนด์ของเว็บไซต์มี API ดังนั้นฉันจึงเขียนสคริปต์เพื่อสำรวจ API ทุกๆ 60 วินาทีและดูการยกเลิกและแจ้งให้ฉันทราบเพื่อที่ฉันจะได้นัดหมายก่อนหน้านี้
สิ่งนี้ไม่จำเป็น (มีการนัดหมายมากขึ้นในไม่ช้าอย่างไรก็ตาม) แต่ก็สนุก
กำลังดูข้อมูลตลาดที่อยู่อาศัย
เรากำลังคิดจะซื้อคอนโดเมื่อสองสามปีที่แล้ว และฉันก็โกรธที่หาข้อมูลราคาในอดีตไม่ได้เลย ดังนั้นฉันจึงเขียนโน้ตบุ๊ก iPython ที่สอบถาม API ของเว็บไซต์อสังหาริมทรัพย์ในท้องถิ่นเพื่อขูดข้อมูลและคำนวณบางส่วน สถิติเช่นราคาต่อตารางฟุตเมื่อเวลาผ่านไป
ฉันไม่คิดว่าสิ่งนี้ช่วยเราได้จริงๆ ในการซื้อคอนโด แต่มันสนุก
(“การใช้ API ของบริการในพื้นที่” ดูเหมือนจะเป็นธีมต่อเนื่อง สิ่งหนึ่งที่ฉันชอบคือการใช้ API ที่ไม่มีเอกสารที่เป็นความลับ ซึ่งคุณต้องคัดลอกคุกกี้ของคุณออกจากเบราว์เซอร์เพื่อเข้าถึง)
นามบัตรอักษรไขว้
ในปี 2013 ฉันคิดว่าการมีนามบัตรที่เป็นปริศนาอักษรไขว้ที่ฉันสนใจอาจเป็นเรื่องที่สนุก ดังนั้นฉันจึงเขียนซอฟต์แวร์ทั่วไปเพื่อ สร้างปริศนาอักษรไขว้จากไฟล์ข้อความ ฉันค่อนข้างแน่ใจว่าไม่เคยพิมพ์นามบัตรแต่เขียนได้สนุก
การทำซองจดหมาย
ก่อนหน้านี้ฉันกำลังส่งนิตยสารบางฉบับ และตัดสินใจว่าฉันต้องการพิมพ์ป้ายชื่อแบบกำหนดเองบนซองจดหมายทุกฉบับ ซึ่งเป็นสถานการณ์แบบ “จดหมายเวียน” ดังนั้นฉันจึงเขียนโปรแกรม Python เพื่ออ่านที่อยู่ทางไปรษณีย์ทั้งหมด และสร้าง HTML และ CSS จากนั้นฉันก็เปลี่ยน HTML/CSS เป็น PDF และพิมพ์ซองจดหมาย สิ่งนี้ใช้ได้ผลดี
สำรวจรูปแบบการทอยลูกเต๋า
เพื่อนแสดงให้ฉันเห็นเกมทอยลูกเต๋าที่คุณทอยลูกเต๋าและเพิ่มค่า ฉันกล่าวว่าถ้าคุณทอยลูกเต๋ามากพอและเพิ่มค่าทั้งหมด ในบางจุด มันก็จะ “สุ่ม” น้อยลงมาก
แต่แล้วฉันต้องการดูว่าสุ่มได้มากน้อยเพียงใด ดังนั้นฉันจึงเขียนโปรแกรมเล็กๆ เพื่อทอยลูกเต๋า 2,500 ลูก และบวกผลรวมหลายๆ ครั้งเพื่อดูว่ามันทำงานอย่างไร (สมมุติว่าคุณสามารถคำนวณสิ่งเดียวกันกับคณิตศาสตร์ได้ แต่โค้ดจะง่ายกว่า)
นี่เป็นโค้ดเล็กๆ น้อยๆ ฉันจะใส่ไว้ในบรรทัดนี้ (มันคือไพธอน). นี่คือ [ผลลัพธ์] ( https://gist.github.com/jvns/e4a35ca2bad90c1a0fcaf578a803b456
import random def roll(): return sum(random.randint(1, 6) for i in range(2500)) while True: print(roll())
รับภาพวาดในแอพ Notability
ฉันใช้แอพที่ชื่อว่า Squid เพื่อวาดรูป และฉันกำลังเปลี่ยนไปใช้ Notability และต้องการนำภาพวาดเก่าของฉันมาสู่ Notability ดังนั้นฉันจึง ออกแบบรูปแบบไฟล์ Notability แบบย้อนกลับ
ฉันไม่คิดว่าในที่สุดสิ่งนี้จะมีประโยชน์ (ในที่สุดฉันก็เปลี่ยนไปใช้แอพวาดรูปอื่นซึ่งมีการนำเข้า SVG จริง) แต่ฉันก็สนุก
ปิดรีทวิต
นี่เป็นโครงการเล็ก ๆ น้อย ๆ เล็กน้อย (ใช้เวลามากกว่าหนึ่งวัน) แต่ฉันตัดสินใจว่าไม่ต้องการเห็นรีทวีตบน Twitter อีกต่อไป ดังนั้นฉันจึงเขียน เว็บไซต์ขนาดเล็ก เพื่อที่ฉันจะได้ปิดการรีทวีต
ฉันรักโครงการเล็ก ๆ จริงๆ
ตัวอย่างทั้งหมดเหล่านี้เป็นข้อมูลที่ใหม่กว่า แต่ฉันคิดว่าเมื่อฉันเริ่มเรียนรู้การเขียนโปรแกรมโครงการเล็กๆ น้อยๆ ที่มีเดิมพันน้อยๆ แบบนี้ช่วยฉันได้จริงๆ ฉันชอบแบบนั้น
- พวกเขาเป็นเพียงสำหรับฉัน (ถ้ามันผิดพลาดก็ไม่เป็นไร!)
- ฉันสามารถทำมันให้เสร็จในตอนเย็นหรือวันหยุดสุดสัปดาห์ (ไม่ใช่สิ่งยักษ์ที่ห้อยอยู่บนหัวของฉัน)
- ถ้ามันได้ผล ก็มีผลงานที่จับต้องได้ในชีวิตฉัน (เช่น ซองจดหมายหรือหนังสือย่อส่วน หรือกำหนดการนามบัตรหรือประสบการณ์ Twitter ที่ดีขึ้น)