tiempo tarda sirvo ser programar programador programacion para lenguaje desde desarrollador cuanto como cero aprender aprende time-management

time-management - tarda - en cuanto tiempo se aprende a programar



¿Cuáles son las mayores pérdidas de tiempo para aprender a programar? (22)

En el pasado, tuve varios comienzos en falso al enseñarme cómo programar. He trabajado en varios libros (principalmente C y Python), y acabo de aprender la sintaxis sin sentir que podría sentarme y escribir un programa para mí. Cuando intento buscar en los árboles de fuentes de un proyecto en Codeplex o Sourceforge, parece que nunca sé por dónde empezar a leer el código: las dependencias parecen ir en todas direcciones.

Siento que no estoy aprendiendo la programación de la forma en que se hace "en la calle", así que pensé que tomaría un enfoque diferente al preguntar cómo un novato debería aprender a codificar. Si tuviera que aprender a programar de nuevo, ¿qué cosas no haría? ¿Qué pasaste tiempo haciendo que ahora sabes que te desperdiciaron semanas o meses?


Asumiendo que tiene habilidades matemáticas decentes, intente http://projecteuler.net/ Presenta una serie de problemas para resolver la creciente dificultad que debería ser solvente escribiendo programas cortos. Esto debería darle experiencia en la resolución de problemas específicos sin perderse en los detalles de los proyectos de código abierto.


Ciertamente no comenzaría mirando proyectos de software "reales". Como dices, es muy difícil saber por dónde empezar. Esto se debe en gran medida a que los proyectos grandes tienen que ver más con su diseño a gran escala que con los algoritmos individuales o con el flujo del programa; Por un lado, probablemente esté mirando una aplicación de GUI compleja con multi-threading, etc. No hay ningún lugar donde "comenzar" mirando el código.

La mejor manera de aprender a programar es tener un problema que desee (necesitar) para resolver, y luego resolverlo. Pero lo más importante es ESCRIBIR CÓDIGO. Cuando leas libros de programación, haz TODOS los ejercicios. Asegúrate de haberlos hecho bien. No hay sustituto para escribir código. No hay sustituto para atornillar y luego arreglarlo.


Como alguien que solo ha trabajado como programador durante 6 meses, puede que no sea la mejor persona para ayudarlo a ponerse en marcha, pero dado que no fue hace tanto tiempo cuando no sabía casi nada, está bastante fresco en mi mente.

Cuando comencé mi trabajo actual, la programación no iba a ser parte de la descripción de mi trabajo, pero cuando surgió la oportunidad de hacer algo de programación, no podía dejarla pasar.

Pasé aproximadamente 1 mes haciendo tutoriales en la sección Delphi de About.com . Por mucho que la gente discute about.com, los tutoriales de Zarko Gajic fueron fáciles de entender y fáciles de seguir. Una vez que tuve una habilidad básica del lenguaje y el IDE, salté directamente a un proyecto que exporta datos contables para un programa llamado "Adept". Me tomó un tiempo pero llegué allí ...

La mayor ayuda para mí fue tomar un proyecto personal. Desarrollé un bot de IRC en Java para un juego de mierda en 2D llamado Soldat . Aprendí mucho planificando y codificando mi propio proyecto.

Ahora estoy bastante cómodo con Delphi Pascal, SQL, C # y Java. Creo que una vez que entiendes el lenguaje OOP, puedes aprender la sintaxis de otro idioma y es mucho más fácil entenderlo.


Creo que deberías dejar de pensar que has perdido el tiempo hasta ahora. En cambio, creo que tu educación es incompleta, y has dado un paso para el que no estás realmente preparado. Parece que los libros que has leído son útiles, estás aprendiendo las complejidades del lenguaje. Parece que no estás acostumbrado a las herramientas que usarías para empacar ese código para que funcione. Algunos libros cubren ese enfoque en temas como sintaxis del lenguaje, patrones de diseño, algoritmos y estructuras de datos que nunca mencionarán las herramientas que necesita para aplicar esa información. Estos libros son geniales, pero si es todo lo que has tocado, creo que eso explicaría tu situación.

¿Qué entorno de desarrollo estás usando? Si está desarrollando para Windows, debería ser experto en crear proyectos, agregar código, ejecutar y depurar en Visual Studio. Puede descargar Visual Studio Express gratis de Microsoft.

