¿Cuál es una mejor manera de aprender un lenguaje de programación, hacer notas físicamente (en una copia) y revisar o simplemente resaltar conceptos importantes en libros electrónicos y códigos de práctica en IDE?

Gracias por A2A.
Esto depende totalmente de persona a persona como lo señalara el usuario de Quora. Déjame decirte la diferencia entre la forma en que normalmente practico y aprendo cosas y cómo lo hace mi amigo. Así que tengo a este amigo y él es un programador competitivo extremadamente bueno, así como un desarrollador de Android muy bueno. Empezamos juntos hace dos años con una programación competitiva.

En aquel entonces no teníamos ni idea de qué es realmente la programación competitiva o cómo deberíamos practicar las cosas. No había nadie para guiarnos en ese entonces. Empezamos haciendo preguntas aleatorias de CodeChef. Desde el principio, tenía una habilidad especial para resolver problemas relativamente más rápido que yo y con una precisión muy alta. En solo 5 meses, resolvió un problema de programación dinámica y su solución se clasificó entre las 10 mejores soluciones para ese problema en el concurso largo de Codechef. Él y yo nos quedamos impactados. Ni siquiera entendí el maldito problema y él solo lo resolvió.

Sin embargo, los dos pronto nos dimos cuenta de que todavía necesitamos aprender algoritmos para poder resolver problemas avanzados y competir con algunos de los mejores programadores. Porque no todos los problemas son ad-hoc. Solía ​​agarrar las cosas muy rápido. Por lo general, se pegan a su mente. Todavía recuerdo que solía citar ejemplos de concursos anteriores cuando discutíamos algunos algoritmos. él era como

“Sachin yaaré a Codechef Junio, largo concurso ke ek pregunta ke jaisa hai. Es algo así como resolver ho jayega”.

Traducción: “Sachin dude, hay una pregunta similar de Codechef junio largo concurso. Se puede resolver por este algo”

Esto fue en algún lugar en diciembre de ese año y yo estaba como

¿Cómo demonios te acuerdas de la maldita pregunta? Aprendió leyendo algoritmos, comprendiéndolos y luego practicando preguntas. Yo, por otro lado, soy todo lo contrario.

La gente generalmente me llama “hacedor de notas” porque hago muchas notas sobre muchas cosas que leo. Me encanta escribir algoritmos y sus explicaciones en mi cuaderno y así es como recuerdo cosas. A veces simplemente escribo algunos puntos clave para ser recordados por ese algoritmo. Demonios, incluso escribo explicaciones para algunos problemas difíciles para poder referirlos en algún lugar de la línea y, créeme, los remito. Así que todo depende de ti mi amigo. En caso de que sientas que tiendes a olvidar cosas fácilmente como yo, entonces escribe algunas cosas. Lo que sea que haga que el contenido se pegue a tu mente.

La gente generalmente dice que juro cosas de esa manera. Sin embargo no estoy de acuerdo con ellos. Después de todo, los enemigos odiarán, ¿verdad?

Así que haz lo que más te convenga. Solo mantén la calma y sigue codificando !!

Gracias por A2A.

Eso depende de persona a persona. Diferentes personas tendrán diferentes enfoques para aprender nuevos conceptos. Lo más importante es la cantidad de trabajo que dedicas a aprender un idioma a través de la práctica. Es un hecho bien conocido que “la práctica te hace perfecto”. y esto se aplica a la programación en su totalidad. Para cada concepto, resuelva todos los problemas o programas que pueda en el idioma que está aprendiendo y utilizando las funciones del idioma que está aprendiendo.

Por ejemplo: – Suponga que está aprendiendo Python y necesita escribir un programa para encontrar los duplicados con sus frecuencias. Ahora puedes acercarte a esto de diferentes maneras. 1. Escribe tu propio algo. 2. Utilice Conjuntos en Python 3. Usando la función Contador del módulo de colecciones.

Normalmente, se sugiere que escriba su propio algoritmo durante la fase de aprendizaje, pero ya que está aprendiendo un nuevo idioma, le recomiendo que haga el mismo programa de todas las formas posibles y que también utilice la función Contador.

De esta manera, no aprenderá nuevas características del lenguaje, sino que también desarrollará conceptos.

