ฉันจะจัดการกับความต้องการรู้ภาษาการเขียนโปรแกรมหลายภาษาได้อย่างไร [ปิด]


25

ฉันเป็นโปรแกรมเมอร์หนุ่ม ฉันอายุ 23 ปีและฉันเขียนโปรแกรมอย่างมืออาชีพมาประมาณ 5 ปีแล้ว

ในฐานะโปรแกรมเมอร์ส่วนใหญ่ที่ฉันเริ่มต้นด้วย C เรียนรู้ x86 ชุดประกอบเพื่อความสนุกสนานแล้วฉันก็พบว่า C ++ ซึ่งกลายเป็นความหลงใหลที่ยิ่งใหญ่ที่สุดของฉันในโลกแห่งการเขียนโปรแกรม การเขียนโปรแกรมด้วย C และ C ++ บังคับให้คุณเรียนรู้ API เฉพาะแพลตฟอร์ม libs และเฟรมเวิร์กทุกอย่างต้องมีการศึกษาและทดลองอย่างต่อเนื่อง หลังจากเวลาผ่านไปฉันต้องย้ายไปที่ Java และ C # เนื่องจากความต้องการในภูมิภาคของฉันนั้นใช้ภาษาเหล่านี้เป็นหลัก ด้วยภาษาเหล่านี้ฉันเข้าสู่โลกแห่งการพัฒนาเว็บและจากนั้นฉันต้องเรียนรู้จาวาสคริปต์ การพัฒนา. NET Framework นั้นน่าตื่นเต้นในตอนแรก แต่ฉันรู้สึกตลอดเวลาเมื่อฉันถูกมัดโดย Microsoft (และแน่นอนว่า. NET Framework กำลังขับรถฉันออกจาก Linux) สำหรับการพัฒนาเดสก์ท็อปฉันสามารถทำทุกอย่างที่ฉันทำกับ. NET ด้วย C ++ กับ Qt แต่สำหรับการพัฒนาเว็บไซต์ฉันต้องหาทางเลือกอื่น ฉันพบ Django อย่างรวดเร็วจากนั้นฉันก็เรียนรู้ Python ต่อเพื่อที่ฉันจะได้ใช้ Django ได้ ทุกวันนี้ฉันกำลังเรียนรู้การพัฒนา iOS ด้วย Objective-C

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

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


20
คุณกล้าคิดยังไงที่จะไม่เรียนภาษาเพิ่ม!
Mateen Ulhaq

9
“ ทุกครั้งที่ฉันเรียนรู้สิ่งใหม่มันจะผลักสิ่งเก่าออกไปจากสมองของฉันเหมือนเวลาที่ฉันเรียนทำไวน์ที่บ้านและลืมวิธีขับรถ”
Dean Harding

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

6
บางภาษาที่คุณจะไม่มีวันลืม คนอื่น ๆ ที่คุณรอคอยที่จะลืม
Steven A. Lowe

3
คุณส่วนใหญ่เข้าสู่ OOP คุณควรสำรวจภาษากระบวนทัศน์อื่น ๆ เช่นภาษาที่ใช้งานได้ Haskell แล้วคิดเกี่ยวกับการติดตาม
Vigneshwaran

คำตอบ:


27

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

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

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


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

4
ฉันคิดว่านี่เป็นเรื่องจริงถ้าคุณอยู่ในกรอบความคิดที่เฉพาะเจาะจง เช่น OO / ความจำเป็น มันจะพังถ้าคุณดูภาษาที่ไม่จำเป็น
ริชาร์ด

@ ริชาร์ด: ฉันรู้ว่าคุณไม่ได้ตั้งใจจะแนะนำว่า OO จำเป็นต้องมีความหมายใช่ไหม?
Frank Shearar

