que - Pregunta de la entrevista sobre C#y VB.net similitudes/diferencias
que puedo desarrollar con c# (8)
He sido desarrollador de VB.net desde hace algunos años, pero actualmente estoy presentando solicitudes a algunas compañías que usan C #. Incluso me han dicho que al menos una de las compañías no quiere desarrolladores de VB.net.
He estado buscando en línea tratando de encontrar diferencias reales entre los dos y he preguntado sobre crackoverflow. Las únicas diferencias importantes son algunas diferencias de sintaxis que son triviales para mí porque también soy un desarrollador de Java.
¿Cuál sería una buena respuesta para un entrevistador cuando me dicen que están buscando un desarrollador de C #, o preguntas similares?
¿Sinceramente? Si también eres un desarrollador de Java, yo diría eso. Un desarrollador de Java con cierta experiencia en .NET generalmente hará una mejor impresión que un desarrollador de VB con experiencia en Java. Si puede responder preguntas sobre la diferencia entre .NET y Java, debería estar en buena forma.
También te recomiendo que aprendas la sintaxis de C # ASAP. Si tienes experiencia con VB y Java, no llevará mucho tiempo.
Muchos desarrolladores tienen problemas con VB y las personas que lo usan. Válido o no, tendrás que lidiar con esa realidad.
Algunas diferencias (que son más sustanciales que la sintáctica) que me atrapan adecuadamente a veces:
- VB.NET no tiene delegados anónimos
- Los bloques de código no seguros no están en VB.NET
Creo que la verdad saldrá de esto:
Soy un desarrollador de software, la sintaxis del lenguaje es la parte final del rompecabezas. Al emplearme, obtienes a alguien con experiencia demostrable en resolución de problemas y lógica. Tengo experiencia con el entorno .NET, el CLR y la pila de Windows asociada, incluido el servidor SQL y Windows. No conozco la sintaxis de C #, pero, estoy acostumbrado al enfoque orientado a objetos, no tendré problemas para ponerme al día completamente sobre los puntos más finos de la sintaxis en un par de semanas. Puede ver en estos ejemplos de mi código que soy un desarrollador experimentado, le aseguro que la transición será perfecta. Ya comencé a aprender el idioma, hasta ahora no he tenido ningún problema.
Tuve que entrevistar personas para algunos puestos de C # y este es mi consejo general para los desarrolladores de VB.Net que se entrevistan para una posición de C #:
- Asegúrese de tener claro que ha estado trabajando VB.Net. Esto parece obvio, pero es algo que aparentemente no es (en mi experiencia).
- Intenta dar una muestra de código, si es posible. He visto algunos VB.Net (y C #) horribles escritos por programadores de VB que parecían no aprender mucho en la transición a .Net.
- Puede escribir en C # durante la entrevista, si se le pregunta. Sé que no hay muchas diferencias reales entre los dos, pero no quiero pagarte para aprender la nueva sintaxis.
Para su pregunta específica: He preguntado ese tipo de pregunta antes y lo que quería escuchar era cómo el sistema subyacente y el marco eran los mismos. Si es posible, hable de la recolección de basura, IDisposable, finalizadores, los peligros de los bloques de códigos inseguros, stack vs heap, etc. Todo el tipo de cosas para demostrar que realmente entiende las complejidades del framework .Net. Correcto o incorrecto, el legado de VB trae consigo la expectativa de una falta de comprensión de la programación de nivel inferior y las ventanas en general (que, irónicamente, un desarrollador de c ++ tendría de ac # developer ... y así sucesivamente).
Por último, la forma en que marco su experiencia puede hacer una gran diferencia. Si se posiciona como un desarrollador de .Net, en lugar de VB.Net o C #, la burla estúpida y pseudoreligiosa no puede entrar en la conversación. Por supuesto, esto requiere que conozca VB.Net y C # en el momento de la entrevista, pero esa es una buena política independientemente.
La verdad del asunto es que si descubres que la persona que te entrevista te escribe porque ya has estado desarrollando en VB.Net, es probable que no sea un lugar donde quieras trabajar de todos modos.
@DAC - VB ahora (en .net3.5) tiene soporte para lambdas:
Function(x) x.ToString()
En una entrevista, diría que comprender el CLR y qué es lo que el código realmente está haciendo es lo importante, y que está contento de codificar cualquiera (suponiendo que lo esté).
Me encanta C # hasta la muerte, pero envidio los parámetros opcionales de VB.NET. La automatización de oficinas en C # es muy, muy dolorosa.
También soy un C # talador hasta la muerte, pero las diferencias no son solo sintaxis. Hay lugares donde VB gana HANDS
- Parámetros opcionales
- Enlace tardío
Trabajar con COM desde C # puede ser un asunto muy frustrante. (¡Lo que no quiere decir imposible!)
VB o C # son sintaxis solo diferentes, pero si aplica la forma lógica es la misma.