Навыки С ++ выше, чем навыки С? [закрыто]


28

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

Вы думаете, что это сбивает с толку читателя? Она могла подумать: «C - это подмножество C ++, так что этот парень пытается мне сказать?» Ну, я хочу сказать следующее: я сделал несколько реальных проектов на C ++, в то время как проекты на чистом C - просто хобби. Согласны ли вы с тем, что опытный программист C ++ не обязательно является квалифицированным парнем C или вы думаете, что это переключение выполняется легко?



1
Это именно то, что я делаю. Это не помешало мне найти работу.
Мартин Йорк

9
Давно не писал резюме, но я всегда говорю о C и C ++ как о двух совершенно разных языках.
Рей Миясака

2
@ReiMiyasaka - Хорошо, потому что это два совершенно разных языка. Оба были обновлены и отличаются от того, когда C ++ был создан как дополнение к C.
Izkata

я считаю, что 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 ++. Количество людей, которые могут освоить устранение неполадок в системах с общей памятью, намного меньше, чем количество людей, которые могут написать достойную программу с графическим интерфейсом, используя VC ++ или аналогичную среду.

  3. Означает ли это, что знание C (или программирование самого низкого уровня) - это самый высокий уровень достижений?
    Нет снова! Это не противоречие. На этот раз это зависит от домена, который вы сравниваете. Если вы смотрите на системное программирование внутри ядра Linux или что-то очень похожее на аппаратное обеспечение, возможности программирования на C более актуальны, однако, если вы пишете банковское программное обеспечение или некоторые механизмы бизнес-правил - C ++ обычно является естественным выбором. Дело в том, что ваша истинная сила заключается не столько в синтаксисе языка, сколько в том, как вы решаете класс проблем, и вы можете только надеяться овладеть несколькими категориями / областями в своей жизни. Если вы помещаете что-то в свое резюме - это то, что действительно имеет значение.

  4. Значит ли это, что если бы я только был на C - я не знаю объектно-ориентированного программирования?
    Не за что. Фактически, мой лакмусовый тест в интервью, чтобы узнать, является ли парень из C фона или C ++, состоит в том, чтобы задать очень простой вопрос - «Так вы можете заниматься объектно-ориентированным программированием на C?» - прыгает парень и говорит - «Определенно НЕТ!» он / она сотрудник C ++. Дело в том, что когда вы действительно пишете очень сложный код, такой как мультимедийный код, многопоточная система, стек протокольного уровня, вы все равно «мыслите как объектный код» - компилятор C не накажет вас, если вы плохо разбираетесь в двух подпрограммах или объекты - но когда система масштабируется, что продолжает вас пускать - я верю, время от времени - многие рождаются в эпоху объектной ориентации, довольно часто довольно слабо знают, как именно нарушается инкапсуляция в коде, который в значительной степени заполнены классами и объектами. Извините я отвлекся, Но дело в том, что ваши навыки анализа и проектирования проблем важнее, чем ваши навыки программирования.

Означает ли это, что я должен в полной мере использовать навыки работы с конкретными предметами и дизайн?
Определенно да!


9
+1 За указание на то, что вы можете иметь объектно-ориентированный дизайн и все же реализовать его в C.
Джорджио

16
@Dipan: будьте осторожны, делая предположения, основанные на возрасте. Некоторые старшие парни тоже «догоняют» довольно быстро. Некоторые из них, вероятно, работают быстрее, чем вы.
Кевин Клайн

15
Я сильно сомневаюсь, что «ребята из C ++ и Java могут использоваться взаимозаменяемо».
fredoverflow

6
Я также не согласен с # 2. Когда вы знаете C ++, вы можете освоить C # или Java за относительно короткое время. Однако получение C ++, когда вы знаете какой-либо из двух других, занимает много времени и усилий и требует, чтобы вы сначала «отучились» от того, что вы взяли, как указано в C # или Java.
ВОО

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 без хотя бы изучения OO, где C ++ является естественным выбором для изучения того, как делать OO в C. Вы не можете быть хорошим программистом C ++, не понимая, почему C ++ оказался таким, какой он есть, благодаря своему наследию от C. В резюме, однако, я согласен, что они должны быть отдельными.

1
@ OrbWeaver, одно большое отличие состоит в том, что вы часто можете взять программу на C (если она не слишком сложна), передать ее в компилятор C ++ и получить исполняемый файл из того, что на самом деле будет делать то, что из Компилятор C будет делать. Вы не можете передать Java-программу в синтаксический анализатор JavaScript (или наоборот) и получить что-либо даже отдаленно полезное из этого упражнения. Поэтому, хотя я согласен с тем, что С и С ++ следует различать, на мой взгляд, написание 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, такие как #include, из C ++, полностью отказавшись от обратной совместимости: это просто разные языки.

Поэтому я советую держать два языка отдельно в своем резюме.


3

Проще говоря, если человек, оценивающий вас, имел склонность думать, что «C - это подмножество C ++», он уже запутался, и я уверен, что вашего объяснения того, что написано в вашем резюме, будет достаточно, чтобы удивить их.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.