ทักษะ C ++ สูงกว่าทักษะ C หรือไม่ [ปิด]


28

ฉันรู้สึกว่า C / C ++ ที่เห็นบ่อย ๆ ไม่ได้อธิบายทักษะของฉันในประวัติย่อของฉัน ดังนั้นฉันวางแผนที่จะแยกมันออกเป็นความรู้ C ++ ขั้นสูงและทักษะ C ปานกลาง

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



1
นั่นคือสิ่งที่ฉันทำ มันไม่ได้ขัดขวางฉันในการหางาน
Martin York

9
ยังไม่ได้เขียน CV มานาน แต่ฉันมักจะพูดถึง C และ C ++ เป็นสองภาษาที่แตกต่างกันโดยสิ้นเชิง
Rei Miyasaka

2
@ReiMiyasaka - ดีเพราะพวกเขาเป็นสองภาษาที่แตกต่างกันโดยสิ้นเชิง ทั้งคู่ได้รับการอัปเดตและแยกจากเมื่อสร้าง C ++ เป็นส่วนเสริมจาก C.
Izkata

ฉันเชื่อว่า C / C ++ ไม่เหมือนกันและพวกเขาเป็นภาษาที่แตกต่างกันโดยสิ้นเชิงสิ่งเดียวที่พบบ่อยคือ 'C' ในชื่อ (ไม่พูดถึงซินแท็กซ์ปิด)
Qchmqs

คำตอบ:


31

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

  1. การมีความเชี่ยวชาญใน C หรือ C ++ นั้นดีพอที่จะทำให้คุณมีคุณสมบัติเหมาะสมสำหรับโปรแกรมอื่นหรือไม่?
    หากคุณอยู่ในระดับอาวุโสไม่จริง. เช่นถ้าคุณมีประสบการณ์การเขียนโปรแกรม C ++ เป็นเวลา 6 ปีในบางแอปพลิเคชั่นหลักขององค์กรและตอนนี้ฉันกำลังพยายามทำให้คุณอยู่ในระบบฝังตัวซึ่งเป็น C ทั้งหมด - มีแนวโน้มว่าไวยากรณ์การเขียนโปรแกรมของคุณและวิธีแก้ไขข้อบกพร่อง แต่ถ้าคุณต้องการคิดถึงปัญหา - คุณยุ่งมากอย่างแน่นอน นี่เป็นความจริงจากทั้งสองด้านเป็นภาษาอื่น หลายปีที่ผ่านมาคุณใช้ภาษาเพียงประเภทเดียว - ไม่สามารถแปลงเป็นภาษาอื่นได้ง่ายกว่านี้! มันไม่เกี่ยวกับว่าคุณสามารถเรียนรู้ไวยากรณ์ของภาษา แต่คุณคิดแตกต่างกันจริง ๆ เมื่อคุณอยู่ใน C, C ++, Java, perl และ Python เพื่อยืดคำถาม - บ่อยที่สุด - C ++ และ Java สามารถใช้แทนกันได้และก็คือ Perl, PHP, Phython C เป็นสายพันธุ์ที่แตกต่างกันมาก!

    หากคุณเป็นคนที่ค่อนข้างหนุ่มสาว - โอกาสที่คุณจะตามทัน

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

  3. นี่หมายถึงการรู้ว่า C (หรือการเขียนโปรแกรมระดับต่ำสุด) เป็นระดับสูงสุดของความสำเร็จหรือไม่?
    ไม่มีอีกครั้ง! นี่ไม่ใช่ความขัดแย้ง เวลานี้ขึ้นอยู่กับโดเมนที่คุณเปรียบเทียบ หากคุณกำลังมองหาการเขียนโปรแกรมระบบภายในเคอร์เนลลินุกซ์หรือสิ่งที่ใกล้เคียงกับฮาร์ดแวร์ความสามารถในการเขียนโปรแกรมใน C นั้นมีความเกี่ยวข้องมากกว่าอย่างไรก็ตามถ้าคุณกำลังเขียนซอฟต์แวร์ธนาคารหรือเอ็นจิ้นกฎทางธุรกิจบางตัว - C ++ ประเด็นก็คือจุดแข็งที่แท้จริงของคุณไม่ได้เกี่ยวกับไวยากรณ์ของภาษามากนัก แต่วิธีที่คุณแก้ปัญหาในชั้นเรียนและคุณสามารถหวังว่าจะเชี่ยวชาญหมวดหมู่ / โดเมนเพียงเล็กน้อยในชีวิตของคุณ หากคุณกำลังใส่อะไรในประวัติย่อของคุณนั่นคือสิ่งที่สำคัญจริงๆ

  4. มันหมายความว่าถ้ามีเฉพาะใน C - ฉันไม่รู้จักการเขียนโปรแกรมเชิงวัตถุ?
    ไม่ใช่เลย. ในความเป็นจริงการทดสอบสารสีน้ำเงินของฉันในการสัมภาษณ์เพื่อทราบว่าคนที่มาจากพื้นหลัง C หรือ C ++ คือการถามคำถามง่าย ๆ - "ดังนั้นคุณสามารถทำโปรแกรมเชิงวัตถุใน C?" - ชายกระโดดและพูดว่า - "ไม่แน่นอน!" เขา / เธอคือเพื่อน C ++ ประเด็นก็คือเมื่อคุณเขียนโค้ดที่ซับซ้อนมากเช่นรหัสมัลติมีเดียระบบมัลติเธรดสแต็คเลเยอร์โปรโตคอลคุณยังคง 'คิดเหมือนรหัสวัตถุ' - คอมไพเลอร์ C ไม่ได้ลงโทษคุณหากคุณไม่ดีในการห่อหุ้มสองรูทีน หรือวัตถุ - แต่เมื่อระบบตาชั่งที่คอยยิงคุณ - ฉันเชื่อในบางครั้ง - มีหลายคนที่เกิดในยุคของการวางแนววัตถุบ่อยครั้งที่ค่อนข้างอ่อนแอในการห่อหุ้มที่ถูกละเมิดในรหัสซึ่งค่อนข้างสวยมาก เต็มไปด้วยคลาสและวัตถุ ขอโทษที่ฉันพูดพล่าม. แต่ประเด็นคือ - มันเป็นทักษะของคุณในการวิเคราะห์ปัญหาและการออกแบบที่มีความสำคัญมากกว่าทักษะการเขียนโปรแกรมของคุณเพียงอย่างเดียว

