Habilidades C ++ superiores às habilidades C? [fechadas]

28

Sinto que o C / C ++ frequentemente visto não descreve realmente minhas habilidades no meu currículo. Então, estou planejando separá-lo em conhecimentos avançados de C ++ e habilidades medíocres em C.

Você acha que isso é confuso para o leitor? Ela poderia pensar: "C é um subconjunto de C ++, então o que esse cara está tentando me dizer?" Bem, o que estou tentando dizer é: eu fiz vários projetos C ++ no mundo real, enquanto projetos C puros eram apenas um hobby. Você concorda que um programador C ++ qualificado não é necessariamente um cara C qualificado ou você acha que essa opção é feita facilmente?

h0b0
fonte
11
É exatamente o que eu faço. Isso não me impediu de encontrar um emprego.
Martin York
9
Não escrevo um currículo há muito tempo, mas eu sempre falo sobre C e C ++ como duas linguagens totalmente diferentes.
Rei Miyasaka
2
@ReiMiyasaka - Bom, porque são dois idiomas totalmente diferentes. Ambos têm sido actualizado e ter divergido quando C ++ foi criado como um complemento para C.
Izkata
eu acredito que C / C ++ não são a mesma coisa e eles são totalmente diferentes idiomas, a única coisa comum é o 'C' no nome (para não mencionar a sintaxe fechar)
Qchmqs

Respostas:

31

Você fez tantas perguntas em uma; deixe-me tentar responder ao segregá-los. Contrato muitas pessoas que se enquadram nesse tipo de perfil e, muitas vezes, tenho que fazer muitas entrevistas e rejeitar pessoas, porque muitas vezes elas não têm uma resposta clara às perguntas que você fez.

  1. Ter um bom domínio em C ou C ++ é suficiente para qualificá-lo para o outro programa?
    Se você está no nível sênior, na verdade NÃO. ou seja, se você tem algo em torno de 6 anos fazendo programação C ++ em alguns aplicativos corporativos principais, e agora estou tentando colocá-lo em sistemas incorporados, todos em C - provavelmente a sintaxe de programação e como depurar coisas não é um problema. Mas se você precisa pensar em um problema - certamente está muito confuso. Isso é verdade de um lado para o outro idioma. Quanto mais anos você passa apenas um tipo de linguagem - menos fácil de transformar de outra forma! Não se trata de aprender a sintaxe da linguagem, mas você pensa de maneira diferente quando está em C, C ++, Java, perl e Python. Para estender a pergunta - com mais freqüência - os caras de C ++ e Java podem ser usados ​​de forma intercambiável, assim como Perl, PHP, Phython. C é uma raça completamente diferente!

    Se você é um cara relativamente jovem, é provável que consiga alcançá-lo rapidamente.

  2. Isso significa que eu tenho maior habilidade quando conheço C ++ em vez de C
    Na verdade, não. Não porque, como regra geral, se você é capaz de criar um produto completo a partir de C, é uma tarefa muito mais difícil em comparação com fazê-lo em C ++. O número de pessoas que podem dominar a solução de problemas dos sistemas de memória compartilhada é muito menor do que o número de pessoas que podem escrever um programa GUI decente usando o VC ++ ou uma estrutura semelhante.

  3. Isso significa que saber C (ou a programação de nível mais baixo) é o nível mais alto de conquista?
    De novo não! Isso não é contradição. Desta vez, depende do domínio que você compara. Se você estiver olhando para a programação de sistemas dentro do kernel Linux ou algo muito próximo ao hardware, a capacidade de programação em C é mais relevante. No entanto, se você estiver escrevendo software bancário ou alguns mecanismos de regras de negócios - o C ++ é uma escolha geralmente natural. O ponto é que sua verdadeira força não é muito a sintaxe da linguagem, mas a maneira como você resolve uma classe de problemas e só pode esperar dominar algumas categorias / domínios em sua vida. Se você está colocando algo em seu currículo - é isso que realmente conta.

  4. Isso significa que, se apenas estiveram em C - não sei programação orientada a objetos?
    De modo nenhum. De fato, meu teste decisivo na entrevista para saber se o cara é do background C ou C ++ é fazer uma pergunta muito simples - "Então você pode fazer Programação Orientada a Objetos em C?" - o cara pula e diz - "Definitivamente NÃO!" ele / ela é companheiro de C ++. O ponto é que, quando você realmente escreve código muito complexo, como código multimídia, um sistema multiencadeado, uma pilha de camadas de protocolo, ainda 'pensa como código de objeto' - o compilador C não o castiga se você é ruim em encapsular duas rotinas ou objetos - mas quando o sistema é escalado que continua disparando você - acredito que às vezes - há muitos que nasceram na era da orientação a objetos, geralmente são bastante fracos sobre exatamente como o encapsulamento realmente é violado em um código que é praticamente preenchido com classes e objetos. Desculpe, eu divaguei. Mas o ponto é - são mais as suas habilidades de análise e design de problemas que importam mais do que apenas suas habilidades de programação.

Isso significa que eu deveria colocar as habilidades de design e exposição específicas do domínio de maneira saperada?
Definitivamente sim!

