¿Cuál es la mejor manera para que un programador competente aprenda rápidamente un nuevo idioma?

Usualmente hojeo la descripción del lenguaje, inhalo todo el concepto, luego voy y escribo un código y borro los detalles del camino.

Si ha aprendido Python y Swift, ya ha aprendido dos lenguajes de nivel de script. C # también se encuentra en el mismo nivel, mi consejo es que amplíe su cartera y pase de los scripts de mierda que no deberían hacer nada más que la configuración y el flujo de datos al nivel de hacer mierda.

Aprender C.

Y después de eso cavar durante algún tiempo en la Asamblea. He publicado hoy, de nuevo, una breve introducción a eso. No aprendes nada sobre computadoras a nivel de scripting. Cualquier cosa.

Los scripts son realmente malos para enseñarte eso. Tienes que ir a C. No hagas C ++, solo ve a C. Estarás contento con eso. Al principio es un poco menos conveniente, porque los scripts son todo sobre conveniencia, pero finalmente tienes un lenguaje en tu cartera que hace las cosas mal.

C # es un callejón sin salida. Terminas usando la plataforma de Windows y no puedes dejar eso. Mono es la variante de Linux, pero verá que tantas bibliotecas y paquetes están vinculados a la plataforma de Windows, que este idioma no tiene futuro para usted. Tienes 15 años. Es probable que en 10 años ya no haya Windows, ya que hoy ya no hay Mac OS9.

Consiga un buen funcionamiento de Linux, como Kubuntu | Computación amigable

Eso es mucho para aprender, abierto y amigable, y puedes mirar debajo del capó. La programación es mucho más fácil y todo el sistema es amigable con el desarrollo.

A tu edad también comencé con un lenguaje de nivel de script. Eso fue Básico (muy bien, debería echarle un vistazo al proyecto Gambas Almost Means Basic de hoy). Bueno, dejé eso para la Asamblea y trabajé con eso (y Básico para el nivel de script) durante varios años.

E hice trabajos a tu edad con eso. Trabajos reales de programación reales. Pero realmente tienes que dejar (¡no abandonar!) El nivel de script. Si estás aprendiendo C, echa un vistazo a Lua como tu nuevo nivel de script. Porque todas las secuencias de comandos solo tienen sentido si tiene un nivel de hacer mierda en su cartera de idiomas.

Y desde C Lua es el mejor lenguaje de scripting, porque puedes expandirlo con código real. C enlaces perfectamente arriba y abajo. Lua enlaza hacia arriba y hacia abajo. Y desde C puedes bajar fácilmente a Asamblea.

Esos tres niveles hacen aplicaciones profesionales. Python es solo un prototipo, es genial para crear prototipos, pero eso es todo. Swift está jodidamente vinculado a Apple, realmente aprendí a odiar los idiomas cerrados por el sistema. C # es la misma mierda.

No vayas alli Ese es mi consejo. Y si desciendes a un ensamblado de terminaciones de metal y terminaciones simples en C de mierda, realmente aprendes algo.

Por cierto, C es la forma en que trabajas con Arduino y Raspberry Pis. Puedes usarlo en cualquier lugar, en cualquier lugar y es más rápido. Lo único más rápido que C es el ensamblaje puro.

No me creas, solo soy el chico promedio en Internet, mejor que te veas a ti mismo: The Computer Language Benchmark Game. Siempre te ves a ti mismo.

Quieres poder Quieres eficiencia Quieres hacer la mierda. Quieres C.

Y eres lo suficientemente joven para C y Asamblea. Eso se pondrá mucho más difícil más adelante. La mayoría de los adultos que conozco no pueden aprender Assembly y ya no pueden aprender C porque han perdido la capacidad de entender la máquina subyacente, el hardware. Son matones vinculados a nivel de script y limitados para siempre, marcados y chamuscados. La abstracción mata a los buenos programadores; Un ingeniero conoce su máquina.

A tu edad, las puertas siguen abiertas.

Para toda la familia de lenguajes estilo C / Pascal, debería poder averiguar la mayor parte de lo que necesita saber acerca de la sintaxis de idiomas mirando un par de ejemplos si, como dice, es competente con otros 3 idiomas en Esa misma área general. La extraña construcción sintáctica desconocida, por ejemplo, LINQ o eventos en el caso de C #, puede simplemente mirar hacia arriba cuando se encuentre con ellos.

La sintaxis de aprendizaje solo constituye una parte muy pequeña de lo que necesita saber para ser competente en un idioma de todos modos; En su mayoría, necesitará familiarizarse con la biblioteca estándar que, en el caso de C #, puede encontrar documentada aquí: .NET Framework Class Library, así como con los idiomas comunes, el estilo y los que solo puede aprender utilizando el lenguaje para Hacer cosas e interactuar con la comunidad.

Sería un poco diferente si estuviera aprendiendo un idioma que realmente hace algunas cosas fundamentalmente diferentes, como un idioma de la familia Lisp o Haskell, por ejemplo, pero al parecer ese no es el caso aquí.

