53 คะแนน โดย GN⁺ 2024-09-11 | 5 ความคิดเห็น | แชร์ทาง WhatsApp
  • "พวกเราชอบพัฒนาซอฟต์แวร์" การเขียนโค้ดคือการเดินทางแก้ปัญหาแบบคดเคี้ยว และปลายทางสำคัญน้อยกว่าที่หลายคนคิด
  • เรามักถูกถามคำถามประมาณนี้อยู่บ่อย ๆ:
    • "ทำสิ่งนี้ไปทำไม?"
    • "จุดประสงค์ของโปรเจ็กต์นี้คืออะไร?"
    • "โปรเจ็กต์นี้ดีกว่า X ตรงไหน?"

ความเข้มข้นแบบซิลิคอนแวลลีย์

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

วัฒนธรรมผู้บริโภค

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

เราทำมันเพราะสนุกเท่านั้น จริง ๆ

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

โปรแกรมเมอร์ก็เหมือนกวี ตรงที่ทำงานอยู่ห่างจากวัตถุแห่งความคิดบริสุทธิ์เพียงเล็กน้อย เขาใช้จินตนาการสร้างปราสาทขึ้นกลางอากาศ มีสื่อสำหรับการสร้างสรรค์ไม่กี่อย่างที่ยืดหยุ่นได้ขนาดนี้ ปรับแต่งและทำใหม่ได้ง่ายขนาดนี้ และทำให้โครงสร้างเชิงแนวคิดอันยิ่งใหญ่เกิดขึ้นจริงได้ง่ายขนาดนี้ แต่ต่างจากถ้อยคำของกวี โครงสร้างของโปรแกรมนั้นมีอยู่จริง เพราะนอกจากตัวโครงสร้างเองแล้ว มันยังสร้างผลลัพธ์ที่มองเห็นได้ เคลื่อนไหวได้ และทำงานได้
— เฟร็ด บรูกส์, The Mythical Man-Month

ลองดูสิ!

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

คลับ

เรียงแบบไม่สนลำดับ นี่คือบางโปรเจ็กต์ที่ติดป้าย "ทำเพราะสนุกล้วน ๆ" อย่างภาคภูมิใจ

  • Natalie - คอมไพเลอร์ Ruby ที่ทำขึ้นมาเพราะสนุก
  • ZigSelf - งานอิมพลีเมนต์ Self ที่เขียนด้วย Zig เพราะสนุก
  • php-parser-rs - พาร์เซอร์ PHP ที่เขียนด้วย Rust เพราะสนุก
  • ex6502 - อีมูเลเตอร์โปรเซสเซอร์ 6502 ที่เขียนด้วย Elixir เพราะสนุก
  • Piko-piko OS - toy OS แบบ x86 16 บิตที่ทำขึ้นมาเพราะสนุก
  • Folders2kt - ภาษาโปรแกรมแปลก ๆ ที่ทำขึ้นมาเพราะสนุก
  • GCC Rust - คอมไพเลอร์ Rust ที่ทำขึ้นมาเพราะสนุก
  • Soul - เซิร์ฟเวอร์ SQLite REST และเรียลไทม์ที่ทำขึ้นมาเพราะสนุก
  • hssp - CLI สำหรับ HTTP status code ที่ทำขึ้นมาเพราะสนุก
  • PyCraft - ตัวเปิด Minecraft ที่เขียนด้วย Python เพราะสนุก
  • hashsearch - เอนจินค้นหารูปย้อนกลับที่ทำขึ้นมาเพราะสนุก
  • quackspeak - เอนจินแปลงข้อความเป็นเสียงโดยใช้เป็ด เพราะสนุก
  • Quark - ภาษา Lisp dialect ประสิทธิภาพสูงที่ทำขึ้นมาเพราะสนุก
  • Whitecat - CLI สำหรับการพัฒนา PHP ที่ทำขึ้นมาเพราะสนุก
  • eClient - ตัวเปิด Minecraft ที่เขียนด้วย Python เพราะสนุก
  • CascadeOS - OS อเนกประสงค์ที่ทำขึ้นมาเพราะสนุก
  • Kiesel - เอนจิน JavaScript ที่เขียนด้วย Zig เพราะสนุก
  • github-pewpew - เครื่องมือ CLI สำหรับลบรีโพสิทอรี เพราะสนุก
  • dt - ภาษาแบบ chained คล้าย AWK ที่ทำขึ้นมาเพราะสนุก
  • grab - โคลน grep แบบเบาที่ทำขึ้นมาเพราะสนุก
  • math-with-regexps - ทำคณิตศาสตร์ด้วย regex เพราะสนุก
  • noro - โปรแกรมแก้ไขข้อความพร้อมตัวจัดการหน้าต่างที่ทำขึ้นมาเพราะสนุก
  • Vox - ตัวสร้างเว็บไซต์แบบสแตติกที่เขียนด้วย Elixir เพราะสนุก
  • jimson - พาร์เซอร์ JSON ที่ทำขึ้นมาเพราะสนุก
  • txt2tufte - ตัวสร้างเว็บไซต์สไตล์ Tufte ที่ทำขึ้นมาเพราะสนุก
  • Azure Storage เว็บเอ็กซ์พลอเรอร์ - Azure Storage เว็บเอ็กซ์พลอเรอร์ที่ทำขึ้นมาเพราะสนุก
  • renam - ยูทิลิตีเปลี่ยนชื่อไฟล์ความเร็วสูงมากที่ทำขึ้นมาเพราะสนุก
  • Funciton - ภาษาโปรแกรมที่ประกอบด้วยกล่องซึ่งทำขึ้นมาเพราะสนุก

