คุณสามารถพัฒนาทักษะการเขียนโปรแกรมโดยเรียนรู้กระบวนทัศน์ภาษาอื่น ๆ ได้หรือไม่?


9

ถ้าเป็นเช่นนั้นคุณช่วยบอกฉันได้หรือไม่ว่าการเรียนรู้กระบวนทัศน์ใหม่เปลี่ยนวิธีการของคุณในการแก้ปัญหาการเขียนโปรแกรมแม้ว่าปัญหาจะอยู่ในกระบวนทัศน์ / ภาษา / เทคโนโลยีอื่นหรือไม่?

ฉันจะซาบซึ้งจริง ๆ ถ้าคุณสามารถบอกฉันในลักษณะที่เฉพาะเจาะจงวิธี X (เช่น: JAVA / C # / C ++) ทักษะการเขียนโปรแกรมของคุณดีขึ้นโดยการเรียนรู้ Y (เช่น: Scheme / Prolog / Lisp)

นอกจากนี้กรอบความคิดใดที่คุณแนะนำช่วยให้มากที่สุดในการเป็นโปรแกรมเมอร์ที่ดี?

ประสบการณ์ของฉันมีโครงสร้างเท่านั้น - OOP, ความจำเป็น - ขั้นตอนและในขอบเขตของเทมเพลตการเขียนโปรแกรม แต่ฉันไม่ได้เรียนรู้ภาษาอื่น

ขอบคุณ!


1
ผมเชื่อว่าคำตอบนี้จะเป็นรูปแบบของการดังก้องบางใช่
R0MANARMY

คำตอบ:


7

ฉันพยายามเรียนรู้อย่างน้อย 1-2 ภาษาใหม่ทุกปี สิ่งที่ฉันได้รับมากที่สุดคือการเรียนรู้ภาษาที่ใช้งานได้ (F #) ซึ่งเปลี่ยนวิธีที่ฉันดูในการแก้ปัญหา - ฉัน = ตอนนี้ฉันพยายามบอกเครื่องว่าจะทำอย่างไรแทนที่จะทำอย่างไรโดยเฉพาะใน C # ที่ฉันใช้ Linq อย่างหนัก และวัตถุที่เปลี่ยนไม่ได้ตอนนี้ฉันรู้ถึงประโยชน์ของการใช้มันแล้ว ฉันยังใช้ฟังก์ชั่นการสั่งซื้อที่สูงขึ้นมาก (เมธอดเป็นพารามิเตอร์) สไตล์การเขียนโค้ดของฉันก็เปลี่ยนไป (ปรับปรุง) เป็นผล


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

ขอบคุณคุณยืนยันสิ่งที่ฉันสงสัย ... ขอบคุณอีกครั้ง!
อาร์มันโด

2

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

ไม่ต้องเสียเวลาในการเรียนรู้อย่างน้อยพื้นฐานของภาษาใหม่


1

ตกลงนี่เป็นตัวอย่างที่ฉันได้พบ

ฉันได้เรียนรู้ภาษาที่ค่อนข้างเก่า (VB6) สำหรับโครงการในรหัสเก่าที่เรามี
ภาษานั้นเน้นไปที่หน้าต่างมาก แต่ไม่มีคลาสทรงพลังระดับสูงเท่าที่เรามีในกรอบงาน. Net

ฉันต้องปรับแต่งรูปภาพบ้างและนั่นก็แนะนำให้ฉันรู้จักฟังก์ชั่น windows API สำหรับการปรับแต่งรูปภาพ

หลังจากฉันได้เรียนรู้ว่ามันทำให้ฉันมีความเข้าใจที่ดีขึ้นเกี่ยวกับคลาส GDI ของ. Net และความเข้าใจที่ว่าบางครั้งการใช้ windows API จะเร็วขึ้นมาก (การตัดฟังก์ชันน้อยลง)

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


1

คุณสามารถพัฒนาทักษะการเขียนโปรแกรมโดยเรียนรู้กระบวนทัศน์ภาษาอื่น ๆ ได้หรือไม่?

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

ภาษาทั่วไปไม่ได้โดดเดี่ยวพวกเขามาพร้อมกับสภาพแวดล้อม ฉันได้ใช้เวลาบิตของเวลาเรียนรู้ภาษาแปลก ๆ ที่รู้จักกันเป็น awk อาศัยการจับคู่รูปแบบโดยใช้ "นิพจน์ทั่วไป" จากการพยายามเรียนรู้C ++ STL (ไม่ประสบความสำเร็จมาก) ฉันเรียนรู้เกี่ยวกับแผนที่ เมื่อรวมสองสิ่งนี้เข้าด้วยกันฉันสามารถเขียนข้อความการแปลงค่าสาธารณูปโภคในPearlได้อย่างรวดเร็ว(ภาษาเดียวที่มีอยู่ใน plattform)

ส่วนใหญ่เพื่อความสนุกของมันฉันพยายามเรียนรู้Erlang (ไม่ประสบความสำเร็จมาก) มันมีไลบรารีของฟังก์ชั่นที่รู้จักกันในชื่อการดำเนินการ OTP เหนือสิ่งอื่นใดวิธีการจัดการข้อผิดพลาดบางครั้งเรียกว่าปล่อยให้มันล้มเหลวและมีจอภาพรีสตาร์ทฟังก์ชั่น ฉันใช้ความคิดนี้ในบางพื้นที่บางครั้งก็ปล่อยให้สิ่งต่าง ๆ ล้มเหลวแทนที่จะทำการทดสอบที่ไม่มีที่สิ้นสุด

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

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

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


0

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.