Vorbereitung auf ein neues Programmierprojekt [geschlossen]

8

Ich betrachte mich als Programmieranfänger - ein Noob ist wie du. Daher bin ich mir immer noch nicht sicher, wie ich mit einem Projekt anfangen soll, bei dem ich Dinge tun werde, die ich noch nie zuvor getan habe.

Zum Beispiel möchte ich ein Programm schreiben, das Videos von YouTube herunterladen und in ein vom Benutzer festgelegtes Format konvertieren kann. Ich habe so etwas noch nie gemacht und ich habe wirklich keine Ahnung, wo ich anfangen soll. Vielmehr habe ich keine Ahnung, wonach ich suchen soll.

Wenn ich nach "YouTube Downloader" suche, stoße ich auf eine Reihe nutzloser Links zu vorhandenen YouTube Downloader-Websites, von denen die meisten nicht funktionieren.

Ich möchte wissen, wie ich mit einem Projekt anfangen kann, von dem ich nichts weiß. Wie finde ich heraus, was für dieses Projekt erforderlich ist? Wie finde ich heraus, welche Sprachen dafür am besten geeignet sind? Wie kann ich herausfinden, ob es APIs gibt, die besonders nützlich wären? Welche weiteren Fragen sollte ich mir stellen, wenn ich mich auf ein neues Projekt vorbereite?

Joose
quelle
Möglicherweise möchten Sie auch Wireshark verwenden , um zu erfahren, wie der Browser mit der Website kommuniziert und welche Daten zwischen ihnen übertragen werden.
Rwong
Keine Antwort, aber haben Sie tubemaster.net ausprobiert ? Es ist sogar Open Source, sodass Sie es verwenden können, um Dinge zu lernen (oder auch nicht, abhängig von der Qualität des Codes und Ihrer eigenen Ebene).
jv42

Antworten:

13

Du musst es kaputt machen. Denken Sie an die verschiedenen Elemente, aus denen sich das zusammensetzt, was Sie tun möchten. Versuchen Sie, eher allgemein als spezifisch darüber nachzudenken. Überlegen Sie, was sich mit etwas überschneiden könnte, was Sie zuvor getan haben.

zB im Fall deiner YouTube Downloader-Idee:

  • Laden Sie Videos von YouTube herunter
    • Allgemeinere Ansicht: Laden Sie Dateien herunter, auf die von einer Webseite verwiesen wird. Vielleicht müssen Sie also:
      • nimm eine URL
        • Wie präsentieren Sie die Benutzeroberfläche zur Auswahl einer URL?
      • Fordern Sie diese Seite an
      • Analysieren Sie den HTML-Code, um einen Link zu einem FLV oder was auch immer zu finden
      • Laden Sie diese Datei herunter
  • Konvertieren Sie sie in ein vom Benutzer angegebenes Format
    • Sie müssen also ein FLV (glaube ich?) In verschiedene andere Formate konvertieren.
      • Welche Formate?
      • Wie werden Sie die Benutzeroberfläche zur Auswahl eines Formats präsentieren?
      • Können Sie eine Bibliothek für die Konvertierung finden?
      • Können Sie ein Befehlszeilentool für die Konvertierung finden?
      • Wie ruft man ein Befehlszeilentool aus einem Programm auf, das in der Sprache Ihrer Wahl geschrieben ist?

Jedenfalls ist das nur ein Mist, den ich geschrieben habe. Aber das Wichtigste, worüber Sie nachdenken sollten, ist, das Problem in kleinere Einzelprobleme zu zerlegen und so lange zu zerlegen, bis Sie einen mundgerechten Teil haben, in den Sie beißen können.

Carson63000
quelle
2
Ich konnte nicht mehr zustimmen. "Agile / XP" -Programmierer verwenden den Begriff "Spike", um Forschung in einem Bereich zu bezeichnen, den sie nicht verstehen. Identifizieren Sie die Teile des Problems, die Ihrer Meinung nach am schwierigsten sind, und führen Sie dann Spitzen aus, indem Sie kleine Modellprojekte schreiben, die diese Probleme lösen. Diese Projekte sind die Ergebnisse Ihrer Spikes. Sobald Sie Projekte nachgebildet haben, die alle Probleme lösen, die Sie nicht verstanden haben, sollten Sie in der Lage sein, sie zu einem Ganzen zusammenzufügen.
In diesem Fall ist es wahrscheinlich einfacher, eine der Youtube-APIs von Google zu verwenden, als nach einem Video zu suchen. developer.google.com/youtube/getting_started
TomJ