มันหมายความว่าฉันควรใส่การเปิดเผยโดเมนและทักษะการออกแบบที่เฉพาะเจาะจงอย่างมาก?
ใช่แน่นอน!


9
+1 สำหรับการชี้ให้เห็นว่าคุณสามารถมีการออกแบบเชิงวัตถุและยังคงนำไปใช้ใน C.
Giorgio

16
@Dipan: ระมัดระวังเกี่ยวกับการตั้งสมมติฐานตามอายุ คนที่แก่กว่าบางคน "ทัน" อย่างรวดเร็วเช่นกัน บางคนอาจทำงานเร็วกว่าคุณ
วินไคลน์

15
ฉันสงสัยอย่างยิ่งว่า "C ++ และ Java สามารถใช้แทนกันได้"
fredoverflow

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

1
@sbi: ฉันไม่ได้เจาะจงเฉพาะเจาะจงมากเกี่ยวกับ C ++ หรือ JAVA หรือ C ฉันไม่ได้ตั้งใจที่จะพูดคุยเกี่ยวกับความสัมพันธ์ระหว่างภาษา ฉันจะไม่ไปกับข้อสันนิษฐานที่ผู้คนไม่สามารถปรับการเรียนรู้หรือเรียนรู้สิ่งต่าง ๆ ปมเดียวที่แท้จริงก็คือภาษาที่แตกต่างกันยังมีรูปแบบการคิดที่แตกต่างกันโดยไม่คำนึงถึงความสัมพันธ์ทางวากยสัมพันธ์ของพวกเขาและนั่นคือสิ่งที่นับรวมในบทบาทที่เหมาะสม
Dipan Mehta

27

สำหรับคนที่สำคัญจริงๆแล้วไม่ควรสร้างความสับสนให้พวกเขา

ทุกคนที่รู้อะไรเกี่ยวกับโลกแห่งความจริง C และ C ++ เขียนโปรแกรมรู้ว่าถึงแม้แม้จะมีความคล้ายคลึงกันและประวัติศาสตร์ของพวกเขา, การเขียนโปรแกรมการผลิตทั้งในเป็นบ่อยกว่าไม่สมบูรณ์ของสัตว์ที่แตกต่างกัน


12

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

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


4
ตกลง ฉันจะไม่ใส่ "C / C ++" ใน CV ของฉันเร็วกว่าฉันจะใส่ "Java / JavaScript" ราวกับว่าพวกเขาเป็นสิ่งเดียวกัน

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

1
@OrbWeaver ข้อแตกต่างที่สำคัญอย่างหนึ่งคือคุณสามารถใช้โปรแกรม C (ตราบใดที่มันไม่ซับซ้อนเกินไป) ป้อนไปยังคอมไพเลอร์ C ++ และเรียกใช้งานจากสิ่งที่จะทำสิ่งใดสิ่งหนึ่งจาก คอมไพเลอร์ C จะทำ คุณไม่สามารถป้อนโปรแกรม Java ไปยังตัวแยกวิเคราะห์ JavaScript (หรือวิธีอื่น ๆ ) และรับสิ่งใดแม้กระทั่งประโยชน์จากการออกกำลังกายจากระยะไกล ดังนั้นในขณะที่ฉันยอมรับว่า C และ C ++ ควรจะแตกต่างกันไปตามความคิดของฉันในการเขียนC/C++และJava/Javascriptราวกับว่าพวกเขาเหมือนกันยังคงอยู่ในสองลีกที่แตกต่างกันมาก
CVn

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

7

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


5

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

ดังนั้นฉันจะใส่มันในศัพท์แสง CV:

  • ทำงานกับผลิตภัณฑ์ C ++ หลายรายการ
  • โครงการสองสามฝั่งใช้ C

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

คำอธิบาย "ระดับทักษะ" ถูกต้องแต่คำอธิบาย "ประสบการณ์" ถูกต้องและชัดเจน


3

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

ดังนั้นคำแนะนำของฉันคือให้แยกภาษาทั้งสองไว้ในประวัติย่อของคุณ


3

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

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