Recomiendo buscar tutoriales como libros que realmente lo guíen a través de la interfaz de usuario del entorno de desarrollo que está utilizando. Busque capturas de pantalla reales con menús desplegables. Mira lo que los tutoriales te guían, y si es algo que no sabes cómo hacer, considera comprarlo. Preferiblemente tendrá un código en el que puede copiar y no escribir, no codificar usted mismo.

Personalmente, no me gustan estos libros ya que puedo anticipar cómo hacer cosas nuevas en VS en función de cómo haría otras cosas. Pero si su entrenamiento es incompleto desde el punto de vista del uso de herramientas, esto podría llevarlo en la dirección correcta.

Probablemente sea más difícil encontrar este tipo de libros tutoriales para el desarrollo de Python o C. Sin embargo, hay un exceso de ellos para el desarrollo de .Net.


Creo que esta pregunta tendrá respuestas muy diferentes para diferentes personas.

Para mí, probé C ++ en un momento dado (tenía unos diez años y ya había estado programando por un tiempo), con un constructor de UI que hace clic y arrastra. Creo que esto fue un error, y debería haber ido directamente a C, a punteros y tal. Porque soy ese tipo de persona.

En tu caso, parece que quieres que alguien te lleve por el camino correcto y te sientas un poco tímido cuando saltas y haces algo por ti mismo. (Has leído varios libros y ahora estás preguntando qué no hacer).

Te diré cómo aprendí: haciendo un montón de diversión, proyectos relativamente cortos, cada vez más en dificultad. Empecé con QBasic (que creo que sigue siendo una excelente herramienta de aprendizaje) y fue allí donde desarrollé la mayoría de mis habilidades de programación. Por supuesto, se han ampliado y mejorado desde entonces, pero yo ya era capaz de un buen diseño en aquellos días.

El tipo de proyectos que puede emprender depende de sus intereses; si tiene inclinaciones matemáticas, puede probar un generador de números primos o proyectar puntos 3D en la pantalla; si estás interesado en el diseño del juego, puedes intentar clonar pong (fácil) o dragaminas (más difícil); o si eres más un pirata informático, es posible que desees crear un simple programa de chat o un programa de cifrado de archivos.

Trabaje en estos proyectos por su cuenta, y no se preocupe si está haciendo las cosas de la manera "correcta". Mientras lo hagas funcionar, has aprendido muchas cosas. Algún tiempo después de haber completado un proyecto, es posible que desee revisarlo y tratar de hacerlo mejor, o simplemente ver cómo otras personas han hecho ese tipo de cosas.

Dada la forma en que pareces desear que te guíen, tal vez deberías encontrar un mentor.


Creo que lo que evitaría es aprender un idioma en fragmentos aislados que no se relacionan entre sí, sino que solo enseñan varias facetas de un idioma en particular. Como han dicho otros, lo realmente difícil e importante es aprender diseño. Creo que la mejor manera de hacerlo es a través de un tutorial que lo guía a través de la creación de una aplicación real, la enseñanza del diseño en el camino. De esta forma, puede aprender por qué se toman ciertas decisiones y aprender cómo lograr lo que se necesita para implementar las elecciones de diseño.

Por ejemplo, encontré Agile Web Development with Rails como una manera realmente fácil de aprender Ruby on Rails, mucho mejor que simplemente leer un manual de Ruby o incluso hurgar en los tutoriales web dispersos.


Deberías leer el artículo de Mike Clark: Cómo aprendí a Ruby . Esencialmente, usó el marco de prueba para que Ruby ejerciera diferentes elementos de los idiomas.

Usé esta técnica para aprender Python y fue muy, muy útil. No solo aprendí el idioma, sino que también fui muy competente en el marco de prueba de Python al final del ejercicio. Una vez que tenga los conceptos básicos puede comenzar a leer el código y luego trabajar en la construcción de un proyecto más grande.


Después de la sintaxis básica del lenguaje, debe aprender a diseñar. Que es difícil. Este libro puede ayudar.


Donde veo principiantes, perder semanas o meses es escribir en el teclado . La computadora es muy receptiva y masticará alegremente horas de su tiempo en el ciclo de edición y compilación. Si está aprendiendo, ahorrará muchas horas si

  • Planifica su diseño en papel antes de acercarse a una computadora . No importa qué método de diseño elija o si nunca ha oído hablar de un método de diseño. Simplemente escriba un plan mientras su cerebro está completamente ocupado y no distraído por la computadora .

  • Cuando el código no compila o no genera la respuesta correcta, si no puede solucionarlo en cinco minutos, aléjese de la computadora . Ve a pensar en lo que está pasando. Imprime tu código y garabatea hasta que creas que es correcto.

