Tudo bem misturar C e C ++ em uma entrevista? [fechadas]

8

Se em uma entrevista for solicitado que eu escreva algum código, devo ficar completamente com o C ++ ou é aceitável "misturar" os dois para escrever um código fácil como me vem à mente?

Vou explicar: se me pedem para criar um tipo de dados "pilha", uma classe C ++ é perfeitamente adequada, enquanto que se eu precisar analisar algumas strings, um strtok / sscanf é muito mais fácil que o STL. Por outro lado, se eu precisar de um contêiner genérico, STL e modelos são o caminho a percorrer.

Tudo pode ser feito em C ou em C ++, mas em uma entrevista não posso codificar tudo ou lembrar de todas as funções padrão / STL. O que é uma troca aceitável?

John Smith
fonte
1
A maioria dos programadores de C ++ diria que você não deve misturar C puro sem uma boa razão (o que é melhor você justificar).
Rig
2
Eu acho que um "não me lembro da função STL para lidar com a divisão de cordas" não é ótimo, é?
30512 John Smith
14
Que você saiba o suficiente para fazer essa pergunta seria um sinal positivo no meu livro se eu fosse o entrevistador. Basta perguntar o que eles querem.
GrandmasterB
2
O sprintf e o FILE podem facilitar minha vida às vezes no mundo C ++ #
Thomas Eding
Se eu fosse um entrevistador, não ficaria impressionado se alguém respondesse a essa pergunta dizendo que função eles chamariam.
James

Respostas:

13

Para ser realmente pedante, o C ++ oferece suporte para C, nativamente, talvez apenas um subconjunto , mas se o tópico for C ++, a linguagem de programação C está incluída, e isso não é uma opinião, eu não esperaria argumentos sobre isso em um profissional meio Ambiente.

user827992
fonte
Acordado. Além do mais, C faz parte do C ++, então por que não usá-lo em benefício? Aderir puramente a uma parte do idioma e não tocar o outro não é um bom uso do idioma, na minha opinião.
Pijusn
17

A menos que seja especificado, a maioria das perguntas de programação permitirá que você use qualquer idioma que desejar ao responder uma pergunta específica. Você pode explicar qual idioma está usando para responder a perguntas específicas, a fim de evitar confusão e explicar por que está usando.

Se você não tiver certeza se isso vai dar certo com o entrevistador, pergunte - é absolutamente aceitável perguntar se você pode responder a perguntas diferentes usando idiomas diferentes (na maioria das respostas no papel, o pseudocódigo será mais do que aceitável).

Oded
fonte
4
Sim, é isso que eu tenho pensado: pseudo-código. Não tenho uma base de conhecimento em mente e costumo memorizar técnicas e maneiras de usar coisas, em vez de declarações de sintaxe ou API (que podem mudar). Se eu posso pseudo-codificá-lo e tenho uma quantidade "decente" de experiência em programação com uma linguagem, não importa o que seja, acho que posso codificá-la.
John Smith
2
Seria um sinal positivo no meu livro se o candidato pudesse alternar facilmente entre C | C ++ C ++ e STL e poderiam explicar por que eles escolheram um caminho específico.
6
@ JohnPell - Na minha experiência, entender princípios e como e quando aplicá-los supera o conhecimento profundo da linguagem todas as vezes.
Oded
10

Você deve apenas perguntar ao entrevistador o que ele prefere, se você souber como usar os dois.

Dependendo da resposta dele, você pode descobrir:

  1. se ele realmente conhece as diferenças entre C e C ++;
  2. se ele conhece a biblioteca padrão C ++;
  3. se é importante para ele.

Não há resposta genérica para esta pergunta. É muito dependente do trabalho e dos objetivos do recrutador. Se ele quer que você mostre o conhecimento do idioma, ele será específico. Se ele quiser que você mostre habilidades de resolução de problemas e de comunicação, ele realmente não se importará.

Klaim
fonte
8

A menos que seu entrevistador solicite explicitamente que você codifique em C ou C ++, eu usaria apenas o que for apropriado para a entrevista.

Para mim, se meu candidato estivesse misturando os dois, eu estaria mais interessado em sua estratégia ou motivo para misturar os dois idiomas. Ter alguém na minha equipe que possa fornecer uma solução e ser capaz de justificar a solução é extremamente valioso.

tehnyit
fonte
1
+1, justificar é a chave. Eu diria que essa é a chave para ser um bom desenvolvedor em geral (além de habilidades de programação, é claro).
precisa saber é o seguinte
1

Se em uma entrevista for solicitado que eu escreva algum código, devo ficar completamente com o C ++ ou é aceitável "misturar" os dois para escrever um código fácil como me vem à mente?

Isso depende inteiramente de que tipo de trabalho você está se candidatando e qual idioma eles esperam que você use. Geralmente, se você estiver escrevendo C ++, é melhor manter o C ++ na medida do possível. No entanto, eu esperaria que todo programador de C ++ conhecesse pelo menos um pouco de C (e vice-versa).

Vou explicar: se me pedem para criar um tipo de dados "pilha", uma classe C ++ é perfeitamente adequada, enquanto que se eu precisar analisar algumas strings, um strtok / sscanf é muito mais fácil que o STL. Por outro lado, se eu precisar de um contêiner genérico, STL e modelos são o caminho a percorrer.

Se eles esperam que você escreva todo um tipo de dados de trabalho durante a entrevista, você deve ter cuidado. É bom que eles perguntem sobre detalhes técnicos, mas se esperam que você gaste horas escrevendo programas durante a entrevista, isso provavelmente diz algo ruim sobre o empregador.

Se você usa scanf (), provavelmente cometeu um grande erro, independentemente de C ou C ++. É melhor você explicar ao entrevistador que está apenas escrevendo algo rápido e sujo e que nunca usaria scanf no código de produção. Existem muitos pit falls com várias funções da biblioteca C.

O entrevistador não deve esperar que você se lembre de todas as funções do bibliotecário padrão C e C ++, mas deve esperar que você saiba quais são claramente perigosas. get (), getchar (), scanf (), setjmp () etc.


fonte
concordo totalmente, era apenas para dar um exemplo, eu iria pelo menos scanf_s de uso, e se eu puder eu totalmente evitá-lo no código de produção
John Smith
0

Eu acho que quando você é solicitado explicitamente a fazer uma tarefa curta em C ++, seria de extrema importância realmente ficar com C ++ e não misturar C com ele. O C moderno não é um subconjunto do C ++ moderno, pois a mistura dos dois implicaria apenas que você não está muito familiarizado com o que é o C ++ limpo e moderno.

zxcdw
fonte