He estado programando muy a la ligera durante algunos años, y no he avanzado mucho. Es algo que definitivamente me interesa, pero simplemente no me he motivado. Entonces, creo que descubrí lo que me está matando. Todos los libros que he leído, todos los screencasts que he visto, parecen haberse perdido una cosa importante:
¿Cómo paso de declaraciones impresas, variables, etc., a hacer cosas más complicadas?
Por ejemplo, tomemos un sitio como Posterous. Para aquellos que no lo saben, es una plataforma de blogs que acepta publicaciones de blog por correo electrónico. El autor del blog tiene un correo electrónico especial @ posterous.com al que envían publicaciones de blog, y se formatean y publican automáticamente.
¿Cómo usaría un desarrollador su caja de herramientas de funciones y declaraciones para lograr algo como esto en el back-end?
Lo siento si esta pregunta parece realmente amplia, solo me ha estado frustrando. Siento que tengo una comprensión decente de los conceptos básicos, pero no tengo idea de cómo hacer algo realmente .
fuente
Respuestas:
La clave es dividir la tarea en pasos discretos que usted sabe cómo hacer (o puede averiguar cómo hacerlo). Lo que sabes hacer se basa en tu nivel de experiencia.
Tomemos su ejemplo de correo electrónico Posterous:
Requisitos: Aceptar correos electrónicos de @ posterous.com, formatearlos y publicarlos en el sitio web.
Tarea 1) Acepta el correo electrónico.
Lo más probable es que los correos electrónicos tengan que recuperarse de un servidor de correo. Tendrá que investigar las llamadas a la API para recuperar los correos electrónicos de su servidor de correo particular. También tendrá que descubrir cómo extraer el contenido del cuerpo del correo electrónico (probablemente otra llamada a la API).
Tarea 2) Formatear el correo electrónico.
De la tarea 1, probablemente tengas el contenido en memoria en alguna parte. Formatee esto para que cumpla con el paso 3 ...
Tarea 3) Publique el contenido en el blog.
Si está agregando esta función email2blog, probablemente ya tenga un mecanismo para publicar publicaciones en el blog. Use ese mecanismo y, en lugar de aceptar la entrada de un área de texto en su sitio web en algún lugar, reemplácelo con el contenido del paso 2.
Ahora, ¿cómo obtenemos de las declaraciones impresas, si las declaraciones y las funciones para cumplir con cada una de las tareas.
Observe cómo en la tarea 1, mencioné las llamadas API dos veces Las llamadas a la API son esencialmente funciones que alguien más ha escrito para que pueda usar su funcionalidad. Si sabe cómo llamar a funciones, puede investigar la llamada API correcta que necesita para recuperar el correo del servidor de correo.
No discutí mucho sobre el formato, pero si sabes cómo manipular cadenas, entonces sabes cómo formatear. Dar formato a una página html es un ejercicio para agregar etiquetas, como
<b>bolded text</b>
dentro de su cadena en alguna parte.En la Tarea 3, mencioné que había algún tipo de mecanismo para publicar blogs. Si se trata de una plataforma de blogs existente, estarías lo suficientemente familiarizado con esto. Pero si no, entonces necesita aprender sobre HTTP Post y otras cosas relacionadas con el marco web.
Si después de leer todo esto aún no tienes idea de lo que estoy hablando, entonces espero haberte convencido de que no hay sustituto para la experiencia. ¡Así que sal y construye algo! No se preocupe demasiado por cometer errores novatos porque todos los desarrolladores alguna vez fueron novatos.
fuente
Lo principal es encontrar algo que quieras hacer y hacerlo .
Así comenzó la mayoría de las grandes empresas.
Google? Brin y Page eran apasionados de indexar la web.
Metafilter? Matt Haughey era un apasionado de escribir y compartir.
¿Gorjeo? A Dorsey le apasionaba la simplicidad, y no obtienes mucho más simple que 140 caracteres.
¿Desbordamiento de pila? A Joel y al equipo les apasionaron las respuestas.
Los lenguajes, como PHP, Perl, Python y Ruby, fueron diseñados de la misma manera. Igual que GNU / Linux. Alguien tuvo un rasguño, y comenzó a picar ese rasguño, y luego lanzó sus herramientas para consumo general.
Así que mire a su alrededor y decida dónde está su picazón, y luego comience a escribir un programa para rascar esa picazón. Tal vez te guste jugar, para poder escribir algunos juegos. Tal vez tenga un problema con las etiquetas ID3 en su colección de mp3 y necesite solucionarlo. O tal vez esté interesado en la historia familiar y quiera rastrear la web en busca de referencias a personas o lugares en su historia. O tal vez quieras interactuar con el mundo real de alguna manera. O tal vez desee desarrollar el software FLOS: eche un vistazo a GitHub, Gitorious y Sourceforge.
Encuentre algo que le apasione y comience a programar, y muy pronto tendrá grandes programas antes de darse cuenta. Y es por eso que la planificación de algún tipo es una buena idea;)
fuente
Lenta y gradualmente
Por lo general, para proyectos grandes, no comienza simplemente sumergiéndose en un código escrito. Alguien en algún lugar tiene que tener un plan. Anotan algo, las características del sistema que desean. Luego comienzan con la primera página / ventana / lo que sea. Luego agregan otro. Todo el tiempo agregando lentamente característica tras característica, corrigiendo error tras error. No solo surge, tiene que haber una imagen general, un diseño general.
¡Para mejorar, necesitas practicar! Comience con un pequeño proyecto. Algo simple y que también te interese. Planifique lo que está haciendo antes de hacerlo, verá que no es tan difícil "realmente hacer algo".
fuente
Puedes ver tantos screencasts, leer tantos libros y seguir tantos tutoriales como quieras pero nunca sentirás que vas a ir a ningún lado. Tienes que descubrir algo que te interesa crear. Luego descomponga e intente crearlo. Llegarás a muchas cosas que quizás no sepas. Pero los investigas y aprendes las tareas más complejas a medida que avanzas.
fuente
Encontré este desafío también, y en general encontré mi solución: necesitaba una fuente externa para impulsarme a ser más productivo.
Puede estar tan fascinado por la tecnología como cualquiera, tan entusiasmado con la programación como cualquiera, y tan inteligente y rápido de aprender como cualquiera, y solo significará mucho a menos que se ensucie las manos y haga cosas. Pero puede ser difícil saber por dónde comenzar, e incluso si tiene una idea de por dónde comenzar, puede ser difícil hacer que la pelota ruede.
Si eres un buen emprendedor, probablemente solo necesites algunas ideas. Pruebe algunos rompecabezas de programación o mire las utilidades simples que usa regularmente y pregúntese "¿Podría hacer esto? Si lo hiciera, ¿qué cambiaría?"
Es realmente desalentador sentarse frente a un editor abierto o un trozo de papel en blanco y decir "¡Bien, cerebro, crea! " Pero si lo desglosa, piensa en qué tipo de cosas podrías tener una razón para hacer, y conduzca desde allí, puede llegar más lejos.
Y, si descubre que simplemente no puede hacer el código, haga que alguien le dé un trabajo que hacer, con una fecha límite y requisitos y todo. Te pondrá en marcha.
fuente
El hecho de que tenga conocimientos básicos es bueno: no soy un profesional, pero puedo vender lo que hago, así que debo estar haciendo algo bien. Recomiendo aprender los conceptos básicos sobre su idioma y la plataforma para la que está desarrollando (y parece que sí).
Primero mapee lo que está tratando de hacer, y obtenga una idea de cómo lo va a hacer, se trata de reducir las cosas a detalles, ya que le ayuda a resolver las cosas más rápido. Luego, solo busque en Google lo que está tratando de hacer en el idioma que está usando si está atascado, ¡incluso haga preguntas en Stack Overflow (ya he hecho más de 70 preguntas, jeje)!
Personalmente, aprendí al buscar en Google, ni siquiera aprendí lo básico al principio, lo que debería haber hecho, sin embargo, cuando ya estaba haciendo algunas cosas bastante buenas, todavía no sabía qué era una "matriz". ;)
fuente
Creo que para desarrollar sus habilidades en el back-end de las interfaces, debería comenzar a manipular los datos. La mayoría de los proyectos grandes tienen que ver con mover, transformar y mostrar datos.
Sé por mí mismo que no entendí bien los proyectos más grandes hasta que me sentí cómodo con varios tipos diferentes de acceso a datos y manipulación de archivos.
fuente
Saltar a algo que está un poco por encima de tu cabeza y descubrirlo puede ser una excelente manera de expandir tus habilidades. Es posible que desee intentar mirar algunas de las series de libros de cocina de O'Reilly:
http://oreilly.com/store/series/cookbooks.html
Los sonidos de formato Problema / Solución / Discusión como que podría ser exactamente lo que busca, código de 'recetas' que HACER algo interesante y cierta discusión sobre cómo funciona.
fuente
Creo que simplemente no te desafías a ti mismo para hacer más.
Si eres realmente curioso sobre cómo hacer algo, ¡búscalo! Si desea saber cómo funciona Posterous, intente comenzar con algo pequeño, como investigar qué tipo de herramientas necesita, cómo obtener información de un cuadro de texto a un sitio web. Luego, gradualmente construyes sobre eso. La siguiente pregunta podría ser configurar una conexión de correo electrónico a un sitio web y una base de datos.
Tiene la mejor herramienta que necesitará, Internet.
fuente
Además de dividir el proyecto en tareas, la clave también es aprender a reutilizar el código. Divida su código en módulos que pueda reutilizar en otros proyectos en los que necesite hacer lo mismo.
Por ejemplo, en este proyecto de ejemplo, es probable que esté haciendo un trabajo de base de datos para almacenar las publicaciones del blog. Podría escribir una clase de base de datos para conectarse a la base de datos, hacer consultas, obtener los resultados, etc. Luego, en todos los proyectos futuros, podría usar esa misma clase y poder trabajar con la base de datos fácilmente.
fuente