C ++ навички вищі, ніж вміння C? [зачинено]


28

Я відчуваю, що часто зустрічаються C / C ++ насправді не описують мої навички в моєму резюме. Тому я планую розділити його на передові знання C ++ та посередні навички C.

Ви вважаєте, що це бентежить для читача? Вона могла подумати: "C - це підмножина C ++, і що, цей хлопець намагається мені повідомити?" Що, я намагаюся сказати: я зробив декілька реальних проектів C ++, а чисті проекти C, де просто захоплення. Чи погоджуєтесь ви, що кваліфікований програміст на C ++ не обов'язково є кваліфікованим хлопцем C чи вважаєте, що цей перемикач робиться легко?



1
Саме цим я і займаюся. Це не заважало мені знайти роботу.
Мартін Йорк

9
Давно не писав резюме, але я завжди говорю про C та C ++ як про дві абсолютно різні мови.
Rei Miyasaka

2
@ReiMiyasaka - Добре, адже це дві абсолютно різні мови. І те й
інше

я вважаю, що C / C ++ - це не одне і те ж, і вони абсолютно різні мови, єдине поширене - ім'я "C" у назві (не кажучи вже про синтаксис близьких)
Qchmqs

Відповіді:


31

Ви задали стільки питань в одному; дозвольте мені спробувати відповісти, розділяючи їх. Я наймаю багатьох людей, які потрапляють до цього типу профілю, і досить часто мені доводиться брати стільки інтерв'ю і відхиляти людей, оскільки часто вони не мають чіткої відповіді на поставлені вами питання.

  1. Чи добре володіння мовою C або C ++ є достатньою для того, щоб кваліфікувати вас для іншої програми?
    Якщо ви на старшому рівні насправді НІ. тобто якщо ви 6 років займалися програмуванням на C ++ на деяких основних корпоративних програмах, а зараз я намагаюся ввести вас у вбудовані системи, які є всіма на C - ймовірно, що ваш синтаксис програмування та як налагодити речі не є проблемою. Але якщо вам потрібно продумати проблему - ви, звичайно, дуже безладно. Це вірно з будь-якої сторони до іншої мови. Чим більше років ви витрачаєте лише один тип мови - тим менше легко трансформуватися в іншій формі! Йдеться не про те, чи зможете ви вивчити синтаксис мови, але ви насправді думаєте інакше, коли ви перебуваєте на C, C ++, Java, perl та Python. Щоб розтягнути питання - найчастіше - хлопці C ++ та Java можуть використовуватися взаємозамінно, як і Perl, PHP, Phython. С зовсім інша порода!

    Якщо ви порівняно молодий хлопець - швидше за все, ви зможете наздогнати швидко.

  2. Чи означає це, що я маю вищу майстерність, коли я знаю C ++, а не C
    Насправді. Ні. Тому що, як правило, якщо ви здатні створити повний продукт із C, це набагато складніше завдання порівняно з виконанням цього в C ++. Кількість людей, які можуть освоїти проблеми усунення спільної системи пам'яті, значно менша, ніж кількість людей, які можуть написати гідну програму GUI за допомогою VC ++ або подібних фреймів.

  3. Чи означає це, що знання C (або програмування найнижчого рівня) є найвищим рівнем досягнень?
    Ні знову! Це не протиріччя. Цього разу це залежить від порівняного вами домену. Якщо ви дивитесь на системи, що програмують всередині ядра Linux, або щось дуже близьке до апаратного, здатність програмування в C є більш актуальною, однак, якщо ви пишете банківське програмне забезпечення або деякі механізми ділових правил - C ++ - це звичайно природний вибір. Справа в тому, що ваша справжня сила полягає не в синтаксисі мови, а в тому, як ви вирішуєте клас проблем, і ви можете лише сподіватися освоїти кілька каталогів / доменів у своєму житті. Якщо ви щось поміщаєте у своє резюме - це те, що насправді рахується.

  4. Це означає, що якщо я був лише в С - я не знаю об'єктно-орієнтованого програмування?
    Зовсім ні. Насправді мій лакмусовий тест в інтерв'ю, щоб дізнатися, чи є хлопець зі С, чи С ++, - це задати дуже просте запитання - "Тож чи можете ви робити об'єктно-орієнтоване програмування в 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. Я не дуже маю намір надмірно узагальнити стосунки між мовами; і я не переживаю презумпцію, що люди не можуть реально пристосовуватись, щоб вивчити чи навчитись речам. Справді, суть полягає в тому, що різні мови також є різними моделями мислення незалежно від їх синтаксичного взаємозв'язку, і саме це враховує відповідність ролі, яку потрібно відводити.