Dipan Mehta
fonte
9
+1 por apontar que você pode ter um design orientado a objeto e ainda implementá-lo em C.
Giorgio
16
@Dipan: Tenha cuidado ao fazer suposições com base na idade. Alguns caras mais velhos também "alcançam" muito rápido. Alguns deles provavelmente correm mais rápido que você.
Kevin cline #
15
Duvido muito que "os caras de C ++ e Java possam ser usados ​​de forma intercambiável".
Fredoverflow
6
Também não concordo com o # 2. Quando você conhece C ++, pode pegar C # ou Java em um tempo relativamente curto. A captura de C ++ quando você conhece um dos outros dois, no entanto, exige muito tempo e esforço e exige que você primeiro "desaprenda" muito do que recebeu como indicado em C # ou Java.
SBI
11
@sbi: Na verdade, não estou discutindo detalhes muito específicos sobre C ++, JAVA ou C. Não pretendo generalizar demais o relacionamento entre linguagens; nem vou com a presunção de que as pessoas não podem realmente se adaptar a aprender ou desaprender coisas. O único ponto crucial é que línguas diferentes também são padrões de pensamento diferentes, independentemente de sua relação sintática, e é isso que conta na adequação do papel a ser dado.
Dipan Mehta 2/11
27

Para as pessoas que realmente importam, não, não deve confundi-las.

Qualquer pessoa que saiba alguma coisa sobre programação C e C ++ no mundo real sabe que, apesar de suas semelhanças e histórico, a programação de produção em qualquer um deles é, na maioria das vezes, um animal completamente diferente.

Dan McGrath
fonte
12

Pessoalmente, acho muito irritante quando as pessoas escrevem "C / C ++", porque C e C ++ são linguagens muito diferentes. Por outro lado, se eu vir "C, C ++" ou "C ++ e C" em um currículo, isso me impressiona sem fim. Infelizmente, quase todo mundo escreve "C / C ++" e normalmente significa "eu sei C ++, mas posso fazer C se for necessário".

Além disso, eu não seria tão específico no currículo. Apenas liste as linguagens de programação que você conhece, possivelmente na ordem do mais eficiente para o menos eficiente. Isso deve levá-lo além do filtro de palavras-chave do RH, e então você pode explicar durante uma entrevista técnica quais são seus pontos fortes e fracos.

Dima
fonte
4
Acordado. Assim que colocava "C / C ++" no meu currículo, colocava "Java / JavaScript" como se fossem a mesma coisa.
Costumo escrever C / C ++, mesmo sabendo que são linguagens diferentes, porque você aprendeu um deles sem se preocupar em olhar para o outro, seu conhecimento de ambos é incompleto. Você não pode ser um bom programador de C sem, pelo menos, estudar OO, onde C ++ é a escolha natural para aprender como executar OO em C. Você não pode ser um bom programador de C ++ sem entender por que o C ++ acabou do jeito que está, pelo seu legado de: C. No currículo, porém, concordo que eles devam ser separados.
11
@OrbWeaver, uma grande diferença é que você pode pegar um programa C (desde que não seja muito complexo), alimentá-lo com um compilador C ++ e obter um executável daquilo que realmente fará o que um Compilador C faria. Você não pode alimentar um programa Java com um analisador JavaScript (ou o contrário) e obter qualquer coisa remotamente útil do exercício. Portanto, enquanto eu concordo que C e C ++ devem ser diferenciados, na minha opinião, escrever C/C++e Java/Javascriptcomo se fossem os mesmos ainda está em duas ligas muito diferentes.
um CVn
+1 para o conselho - basta listar as linguagens de programação que você conhece, possivelmente na ordem do mais eficiente para o menos eficiente. Isso deve levá-lo além do filtro de palavras-chave de RH,
ingênuo em
7

Não, não deve ser confuso porque C e C ++, embora semelhantes e com raízes semelhantes, sejam diferentes em paradigma e uso. Assim, deve ser separado, também a experiência também deve ser separada. Além disso, acho que você pode mencionar conhecimentos mais específicos (como GUI / FLTK ou outras bibliotecas que você conhece) com os dois separados.

aggietech
fonte
5

Gostei do seu fraseado: "Eu fiz vários projetos C ++ do mundo real, enquanto projetos C puros eram apenas um hobby"

Então eu colocaria no jargão do CV:

  • trabalhou em vários produtos C ++
  • alguns projetos paralelos usando C

É melhor se você colocar números no lugar de "vários" e "alguns". Não precisa ser exato, "mais de vinte" é um número para esse fim.

A descrição do "nível de habilidade" está correta , mas a descrição da "experiência" está correta e clara.

Emilio M Bumachar
fonte
3

Concordo que C e C ++ são linguagens diferentes e devem ser mantidos separados no CV. Embora C seja (quase) um subconjunto de C ++, normalmente eu tenho um estilo de programação muito diferente ao usar C: eu desenvolvo de maneira diferente, codigo de maneira diferente e assim por diante. Eu até removeria certos recursos C, como #includes do C ++, desistindo totalmente da compatibilidade com versões anteriores: eles são simplesmente linguagens diferentes.

Portanto, meu conselho é manter os dois idiomas separados em seu currículo.

Giorgio
fonte
3

Simplesmente, se a pessoa que avalia você teve a propensão de pensar "C é um subconjunto de C ++", ela já está confusa e tenho certeza de que sua explicação do que está escrito em seu currículo será suficiente para impressioná-la.

Mr_Spock
fonte