Preparación para un nuevo proyecto de programación [cerrado]

8

Me considero un programador novato, un novato como tú. Como tal, todavía no estoy seguro de cómo comenzar un proyecto en el que haré cosas que nunca antes había hecho.

Por ejemplo, me gustaría escribir un programa que pueda descargar videos de YouTube y convertirlos al formato especificado por el usuario. Nunca he hecho algo así antes y realmente no tengo idea de por dónde empezar. Más bien, no tengo idea de lo que debería buscar.

Si busco "YouTube Downloader", recibo un montón de enlaces inútiles a sitios existentes de YouTube Downloader, la mayoría de los cuales no funcionan.

Lo que quiero saber es cómo comenzar un proyecto del que no sé nada. ¿Cómo averiguo qué se requiere para este proyecto? ¿Cómo puedo saber qué idiomas son los más adecuados para esto? ¿Cómo puedo saber si hay alguna API que sea particularmente útil? Además, ¿qué otras preguntas debería hacerme al prepararme para un nuevo proyecto?

Joose
fuente
También es posible que desee utilizar Wireshark para conocer cómo se comunica el navegador con el sitio web y qué datos se transfieren entre ellos.
rwong
No es una respuesta, pero, ¿has probado tubemaster.net ? Incluso es de código abierto, por lo que puede usarlo para aprender cosas (o no, dependiendo de la calidad del código y su propio nivel).
jv42

Respuestas:

13

Tienes que romperlo. Piensa en los diferentes elementos que componen lo que quieres hacer. Trate de pensar en ellos en un sentido general más que específico. Piensa en lo que podría superponerse a algo que has hecho antes.

por ejemplo, en el caso de su idea de YouTube Downloader:

  • Descargar videos de YouTube
    • Vista más general: descargue archivos vinculados desde una página web. Entonces quizás necesites:
      • tomar una URL
        • ¿Cómo vas a presentar la interfaz para seleccionar una URL?
      • solicita esa página
      • analizar el HTML para encontrar un enlace a un FLV o lo que sea
      • descarga ese archivo
  • Conviértalos a un formato especificado por el usuario
    • Por lo tanto, debe convertir un FLV (¿creo?) A varios otros formatos.
      • Que formatos
      • ¿Cómo vas a presentar la interfaz para seleccionar un formato?
      • ¿Puedes encontrar una biblioteca para hacer la conversión?
      • ¿Puedes encontrar una herramienta de línea de comandos para hacer la conversión?
      • ¿Cómo se llama a una herramienta de línea de comandos desde un programa escrito en su idioma de elección?

De todos modos, eso es una mierda que escribí. Pero lo principal en lo que hay que pensar es en descomponer el problema en problemas individuales más pequeños y seguir descomponiéndolo hasta que se encuentre en un trozo del tamaño de un bocado que pueda morder.

Carson63000
fuente
2
No podría estar mas de acuerdo. Los programadores "Agile / XP" usan el término "pico" para referirse a la investigación en un área que no entienden. Identifique las partes del problema que cree que son las más difíciles y luego haga picos escribiendo pequeños proyectos simulados que resuelvan esos problemas; Estos proyectos son los entregables de sus picos. Una vez que haya simulado proyectos que resuelvan todos los problemas que no entendió, debería poder unirlos para formar el todo.
En este caso, probablemente sea más fácil usar una de las API de Youtube de Google en lugar de desechar un video. developers.google.com/youtube/getting_started
TomJ