Діпан Мехта

27

Для людей, які насправді мають значення, ні, це не повинно їх плутати.

Кожен, хто знає що-небудь про програму C та C ++ у реальному світі, знає, що, незважаючи на їхню схожість та історію, виробниче програмування в обох є частіше, ніж зовсім інша тварина.


12

Особисто мені здається, що це дуже дратує, коли люди пишуть "C / C ++", тому що C і C ++ - це дуже різні мови. І навпаки, якщо я бачу "C, C ++" або "C ++ і C" у резюме, це вражає мене без кінця. На жаль, майже кожен пише "C / C ++", і це зазвичай означає "я знаю C ++, але я можу зробити C, якщо треба".

Крім того, я не був би таким специфічним у резюме. Просто перелічіть відомі вам мови програмування, можливо, в порядку від найвищого до найменшого рівня. Це повинно пройти повз фільтру гучних слів HR, а потім ви зможете пояснити під час технічного інтерв'ю, які ваші сильні та слабкі сторони.


4
Домовились. Я би швидше не ставив "C / C ++" у своєму резюме, ніж я ставлю "Java / JavaScript" так, ніби вони - те саме.

Я часто пишу C / C ++, хоча я знаю, що вони різні мови, тому що ви навчилися будь-якій з них, не намагаючись дивитись на іншу, ваші знання про обидва неповні. Ви не можете бути хорошим програмістом на C, принаймні не вивчаючи ОО, де C ++ є природним вибором для того, як навчитися робити OO в C. Ви не можете бути хорошим програмістом C ++, не розуміючи, чому C ++ вийшов таким, яким він є, за його спадщиною C. В резюме я погоджуюся, що вони повинні бути окремими.

1
@OrbWeaver, одна велика різниця полягає в тому, що ви часто можете брати програму C (доки вона не надто складна), подавати її до компілятора C ++ і отримувати виконуваний файл із того, що насправді буде робити те, що виходить з C компілятор зробив би. Ви не можете подати програму Java на аналізатор JavaScript (або навпаки) і отримати щось навіть віддалене від вправи. Таким чином , хоча я згоден , що C і C ++ повинні бути диференційовані, на мій погляд , листи C/C++і , Java/Javascriptяк якщо б вони були такими ж , ще в двох дуже різних лігах.
CVn

+1 за порадою - просто перерахуйте відомі вам мови програмування, можливо, у порядку від найвищого до найменшого. Це повинно пройти повз фільтру гучних слів HR,
наївне

7

Ні, це не повинно бентежити, оскільки C і C ++, хоча схожі та спільні корені, відрізняються парадигмою та використанням. Таким чином, його слід відокремити, також слід відокремити і експертизу. Крім того, я думаю, ви можете згадати більш конкретні знання (наприклад, GUI / FLTK або інші бібліотеки, які ви знайомі) з двома окремими.


5

Мені сподобалось ваше фразування: "Я робив кілька реальних проектів C ++, в той час як чисті проекти C, де просто захоплення"

Тому я просто вклав це в жаргон CV:

  • працював над декількома продуктами C ++
  • кілька побічних проектів із використанням C

Краще, якщо ви поставите цифри замість "кілька" і "кілька". Не потрібно бути точним, "понад двадцять" - це число для цієї мети.

Опис "рівня кваліфікації" правильний , але опис "досвід" - правильний і зрозумілий.


3

Я погоджуюся, що C та C ++ - це різні мови, і їх слід зберігати окремо в резюме. Незважаючи на те, що C є (майже) підмножиною C ++, у мене зазвичай дуже інший стиль програмування при використанні C: я конструюю по-різному, кодую по-різному тощо. Я б навіть видалив певні функції C, такі як #includes, із C ++, взагалі відмовившись від зворотної сумісності: вони просто різні мови.

Тому моя порада - тримати дві мови у своєму резюме.


3

Просто, якщо особа, яка оцінює вас, мала схильність думати "C - це підмножина C ++", вони вже розгублені, і я впевнений, що ваших пояснень того, що написано у вашому резюме, буде достатньо, щоб їх охарактеризувати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.