Chuẩn bị cho một dự án lập trình mới [đã đóng]


8

Tôi coi mình là một lập trình viên mới làm quen - một người mới là bạn thích. Vì vậy, tôi vẫn không chắc chắn làm thế nào để bắt đầu một dự án mà tôi sẽ làm những việc mà tôi chưa từng làm trước đây.

Chẳng hạn, tôi muốn viết một chương trình có thể tải xuống video từ YouTube và chuyển đổi chúng thành định dạng do người dùng chỉ định. Tôi chưa bao giờ làm bất cứ điều gì như thế này trước đây và tôi thực sự không biết bắt đầu từ đâu. Thay vào đó, tôi không biết tôi nên tìm kiếm cái gì.

Nếu tôi tìm kiếm "Trình tải xuống YouTube" thì tôi sẽ gặp phải một loạt các liên kết vô dụng đến các trang web Trình tải xuống YouTube hiện có, hầu hết đều không hoạt động.

Những gì tôi muốn biết là làm thế nào để bắt đầu một dự án mà tôi không biết gì về nó. Làm thế nào để tôi tìm ra những gì cần thiết cho dự án này? Làm thế nào để tôi tìm ra ngôn ngữ nào phù hợp nhất cho việc này? Làm cách nào tôi có thể tìm ra nếu có bất kỳ API nào đặc biệt hữu ích? Ngoài ra, những câu hỏi nào khác tôi nên tự hỏi mình khi chuẩn bị nhận một dự án mới?


Bạn cũng có thể muốn sử dụng Wireshark để tìm hiểu về cách trình duyệt giao tiếp với trang web và dữ liệu nào được truyền giữa chúng.
rwong

Không phải là một câu trả lời, nhưng bạn đã thử tubemaster.net chưa? Nó thậm chí là nguồn mở, vì vậy bạn có thể sử dụng nó để tìm hiểu nội dung (hoặc không, tùy thuộc vào chất lượng mã và cấp độ của riêng bạn).
jv42

Câu trả lời:


13

Bạn phải phá vỡ nó. Hãy suy nghĩ về các yếu tố khác nhau tạo nên những gì bạn muốn làm. Cố gắng nghĩ về chúng theo nghĩa chung hơn là cụ thể. Hãy suy nghĩ về những gì có thể chồng lên một cái gì đó mà bạn đã làm trước đây.

ví dụ: trong trường hợp ý tưởng YouTube Downloader của bạn:

  • Tải xuống video từ YouTube
    • Xem tổng quát hơn: tải xuống các tệp được liên kết đến từ một trang web. Vì vậy, có lẽ bạn cần phải:
      • lấy một URL
        • Làm thế nào bạn sẽ trình bày giao diện để chọn một URL?
      • yêu cầu trang đó
      • phân tích HTML để tìm liên kết đến FLV hoặc bất cứ điều gì
      • tải tập tin đó
  • Chuyển đổi chúng thành định dạng do người dùng chỉ định
    • Vì vậy, bạn cần phải chuyển đổi một FLV (tôi nghĩ?) Sang các định dạng khác nhau.
      • Định dạng nào?
      • Làm thế nào bạn sẽ trình bày giao diện để chọn một định dạng?
      • Bạn có thể tìm một thư viện để thực hiện chuyển đổi?
      • Bạn có thể tìm thấy một công cụ dòng lệnh để thực hiện chuyển đổi không?
      • Làm thế nào để bạn gọi một công cụ dòng lệnh từ một chương trình được viết bằng ngôn ngữ của bạn?

Dù sao đó chỉ là một vài thứ nhảm nhí tôi đã gõ. Nhưng điều chính cần suy nghĩ là phân tách vấn đề thành các vấn đề nhỏ hơn và tiếp tục phân hủy cho đến khi bạn rơi xuống một miếng nhỏ có kích cỡ cắn mà bạn có thể cắn vào.


2
Tôi không thể đồng ý nhiều hơn. Các lập trình viên "Agile / XP" sử dụng thuật ngữ "tăng đột biến" để chỉ nghiên cứu về một lĩnh vực mà họ không hiểu. Xác định các phần của vấn đề mà bạn nghĩ là khó nhất và sau đó thực hiện các đột biến bằng cách viết các dự án giả nhỏ để giải quyết các vấn đề đó; những dự án này là những sản phẩm được giao từ gai của bạn. Khi bạn đã mô phỏng các dự án giải quyết tất cả các vấn đề mà bạn không hiểu, bạn có thể kết nối chúng lại với nhau để tạo thành tổng thể.

Trong trường hợp này, có thể dễ dàng hơn khi sử dụng một trong các API Youtube của Google thay vì loại bỏ video. developers.google.com/youtube/getting_started
TomJ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.