2008-09-23 6 views
6

Dado que C# es en muchos sentidos un derivado directo de Java, me pregunté si había alguna ventaja para aprender Java después de haber aprendido bastante acerca de C#.¿Vale la pena aprender Java cuando ya conoces C# bastante bien?

Nota: Proporcione un asesoramiento claro y directo en lugar de una discusión para mantenerse en línea con las pautas de SO.

Respuesta

0

Absolutamente. Muchos trabajos quieren específicamente Java. Después de haber aprendido Java y ser capaz de expresarlo de manera convincente en su currículum, no tendrá que discutir con RRHH y los reclutadores que no tienen mucha información.

Y ya que ambos son más o menos lo mismo excepto en algunos lugares, es un muy buen retorno de la inversión. Sin mencionar que abre la posibilidad de usar otros marcos.

8

Si desea programar en Java, aprenda Java. Es realmente así de simple.

Los patrones, algoritmos e ideas de diseño no van a ser lo suficientemente diferentes como para que aprender el idioma sea suficiente.

Sin embargo, Java se ejecuta aceptablemente bien en mucho más plataformas que hace C# (aunque con mono que está cambiando) por lo que si desea sumergir su dedo del pie en la plataforma de código agnóstico, podría darle una oportunidad de Java. Se dará cuenta de que es un poco más áspero alrededor de los bordes, pero no como ir a C++ o C

-Adam

4

soy principalmente un tipo Java, pero he hecho un poco de C# aquí y allá. OMI no hay suficiente diferencia entre los dos para realmente brindar un gran beneficio al ampliar su perspectiva de horizontes de programación. En general, cuando estoy buscando aprender un nuevo idioma, quiero encontrar algo que me obligue a mirar un programa desde una perspectiva diferente. La perspectiva de Java es básicamente la misma que C#. Existen algunas diferencias en la forma en que funcionan algunas de las características de lenguaje de alto nivel y las API difieren en algunos lugares, pero en general Java y C# son idiomas OO administrados por memoria, tipados estáticamente.

0

similitudes entre C# y Java le permite conocer java con bastante rapidez. los principios son los mismos, y obtienes una ventaja competitiva cuando buscas un trabajo, o haces tus propios proyectos eligiendo qué plataforma es más apropiada para el proyecto (según el aspecto comercial del proyecto, y la escalabilidad importa, porque puede escalar Java en los servidores de Linux tanto como lo necesite sin costos de licencias adicionales).

0

Conozco Java bastante bien, y tuve que aprender C# para un proyecto de trabajo. Fue muy sencillo, y aprendí mucho sobre ambos lenguajes en el proceso.

Java también ofrecerá toda la función "escribir una vez, ejecutar en todas partes", y abrirá un camino para hacer proyectos de integración basados ​​en servidores Unix/Linux.

+2

* tos * Mono * Tos * – FlySwat

+1

FlySwat, ¿Mono en Linux puede ejecutar cualquier programa de C# escrito con Visual Studio? –

5

La diferencia sintáctica entre los dos no es grande, aunque obtienes una gran cantidad de código específico de .NET como etiquetas [] que no encontrarás en Java. Pero sí encuentro que las API y el enfoque de desarrollo son bastante diferentes. La parte de atrás de cada uno es muy diferente de la otra y en .NET, algunos códigos que son eficientes y funcionan bien pueden no ser adecuados para Java, y viceversa.

He trabajado en ambos, la limitación a la que tendrá que acostumbrarse si trabaja en Java está en los IDEs. Ninguno de los IDE se compara con Visual Studio por la velocidad de desarrollo y la facilidad de implementación. (OMI de todos modos).

Me quedé sin trabajo en algunos proyectos de Java. Aprendes muchas técnicas y metodologías de programación diferentes. Específicamente, sugeriría trabajar en J2EE, la diferencia sin duda le dará la sensación de trabajar con un lenguaje y una tecnología diferentes.

0

La respuesta a esta pregunta se basa más en su propia situación personal que en las similitudes entre los idiomas. Si tiene tiempo para aprender Java, eso es bueno, pero ¿hay algo más valioso que podría estar haciendo en ese momento?

Si se está concentrando en seguir la ruta de Microsoft, no va a ser bueno aprender Java a expensas de perder tiempo para conocer aún más la profundidad en C#, o aprender un producto de Microsoft que podría hacerlo más valioso , como los nuevos elementos en el marco .NET 3.5.

Hay más que suficiente para aprender en el mundo .NET sin aprender idiomas que no están relacionados con su uso en la mayoría de los entornos corporativos.

Ser un generalista le da una perspectiva más amplia en el desarrollo, pero ser un especialista gana dólares más directamente.

1

Aquí hay dos consideraciones.

Si desea aprender para trabajar en un entorno Java, aprender Java es obviamente un paso en esa dirección. Debería ser bastante directo en algunos aspectos ya que las diferencias sustantivas entre C# y Java son relativamente menores. Dependiendo de las tecnologías que esté utilizando, puede haber algunas diferencias de implementación en la pila de soporte que utiliza, pero en términos de lenguaje cruda hay muy poca diferencia.

Sin embargo, si desea aprender Java para avanzar en su desarrollo personal, diría que le conviene dedicar más tiempo a aprender algo que lo estirará un poco más. Un lenguaje como Python, Ruby o Erlang realmente expandirá tus horizontes como programador. Cada uno de estos requiere una mentalidad ligeramente diferente a la que encontrará en Java o C#.

5

Voy a ir con una respuesta diferente a la del resto. Si está escribiendo aplicaciones para la plataforma de Windows, no veo ningún beneficio. La razón por la que digo que es su "trabajo" depende de conocer esa plataforma. Solo puedo suponer que su trabajo depende de eso; de lo contrario, ¿por qué se lo invistió (la esperanza tiene sentido).

Mi sugerencia no es DETENER el aprendizaje, pero APRENDER algo más que le dará una perspectiva totalmente diferente. Específicamente, sugeriría aprender algo dinámico o funcional. Tal vez F # por ejemplo, o darle una oportunidad a Ruby o Python. Creo que es una mejor inversión en el tiempo.

Mi $ .02.

-Keith

3

Siendo un fresco [que conoce bien y C# Java no tanto], voy a sugerir que esto.

Si usted está en busca de un trabajo:

inviertes en el aprendizaje de las diferencias de C# & Java. Esto se debe a que aumentará su valor y disminuirá su tiempo para encontrar un trabajo.

Si usted está en necesidad de un proyecto [que hacer en Java]:

Entonces, es obvio que tiene que aprender bien!

Si usted está en busca de una nueva tecnología:

perder tiempo Dont en Java, vaya para Python, Ruby o Erlang. Esto se debe a que, el 80% tanto C# como Java son iguales y aprenderá solo el 20% restante (como máximo), lo cual creo que es una pérdida de tiempo.