@ Frank: ใช่มากกว่ากลุ่มภาษาที่ใช้กันมาก (Java, C #, C ++) ที่มีทั้ง ...
Richard

1
"(a) ภาษาเป็นเพียงชุดของคำหลัก" - ฉันไม่เห็นด้วย ทุกแพลตฟอร์มมีวิธีการทำสิ่งต่าง ๆ ในท้องถิ่น การเป็นโปรแกรมเมอร์ที่ดีในแพลตฟอร์ม X นั้นเกี่ยวข้องกับไวยากรณ์มากกว่าอย่างมาก ตัวอย่างเช่นโค้ดจาวาสคริปต์ที่ดีจะไม่เกิดขึ้นหากฉันถือว่า. NETOO mindset เป็นสิ่งที่ฉันต้องการ
Bevan

54

ฉันกังวลว่าสักวันฉันจะไม่สามารถติดตามพวกเขาทั้งหมดได้

หลังจาก 30 ปีให้ฉันพูดสิ่งนี้

ใช่คุณสูญเสียการติดตาม

ดังนั้น?

นั่นเป็นเหตุผลที่พวกเขาเขียนคู่มืออ้างอิง


14

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

ความรู้เกี่ยวกับ Java และการสืบทอดเดี่ยวควรทำให้มุมมองของคุณเกี่ยวกับ C ++ และการสืบทอดหลายอย่าง ความรู้เกี่ยวกับ Java และ GC ของคุณควรกำหนดมุมมองของ C ++ และหน่วยความจำที่ผู้ใช้จัดการ ความรู้เกี่ยวกับ C ++ และเทมเพลตของมันควรทำให้มุมมองของคุณเกี่ยวกับ Java และข้อมูลทั่วไป ความสัมพันธ์ทั้งหมดนี้ใช้ได้ทั้งสองทางแน่นอน

หากคุณไม่เคยเขียนด้วยภาษาที่ใช้งานได้คุณจะไม่พอใจกับสิ่งที่<algorithm>ห้องสมุดC ++ พยายามทำและสิ่งที่ขาดหายไปหากไม่มีฟังก์ชั่นพลเมืองชั้นหนึ่ง (อย่างน้อย C ++ 11 ก่อน) หากคุณไม่เคยเขียนด้วยภาษาแบบไดนามิกคุณจะไม่ตระหนักถึงขอบเขตของการพิมพ์แบบสแตติกที่สามารถทำได้และไม่สามารถทำได้สำหรับคุณ หากคุณไม่เคยเขียนด้วยภาษาที่ไม่มีสถานะที่ไม่แน่นอนคุณจะไม่เข้าใจบทลงโทษที่รัฐที่ไม่แน่นอนสามารถนำมาให้คุณได้

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


8
+1 ไม่เพียงเกี่ยวกับการเรียนรู้หลายภาษา (ภาษาการเรียนรู้เป็นส่วนที่ง่าย) การเรียนรู้กระบวนทัศน์ที่แตกต่างเป็นสิ่งที่สำคัญ โดยส่วนตัวฉันรู้สึกว่านักเรียนระดับมหาวิทยาลัยควรได้รับกระบวนทัศน์ที่แตกต่างกันซึ่งเป็นสถานการณ์ที่น่าเศร้าเมื่อมีมหาวิทยาลัย "McJava (tm)" จำนวนมากในทุกวันนี้ (โปรดทราบฉันไม่ได้พูดว่า Java ไม่ดีต่อการพูด โปรดอ่านบริบททั้งหมด) :(
Darknight

8

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

เขียนรหัส หากคุณต้องการติดตามข่าวสารล่าสุดเกี่ยวกับภาษานั้นให้เขียนโค้ดต่อไป

มีสิ่งดังกล่าวเป็นภาษาการเขียนโปรแกรมเพียงพอหรือไม่

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

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

ดังนั้นไม่ไม่มีสิ่งใดที่ "เพียงพอ" แต่ก็มีบางสิ่งเช่น "ไม่คุ้มกับปัญหา"


4

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


4

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


จริงไม่หยุดเรียนรู้ แต่มุ่งเน้น การเรียนรู้ทุกอย่างก็เหมือนการวิ่งเหมือนไก่หัวขาด ** และสุดท้ายคุณก็เก่งในเรื่องอะไร
Slawek

@Slawek: "ในท้ายที่สุดคุณจะดีในสิ่งที่แน่นอน" เกือบจะ รุ่นที่ดีกว่าอาจเป็น: ในที่สุดสิ่งที่คุณทำได้ดีก็ถูกแทนที่ด้วยเทคโนโลยีใหม่ที่คุณไม่มีเงื่อนงำ
S.Lott

3

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

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

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


3

ฉันเรียนรู้หลายภาษาในช่วง 25 ปีที่ผ่านมา หลังจากนั้นไม่นานบางคนก็มีประโยชน์น้อยลงและถูกลืม (Perl) ไม่พูดถึงการประกอบ 6502, Apple Basic, Lisp, Prolog, Pascal, SPAN, FORTRAN ...

ภาษาอื่น ๆ จางหายไปจากนั้นฉันต้องเรียนรู้ใหม่ (Python) หลังจากผ่านไป 10 ปี ไม่มีประเด็นที่จะต้องติดตามด้วย Python มันใช้เวลาไม่นานในการเร่งความเร็ว - Google / SO คือเพื่อนของคุณ

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


3
รายงานการเสียชีวิตของ Perl นั้นเกินจริงอย่างมาก
ฟิลิปพอตเตอร์

มันไม่มีอะไรเป็นส่วนตัวกับ Perl ฉันเคยทำงานกับ Unix ดังนั้น Perl จึงเป็นอาวุธที่ฉันเลือก ฉันสร้างแอพใหญ่ที่น่าใช้ จากนั้นฉันย้ายไปที่ Windows ตอนนี้ฉันกลับมาอีกครั้ง แต่แอพที่ฉันกำลังพัฒนาอยู่ใน Python ดังนั้นจึงมีจุดเล็ก ๆ ที่ใช้ Perl และ Python
dave

1

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

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

ในขณะที่เรียนอยู่เราเคยใช้จาวา (ก่อนหน้านั้นฉันใช้ ASP และ VB5) แต่หลังจากเรียนจบ (ประมาณ 5 ~ 6 ปีก่อน) ฉันเรียนรู้การใช้ C # (และจาวาสคริปต์) สวิตช์งาน "บังคับ" ให้ฉันไป VB.NET งานต่อไปอนุญาตให้ฉันใช้ทั้งสองภาษา. NET (ซึ่งฉันทำ) และแม้แต่ "อนุญาต" เพื่อให้ฉันใช้ Java อีกครั้ง (สำหรับเครื่องมือดั้งเดิมที่พวกเขาใช้) ทุกวันนี้ฉันทำงานกับ X ++ (ภาษาของ Microsoft Dynamics AX) แต่ฉันยังคงพัฒนาบางอย่างใน. NET นี่เป็นเพียงภาษาที่ฉันทำงานด้วยในงานประจำวันฉันชอบตรวจสอบภาษาใหม่ ๆ เช่น F #, Ruby เป็นต้นการเรียนรู้ภาษาใหม่เหล่านี้ใช้เวลาเพียงไม่กี่วัน (เพื่อทำความเข้าใจไวยากรณ์) และส่วนที่เหลือ เวลาที่คุณกำลังเล่นกับภาษาและจะค่อยๆเรียนรู้

มีหลายภาษา แต่ฉันมักจะเน้นเฉพาะภาษาที่แตกต่างกันจริงๆ (เช่น F #) ฉันเห็นว่าการเรียนรู้ภาษาใหม่เป็นเรื่องที่น่าสนใจและสนุกดังนั้นตอนนี้ฉันสบายดีการเรียนรู้ภาษาใหม่ค่อนข้างง่าย (อย่างน้อยถ้าความคิดเหมือนกัน C #, VB, Java มีเอลเท่ากัน แต่ตัวอย่าง F # แตกต่างกันมาก) และฉันไม่ต้องกังวลมากเกินไป


1

ฉันเริ่มต้นอาชีพของฉันเมื่อ 5 ปีก่อนบน vb6 ย้ายไปยัง php จากนั้นไปยัง java และจากนั้นเป็น. net ปัจจุบันสำหรับปีที่แล้วทำงานกับ asp.net mvc2 และพยายามใช้ mvc3 ด้วยเช่นกัน

ความลับคือสิ่งหนึ่งที่ไม่ควรล้าสมัยคุณไม่สามารถควบคุมทุกสิ่งในโลกได้ดังนั้นการกังวลเกี่ยวกับสิ่งนั้นไม่ใช่ตัวเลือก


1

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

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


1

ฉันขอแนะนำการเรียนรู้ภาษาที่มีกระบวนทัศน์ที่แตกต่างกันเช่นการใช้งาน OO และตรรกะเนื่องจากมันแตกต่างกันมาก

อย่างไรก็ตามฉันไม่แนะนำให้เรียนภาษา 3 ภาษาหรือ 3 OO-languages

หากคุณเก่งในการท่องจำบางที แต่ฉันพบว่ามันยากที่จะเรียนรู้สิ่งที่คล้ายกันซ้ำแล้วซ้ำอีกซึ่งเกิดขึ้นเกือบเหมือนกัน แต่ไม่แน่นอนโดยเฉพาะอย่างยิ่งสิ่งห้องสมุดเช่นภาพวาดหน้าต่างการเรียกใช้ฐานข้อมูลไลบรารีการรวบรวมซึ่งคุณต้องจำชื่อและการประชุมต่าง ๆ ประพฤติเกือบเหมือนกัน มันเป็น paintRect (xstart, ystart, xend, yend) หรือ (xstart, ystart, width, height) หรือไม่? รวมถึง 'สิ้นสุด' ที่นี่ไม่รวมที่นี่หรือไม่

แต่บางคนไม่มีเวลายากที่จะเรียนรู้สิ่งเหล่านี้

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


0

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

เคยเห็นโค้ดนักพัฒนา Java ที่ไม่ยอมใครง่ายๆใน C ++ มันเป็นระเบียบที่รอการระเบิด ...

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

และกระบวนทัศน์การเรียนรู้ก็เป็นข้อเสนอที่น่าสนใจเช่นกัน เพราะการใช้แนวทาง Java ใน C หรือแนวทาง Perl ใน C # อาจกลายเป็นการสาธิตที่ยอดเยี่ยมของวิธีการเขียนโค้ดที่ยุ่งเหยิง

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


0

มีคนแนะนำบางคนว่า "ทุกคนควรรู้ 3 ภาษา"

ฉันมักจะเห็นด้วย คุณควรรู้ภาษาที่คอมไพล์ (C / C ++, C #, ฯลฯ ), ภาษาที่แปล (Python, Ruby, etc) และภาษาที่ใช้ในการประมวลผลข้อความ (Perl, Awk, ฯลฯ ) ฉันคิดว่าคุณควรรู้ภาษาสคริปต์เชลล์ (Bash, วันนี้หรือ Windows power shell) คำแนะนำเดียวกันนี้ใช้กับชุดเครื่องมือและ API

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

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

ไม่จำเป็นต้องติดตามเทคโนโลยีทุก ๆ ครั้งที่นั่นคุณจะสามารถหมุนขึ้นและลงได้ตามต้องการทำให้สิ่งที่คุณใช้เป็นประจำเป็นจุดสนใจ


-5

Guys จริงๆ - มันน่าเศร้า ไม่มีความเชี่ยวชาญ "ฉันจะเรียนรู้ทุกอย่าง" ขออภัยด้วยวิธีการนี้คุณจะรู้ทุกอย่าง แต่ทักษะของคุณจะต่ำจนไม่มีใครจ่ายให้คุณได้ดี

มีงานวิจัยที่บอกว่าคุณต้องการการฝึกฝนเป็นเวลา 10 ปีเพื่อให้ "ดี" กับทุกสิ่ง (การเขียนโปรแกรมการเล่นกีตาร์การเต้นรำ ฯลฯ ) และนั่นเป็นเรื่องจริงคุณต้องใช้เวลา 5-10 ปีในการเขียน C ++ / python / etc เพื่อให้ได้ทักษะที่จำเป็นในการพัฒนาโค้ดเชิงพาณิชย์ที่มีคุณภาพ

และเรื่องโกหกนั้นเกี่ยวกับการอ้างอิงภาษา? และนิสัยการเขียนโปรแกรมที่ดีนั้นแตกต่างกันไปในทุกภาษาการเขียนโปรแกรม ในการอ้างอิงใดที่คุณพบแนวทางปฏิบัติในการจัดการหน่วยความจำที่ดีและโครงสร้างข้อมูลสำหรับการปฏิบัติ C หรือ Server Side Security?

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

ใช่ - เรียนรู้การออกแบบกราฟิกการเขียนบทภาพยนตร์และแฟลชด้วยคุณจะต้องใช้! :) ฉันไม่รู้ว่ามีอะไรผิดปกติ แต่ถ้าคุณทำไคลเอนต์เซิร์ฟเวอร์และมือถือในคราวเดียว - ออกจากงานของคุณและอย่ารอจนถึงวันพรุ่งนี้เพราะคุณต้องทำตอนนี้!

คำถามของฉันคือคุณจะติดตามภาษาการเขียนโปรแกรมหลายภาษาได้อย่างไร

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


1
คุณรู้ว่าฉันถูก - ใครมีรายได้มากขึ้น? วิศวกร Java อาวุโสที่ IBM หรือ "programmer-o-graphican-o-computerfixer-o" ที่ บริษัท พัฒนาเว็บไซต์ท้องถิ่นบางแห่ง? ฉันรู้ว่านักกราฟิกที่ดีที่ทำกราฟิกและคิดเงิน $ 10,000 สำหรับโครงการแบนเนอร์ "โง่" ... และพวก "ฉันรู้ทุกอย่าง" ที่ทำเว็บไซต์โง่ ๆ สำหรับธุรกิจท้องถิ่นโง่ ๆ ราคา $ 150 (รวมถึงการทำกราฟิก) คอมพิวเตอร์ในระหว่างนี้เป็นต้นเพราะพวกเขารู้เพียงเล็กน้อยในหลาย ๆ เรื่องที่พวกเขาทำได้คือติดตั้งธีมเวิร์ดเพรสหรือตรวจสอบว่าทำไม msoffice ถึงไม่ทำงาน
Slawek

-1 สำหรับการพูดจาโผงผางมากกว่าคำตอบและทำให้ประสบการณ์ส่วนตัวของคุณกับโลกสับสน ฉันต้องการดูว่า "การวิจัย" ที่คุณอ้างถึง แนวคิดเรื่องป๊อปที่เกิดขึ้นในทุกวันนี้ก็คือมันต้องใช้เวลา 10,000 ชั่วโมงในการฝึกฝนเพื่อพัฒนาความเชี่ยวชาญในสาขา สิ่งนี้ได้รับความนิยมจากงานเขียนของ Malcom Gladwell มันอาจจะไม่เลวร้ายเท่ากฎของหัวแม่มือ แต่มันก็แทบจะเป็นกฎของฟิสิกส์ 10,000 ชั่วโมงเป็นเวลาห้าปี 40 ชั่วโมงสัปดาห์และแน่นอนว่าพวกเราหลายคนใช้เวลาทำงานนานกว่าในระยะแรกของอาชีพของเรา
Charles E. Grant

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

หากไม่มีใครเรียนรู้มากกว่าหนึ่งภาษาเราทุกคนจะเป็นผู้เขียนโปรแกรมในแอสเซมเบลอร์ วันนี้ฉันกำลังใช้ Groovy, Java, Javascript, SQL, Ant และ Selenium ฉันไม่ต้องการคน 7 คนในทีมของฉัน ฉันต้องการคนที่สามารถรับเทคโนโลยีใหม่และทำให้สิ่งต่าง ๆ เกิดขึ้น
วินไคลน์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.