¿Cómo puedo aprender un nuevo idioma rápidamente, dado que conozco varios otros? [cerrado]

14

Un tipo de pregunta que sigue apareciendo en Programmers.SE es cómo aprender un idioma específico, dado que conoce varios otros (generalmente a través de mucha experiencia o educación).

Sin embargo, en algunos casos, es posible que deba ponerse al día rápidamente para conseguir un trabajo, o para un desarrollo personal, o incluso para consultar una nueva plataforma.

Según su experiencia, ¿qué estrategias generales ha usado para aprender un nuevo idioma rápidamente? ¿Hay aspectos específicos de un lenguaje en los que intentas enfocarte cuando comienzas en frío? ¿Qué tipos de recursos te parecen útiles en este proceso?

    
pregunta 6 revsuser8 20.11.2011 - 12:10

8 respuestas

18

Descubrí que la mejor manera de aprender un nuevo idioma es hacerlo, no solo leyendo. Y así, cuando quiero (o necesito) aprender un nuevo idioma, generalmente leo algunos capítulos de un libro de referencia sobre la sintaxis, pero luego me sumerjo y creo algo, en lugar de leer y leer libro tras libro.

Descubrí que a medida que surgen problemas y preguntas, se encuentran respuestas (a menudo en Internet). También creo que esta es la razón por la que la capacitación en el trabajo es tan valiosa, porque la mayoría de las veces produce un producto de trabajo, incluso si se trata de una versión preliminar, por lo que está aprendiendo haciendo.

Aliento a las personas a que solo piensen en lo que les interesa, y se sumerjan en escribir código o crear formularios, etc.

Más adelante, una vez que haya creado proyecto tras proyecto, un buen libro de referencia le enseñará los detalles finos que en este momento puede captar más fácilmente.

Además, los proyectos generalmente comienzan siendo más pequeños y crecen en complejidad, desde la aplicación simple "Hello World" hasta un proyecto pequeño y no muy útil, en adelante a una aplicación completa. En cuanto a en qué aspectos del lenguaje me enfoco, depende del uso aplicado del lenguaje: nunca aprendo cada API o marco para comenzar (como con .NET, por ejemplo). Eso llevaría demasiado tiempo. Aprendo la sintaxis central, luego me ramifico desde allí, investigando cada extensión según sea necesario. Con un lenguaje menos modular, como CSS o XSLT, simplemente aprendo primero las construcciones más populares y añado otras según sea necesario.

    
respondido por el jqueryrocks 21.05.2011 - 21:51
5

Esto funciona para mí:

  1. Lee sobre esto.
  2. Úsalo.
  3. GOTO 1.

Para el paso lea sobre él , trato de seleccionar "la" referencia para el idioma. P.ej. "El lenguaje de programación C". Necesita condensarse, al punto, y construir su conocimiento de manera incremental. Luego lo leí tapa a tapa. Soy un lector rápido y no me detengo en esta primera lectura. Luego volveré y me referiré a puntos específicos mientras trato de usar el idioma. Probablemente pasaré más tiempo en ejemplos de código dentro del libro.

