Các lập trình viên đặt câu hỏi về ước tính thời gian cho các dự án lập trình phổ biến khi cộng đồng chia sẻ kinh nghiệm lập trình đồ chơi

Nhóm biên tập BigGo
Các lập trình viên đặt câu hỏi về ước tính thời gian cho các dự án lập trình phổ biến khi cộng đồng chia sẻ kinh nghiệm lập trình đồ chơi

Cộng đồng lập trình đang sôi nổi tranh luận về ước tính thời gian thực tế cho các dự án lập trình phổ biến, được khơi mào bởi một danh sách gần đây các đề xuất phần mềm đồ chơi. Trong khi những gợi ý ban đầu nhằm giúp các lập trình viên tìm lại niềm vui lập trình thông qua các dự án thực hành, nhiều lập trình viên có kinh nghiệm đang phản đối các đánh giá độ khó và yêu cầu thời gian được đề xuất.

Ước tính thời gian gây ra bất đồng lớn

Các thành viên cộng đồng đang chỉ trích những gì họ coi là lịch trình dự án không thực tế. Một số lập trình viên chỉ ra rằng các ước tính có vẻ sai lệch với hệ số ba hoặc hơn, đặc biệt đối với những lần triển khai đầu tiên. Ví dụ gây tranh cãi nhất liên quan đến một trình biên dịch đơn giản được đánh giá là mất ba tháng trong khi một trình giả lập GameBoy được ước tính chỉ hai tuần - một so sánh mà nhiều người thấy ngược lại dựa trên kinh nghiệm của chính họ.

Ngay cả những dự án có vẻ cơ bản cũng đang bị chỉ trích về ước tính thời gian. Một lập trình viên đã đặt câu hỏi tại sao việc xây dựng một hash map lại mất cả tuần, lưu ý rằng trong C nó chỉ phức tạp hơn một chút so với việc tạo một mảng có thể mở rộng. Tương tự, gợi ý rằng một POSIX shell có thể hoàn thành trong ba ngày đã khiến những người quen thuộc với độ phức tạp của shell phải ngạc nhiên.

Các Dự Án Lập Trình Đồ Chơi Phổ Biến Theo Độ Khó (Thảo Luận Cộng Đồng)

Loại Dự Án Độ Khó Ban Đầu Thời Gian Ban Đầu Phản Hồi Cộng Đồng
Hash Map 4/10 1 tuần "Chỉ khó hơn một chút so với mảng có thể mở rộng trong C"
Trình Giả Lập GameBoy 6/10 2 tuần Được đặt câu hỏi so với độ phức tạp của trình biên dịch
Trình Biên Dịch Đơn Giản 8/10 3 tháng Nhiều người cho rằng dễ hơn trình giả lập
POSIX Shell 4/10 3 ngày "Các yếu tố độ khó/thời gian khác nhau hoàn toàn"
Trình Giả Lập CHIP-8 3/10 3 ngày Được cộng đồng yêu thích dành cho người mới bắt đầu

Cộng đồng chia sẻ các ý tưởng dự án thay thế

Ngoài việc chỉ trích danh sách ban đầu, các lập trình viên đang đóng góp các dự án đồ chơi yêu thích của riêng họ. Các bổ sung phổ biến bao gồm bot game dựa trên GUI , triển khai thuật toán đồng thuận Raft , công cụ ray casting, và hệ thống lưu trữ B-tree hoặc LSM-tree . Trình giả lập CHIP-8 tiếp tục nhận được lời khen ngợi như một dự án lý tưởng cho người mới bắt đầu, với các thành viên cộng đồng nêu bật các bộ test có sẵn giúp xác thực việc triển khai một cách nhanh chóng.

Điều tôi thích ở những dự án này là bạn có thể làm chúng đơn giản hoặc phức tạp tùy ý.

Các Ý Tưởng Dự Án Bổ Sung Từ Cộng Đồng:

  • Bot có giao diện đồ họa cho trò chơi điện tử
  • Triển khai thuật toán đồng thuận Raft
  • Engine ray casting
  • Storage engine B-tree hoặc LSM-tree
  • Behavior trees cho AI
  • Tạo địa hình theo thủ tục
  • Tích hợp với scripting engines ( Lua )
  • Engine RPG đa người chơi 2D
  • Trò chơi vật lý zero-player

Ứng dụng thực tế thúc đẩy sự quan tâm

Nhiều lập trình viên chia sẻ câu chuyện về cách các dự án đồ chơi của họ phát triển thành những công cụ thực tế. Một lập trình viên đã mô tả việc duy trì một script sao lưu tùy chỉnh trong 20 năm, ban đầu được truyền cảm hứng từ những hiểu biết về việc sử dụng rsync và hard link cho sao lưu snapshot. Mặc dù có các lựa chọn thay thế hiện có, sự hài lòng cá nhân và cơ hội học hỏi liên tục vẫn giữ cho dự án sống động và hữu ích.

Cuộc thảo luận tiết lộ một mô hình phổ biến nơi các lập trình viên bắt đầu với những triển khai đơn giản và dần dần tăng độ phức tạp. Cho dù đó là một công cụ game RPG multiplayer 2D kết hợp nhiều hệ thống hay một mô phỏng vật lý phát triển qua nhiều năm, những dự án này đóng vai trò như những phòng thí nghiệm học tập liên tục.

Bối cảnh rộng hơn về niềm vui lập trình

Cuộc tranh luận phản ánh những lo ngại sâu sắc hơn về việc duy trì nhiệt huyết lập trình trong thời đại tự động hóa và thương mại hóa ngày càng tăng. Các thành viên cộng đồng nhấn mạnh rằng những dự án này cung cấp một cách để kết nối lại với niềm vui cơ bản của việc tạo ra phần mềm, bất kể các ước tính thời gian có chứng minh chính xác cho từng lập trình viên hay không.

Hiểu biết chính nổi lên từ cuộc thảo luận là phạm vi và độ phức tạp của dự án có thể được điều chỉnh để phù hợp với thời gian có sẵn và trình độ kỹ năng. Thay vì tập trung vào các ước tính chính xác, các lập trình viên được khuyến khích tham gia và lặp lại dựa trên tốc độ và sở thích của riêng họ.

Tham khảo: Writing Toy Software Is A Joy