Preparando para um novo projeto de programação [fechado]

8

Eu me considero um programador iniciante - você é um novato. Como tal, ainda não tenho certeza de como começar um projeto em que farei coisas que nunca fiz antes.

Por exemplo, eu gostaria de escrever um programa que pode baixar vídeos do YouTube e convertê-los para um formato especificado pelo usuário. Eu nunca fiz nada assim antes e realmente não tenho idéia por onde começar. Em vez disso, não tenho idéia do que devo procurar.

Se eu procurar o "YouTube Downloader", sou atingido por vários links inúteis para sites existentes do YouTube Downloader, a maioria dos quais não funciona.

O que eu quero saber é como começar um projeto que eu não conheço nada. Como descubro o que é necessário para este projeto? Como descobrir quais idiomas são mais adequados para isso? Como posso descobrir se existem APIs que seriam particularmente úteis? Além disso, que outras perguntas devo me fazer ao me preparar para assumir um novo projeto?

Joose
fonte
Você também pode usar o Wireshark para saber como o navegador se comunica com o site e quais dados estão sendo transferidos entre eles.
Rwong 22/04
Não é uma resposta, mas você já tentou o tubemaster.net ? É até de código aberto, então você pode usá-lo para aprender coisas (ou não, dependendo da qualidade do código e do seu próprio nível).
jv42

Respostas:

13

Você tem que quebrar. Pense nos diferentes elementos que compõem o que você deseja fazer. Tente pensar neles de uma maneira geral e não específica. Pense no que pode se sobrepor a algo que você fez antes.

por exemplo, no caso da sua ideia do YouTube Downloader:

  • Baixe vídeos do YouTube
    • Visão mais geral: baixe arquivos vinculados a partir de uma página da web. Então, talvez você precise:
      • pegue um URL
        • como você vai apresentar a interface para selecionar um URL?
      • solicitar essa página
      • analisar o HTML para encontrar um link para um FLV ou qualquer outra coisa
      • baixar esse arquivo
  • Converta-os em um formato especificado pelo usuário
    • Então você precisa converter um FLV (eu acho?) Para vários outros formatos.
      • Quais formatos?
      • como você vai apresentar a interface para selecionar um formato?
      • Você pode encontrar uma biblioteca para fazer a conversão?
      • Você pode encontrar uma ferramenta de linha de comando para fazer a conversão?
      • Como você chama uma ferramenta de linha de comando de um programa escrito no idioma de sua escolha?

Enfim, isso é apenas uma porcaria que eu digitei. Mas a principal coisa a se pensar é decompor o problema em problemas individuais menores e continuar se decompondo até que você tenha um pedaço do tamanho de uma mordida na qual você pode morder.

Carson63000
fonte
2
Eu não poderia concordar mais. Programadores "Agile / XP" usam o termo "pico" para significar pesquisas em uma área que eles não entendem. Identifique as partes do problema que você considera mais difíceis e depois faça picos escrevendo pequenos projetos de simulação que resolvam esses problemas; esses projetos são as entregas dos seus picos. Depois de criar modelos que resolvam todos os problemas que você não entendeu, você poderá costurá-los para formar o todo.
Nesse caso, é provavelmente mais fácil usar uma das APIs do YouTube do Google, em vez de se desfazer de um vídeo. developers.google.com/youtube/getting_started
TomJ 31/03