หนึ่งควรเรียนรู้ภาษาใหม่หรือควรมุ่งเน้นไปที่ภาษาที่คุณรู้จักและเพิ่มความรู้ของมันหรือไม่ [ปิด]


22

วิธีใดที่ให้ประโยชน์และมีประสิทธิผลมากกว่ากัน


1
สิ่งนี้ไม่ได้ขึ้นอยู่กับประเภทของงานและโครงการใช่ไหม หากคุณทำงานให้กับ บริษัท ขนาดใหญ่คุณอาจไม่ได้เปลี่ยนเทคโนโลยีบ่อยเกินไปหากคุณเป็นอิสระคุณมีทางเลือก
Chris

@Chris: ข้อเสนอแนะ "ภาษาและกรอบงาน" นักพัฒนาส่วนใหญ่ไม่สามารถทำงานร่วมกับคอมไพเลอร์บรรทัดคำสั่งและโปรแกรมแก้ไขข้อความ แต่ไลบรารี IDE, BD, Thrid-Party Tools, ... ;-)
umlcat

1
ตัดสินโดยการนับคะแนนเสียงคำถามนี้มีความสร้างสรรค์ในความเห็นของหลาย ๆ คน ฉันคิดว่า Mark Trapp เป็นโปรแกรมคอมพิวเตอร์ที่เขียนขึ้นเพื่อปิดคำถาม
ต. เว็บสเตอร์

คำตอบ:


18

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

ดังนั้นใช้เวลาส่วนใหญ่ของคุณให้ดีขึ้นตามความสามารถที่คุณเลือกและใช้เวลาในการเรียนรู้สิ่งใหม่ ๆ


4
+1 สำหรับการรู้วิธีการใช้ "ค้อน" ของคุณได้ดี แต่ยังรู้ว่ามีสิ่งต่าง ๆ เช่น "ไขควง", "เลื่อย" และ "หมุด"
Ryan Hayes

1
และส่วนใหญ่การเรียนรู้ภาษาใหม่อาจทำให้คุณมีรูปแบบการออกแบบหรือสิ่งที่มีประโยชน์ซึ่งคุณไม่เคยคิดที่จะใช้ภาษาของคุณเอง
AttackHobo

8

บางคนพูดว่า "ภาษาที่ไม่เปลี่ยนวิธีที่คุณคิดเกี่ยวกับการเขียนโปรแกรมไม่คุ้มค่ากับการเรียนรู้"

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

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


1
C # เสนอคุณสมบัติใหม่ที่น่าสนใจแก่นักพัฒนา Java การแสดงออกของ Linq & lambda สามารถเปิดตาสู่โลกใหม่
Carra

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

+1 ฉันเริ่มต้นใน. NET และได้เรียนรู้มากมายจากการตบเบา ๆ ของฉันด้วย Objective C และ JavaScript
เทรเวอร์

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

คุณอาจจะยังดีกว่าที่จะเรียนรู้ภาษาหนึ่งและภาษาที่ใช้งานได้ โดยรวมแล้วฉันเห็นด้วยกับคุณ
Carra

3

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

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


2

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

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

การพูดสิ่งนี้การเรียนรู้ภาษา 'ใหม่' (พูดPython) เหนือรายการเก่าของคุณ (เช่นพูดว่า ' C' และอื่น ๆ อีกมากมาย) จะช่วยให้คุณคิดได้อย่างมีประสิทธิภาพมากขึ้นและมุ่งเน้นไปที่แนวคิดหลักที่ควรทำให้ดีขึ้น การยกตัวอย่างเพิ่มเติมอาจไม่ปรากฏขึ้นทันที แต่คุณอาจพบว่าCการโปรแกรมของคุณดีขึ้นเพราะคุณคิดใน Python คุณอาจเริ่มต้นการเขียน Python แทน psudo Cรหัสสำหรับ ตอนนี้เป็นรหัส psudo-readable ที่สามารถตรวจสอบได้

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


1

ครองกรอบการเขียนโปรแกรม (และภาษาที่เกี่ยวข้อง) และปล่อยเวลาว่างไว้สำหรับ "โดเมน" ที่แตกต่างกันโดยเฉพาะ ตัวอย่าง: C ++ ไคลเอนต์ - เซิร์ฟเวอร์, Ruby บนเว็บ


1

เรียนรู้ภาษาใหม่

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

ความรู้ลึกลงไปในภาษาปัจจุบัน

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

  1. คุณเขียนโปรแกรมเป็นภาษา X กี่รายการ
  2. หากคุณไปที่ Stack Overflow และดูคำถามที่ติดแท็ก X คุณจะรู้สึกตอบคำถามได้กี่ข้อ?
  3. ผู้คนมาหาคุณเพื่อขอความช่วยเหลือเกี่ยวกับภาษา X หรือไม่?

หากคำตอบของคุณสำหรับคำถามเหล่านี้อยู่ที่ไหนสักแห่งในแนว "มาก", "ส่วนใหญ่" และ "ใช่และมันก็น่ารำคาญ" มันเป็นตัวบ่งชี้ที่ดีว่าคุณเข้าใจภาษาและควรจะเรียนต่อ ใหม่.


0

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

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

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

อย่างน้อยก็ไม่ต้องเรียนรู้ภาษาใหม่เพื่อเพิ่มจำนวนภาษาที่คุณรู้จัก

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