Soy bastante competente en C ++. Quiero cambiar a Java (incluido EE) o C # (incluido .Net framework). ¿Cómo puedo hacer el cambio?

Tanto Java como C # son muy similares a C ++. Sin embargo, hay diferencias que tendrá que aprender. Encuentre un sitio web para desarrolladores de C ++ que estén aprendiendo el idioma. Por ejemplo, las dos mayores diferencias al aprender C # de C ++ que tuve que entender es que C # no tiene punteros oficialmente, pero todo es un puntero, excepto las clases integrales, y no existe un destructor. Se trata de objetos de abeto finos donde la única limpieza es la memoria, pero se desmorona mucho si necesita limpiar algún otro tipo de recurso, especialmente si es limitado. En ese caso, debe implementar la interfaz IDisposable en la clase, y cualquier objeto que contenga una de estas clases también debe implementar la interfaz IDisposable. Cualquier objeto que implemente el IDisposable, o se derive de una clase que implementa esta interfaz debe tener la función Dispose llamada en el momento en que se requiere la limpieza. Todas las demás clases no deben tener llamada Dispose. Esto no suena tan mal hasta que te das cuenta de que un pequeño cambio en la parte inferior de una jerarquía de clases puede afectar decenas a cientos de otras clases, y todo el código que se refiere a ellas. C # fue un intento de diseñar ciertas clases de errores fuera del lenguaje. Sin embargo, creó otras clases de errores que son al menos igual de malos en un sistema grande.

No es nada difícil, solo algunos conceptos varían, la mayoría de las cosas que necesita relacionar con C ++.

Lo mejor que puede hacer es desarrollar una pequeña aplicación y aplicar su concepto de C ++ haciendo referencia a la sintaxis en C #.

Con C # también puede aprender WPF (Windows Presentation Foundation), sigue el modelo MVVM, que se usa en muchas aplicaciones en estos días.

Recientemente cambié de C ++ a C #, todavía estoy aprendiendo algo del concepto, pero desde el primer día pude entender el código.

Algunos de los conceptos en C # son: delegados, manejo de eventos, expresión lambda, forma fácil de manejar la interfaz de usuario y sincronización de subprocesos de trabajo.

Una vez que haya aprendido un lenguaje de programación, generalmente no es muy difícil cambiarlo. Probablemente y con suerte ya ha adoptado el “programador” -mindset. Si es bastante hábil en c ++ como dice, no será muy difícil cambiar a otro lenguaje OO. Una gran parte del trabajo como programador es poder encontrar información y usarla. No esperes poder escribir “fluidamente” en Java, por ejemplo, porque habrá cosas que debes buscar. Si no tienes idea de por dónde empezar, entonces quizás deberías estudiar un poco más.