Estos son solo dispositivos para ayudar a implementar el consejo simple pero difícil de pensar antes de codificar .

Cuando estaba aprendiendo, resolví innumerables problemas en la caminata de 15 minutos desde el centro informático hasta mi casa. Lamentablemente, con las PC modernas no obtenemos esos 15 minutos :-) Si puede aprender a tomarlo de todos modos, se convertirá en un mejor programador, más rápido.


Encuentre un problema en su vida o algo que haga que simplemente crea que podría ser más eficiente y escriba una pequeña solución para ello. Puede ser solo un script, pero ganarás mucha más confianza en tus habilidades cuando empieces a ver resultados útiles de tu trabajo. También estará más motivado para terminarlo ya que está interesado en usar la solución. Comience de forma simple y pequeña, y luego muévase gradualmente a proyectos más grandes.

Y mientras trabaja en un proyecto pequeño, concéntrese en construir todo con calidad. Creo que esto se pierde en algunos programadores que sienten que su software es más impresionante si contiene un montón de características, pero por lo general esas funciones no están bien hechas o son utilizables. Si te enfocas en construir soluciones de calidad para problemas reales, serás un fantástico programador.

¡Buena suerte!



Hay excelentes consejos aquí, en otras publicaciones. Aquí están mis pensamientos:

1) Aprenda a escribir, las razones se explican en este artículo por Steve Yegge. Te ayudará más de lo que puedas imaginar.

2) El código de lectura generalmente se considera una tarea difícil. Por lo tanto, es mejor obtener un proyecto de código abierto, compilarlo y comenzar a cambiarlo y aprender de esa manera, en lugar de leer e intentar comprender.


La única forma de aprender a programar es escribir más código. Leer libros es genial, pero escribir / corregir código es la mejor manera de aprender. No puedes aprender nada sin hacer.


La respuesta estándar es hacer algo; elegir un idioma fácil para hacerlo es bueno, pero no esencial. Lo que realmente te enseña es arreglar más las cosas en tu cabeza, arreglarlas porque no funcionarán. Para mí, esto siempre sucede cuando pruebo los proyectos de mis sueños eternos (juegos) que nunca termino, pero siempre aprendo.


Lo único que hice que perdí semanas o meses fue la preocupación de si mis diseños eran la mejor manera de implementar una solución en particular o no. Ahora sé que esto se conoce como "optimización prematura" y todos lo padecemos en mayor o menor grado. La forma correcta de aprender a programar es resolver un problema, medir su solución para asegurarse de que funciona lo suficientemente bien, luego pasar al siguiente problema. Después de un tiempo, tendrás un montón de problemas que has resuelto, pero lo más importante es que conocerás un lenguaje de programación.


No aprenda a usar punteros y cómo administrar manualmente la memoria. Mencionaste C , y pasé mucho tiempo tratando de arreglar errores causados ​​por la mezcla de * x y & x. Esto es malvado ...

Encuentre algún problema para resolver, escribir o dibujar un boceto de un algoritmo que resuelva el problema, luego intente escribirlo. O use Python (que es mucho más amigable para principiantes) o use C con memoria asignada estáticamente solamente. Y usa libros / tutoriales. Ofrecen múltiples ejercicios con soluciones, para que pueda comparar los suyos con ellos y ver otros enfoques.

Una vez que sienta que realmente puede escribir algo simple, consulte algún libro / tutorial para Object Oriented Design. No es lo mejor que el mundo tiene para ofrecer, pero podría ser intuitivo. De lo contrario, verifique la programación funcional (como LISP, Scheme o Haskell) o la programación en lógica (como Prolog). Quizás esos te convengan mejor.

Además, encuentra un compañero. Una persona con la que puede hablar sobre codificación, mantenimiento y diseño de código. Tal persona vale más que un libro.

Para todos los fanáticos de C: El lenguaje C es genial, de verdad. Permite la optimización del uso de la memoria en la medida de lo posible en lenguajes de alto nivel como Python o Ruby. El código compilado también es muy rápido y es la única opción para RTOS o el motor de juegos 3D moderno. Pero este no es un buen punto de entrada para un principiante, eso es lo que creo.

Ah, y buena suerte para ti! ¡Y no te avergüences de preguntar! Si no preguntas, la respuesta es mucho más difícil de encontrar.


Otra cosa que evitaría es desarrollar código de forma aislada, es decir, no tener gente que lo mire a medida que avanzo. Recibir comentarios de un mentor lo ayudará a mantenerse en el camino correcto con respecto a las elecciones que está haciendo y al uso correcto de las expresiones idiomáticas.