ความเห็นของ GN⁺

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

5 ความคิดเห็น

 
geekbini 2024-09-18

เท่าที่ผมทราบ ตัวภาษา Python เองก็เป็น language ที่ถูกสร้างขึ้นเพื่อความสนุกในช่วงวันหยุดประมาณหนึ่งสัปดาห์เหมือนกัน

 
joon14 2024-09-12

ฉันชอบพัฒนาอะไรเล่น ๆ เพื่อความสนุกนะ แต่ช่วงนี้พอเลิกงานก็หมดแรงจนแทบนึกภาพไม่ออกเลยว่าตัวเองจะทำแบบนั้นได้ ยังมีคนเก่ง ๆ เยอะจริง ๆ

 
savvykang 2024-09-12

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

 
halfenif 2024-09-11

จนถึงปี 94 ผมเป็นเพียงผู้ใช้คอมพิวเตอร์ธรรมดา ๆ แล้วก็เริ่มเรียนภาษา และในปี 95 ก็ได้ทำงานที่เกี่ยวกับ "คอมพิวเตอร์"

พอมาคิดดูตอนนี้ ผมนี่โชคดีมากจริง ๆ

บางทีก็คิดนะว่าหรือจริง ๆ แล้วผมควรเป็นฝ่ายจ่ายเงินให้บริษัทเพื่อได้ไปทำงาน

 
GN⁺ 2024-09-11
ความเห็นจาก Hacker News
  • สนุกกับการสร้างบางสิ่งผ่านโค้ด และบางครั้งก็คิดถึงผลตอบแทนทางการเงินด้วย แต่โดยหลักแล้วทำโปรเจ็กต์เพราะความสนุก

    • มีการจัดกลุ่มที่ทำโปรเจ็กต์ร่วมกันเป็นเวลา 6 สัปดาห์ และเพิ่งจบโคฮอร์ตที่สองไป
    • กระบวนการแก้โปรเจ็กต์และความท้าทายร่วมกันนั้นสนุกมาก
  • เคยอธิบายโปรเจ็กต์ส่วนตัวในการสัมภาษณ์งาน แต่รู้สึกอึดอัดเพราะผู้สัมภาษณ์ถามซ้ำ ๆ ว่าทำไมถึงทำโปรเจ็กต์นั้น

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

    • ต่อให้ไม่มีใครรับรู้ หรือสุดท้ายจะถูกคลื่นซัดหายไป ก็ยังได้ความพึงพอใจ
  • โมเดลภาษาขนาดใหญ่ (LLM) ทำให้เริ่มโปรเจ็กต์สนุก ๆ ได้ง่ายขึ้นมาก

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

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

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

    • ยกตัวอย่างของ John Carmack ที่พัฒนาทักษะจากการสร้างเกมจำนวนมาก
    • การพยายามเลือกภาษาและโปรเจ็กต์พอร์ตโฟลิโอที่ "ถูกต้อง" กลับกลายเป็นสาเหตุของความล่าช้า
  • ทั้งผลิตภัณฑ์ที่ทำเพราะความสนุกและผลิตภัณฑ์ที่ทำเพื่อผลกำไรต่างก็อาจมีคุณภาพต่ำได้

    • สิ่งสำคัญคือการก้าวข้ามการแบ่งขั้วระหว่างความสนุกกับผลกำไร แล้วสร้างผลิตภัณฑ์ระบบโปรแกรมมิ่งที่ดี
  • มันเป็นประสบการณ์ภายในคล้ายกับการทำอาหารชั้นเยี่ยมคนเดียว แต่ก็มีคุณค่าในตัวเอง

    • เป็นเรื่องยากที่จะอธิบายให้คนที่ไม่เข้าใจแนวคิดนี้ฟัง
  • บนเว็บไซต์อย่าง Hacker News หลายคนอาจคิดว่าผู้คนกำลังเตรียมตัวสร้างสตาร์ตอัปตัวใหญ่ตัวถัดไป

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