โปรแกรมเมอร์รายงานความรู้สึกทางกายภาพและประสบการณ์ทางสายตาเมื่อเขียนโค้ดในภาษาต่างๆ

ทีมชุมชน BigGo
โปรแกรมเมอร์รายงานความรู้สึกทางกายภาพและประสบการณ์ทางสายตาเมื่อเขียนโค้ดในภาษาต่างๆ

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

ความรู้สึกทางกายภาพแตกต่างกันตามภาษาโปรแกรมมิ่ง

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

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

ความรู้สึกที่นักพัฒนาโปรแกรมรายงานเกี่ยวกับภาษาโปรแกรมมิ่งต่างๆ:

ภาษา/เทคโนโลยี ความรู้สึกที่รายงาน
ภาษาตระกูล C รู้สึกไม่มั่นคง เหมือนเดินบนเส้นลวดสูง โล่งใจเมื่อปิดวงเล็บปีกกา
Haskell รู้สึกเหมือนคลานผ่านถ้ำและอุโมงค์ใต้ดิน
Firmware/Embedded ทำงานที่ต้องการความแม่นยำในขณะที่ถูกบีบอัด
TypeScript + Copilot รู้สึกเหมือนบิน กระโดดไกลเหมือนอยู่บนดวงจันทร์
Python (หลังจาก TypeScript ) เดินโซเซเหมือนคนเมา ไม่น่าเชื่อถือแต่รู้สึกมึนเมา
Clojure รู้สึกอิสระและชอบทดลอง
Java รู้สึกไม่สบายตัว แข็งกระด้าง
C นุ่มนวล ยืดหยุ่น สบาย
Objective-C ปวดนิ้วและเกร็งตัว

แบบจำลองทางจิตที่เป็นภาพและเรขาคณิต

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

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

ประสบการณ์ทางสายตาแตกต่างกันอย่างมากระหว่างกระบวนทัศน์การเขียนโปรแกรม การเขียนสคริปต์ Bash เกี่ยวข้องกับการจินตนาการถึงการจัดการข้อความ ในขณะที่ภาษาอย่าง Lisp สร้างภาพในใจของรายการและนิพจน์ การพัฒนา React นำภาพของการแสดงสถานะแบบต้นไม้มาสู่ใจ

ประสบการณ์การเขียนโปรแกรมแบบภาพ:

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

การตอบสนองทางอารมณ์ที่เฉพาะเจาะจงตามภาษา

ภาษาโปรแกรมมิ่งต่างๆ กระตุ้นการตอบสนองทางอารมณ์ที่แตกต่างกันจากนักพัฒนา ผู้ใช้ Clojure มักอธิบายถึงความรู้สึกอิสระและชอบทดลอง ในขณะที่ TypeScript อาจรู้สึกจำกัดแม้จะมีประโยชน์ด้านความปลอดภัย โปรแกรมเมอร์บางคนรายงานว่า Java ทำให้พวกเขารู้สึกป่วยทางร่างกาย ในขณะที่ C# รู้สึกสะดวกสบายและยืดหยุ่นกว่า

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

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

อ้างอิง: Interconnected The subjective experience of coding in different programming languages