Creo que el mejor camino general es comenzar con algo que se construye (un proyecto de muestra, idealmente uno cercano a lo que se quiere crear) y comenzar a codificar.

Aprende sobre la marcha. Tener un manual de referencia o página web cercana. Mira las cosas como las necesites. No se avergüence de buscar en StackOverflow cómo hacer las cosas. Al mismo tiempo, no hagas nuevas preguntas a menos que ya hayas buscado.

Para C #, se beneficiará mucho de un buen IDE. VS Code tiene complementos de C # y se ejecuta en todas partes, pero Visual Studio en Windows le proporcionará la mejor experiencia con C #.

Si estás en Mac, también hay un producto de Visual Studio para Mac, que no es un puerto de Visual Studio, sino algo propio. Todos tienen versiones gratuitas (VS Code es gratis y de código abierto).

La regla general sobre aprender a codificar es simplemente codificar. ¿Quieres aprender X? Ve a escribir un código en X. Y no tengas miedo de no entenderlo todo de inmediato.

Buena suerte.

Si ya eres un programador competente, solo usa C # para escribir tu próximo proyecto, lo tomarás fácilmente.

C # no es tan diferente a los lenguajes que ya conoce, la mayoría de la sintaxis es la misma, es decir, C # tiene “es” en lugar de “instanceof” en Java, pero si, mientras que, etc., por supuesto, son lo mismo. C # también tiene similitudes superficiales con Python, puede acceder a HashMaps / Dictionaries de la misma manera que Python, no tiene que usar métodos de “obtención” como en Java.

No es un gran misterio para C #, simplemente escriba su próximo proyecto en él y recójalo a medida que avanza.

C # tiene cosas como LINQ, que es bastante inusual, especialmente no me gustan, pero probablemente tengas la idea básica en un día o dos.

Descubrí que la búsqueda de tutoriales sobre el nuevo lenguaje adaptado para programadores con experiencia en el idioma que ya conoce, hace que entienda el nuevo idioma mucho más rápido. Di que quiero aprender C ++. Como alguien que ya era competente en Java, busqué en Google “C ++ para programadores de Java”, y tuve tutoriales muy breves, directos al punto que me enseñaron C ++, haciendo referencia a las similitudes de Java y mostrando los diferentes aspectos de C ++ que necesitaba más. Tiempo para entender y captar, como punteros. En unas pocas horas ya estaba haciendo con éxito algunos ejercicios de pequeña muestra en C ++. Creo que ese es el camino a seguir.

Por lo tanto, asumiendo que usted sea competente en PHP y quiera aprender Python, le recomiendo que busque los tutoriales de “Python para desarrolladores de PHP”. Una cosa más, practica mientras aprendes.

En primer lugar, debe especificar, ¿por qué necesita aprender un nuevo idioma? ¿Quiere como ejemplo aprender un nuevo paradigma de programación como: programación funcional o nueva programación orientada a objetos? Después de eso conoces el concepto de programación de otros. Puede pasar la primera sintaxis de lectura y sentirse más cómodo con el idioma, ya que se tomará un tiempo para obtener los buenos sentimientos. Después de eso puedes hacer una pequeña aplicación y resolver algunos problemas. Puedes echar un vistazo a: C # Tutorial

Por fin, y es importante, tómese su tiempo para comprender el concepto y lo que sucede en el fondo. También la lógica del compilador y la filosofía.

Un programador competente es aquel que ha aprendido a programar. ¿Un nuevo idioma? Un manual de referencia de idioma o un manual de sintaxis para el idioma. (No aprendes “programación en Python”, aprendes cómo obtener una subcadena en Python; ya sabías que necesitabas una subcadena, desde el carácter 5 al carácter 11, en ese punto del código) porque conocías la programación. )

Consíguelo en una tarea, ya sea teniendo que depurar o modificar una parte del software existente o una asignación de trabajo que requiera el uso de un nuevo idioma.

Por otro lado, a los 15 años, es mejor que te concentres en los fundamentos: matemáticas, ciencias, tal vez jugar con hardware.

En última instancia, al igual que la escritura, la programación tiene que ser ACERCA de algo. Aprender un nuevo idioma es como aprender más palabras de vocabulario: tal vez sea bueno para resolver crucigramas y deletrear a las abejas, pero para escribir, hay que conocer algunos temas.

En lugar de salir a aprender un nuevo idioma. Ve a construir un robot o algo, luego programalo. Si tienes que aprender un nuevo idioma para hacerlo, que así sea.

Simplemente comienza a hacer cosas con él, aprende sobre ello a medida que avanzas. Eso es lo que hice para aprender haskell y lisp, ambos son muy difíciles de aprender idiomas que se aprenden mejor cometiendo errores al principio y, a menudo, en lugar de tomar una clase para ello.

Pero tienes 15 y tu objetivo es C #. Digo, apunte cosas más esotéricas o elementales, como ensamblar y esconder, si quiere entender mejor las computadoras. Comprenderás mejor la programación si has pasado algún tiempo en los extremos.

No es como si tu sustento dependiera de esto, ¿verdad?