Minhas aulas de programação na escola eram C ++, mas acabei trabalhando em C # nos últimos anos. Se houvesse uma posição que exigisse 1 ou 2 anos de experiência em C ++, minha experiência em C # seria digna de consideração? Quão eficaz eu poderia estar nessa posição? Então, eu preciso começar como um programador C ++ básico para obter a experiência necessária?
c#
c++
experience
MetaGuru
fonte
fonte
Respostas:
O problema aqui é que C ++ e C # são, fundamentalmente, linguagens extremamente diferentes, com abordagens diferentes para muitos problemas. É fácil agrupá-los como "Uma linguagem OO", mas o fato simples é que muitos idiomas C # são considerados códigos muito ruins em C ++ (e vice-versa).
Se você realmente conhece as diferenças e como são os idiomas C ++, não vejo razão para que isso não deva ficar bem.
fonte
Eu estava no mesmo barco cerca de 2 anos atrás. Sua experiência em c # provavelmente não valeria tanto para um trabalho em c ++ quanto em c ++. Dito isto, se você sabe como o c # realmente funciona (muito poucos programadores de c # realmente funcionam) e aprendeu bem o seu c ++, então o c ++ não será o problema. Qual será o problema é a maneira como você se acostumou a determinados padrões de design, que serão de alto nível para c ++.
Por exemplo, passando do bom modelo de acesso a dados ADO.NET ao uso do cppcon para acesso ao mysql, System.Collections.Generic ao uso de stl, herança múltipla e coleta de lixo para limpar sua memória em destruidores e assim por diante ... ser transições difíceis. C ++ não é o problema, aprender o libs, padrões de design e como usá-los é o desafio. A maioria dos recrutadores não percebe isso. Se você pode criar um design básico e usar os recursos atuais mais comuns do c ++, deve se dar bem na entrevista.
No entanto, pronto para o trabalho é uma história diferente. É um desafio divertido, espero que tudo corra bem.
fonte
Eu não posso falar para todos os empregadores, mas eu pessoalmente vejo a programação como a habilidade e os idiomas específicos como uma boa opção. Ainda é possível ser contratado em outro trabalho de programação que não seja sua principal habilidade.
Dito isto, é muito improvável que eu contratasse alguém que não tivesse absolutamente nenhuma experiência no idioma para o qual estou contratando. Passe alguns fins de semana aprendendo e faça alguns projetos para melhorar seu currículo. Mesmo os pequenos provam que você é capaz de aprender e interessado.
fonte
Você está exatamente na mesma situação em que eu estava há 4 anos atrás.
Eu fiz C ++ durante meus estudos, mas eu odiava. Eu desenvolvi bastante web dev quando pude no meu tempo livre e consegui um emprego nesse campo.
Quando me mudei, solicitei um trabalho em C ++ com 2 anos de experiência em C ++ como requisito. Bem, eu atualizei minhas memórias em C ++ antes da entrevista e, quando chegou a hora dos testes, consegui me livrar de algumas coisas que não tinha tanta certeza de que estava fazendo certo.
Mas a maior parte da entrevista foi sobre solução de problemas e soluções criativas, e o C ++ acabou sendo apenas um fator menor.
Portanto, as chances realmente dependem do empregador e das posições que eles têm.
Se você estiver passando por uma agência de recrutamento, "provavelmente" será informado de que seu perfil não corresponde. Mas com um empregador real, suas chances são muito melhores, pois eles realmente sabem o que precisam.
fonte
Depende. Se você pode responder a algumas perguntas básicas da entrevista sobre indicadores e outras coisas, deve ficar bem.
Também é benéfico se você pode listar as diferenças entre modelos C ++ e genéricos .NET.
Fora isso, é muito fácil acompanhar o resto à medida que avança.
fonte
Sim. Pode não ser tão relevante quanto a experiência em C ++, mas é bom.
Bons empregadores vão se interessar em como você pensa , mais do que em quantos anos de um idioma específico você tem.
Uma posição C ++ básica é boa: você pode aprender rapidamente e fazer um ótimo trabalho. Uma boa empresa lhe dará muitas oportunidades de crescimento. Caso contrário, você pode ir para outro lugar e ter experiência em C # e C ++.
fonte
Realmente depende da natureza do negócio ao qual você está se candidatando. Se eles estão procurando alguém que possua boas habilidades de programação e arquitetura baseadas em OO, o C # provavelmente será tão bom quanto a próxima coisa.
Se eles se orgulham da velocidade / capacidade de resposta de seus softwares, você precisará conhecer seus algoritmos, pois isso importa mais do que micro otimizações - tabelas de hash versus pesquisa linear etc. O c # ainda é relevante aqui, mas você precisa para demonstrar o entendimento das características de desempenho - nem todo mundo sabe sobre o ngen.exe, por exemplo.
Se eles estiverem no ambiente incorporado / móvel e / ou sem coleta de lixo, você realmente precisará saber como gerenciar efetivamente a memória. Ponteiros inteligentes, como o @DeadMG apontou, são essenciais aqui, mas o mesmo acontece com o entendimento do perfil de alocação de memória. Os programadores de jogos costumam pré-alocar grandes matrizes de objetos e reciclá-los para conhecer os requisitos de memória antecipadamente e reduzir as incógnitas por quadro. Essa também é a técnica usada nos TableViews de rolagem no iOS.
Se houver algum trabalho de integração, é provável que você precise de conhecimentos no nível C em termos de distribuição de dados entre idiomas (como P / Invoke), mas também no nível de bytes de como essas estruturas de dados podem ser usadas, o que não é uma prática comum. C # na minha experiência.
fonte