Algoritmo para el desarrollo del aprendizaje [cerrado]

16

Esta es una pregunta bastante general. Conozco un poco de Perl y Python y estoy buscando aprender programación con más profundidad para que una vez que me familiarice pueda comenzar a desarrollar aplicaciones y luego sitios web.

Me gustaría saber de un algoritmo (secuencia de pasos :)) que podría describir mi enfoque hacia la programación de aprendizaje en general. He publicado pequeñas preguntas en Perl / Python y he recibido una gran ayuda de todos.

Nota: - No tengo prisa por aprender. Sé que lleva tiempo y está bien.

Por favor, dé cualquier sugerencia que considere válida. Además, por favor no me obligue a aprender Lisp, Haskell, etc. Soy un principiante.

usuario9057
fuente
¿Hay algún idioma en particular que quieras aprender? Sé que mencionas Perl y Python, ¿es eso en lo que estás buscando entrar?
Jason
Entonces, lo que estás pidiendo es ... ¿qué es exactamente? ¿El proceso por el cual aprendes un idioma específico? ¿Programación en sí misma? ¿Usando qué?
glenatron
Creo que esta es una buena pregunta. Lo he editado para hacerlo un poco más claro.
Gary Rowe

Respuestas:

28

El algoritmo de 11 pasos para aprender un nuevo lenguaje de programación

Actualmente estoy en el proceso de aprender Lisp , y recomendaría el siguiente algoritmo:

  1. Pregunte si vale la pena aprender el idioma y dónde se pueden encontrar buenos recursos. Si los expertos dan respuestas positivas al lenguaje, continúe con el paso 2.
  2. Crea un entorno de programación inicial. Que sea simple: editor de texto y compilador / intérprete. El mínimo indispensable. Considere una cuenta de usuario específica en su máquina con un esquema de color especial para indicar el cambio de mentalidad.
  3. Crea el "¡Hola, mundo!" solicitud.
  4. Aprenda sintaxis general y sentencias de control (if-then-else, repite hasta, etc.) Cree un sandbox para verificar casos de control simples (evaluaciones verdaderas / falsas, etc.). Pruebe todos los tipos primitivos (int, double, string, etc.). Realizar cálculos de moneda. El juego de adivinanzas numéricas (como lo sugiere @Jeremy ) es bueno para esto.
  5. Crear clase (si corresponde) con varios métodos / funciones. Hacer llamadas entre funciones. Aplicar declaraciones de control.
  6. Aprende matrices y colecciones. Cree ejemplos adecuadamente complejos que creen matrices y colecciones de cada una de las clases / funciones / primitivas que están disponibles para usted
  7. Aprender archivo IO. Cree ejemplos de lectura, manipulación y escritura de archivos binarios y basados ​​en caracteres.
  8. Haga más preguntas sobre programación idiomática dentro del lenguaje (punteros, macros, mónadas, cierres, marcos de soporte, entornos de compilación, etc.).
  9. Elija (o adapte su IDE existente) para trabajar en el idioma recomendado.
  10. Escriba una variedad de aplicaciones que le agraden a usted (o su jefe).
  11. Después de 1 año, regrese al paso 1 para otro idioma mientras mantiene su interés en el que acaba de aprender.
Gary Rowe
fuente
1
He encontrado que el juego de "adivinar números" es un gran segundo programa para escribir. (En el paso 4). Le permite aprender sobre enteros, booleanos, entrada / salida de texto, bucles y condiciones.
Jeremy Heiler, el
@ Jeremy Buena sugerencia, la puse ahí.
Gary Rowe
Hola Gary, gracias por las instrucciones detalladas, intentaré mapearlo con Python, muy buena explicación paso a paso, por eso me encanta esta cadena de foros ... @ Jeremy, sí, estoy en ella :)
user9057
esquema de color especial para indicar el cambio de mentalidad , ¿puede arrojar algo de luz sobre esto?
Santosh Kumar
Tiendo a elegir un esquema de color más oscuro cuando trabajo con Lisp, pero uso uno claro para Java. El color me recuerda cambiar mi mentalidad.
Gary Rowe
12
while (stillLearning)
{
    read(some);
    practice(lots);
}
Steven A. Lowe
fuente
4a5 > cross_pollinate(many);
ocodo
2

Por cada idioma que quieras aprender L

  • Paso 1: aprende la sintaxis de L.
  • Paso 2: Escribe un compilador Len tu idioma favorito.
  • Paso 3: Escribe un compilador para tu idioma favorito en L
  • Paso 4: Escribe un gran proyecto idiomáticamente en L
  • Bonificación: asegúrese de que el resultado del Paso 2 sea compatible con el resultado del Paso 4.

Eso debería cubrirlo, contáctenos con un informe de progreso en 10 años .

Si todo lo que buscas es aprender a hacer desarrollo web, y ya conoces a Perl y Python, tienes bastante para empezar. Yo diría que comience a aprender los entresijos de Apache (y específicamente mod_perlymod_python ), y luego practique. Tal vez elija un libro o dos sobre programación CGI, comunicación de red y demás, en lugar de manuales de idiomas específicos.

Como nota final, ser un principiante no es motivo para no aprender Lisp. Ve a ver SICP y las video conferencias . Ninguno de los dos asume ningún nivel de experiencia en desarrollo o computadoras. De hecho, para citar la introducción a las video conferencias

Me gustaría darle la bienvenida a este curso sobre informática. [Lo escribe en la pizarra] En realidad, esa es una forma terrible de comenzar. La informática es un nombre terrible para este negocio. En primer lugar, no es una ciencia [tacha "ciencia"]. Podría ser ingeniería o podría ser arte. [...] Tampoco se trata mucho de computadoras [tacha "computadora"]. Y no se trata de computadoras en el mismo sentido que la física no se trata realmente de aceleradores de partículas. Y la biología no se trata realmente de microscopios y placas de Petri. -Hal Abelson

Inaimathi
fuente
Suena divertido. ¡Nos vemos en 10 años!
Jeremy Heiler, el
¡+1 para el paso 2 escribe un compilador para L! El cerebro ... duele ... tanto ... mucho ... ahora.
Gary Rowe
-2

No quiero decir mucho, excepto dos pasos.

  1. Aprender estructura de datos
  2. Aprenda la introducción al algoritmo

La programación de PS es tu tarea diaria.

Hola 福气 鱼
fuente
En Programadores, se le anima a "decir mucho", no sea tímido :) Dé algunos detalles sobre sus consejos, como recursos, referencias o ejemplos de sus propias experiencias.
Matthieu
-2

La mejor manera es aprender los conceptos básicos / fundamentales de un lenguaje de programación y luego unirse a una empresa como desarrollador junior (contratista). Esta será la forma más rápida de aprender y ganar dinero también por su tiempo;)

jimmydoontec
fuente