คุณมีโอกาสเรียนรู้หลายภาษาได้อย่างไร [ปิด]


9

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

อย่างไรก็ตามฉันได้เห็นนักพัฒนาหลายคนที่รู้จักหลายภาษาในที่นี้ คุณมีโอกาสเรียนรู้หลายภาษาได้อย่างไร

ปรับปรุง

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


7
เรียนรู้สิ่งใหม่ ๆ ในช่วงเวลาของคุณ
Jonas

1
เพื่อนคำตอบนั้นโพสต์โดยโปรแกรมเมอร์ 39 คน ฉันคิดว่ามันเป็นรายการที่ดี แต่อย่าฆ่าตัวตาย
งาน

7
คุณไม่ได้ "รับ" โอกาส คุณมีโอกาส หากคุณต้องการเรียนรู้ภาษาเพิ่มเติมให้ออกไปข้างนอกและทำมัน อย่ารอให้ความรับผิดชอบงานในตำนานบางอย่างมาหาคุณ
Joel Etherton

คำตอบ:


10

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

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

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


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

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

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

คุณสามารถใช้ภาษาสคริปต์ใด ๆ เพื่อสร้างภาษาใหม่แม้แต่กับ PHP


ฉันไม่รู้ว่าฉันสามารถสร้างภาษาของตัวเองด้วย Perl คุณช่วยอธิบายเพิ่มเติมหรือให้ข้อมูลอ้างอิงกับฉันได้ไหม?
Sanghyun Lee

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

8

คำถามประเภทนี้ทำให้ฉันงุนงงอยู่เสมอ ฉันใช้ 7 ภาษาอย่างมืออาชีพเขียนโค้ดในอีก 5 ภาษาในงานอดิเรกและการตั้งค่าทางวิชาการและสามารถอ่านรหัสในภาษาอื่นอีกกว่าสิบภาษา ไม่ได้ครั้งเดียวมีผมได้เรียนรู้ภาษาเพียงเพื่อประโยชน์ของมัน มีเป้าหมายที่ชัดเจนและเป็นรูปธรรมอยู่เสมอ ตัวอย่างเช่นสุดสัปดาห์นี้ฉันเรียนรู้ห้องสมุด Android มากพอที่จะเริ่มทำงานกับแอพสำหรับครอบครัวของฉัน หากเรามีไอโฟนฉันจะต้องเรียนรู้ Objective-C

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


3

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


2

คุณเพียงแค่ต้องให้เวลาในการทำ ลองอ่านหนังสือ "เจ็ดภาษาในเจ็ดสัปดาห์" จาก Prags มันจะให้คำแนะนำคุณถึงเจ็ดภาษาที่น่าสนใจมากและจากที่นั่นคุณสามารถไปได้ทุกที่


1

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

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

1

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

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


1
  • ฉันคิดว่าบางส่วนของงานของฉันคือ "การวิจัย" ในปี 1998 การวิจัยหมายถึงการแก้ไขข้อบกพร่อง Y2K งานวิจัยเดือนที่แล้วหมายถึงการเรียนรู้การโค่นล้ม ฉันทำงานวิจัยมา 40 ปีแล้ว เมื่อฉันแสดงรายการภาษาฉันจะต้องเรียงตามลำดับตัวอักษร

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

  • การวิจัยเชิงปฏิบัติการครอบคลุมภาษาปกติเช่น C # และ Pascal การวิจัยขั้นสูงครอบคลุมภาษาแปลก ๆ เช่น LISP และ FORTH คุณอาจจะไม่เคยใช้ LISP อย่างมืออาชีพ แต่การเรียนรู้มันจะเปิดกว้างในใจของคุณอย่างมาก

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

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


0

โอกาสบางครั้งมาจากการจ้างงานของคุณ โดยปกติจะมีหนึ่งในสามไดรเวอร์สำหรับโอกาสประเภทนี้

  1. มันเป็นเทคโนโลยีใหม่ล่าสุด ตัวอย่างเช่นหลาย บริษัท จ่ายเงินสำหรับการฝึกอบรม C # สำหรับนักพัฒนาของพวกเขาในสองหรือสามปีแรกหลังจาก. NET ได้เปิดตัว

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

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

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


0

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

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