Si desea practicar una colección de programas, puede consultar algunos ejercicios de libros de texto estándar o resolver problemas en el entorno de Judje en línea. Ahora bien conocidas plataformas de Programación Competitiva en línea como HackerRank, HackerEarth, TopCoder, CodeChef, SPOJ pueden ser difíciles al principio ya que se enfocan en problemas algorítmicos o matemáticos. En tales casos, recomiendo a las personas que comiencen a resolver preguntas de http://urionlinejudge.com/
La razón es que los problemas se han organizado muy bien y de manera progresiva, lo que le ayudará a mejorar sus habilidades.

Espero que ayude. Happy Hacking 🙂

A2A

Las vistas cambian de persona a persona,
personalmente no hago notas físicas, y confío principalmente en Google (sitios web como stackoverflow).
Creo que la codificación es la mejor manera de ir. Practica tantos códigos como puedas en IDE.
Si aún necesita notas, siempre puede usar hojas de trucos, hay muchas disponibles en Internet.

Consejo:-
Si le gusta mantener notas físicas, practique todos los programas en IDE, obtenga una copia de la misma y luego escriba todos los puntos importantes en la misma impresión para futuras referencias. Podría ayudar.

Espero eso ayude

Visualiza los cambios de persona a persona.
Te contaré sobre mi experiencia. Nunca aprendí ningún lenguaje de programación con el primer método. Apenas hice notas para aprender un idioma. Siempre he estado más inclinado hacia la parte de implementación.
Te contaré cómo aprendí algunos idiomas.
C / C ++: Implementé diferentes estructuras de datos y algoritmos.
Python: Hice mi propio editor de texto.
JavaScirpt: construí mi propia extensión de Google Chrome.
Java: hice un poco el desarrollo de Android.
Lo que creo que ser muy teórico y no centrarse en la implementación no te permite aprender bien el idioma.
Por lo tanto, te recomiendo que practiques implementando.
Feliz codificación 🙂

Diferentes formas funcionan para diferentes grupos de personas. Tomar notas y revisarlas no lo ayudará si nunca practica la escritura de código en el sistema real.

La programación se aprende mejor haciendo. Así que primero familiarícese con la sintaxis básica del lenguaje y comience a programar. Escriba un código, lea un código más escrito por otros pueblos y continúe de la misma manera

No hay uso de hacer notas. (y créanme en esto porque comencé a aprender de esta manera y descubrí que era inútil).
Aquí están las razones según yo (muy subjetivas):
1. Cuando uno toma notas, pone demasiado énfasis en consumir todos los aspectos del lenguaje. Resulta que no es necesario memorizar todos los aspectos del lenguaje antes de que uno comience, un pequeño subconjunto es bueno. También memorizar mucho dificulta el recuento de cosas. Uno necesita memorizar un pequeño número de características, aplicarlas hasta que se vuelvan casi autónomas y luego pasar al siguiente conjunto de características.
2. Nunca me referí a ninguna de mis notas de idioma. Hay demasiadas cosas a solo una búsqueda de Google de distancia.

Hablando francamente, ni hice una nota física ni realicé el libro electrónico. Utilicé eBook. En primer lugar, dibujé lo que tengo que aprender. Implicaba mucha práctica. Primero aprendí a escribir las sintaxis y luego, lo que sea que mi mente me preguntara, cómo puedo hacer esto, solo consulté el libro electrónico y lo logré. Tenía una ventaja en matemáticas, así que no me preocupé por la lógica. Sólo quería aprender las funciones específicas, etc. Y, aprendido.

Entonces, solo necesitamos averiguar cuáles son las cosas que queremos aprender al principio. No hay necesidad de centrarse en todo a la vez. Prioridad sabia. La práctica es la palabra clave. Cuanto más practiques tanto aprenderás. No hay necesidad de aprender todo primero y luego comenzar a codificar. Durante la codificación incluso podemos referir el eBook. Entonces, solo repasar los básicos y saltar a la programación. Y, sigue aprendiendo!

¡Buena suerte!

Ambos funcionan igual. El ex no requiere que uses tu computadora portátil o teléfono inteligente, pero luego lo hace.