Lo primero que necesitas es la sintaxis. Sin saber si es BEGIN o {o bloquear la sangría, o cómo declarar las variables, no puede escribir nada. El autor usualmente introducirá las partes más importantes primero o tendrá un tutorial que cubre el uso básico del idioma. Es difícil dar pautas más generales porque algunos idiomas son muy diferentes a otros. Lo siguiente es tener una idea general del lenguaje, cuál es la filosofía general, cómo aborda la resolución de problemas dentro del contexto del lenguaje.

Otra cosa a tener en cuenta es el concepto de "usarlo o perderlo". Si no ha usado un idioma por un tiempo, le tomará algún tiempo volver a la velocidad (aunque ese tiempo se acortará con la experiencia). Una vez que obtenga la sintaxis del idioma, necesitará aprender sobre bibliotecas, etc.

Así que es un proceso iterativo. Profundizando en cada iteración. Sin fin. Incluso después de usar un idioma durante 20 años, todavía hay algo que aprender.

    
respondido por el Guy Sirton 21.05.2011 - 22:44
5

Toma un proyecto del mundo real

Tal como lo veo, es más fácil aprender algo cuando en realidad necesitas para aprenderlo. Para mí fue con javascript, donde lo arriesgué al aceptar un gran proyecto con un plazo de dos meses. Fui yo allí todos los días y todas las noches tratando de lograr resultados para este proyecto independiente, y en 1 mes y medio el proyecto se realizó.

También aprendí algo de SQL allí por accidente, luego terminé de aprenderlo en la universidad, y adivinen qué, también me fue más fácil.

Si no quieres arriesgarte ...

La clave real del punto anterior es resolver problemas del mundo real ... pero trabajo mejor bajo estrés (me gusta el estrés, creo que es divertido y podría estar dañado, así que ...) Si no lo hace, solo busque un proyecto de código abierto que le interese y utilice el idioma que desea aprender e intente contribuir. Si su código apesta, puede recibir algunos comentarios dependiendo de la comunidad.

Lo más probable es que progreses con solo estudiar el código.

Obtén todas las referencias que puedas

Eso incluye varios libros, documentación oficial y todas las referencias que puede obtener. Las claves son que, de esa manera, sabrás cómo hacer lo mismo de diferentes maneras.

Otras comunidades, como foros, listas de correo y aquí, también cuentan como referencia.

    
respondido por el dukeofgaming 22.05.2011 - 05:10
2

Hay muchas maneras de aprender un nuevo idioma, pero no todas son igual de eficientes. Encontré que estas tres pautas funcionan mejor para mí:

Haz un mapa de lo que no sabes

Averigüe, por adelantado, lo que necesitará aprender. Encuentre una descripción general o una fuente de documentación general que describa el lenguaje en términos abstractos. A partir de eso, generalmente puede obtener una visión general bastante completa de lo que trata el idioma. Use esa visión general para resaltar áreas que no conoce, pero que se consideran fundamentales para el idioma. ¿Es la recursión de la cola un concepto que necesita aprender para desarrollar realmente el lenguaje? Tal vez necesite conocer su expresión regular mucho mejor, ya que el lenguaje se especializa en la manipulación de cadenas. O, tal vez realmente tengas que ponerte tu Álgebra, ya que muchos de los conceptos en el mapa del idioma directamente de los conceptos algebraicos.

Obtenga buenos recursos para ayudarlo a aprender lo que no sabe

Es posible que desee obtener una buena referencia sobre fórmulas algebraicas, o tal vez solo quiera comprar " Javascript, las partes buenas ". Para algunas curvas de aprendizaje, este trabajo ya se ha realizado parcialmente. Si está intentando aprender C # a partir de un fondo de Java (y viceversa), hay una gran cantidad de publicaciones en blogs y sitios web que identifican las diferencias y contienen referencias / recursos para ayudarlo a aprender.

Asegúrese de que los recursos no sean solo referencias; asegúrese de que incluyan pruebas o ejercicios para ayudarlo a evaluar si ha aprendido un concepto correctamente. Leer acerca de la recursión de la cola es una cosa, y otra cosa es asimilar cómo se implementa en el idioma de su elección.

Construye algo real

Es casi imposible realizar cualquier tipo de aprendizaje real sin un objetivo tangible en mente. Esto es especialmente cierto en el caso de las artes aplicadas, que es el uso del lenguaje de programación. Asegúrese de tener un objetivo real al que aspirar: construir algo suele ser la mejor opción.

    
respondido por el blueberryfields 21.05.2011 - 22:14
1

Identifique el (los) paradigma (s) de programación

Por lo general, identifico cuáles son los paradigmas principales para el idioma. Pienso en los problemas de manera diferente según el paradigma.

Identificar los modismos

Todos los idiomas tienen expresiones idiomáticas. Los modismos varían en tamaño y alcance desde la forma en que se estructura el código, hasta fragmentos de código particulares. Siempre debes probar y usar un lenguaje de idiomas.

Escribir código

Generalmente escribo un código funcional. Cualquier cosa, desde un Primes Sieve hasta aplicaciones web de juguete. Los problemas que elijo generalmente son específicos para lo que pretendo usar el lenguaje.

    
respondido por el dietbuddha 22.05.2011 - 06:25
1

¡Simplemente sumérgete!

Teniendo en cuenta que ya sabes cómo programar y sabes varios idiomas, excepto si ese idioma introduce un cambio de paradigma muy profundo, diría (al mismo tiempo):

  • encuentra un proyecto de mascota para conducirte,
  • y en el programa paralelo algunos rompecabezas

Aprender, practicar, aplicar (hasta que esté satisfecho)

El clásico 99 Prolog Puzzles (aquí, el 99 Puzzles en Scala ) o el Project Euler son generalmente buenos lugares para buscar pequeños rompecabezas para volver a implementar. O aceche alrededor de StackOverflow y vuelva a escribir algunas respuestas agradables en su idioma de destino, tratando de no hacer una reescritura línea por línea, sino algo que capture la esencia de su nuevo idioma.

Aprenda con los intrusos, lea blogs y ensayos al costado para obtener una comprensión más profunda del lenguaje y una idea de las herramientas y las guerras sagradas de su nueva comunidad, y escriba su proyecto de prueba para aplicar su nuevo conocimiento encontrado y habilidades y ver en qué tropiezos te encuentras.

Hablando de comunidad ...

Comparte y expónte. (aunque no demasiado)

Tal vez también desee visitar un grupo de usuarios local, buscar amigos con los que codificar (para obtener una crítica constructiva y no encerrarse en una mentalidad específica), y suscribirse a ese canal de IRC o lista de correo de miedo donde caen extraños palabras acerca de los árboles de AST y escriba palabras filosóficas sobre cómo las mónadas no son mónadas y cómo una vez Conocí a una chica extraña a la que no puedes volver .

    
respondido por el haylem 23.05.2011 - 22:06
0

Sé que esto suena mal, pero comienza a codificar algo, incluso si es una tontería, y usa un montón de Google para las cosas que siguen este patrón:

¿Cómo hago [algo de un idioma] en [otro idioma]

Si las palabras son de uso común, literales citados.

Es una pregunta bastante común que casi las únicas veces que no encuentro una respuesta es cuando encuentro una página que explica por qué no se puede hacer.

    
respondido por el Bill 23.05.2011 - 21:54
0

Como sugerencia específica para el uso del idioma:

Solucionar errores

  1. Encuentre un proyecto de código abierto interesante en el idioma de destino, preferiblemente uno con un rastreador de errores público, desarrollo moderadamente activo y un conjunto de pruebas decente.
  2. Elija un error para corregirlo, preferiblemente uno que le moleste cuando realmente usa el programa.
  3. Averigua por qué el programa exhibe el comportamiento de buggy.
  4. Escriba las pruebas y el código para solucionar el problema.
  5. Enviar un parche en sentido ascendente.
  6. Revisa tu parche hasta que los desarrolladores de upstream estén contentos.
  7. Vuelve al paso 1 o 2.

Este proceso tiende a ser más satisfactorio que escribir otro programa de juguetes, pero es mucho más fácil que comenzar tu propio proyecto completo desde cero. Te expones a algunos de los modismos del lenguaje en su contexto natural, y (con un poco de suerte) la idea de alguien de cómo es un buen código.

Por otro lado, también puede ser extremadamente frustrante, especialmente si eliges un error desagradable, o si los desarrolladores rechazan tu parche sin explicar correctamente por qué.

    
respondido por el eswald 26.09.2011 - 19:32

Lea otras preguntas en las etiquetas