โปรแกรมเมอร์ภาษาใดคาดว่าจะเป็นผู้เชี่ยวชาญที่? [ปิด]


21

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

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


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

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

1
คุณคิดอย่างไรในภาษาถ้าคุณต้องค้นหาคำศัพท์ส่วนใหญ่ในพจนานุกรมเพื่อจะได้รู้ว่าพวกเขาหมายถึงอะไร?
blueberryfields

1
@blueberryfields: ความคล่องแคล่วในภาษานั้นเป็นมากกว่าแค่คำศัพท์และนอกเหนือจากพื้นฐานแล้วคำศัพท์เป็นส่วนเล็ก ๆ ของมัน การรู้ฟังก์ชั่นนั้นไม่มีอยู่หากคุณไม่สามารถทำสิ่งที่ฉลาดด้วยความรู้นั้นได้ มันง่ายกว่ามากที่จะเพียงแค่ค้นหาฟังก์ชั่นมากกว่าจะคิดออกว่าจะทำอะไรที่ชาญฉลาดกับมัน ฉันจะบอกว่ารู้เอกสารดีพอที่จะรู้ได้อย่างรวดเร็วว่าจะมองหาฟังก์ชั่นที่กำหนดถ้ามันมีความรู้ห้องสมุดเพียงพอ หลังจากนั้นคุณจะจำสิ่งที่คุณใช้อย่างแม่นยำและจดจำสิ่งที่คุณไม่ได้ทำ
aaronasterling

2
@blueberryfields: ทั้งนี้ขึ้นอยู่กับภาษา / แพลตฟอร์ม , ความรู้เล็ก ๆ น้อย ๆ อาจจะเป็นสิ่งที่อันตราย สิ่งที่ผมหมายถึงคือถ้าอ้างว่าคนที่จะรู้ว่าการทำงานห้องสมุดหลายหัวใจและไม่จำเป็นต้องอ่านเอกสารผมจะคาดหวังให้บุคคลนั้นยังไม่ทราบทั้งหมดค่าตอบแทนเงื่อนไขข้อยกเว้นและข้อผิดพลาด / คำเตือน, àลาเรย์มอนด์เฉินด้วยใจจริงและสามารถเขียนหนังสือและบรรยายให้กับ Microsoft / Google เป็นต้นจากนั้นบุคคลก็ทำผิดพลาดเล็ก ๆ น้อย ๆ ที่ตลกมากมาย
rwong

คำตอบ:


33

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

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

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

คำตอบที่ตรงกว่าคือ "มันขึ้นอยู่กับ"

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

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


3
ใช่มันขยายขอบเขตของฉันด้วย - คิดในหลายภาษาเพื่อจัดการกับปัญหา
maz3tt

3
+1 กับ Inaimathi ทุกคนที่กล่าวมา คิดว่าภาษาการเขียนโปรแกรมเป็นเครื่องมือ ใช่เราจำเป็นต้องรู้เครื่องมือของเราเป็นอย่างดี แต่เมื่อคุณรู้วิธีใช้ค้อนเท่านั้นทุกอย่างอาจดูเหมือนเป็นเล็บ
Liviu T.

14

คุณมีคำถามที่น่าสนใจมาก:

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

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

ในอีกไม่กี่ปีหลังจากที่ "ผู้เขียนโปรแกรมที่ดีเขียนแค่โค้ด" ไม่มีรหัส C # หรือรหัส C ++ หรือรหัส Java คุณจะรู้ว่าหลังจากคุณเรียนรู้ที่จะพัฒนาโปรแกรมภาษาและเทคโนโลยีไม่สำคัญ แน่นอนคุณจะรู้วิธีการย้าย C # ดีกว่า PHP แต่ถ้าคุณเรียนรู้ได้ดีคุณจะพบว่าคุณผ่าน Python ถ้าคุณต้องการ

หวังว่าความคิดของฉันเหมือนคุณ!


+1 "โปรแกรมเมอร์ที่ดีเขียนโค้ดเพียง ... ภาษาและเทคโนโลยีไม่สำคัญอย่างนั้น" - จริงมากมันต้องใช้การสัมผัสเป็นอย่างมากเพื่อให้ได้ข้อสรุปนั้น
Orbling

ขอบคุณและคุณทำให้ถูกต้อง: 11 ปีและนับ ... :)
เดวิด Conde

3

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


3

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

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




1

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


1

ไม่มีเนื่องจากมีโปรแกรมเมอร์บางคนที่ไม่เป็นผู้เชี่ยวชาญในภาษาใด ๆ แต่พวกเขาสนุกกับสภาพแวดล้อมที่หลากหลายที่พวกเขามีและจะใช้ภาษาต่าง ๆ ขึ้นอยู่กับสถานการณ์เนื่องจากบางคนอาจรู้เทคโนโลยีด้านเซิร์ฟเวอร์เช่น PHP, ASP.Net ใน C # .Net หรือ VB.Net หรือ Java สองภาษาสคริปต์ฝั่งไคลเอ็นต์เช่น JavaScript หรือ Flash และนี่คือโดยไม่ต้องเข้าไปในฮาร์ดแวร์ใด ๆ ที่ใช้ในการวางสิ่งบนเว็บที่นี่

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


1

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


1

นี่เป็นคำถามที่ดี แต่ฉันไม่คิดว่าจะมีมาตรฐาน โดยปกติแล้วสิ่งที่ฉันเห็นคนเป็นผู้เชี่ยวชาญเต็มในหนึ่งภาษาระดับสูง (C ++, Java, ฯลฯ ) ในสภาพแวดล้อมเดียว (windows / linux, mac, solaris) พวกเขารู้ภาษาระดับสูงอื่น ๆ อย่างคร่าวๆ แต่ไม่เข้าใจอย่างเต็มที่ (เช่น C ++ คน Java รู้จักกันคร่าวๆ) ฉันหมายความว่าพวกเขาสามารถเปรียบเทียบประสิทธิภาพของงานหนึ่งในภาษาที่พวกเขามีความเชี่ยวชาญและในภาษาอื่น ๆ จากนั้นพวกเขาก็มีความเป็นปานกลางในภาษาสคริปต์บางอย่าง (เช่นคน Linux รู้ทุบตีคน Windows รู้ VBA คนเว็บรู้ PHP)
สำหรับฉันสิ่งที่สำคัญคือความรู้อัลกอริทึมพื้นฐานกว่าภาษา หากพื้นฐานของคุณดีมีโอกาสน้อยที่จะสับสนในภาษาใด ๆ
แต่ใช่บางครั้งมันอาจมีประโยชน์ที่จะรู้ว่าภาษาใดที่จะดีกว่าสำหรับงานอะไร เช่นรหัสต่อไปนี้เร็วกว่าปาสกาลมากกว่าใน C

strcat (A, "Hello"); strcat (A, "WOrld"); strcat (A, "ฉันพูดว่าสวัสดี!");

นี่เป็นเพราะปาสกาลบันทึกความยาวของสตริงในตำแหน่งแรกและด้วยเหตุนี้จึงง่ายต่อการข้ามไปยังตำแหน่งสุดท้าย ใน C การยกเลิกสตริงคือ '\ 0' และด้วยเหตุนี้คุณจะต้องสำรวจสตริงทั้งหมดสำหรับการดำเนินการ strcat


0

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

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