Pergunta da entrevista sobre semelhanças/diferenças entre C# e VB.net [fechado]

StackOverflow https://stackoverflow.com/questions/14775

  •  08-06-2019
  •  | 
  •  

Pergunta

Sou desenvolvedor VB.net há alguns anos, mas atualmente estou me inscrevendo em algumas empresas que usam C#.Até me disseram que pelo menos uma das empresas não quer desenvolvedores VB.net.

Tenho procurado on-line tentando encontrar diferenças reais entre os dois e perguntei no crackoverflow.As únicas diferenças importantes são algumas diferenças de sintaxe que são triviais para mim porque também sou desenvolvedor Java.

Qual seria uma boa resposta para um entrevistador quando ele me dissesse que está procurando um desenvolvedor C# - ou perguntas semelhantes?

Foi útil?

Solução

Tive que entrevistar pessoas para alguns cargos de C# e este é meu conselho geral para desenvolvedores VB.Net entrevistando para um cargo de C#:

  • Certifique-se de ter certeza de que está trabalhando em VB.Net.Isso parece óbvio, mas aparentemente não é (na minha experiência).
  • Tente fornecer um exemplo de código, se possível.Eu vi alguns VB.Net (e C#) horríveis escritos por programadores de VB que não pareciam aprender muito na transição para .Net.
  • Ser capaz de escrever em C# durante a entrevista, se solicitado.Sei que não existem muitas diferenças reais entre os dois, mas não quero pagar para você aprender a nova sintaxe.

Para sua pergunta específica:Já fiz esse tipo de pergunta antes e o que queria ouvir era como o sistema e a estrutura subjacentes eram os mesmos.Se possível, fale sobre coleta de lixo, IDisposable, finalizadores, os perigos de blocos de código inseguros, pilha versus heap, etc.Todo o tipo de coisa para mostrar que você realmente entende as complexidades da estrutura .Net.Certo ou errado, a herança do VB traz consigo uma expectativa de falta de compreensão da programação de nível inferior e do Windows em geral (o que, ironicamente, um desenvolvedor c++ teria de um desenvolvedor c#...e assim por diante).

Por último, a forma como você enquadra sua experiência pode fazer uma grande diferença.Se você se posicionar como um desenvolvedor .Net, em vez de VB.Net ou C#, as brincadeiras estúpidas e pseudo-religiosas podem não entrar na conversa.É claro que isso exige que você realmente conheça VB.Net e C# no momento da entrevista, mas essa é uma boa política de qualquer maneira.

A verdade é que se você descobrir que a pessoa que o entrevistou o descarta simplesmente porque você já desenvolveu em VB.Net, provavelmente não será um lugar onde você deseja trabalhar.

Outras dicas

Algumas diferenças (que são mais substanciais do que sintáticas) que às vezes me surpreendem:

  • VB.NET não possui delegados anônimos
  • Blocos de código inseguros não estão no VB.NET

Eu amo C# até a morte, mas invejo os parâmetros opcionais do VB.NET.A automação de escritório em C# é muito, muito dolorosa.

Acho que a verdade será revelada sobre isso:

Sou desenvolvedor de software, a sintaxe da linguagem é a parte final do quebra-cabeça.Ao me contratar, você está contratando alguém com experiência comprovada em resolução de problemas e lógica.Tenho experiência com o ambiente .NET, o CLR e a pilha associada do Windows, incluindo SQL e Windows Server.Não conheço a sintaxe C#, mas, como estou acostumado com a abordagem orientada a objetos, não terei problemas em me familiarizar totalmente com os pontos mais delicados da sintaxe dentro de algumas semanas.Você pode ver nesses exemplos do meu código que sou um desenvolvedor experiente. Garanto que a transição será perfeita.Já comecei a aprender o idioma, não tive problemas até agora.

@DAC - VB agora (em .net3.5) tem suporte para lambdas:

Function(x) x.ToString()

Em uma entrevista, eu diria que entender o CLR e o que o código realmente faz é o que é importante, e que você ficará feliz em codificar qualquer um deles (supondo que sim).

Também adoro C # até a morte, mas as diferenças não são apenas de sintaxe.Há lugares onde o VB vence HANDS down

  1. Parâmetros opcionais
  2. Ligação tardia

Trabalhar com COM a partir de C# pode ser muito frustrante.(O que não quer dizer impossível!)

Sinceramente?Se você também é um desenvolvedor Java, eu começaria com isso.Um desenvolvedor Java com alguma experiência em .NET geralmente causará uma impressão melhor do que um desenvolvedor VB com experiência em Java.Se você puder responder perguntas sobre a diferença entre .NET e Java, você estará em boa forma.

Eu também recomendo que você aprenda a sintaxe C# o mais rápido possível.Se você tem experiência com VB e Java, não demorará muito.

Muitos desenvolvedores têm problemas com o VB e com as pessoas que o utilizam.Válido ou não, você terá que lidar com essa realidade.

VB ou C # são sintaxe apenas diferentes, mas se você estiver aplicando o modo de lógica é o mesmo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top