¿Debo aprender el idioma primero y luego resolver problemas o hacerlos simultáneamente?

En mi opinión, aprender tu primer lenguaje de programación por sí mismo sin alguna aplicación directa es increíblemente difícil. Es como escribir código sin pruebas. Es como correr un maratón con los ojos vendados.

Los concursos de programación son pruebas gratuitas que ayudan a facilitar el proceso de aprendizaje.

Aprendí mi primer idioma (C ++) revisando las páginas de capacitación de USACO hace tantos años. Y tengo que decir que estos graduadores automáticos para los concursos de programación realmente hacen que el aprendizaje de la programación sea muy accesible para los recién llegados.

En cierto modo, aprender a programar a través de concursos es básicamente lo más cercano que se puede llegar a aprender a programar “puro” y no aprender nada más: solo por diversión y completamente inútil. Como pura matemática. El aprendizaje a través de otros medios (por ejemplo, webdev, aplicaciones móviles, pasantías) está plagado de tantas aplicaciones prácticas. A veces la gente incluso te paga por esto. Puaj

Cuando te refieres a “resolver un problema”, estás hablando de un proyecto personal o de un trabajo. En el trabajo no puedes permitirte un placer para resolverlo, pero si no sabes algunas cosas básicas, ¿dónde empiezas a buscar?

Se trata de la resolución de problemas en su esencia. Aprender a leer el código escrito por otra persona, revisar gits y wikis, y decidir qué lib / framework te ayuda a trabajar menos o al menos más rápido es la clave del éxito.

Gasté gran parte de mi “aprendizaje” buscando nuevas pilas de tecnología, bibliotecas, marcos, etc.

Y por último, ¿puedo sugerir C #? Sé que es MicroSoft, pero el lenguaje en su núcleo se siente menos complicado que Java

Aprendemos programación para resolver problemas, así que sigue resolviendo mientras aprendes.
– Puedes mirar soluciones existentes a problemas comunes.
– Cuando aprendas nuevas habilidades, intenta resolver los problemas que ya resolviste pero de una mejor manera.
– Participe en los concursos de programación y lea los editoriales de los problemas que pudo y no pudo resolver durante los concursos.

No puedes aprender el idioma completamente. Los lenguajes de programación consisten en un conjunto básico de instrucciones (que en realidad se pueden aprender por completo) y una gran cantidad de funciones y bibliotecas que lo acompañan. Cada vez que incluye una biblioteca, hay un nuevo conjunto de funciones que, básicamente, no es necesario que se aprendan por completo, pero son muy útiles para la programación. Mucho de esto solo viene a tu mente con experiencia. El resto lo está buscando.
Intenta resolver un problema y aprende sobre la marcha. Leer codigo Lee sobre las soluciones en otros lugares y descubre lo que te estás perdiendo. En ese sentido, es como aprender un lenguaje natural. Nunca comenzaría a aprender, digamos, el francés, leyendo todo el diccionario y memorizando. Tampoco aprenderías memorizando toda la gramática. Aprendes lo básico y empiezas a hablarlo, y cuando llegas a necesitar estructuras más complejas (digamos tiempo pasado o futuro), descubres cómo funciona y lo practicas.

La mejor manera de mejorar tanto sus habilidades de lenguaje como las de resolución de problemas es aprender y practicar simultáneamente. Te golpea un problema, significa que estás aprendiendo. Intente leer las soluciones de otros, aprenda lo que hicieron, ahora implemente lo que entendió y trate de resolver ese problema. Leer el código te ayudará a familiarizarte con diferentes enfoques.

Sé que esa sensación de haber sido golpeado por un problema durante horas no significa que seamos incompetentes. Simplemente significa que tenemos que desarrollar el conocimiento suficiente para resolverlo. Y ese conocimiento viene por la experiencia que viene a través de la práctica.

Siga este método simple siempre que esté atascado con un problema de programación. Averigua dónde te faltan …

Problema en sí : ¿tiene algún problema para comprender el problema en sí? Tal vez, ha elegido algo que pasa por encima de su cabeza, fuera de su zona de confort. Trate de aprender las piezas que faltan para comprender el problema o intente una más fácil. Luego, mejorar gradualmente.

Implementaciones específicas del idioma: usted sabe que debe implementar ciertas estructuras de datos para llegar a una solución. Si este es el caso, entonces lo estás haciendo bien, consulta la documentación o los tutoriales y descubre cómo usarlo.

Todo lo mejor.

Preguntas y problemas.

Desde mi punto de vista, aprender a escribir un lenguaje de programación en particular es algo así como aprender a usar un conjunto particular de herramientas eléctricas. Supongo que, hipotéticamente, podría aprender de memoria para lograr mis limitados objetivos de carpintería siguiendo las instrucciones aprobadas por DeWalt utilizando siempre y solo taladros y lijadoras DeWalt y un martillo; Pero no sería mucho un carpintero. (Lo cual, para ser franco, no lo soy). Para ser un buen carpintero, debo entender las formas y las dimensiones, las juntas y los soportes. Ciertamente, necesito entender cómo usar un conjunto de herramientas para lograr mis objetivos, pero no me perdería en el mar si me entregaran diferentes herramientas, incluso si fueran herramientas muy diferentes, incluso si de repente me obligaron a usar cinceles para eliminar material en lugar de una sierra y pegamento para hacer todas mis uniones en lugar de clavos, debo saber qué es lo que estoy tratando de lograr, y esto se trata de conocer conceptos , no detalles.

En mis dos primeros trabajos, trabajé con idiomas de los que no sabía mucho cuando comencé. Ese no era el punto: el punto era que yo era (como me gusta pensar) un buen programador , y podía captar los detalles del idioma a medida que avanzaba (y antes de dejar cada trabajo, se me consultaba regularmente sobre los detalles del idioma) .

También creo que aprender cosas mecánicas como las estructuras de bucle es frustrante y más difícil a menos que explores de manera simultánea los usos para mostrarte cómo, por qué, cuándo y cuándo no usarlos.

Mejor siga un orden al aprender un código (Capítulos). Después de completar el tema, intente implementar los temas anteriores para simplificar su código, esto aumentará su confianza en su enfoque.
Luego, acerca de los problemas difíciles, ellos (los problemas) en gran parte dependen de la implementación lógica, en ese caso, no se tensen y consideren la forma en que sus compañeros se enfocan normalmente en los programadores convencionales, para comenzar.
“DISFRUTE DEL PROBLEMA, ENTONCES SERÁ PARTE DE SU SOLUCIÓN”.

La codificación del murciélago tiene problemas muy básicos. Pero para los principiantes siempre será difícil. Creo que ya sabes lo suficiente como para intentar los problemas de codificación de murciélagos.

Sí, debes seguir adelante tratando de resolver esos problemas. Después de eso, es posible que desee buscar problemas más difíciles, pero para eso no es suficiente saber el lenguaje, sino que necesitará aprender algoritmos y estructuras de datos. También necesitarás practicar algoritmos en algún sitio como código-fuerzas, etc. También podrás probar uno al lado del otro. Cuando alguna vez te encuentres en un problema, trata de encontrar cómo puedes resolverlo.

En mi humilde opinión, aprender un idioma de manera aislada es casi inútil. Debes resolver algún problema real para poder aprender.