Puedo entender la situación en la que te encuentras. Leer libros, incluso muchos no te harán programador. Lo que debes hacer es INICIAR PROGRAMACIÓN.

En realidad, la programación es muy parecida a la natación en mi opinión, incluso si solo conoces una pequeña sintaxis e incluso una menor cantidad de técnicas de codificación, comienza a codificar de todos modos. Haga una pequeña aplicación, un inventario de la casa, un catálogo de gastos, una hoja de datos, un catalogo de cd, cualquier cosa que desee.

La idea es meterse en lo esencial. Una vez que comiences a programar te encontrarás con problemas del mundo real y tus habilidades para resolver problemas se desarrollarán a medida que las combates. Así es como te conviertes en un mejor programador todos los días.

Así que ponte al corriente y nada bien ... Así es como lo lograrás.

Buena suerte


Tal vez comience con un pequeño proyecto existente, y encuentre algo dentro de él que maneje una parte central de lo que hace; luego, con un depurador, páselo y siga lo que está haciendo desde el punto donde le pide que haga eso por usted. .

Esto te ayuda de varias maneras. Comienza a comprender mejor todas las diversas cosas que afecta el código cuando intenta completar su solicitud. Además, aprendes técnicas de depuración invaluables que muchos desarrolladores carecen, mientras que a menudo puedes descubrir lo que está mal con las llamadas printf () (o equivalentes) repetidas, si puedes depurar puedes resolver problemas en un orden de magnitud Más rápido.

He descubierto que, conceptualmente, un gran modelo mental para comprender la programación en abstracto es un patrón de flujo de datos. Cuando un usuario manipula datos, ¿cómo es alterado por un programa para la digestión y el almacenamiento? ¿Cómo se transforma para volver a presentar al usuario en una forma que tenga sentido para ellos? Fundamentalmente, el código trata sobre la transformación de datos, y todo el código puede dividirse en construcciones de diversos tamaños, cuyo propósito es alterar los datos de una forma u otra, errores que se forman en torno a la discrepancia entre lo que el programador esperaba de los datos y qué nivel de bibliotecas que el codificador usa, trata los datos y cómo llegan realmente los datos. El siguiente código con un depurador lo ayuda a comprender completamente esta transformación en acción al observar los cambios a medida que ocurren.


Trabaja en proyectos / problemas que ya sabes cómo resolver parcialmente


Me acabo de dar cuenta de que hablaste acerca de leer los árboles fuente de los proyectos de otras personas. Leer el código de otras personas es una idea maravillosa , pero debes leer más selectivamente . Una gran cantidad de código de código abierto es difícil de leer y no cosas que debe emular de todos modos. Así que evite leer cualquier código que no haya sido recomendado por un programador que usted respete .

Sugerencia: Jon Bentley, Brian Kernighan, Rob Pike y PJ Plauger, todos ellos programadores que respeto, han publicado una gran cantidad de códigos que vale la pena leer. En los libros.


Apila más de F .. espera no, heh.

Los mayores obstáculos para mí en general son con respecto a " encontrar la mejor respuesta ". A menudo me encuentro con un problema que sé cómo resolver, pero siento que hay una mejor solución y voy en la búsqueda. Solo horas / días después vuelvo en sí y me doy cuenta de que tengo 7 instancias de Firefox, cada una con al menos 5 pestañas desplegadas en 46 "de espacio en el monitor y me doy cuenta de que he quedado atrapado en el agujero negro. esa es la búsqueda del conocimiento sin fin.

Mi consejo para ti, y para mí mismo, es que te sientas cómodo con la noción de refracción . Esencialmente, lo que esto significa (en caso de que usted no esté familiarizado con el término) es que se le ocurre una solución a un problema y lo acepta, incluso si existe una forma mejor de hacerlo. Una vez que haya terminado el problema, o incluso el programa, puede volver a visitar su metodología, estudiarla y descubrir dónde puede hacer cambios para mejorarla.

Este concepto siempre me ha resultado difícil de seguir. En la universidad, preferí escribir un documento una vez, imprimirlo y entregarlo. Escribir código se puede pensar de manera muy similar a escribir un documento. Simplemente poner el bolígrafo en el bloc y sacar lo que tengas en mente puede funcionar, pero cuando vuelves a mirarlo con un par de ojos nuevos, sin dudas verás algo que desearías haber hecho de manera diferente.