Entre C # y Java, ¿cuál es el mejor lenguaje de programación para aprender programación orientada a objetos, estructuras de datos y algoritmos? ¿Por qué?

He estado trabajando con C # durante varios años. También trabaje con Java para ciertos proyectos.

Muchas veces me encuentro mirando las extensiones de archivo, o en la parte superior de la definición de clase, buscando la palabra clave se extiende para poder saber con qué idioma estoy trabajando. Porque los 2 idiomas son muy similares.

Si solo quieres aprender OOP y algoritmos para divertirte, cualquier idioma sería suficiente.

Si desea llevarlo más lejos y encontrar un trabajo, incluso una carrera profesional, haría un poco más de investigación de mercado y averiguaría qué idioma tiene más demanda en su área.

Por ejemplo, me encontré con una gran demanda porque había una gran escasez de desarrolladores de .NET en Michigan. Si hubiera elegido Java, como mi idioma principal, habría encontrado una ligera dificultad para encontrar un trabajo.

Le recomiendo que comience a buscar en las bolsas de trabajo lo que se demanda en su cuello de bosque.

En primer lugar, tengo una visión sesgada a favor de C # cuando se trata de C # frente a Java.

Primero aprendí a programar con Java, seguido de C ++ y luego C #. Esto es lo que puedo decir, C # se basa en gran medida en Java con cierta sintaxis de C incluida.

Si todo lo que quiere hacer es aprender OOP, entonces C # podría ser una mejor manera de hacerlo (si se limita a esas dos opciones). Los marcos que utilizan estos dos lenguajes para crear aplicaciones de escritorio requieren mucho uso de objetos, pero encontrar documentación actualizada para una versión específica de C # es mucho más fácil.

Las características cambian con el tiempo, algunas se agregan y otras se eliminan. El sitio web msdn facilita el cambio a la documentación de la versión .NET que está utilizando. No puedo decir lo mismo sobre Java. Además de eso, hay algunos marcos predeterminados que ya están integrados con C # que también están bien documentados en msdn. Si usa Java y necesita usar un marco adicional para su programa, las dos opciones más probables para un IDE serán NetBeans o Eclipse. No puedo hablar sobre NetBeans, pero tengo algunas experiencias realmente malas cuando se trata de encontrar la documentación correcta para la versión de Eclipse que estaba usando. Todo el aula tiene este problema. Esto fue hace más de dos años, por lo que pueden haberlo solucionado. Pero, elegiría C # sobre Java.

Creo que esta pregunta es un poco complicada desde la perspectiva de pedirle a la gente que defina qué se entiende por “mejor”. Mi objetivo es tratar de responder a su pregunta sobre la base de la premisa “¿Es C # o Java adecuado para aprender OOP, estructuras de datos y algoritmos”?

Habiendo establecido esa suposición, esta pregunta es algo más razonable, al menos para mí. Entonces, desde una perspectiva OOP, diría que funciona considerando las fuertes similitudes en la sintaxis y el concepto del lenguaje. En cuanto a las estructuras de datos y los algoritmos, no veo una diferencia en el nivel de expresividad de estos 2 idiomas, sin embargo, estos dos idiomas son bastante verbosos, a veces, y a veces aparecen algoritmos “complicados” porque la lógica es complicada debido al ruido en la sintaxis del lenguaje de programación.

Espero que esto ayude.

Creo que deberías ir con C #. Porque msdn tiene una enorme base de datos que tiene una explicación de cada clase de función / métodos, etc. de C # .Net y un foro en constante actualización para discutir. El IDE para C # es realmente bueno. Y la programación de Windows o el diseño de la interfaz es muy fácil con C #. Lo que quiero decir es que C # es más fácil de aprender y tiene una mejor funcionalidad que Java. Nunca aprendí Java, pero puedo desarrollar aplicaciones de Android usando eclipse, porque conocía C #. Si aprende C # y luego migra a Java, encontrará una sintaxis similar a C #.

aprenda java primero, ¡ya que es más fácil! aunque las características avanzadas de core java no son tan fáciles de entender al principio. ¡luego vaya a c # para hacer que lo básico sea concreto! C # complica algunas cosas, pero a medida que avance, lo verá porque es más compacto. y otra cosa es que el estudio visual IDE! es mucho mejor que los IDE de Java como eclipse o Netbeans, etc.

Entre ambos, elijo Ninguno.
OOP es maltratado por Java y su variedad de desarrolladores en su entorno virtual empresarial.
Después de aprender, practicar y escribir un montón de códigos python, llegué a apreciar realmente la POO. Y cada vez que vea cualquier FactoryFacadeAdapterBuilder, querré vomitar …
Sé que mi punto de vista es terrible, y confía en mí, JVM está haciendo mucho bien en otros mundos, pero no puedo entender Java.
Y si desea aprender estructuras de datos y algos, use un lenguaje claro y conciso como Python o Ruby, para que escriba menos y haga más.
PD: Aprendí Java para el desarrollo móvil (Android) y para eso voy a usarlo.

C # Última característica disponible. Puedes revisar mi blog

C # 6.0 Nueva característica (VS 2015)?

Gracias a todos por responder mi pregunta. Decidí seguir aprendiendo C #. Creo que es más interesante Además, Visual Studio me obligó a elegir C #, ya que solo necesito instalarlo y puedo comenzar a trabajar de inmediato. No necesito preocuparme por los problemas de ruta y entorno con Visual Studio. Gracias de nuevo por tomarse el tiempo.

Preferiría Java, ya que era fácil de aprender, fácil de implementar y tenía una gran demanda. El mejor libro que he leído es Data Structures and Algorithms in Java de Michel T. Goodrich, Roberto Tamassia y Michael H. Goldwasser.

Esto le ayudará más. Comparación de C Sharp y Java | Wikiwand

More Interesting

He practicado más de 300 preguntas de algoritmos en LintCode y LeetCode. He estado desempleado durante casi 9 meses y obtuve 8 entrevistas y todas fallaron en la prueba de codificación. Todavía no puedo recibir ninguna oferta. ¿Qué tengo que hacer?

¿Existen campamentos de programación a tiempo completo en Europa para mejorar la programación o las estructuras de datos y habilidades de algoritmos?

¿Existe un algoritmo eficiente para enumerar todos los ciclos dentro del Componente fuertemente conectado de un gráfico dirigido?

Si factoro números grandes en [matemáticas] O (n ^ 2) [/ matemáticas] ¿puedo ganar dinero con eso?

¿Qué problemas comunes se resuelven con la programación dinámica?

¿La matriz de Java de primitivas se almacena en la pila o el montón?

¿Debería evitarse siempre goto / JMP?

Cómo dominar algoritmos, estructuras de datos y desarrollar un enfoque de resolución de problemas

¿Por qué el cifrado de la función Algoritmo de hash no puede transformar el texto cifrado en texto sin formato?

¿Por qué un árbol de segmentos necesita una matriz de tamaño 4n? ¿Por qué no 2n-1?

¿Cuáles son todos los algoritmos que debe saber para funcionar bien en Codeforces?

¿Qué es el "peso" en el algoritmo de Facebook?

Digamos que encontramos un algoritmo que resuelve problemas de NP-Complete en tiempo polinómico pero no podemos probarlo. ¿Cuáles serían las consecuencias?

¿Es cierto que si entendemos los algoritmos podemos entender todos los programas difíciles de todos los idiomas?

¿Puedo diseñar una estructura de datos tipo pila que haga popMin () en tiempo O (1)?