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?
Respostas:
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.
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.
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.
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.
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!
fonte
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.
fonte
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.
fonte
C/C++
eJava/Javascript
como se fossem os mesmos ainda está em duas ligas muito diferentes.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.
fonte
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:
É 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.
fonte
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.
fonte
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.
fonte