Mempersiapkan Proyek Pemrograman Baru [ditutup]

8

Saya menganggap diri saya sebagai programmer pemula - noob adalah yang Anda suka. Karena itu saya masih tidak yakin bagaimana memulai suatu proyek di mana saya akan melakukan hal-hal yang belum pernah saya lakukan sebelumnya.

Misalnya, saya ingin menulis sebuah program yang dapat mengunduh video dari YouTube dan mengonversinya menjadi format yang ditentukan oleh pengguna. Saya belum pernah melakukan hal seperti ini sebelumnya dan saya benar-benar tidak tahu harus mulai dari mana. Sebaliknya, saya tidak tahu apa yang harus saya cari.

Jika saya mencari "YouTube Downloader" maka saya terkena banyak tautan tidak berguna ke situs YouTube Downloader yang ada, yang sebagian besar tidak berfungsi.

Yang ingin saya ketahui adalah bagaimana memulai suatu proyek yang tidak saya ketahui. Bagaimana saya mencari tahu apa yang diperlukan untuk proyek ini? Bagaimana cara mengetahui bahasa apa yang paling cocok untuk ini? Bagaimana saya bisa mengetahui jika ada API yang akan sangat berguna? Juga, pertanyaan lain apa yang harus saya tanyakan pada diri saya ketika bersiap untuk mengambil proyek baru?

Joose
sumber
Anda mungkin juga ingin menggunakan Wireshark untuk belajar tentang bagaimana browser berkomunikasi dengan situs web, dan data apa yang sedang ditransfer di antara mereka.
rwong
Bukan jawaban tetapi, sudahkah Anda mencoba tubemaster.net ? Itu bahkan open source, jadi Anda bisa menggunakannya untuk mempelajari hal-hal (atau tidak, tergantung pada kualitas kode dan level Anda sendiri).
jv42

Jawaban:

13

Anda harus memecahnya. Pikirkan tentang berbagai elemen yang membentuk apa yang ingin Anda lakukan. Cobalah untuk memikirkannya secara umum dan bukan khusus. Pikirkan tentang apa yang mungkin tumpang tindih dengan sesuatu yang telah Anda lakukan sebelumnya.

mis., dalam kasus ide YouTube Downloader Anda:

  • Unduh video dari YouTube
    • Tampilan lebih umum: mengunduh file yang ditautkan dari halaman web. Jadi mungkin Anda perlu:
      • ambil URL
        • bagaimana Anda akan menyajikan antarmuka untuk memilih URL?
      • minta halaman itu
      • parsing HTML untuk menemukan tautan ke FLV atau apa pun
      • unduh file itu
  • Konversikan ke format yang ditentukan oleh pengguna
    • Jadi Anda perlu mengkonversi FLV (saya pikir?) Ke berbagai format lainnya.
      • Format apa?
      • bagaimana Anda akan menampilkan antarmuka untuk memilih format?
      • Bisakah Anda menemukan perpustakaan untuk melakukan konversi?
      • Bisakah Anda menemukan alat baris perintah untuk melakukan konversi?
      • Bagaimana Anda memanggil alat baris perintah dari program yang ditulis dalam bahasa pilihan Anda?

Pokoknya itu hanya omong kosong yang saya ketik. Tetapi hal utama yang harus dipikirkan adalah menguraikan masalah menjadi masalah-masalah individu yang lebih kecil, dan terus membusuk sampai Anda turun ke potongan berukuran gigitan yang dapat Anda gigit.

Carson63000
sumber
2
Saya sangat setuju. Pemrogram "Agile / XP" menggunakan istilah "spike" untuk berarti penelitian pada bidang yang tidak mereka mengerti. Identifikasi bagian-bagian dari masalah yang menurut Anda paling sulit dan kemudian lakukan paku dengan menulis proyek mock up kecil yang menyelesaikan masalah tersebut; proyek-proyek ini adalah hasil dari paku Anda. Setelah Anda memiliki proyek mock up yang menyelesaikan semua masalah yang Anda tidak mengerti, Anda harus dapat menjahitnya bersama-sama untuk membentuk keseluruhan.
Dalam hal ini, mungkin lebih mudah untuk menggunakan salah satu Youtube API Google daripada membuang untuk video. developers.google.com/youtube/getting_started
TomJ