NỘI DUNG BÀI VIẾT
Tôi đã học được những gì từ dự án đầu tiên của mình?
Sau bốn tháng dài viết code, nghiên cứu, tìm hiểu mọi thứ và tự hỏi liệu bao giờ nó hoàn thành, cuối cùng tôi đã được triển khai trang web đầu tiên của mình. Đó không phải là một con đường dễ dàng, nhưng kết quả cuối cùng rất xứng đáng. Bên cạnh đó, tôi cũng rút ra được nhiều kinh nghiệm lập trình hữu ích cho mình tử dự án đầu tiên.
1. Tôi có thể làm được điều đó không?
Vào tháng 6 năm 2020, căng thẳng chủng tộc ở mức cao chưa từng thấy vì những sự kiện xung quanh cái chết của George Floyd. Kết quả là, điều này đã tạo ra một cuộc trò chuyện về sự thiếu đa dạng và đại diện của các nhóm thiểu số trong tất cả các ngành.
Tôi đã có rất nhiều bạn bè liên hệ với tôi và hỏi thông tin về các nhà soạn nhạc da đen trong quá khứ và hiện tại với hy vọng âm nhạc của họ được biểu diễn thường xuyên hơn. Để đáp lại điều này, tôi quyết định bắt đầu chuỗi video Youtube Black Excellence giới thiệu những nhà soạn nhạc da đen thành công.
Bộ truyện đã thành công vang dội và một ý tưởng mới đã ra đời. Điều gì sẽ xảy ra nếu có một trang web tên là Black Excellence Music Project? Nó có thể là một trang web giáo dục với hồ sơ, trò chơi, âm nhạc và rất nhiều thứ khác. Nhưng có một vấn đề lớn hơn: ai trên thế giới sẽ tạo ra thứ này?
Tôi chỉ mới bắt đầu hành trình viết code được vài tuần, chưa có nhiều kinh nghiệm lập trình và tôi không nghĩ mình đủ khả năng để xây dựng một thứ như thế này. Vì vậy, tôi quyết định đặt nó vào ổ ghi phía sau và tiếp tục với việc học của mình.
2. Bây giờ hoặc không bao giờ
Vài tháng sau, tôi bắt đầu suy nghĩ nhiều hơn về dự án. Tôi đã nghĩ về các trò chơi có thể có, các nhà soạn nhạc nổi bật và các tính năng thú vị khác. Nhưng tôi vẫn còn do dự khi bắt đầu vì tôi cảm thấy mình chưa sẵn sàng. Tôi chỉ biết HTML, CSS và một chút JavaScript. Nhưng tôi nhận ra một điều rằng: bây giờ hoặc không bao giờ.
Vậy nên, mặc dù sợ hãi và do dự, tôi quyết định sẽ bắt đầu.
3. Bắt đầu với Git và Github
Lần đầu tiên tôi mở tài khoản GitHub của mình vào tháng 6 năm 2020, khi tôi quyết định học cách viết code. Tôi đã không thực sự làm bất cứ điều gì với nó trong vài tháng trước khi bắt đầu dự án này. Cảm giác mơ hồ của tôi về GitHub là bạn có thể lưu code của mình và mọi người có thể nhìn vào nó. Vì vậy, tôi quyết định đã đến lúc thực sự tìm hiểu về GitHub và bắt đầu làm việc với dòng lệnh.
Sau khi xem một vài hướng dẫn, tôi đã tạo thành công repo đầu tiên của mình và đẩy lên GitHub. Tôi rất vui vì mình đã có thể làm được gì đó, nhưng bây giờ tôi phải tiếp tục như thế nào? Tôi sẽ làm cái gì tiếp theo?
4. Chỉ với HTML
Tôi đã có tất cả những ý tưởng này nhưng hoàn toàn không biết bắt đầu từ đâu. Tôi có bắt đầu với trò chơi xây dựng không? Tôi có xây dựng mô hình thiết kế không? Mọi thứ nhanh chóng bắt đầu trở nên choáng ngợp và tôi không biết phải làm gì tiếp theo. Vì vậy, tôi quyết định chỉ bắt đầu với một trang HTML đơn giản.
Tôi cố gắng tạo một số trang HTML cho hồ sơ nhà soạn nhạc và lo lắng về việc tạo kiểu cho chúng sau này. Cách tiếp cận này làm tôi thấy yên tâm hơn và dẫn đến một khởi đầu rất hiệu quả cho dự án.
5. Chọn bảng màu phù hợp
Tôi muốn chọn một bảng màu phù hợp với chủ đề. Tôi muốn một thứ gì đó êm dịu nhưng có tiềm ẩn sức mạnh đằng sau nó. Sau một số nghiên cứu, tôi quyết định chọn màu tím. Màu tím thường được xem là đại diện cho sự sang trọng và trí tuệ.
Tôi nghĩ đây sẽ là sự lựa chọn hoàn hảo cho những nhà soạn nhạc da đen đã có những đóng góp đáng kể cho nghệ thuật.
6. Có những cách nào để tôi sáng tạo game?
Đến lúc này, tôi đã có một vài trang HTML và một số style cơ bản. Và đã đến lúc bắt đầu viết code cho một số trò chơi. Tôi nghĩ sẽ rất tuyệt nếu có một vài trò chơi mà cả trẻ em và người lớn đều thích. Lần đầu tiên tôi bắt đầu với việc vạch ra cách các trò chơi sẽ hoạt động. Sau đó, tôi bắt đầu giải quyết từng chức năng một. Tôi đã nghiên cứu rất nhiều và mắc rất nhiều sai lầm nhưng cuối cùng tôi cũng bắt được chúng.
// this is for the tour and local gig functions
function performanceOutcomes() {
shuffle(gigResponses);
if (randomMsg === 'You were late to the gig and not allowed to perform.' || randomMsg === 'You were mugged outside after the gig and they took all of your money.') {
message.innerHTML = randomMsg;
money += 0;
earnings.innerHTML = `Total earnings: $ ${money}`;
} else {
message.innerHTML = randomMsg;
money += 5;
earnings.innerHTML = `Total earnings: $ ${money}`;
}
}
Code language: JavaScript (javascript)
7. Sắp xếp thông tin như thế nào?
Sẽ có rất nhiều phần chuyển đến trang web vì vậy tôi cần phải thông minh trong việc quản lý tất cả các tệp này. Tôi luôn ý thức về việc chọn các tên tệp và thư mục mô tả cần ngắn gọn để có thể dễ dàng tìm thấy chúng.
Tôi cũng gặp phải vấn đề có nhiều bảng định kiểu. Vì tôi đang sử dụng lại rất nhiều kiểu giống nhau, nên sẽ hợp lý hơn khi chỉ có một biểu định kiểu chính và liên kết nó với tất cả các trang HTML.
8. Dự án cơ bản đã hoàn thành
Vào cuối tháng 1 năm 2021, trang web cuối cùng đã sẵn sàng onboard. Tôi quyết định liên hệ với Nicholas Carrigan, người kiểm duyệt và nhà phát triển freeCodeCamp. Anh ấy có một dịch vụ cho các phiên đánh giá code trên trang web của anh ấy và tôi muốn anh ấy check code của mình. Buổi đánh giá rất có giá trị và tôi đã học được rất nhiều về cách làm cho trang web trở nên tốt hơn nữa.
9. Nhưng sự thật khi xuất bản trang web thì…
Không có thanh điều hướng. Không có chân trang. Không có CSS.
Tại sao điều này lại xảy ra?
Mọi thứ đều ổn khi tôi thử nghiệm nó tại địa phương. Sau nhiều giờ mày mò và nghiên cứu, cuối cùng tôi đã tìm đến sự giúp đỡ. Tôi đã nhắn tin cho Nicholas và giải thích vấn đề. Anh ấy check code và giải thích rằng có vấn đề với đường dẫn tệp của tôi và chỉ cho tôi cách khắc phục. Tôi cảm thấy nhẹ nhõm khi biết giải pháp cho vấn đề của mình và có thể thực hiện tất cả các thay đổi cần thiết.
<script src="landing-page-nav.js"></script>
<script src="landing-page-footer.js"></script>
<script src="index.js"></script>
Code language: HTML, XML (xml)
10. Lời khuyên cho người mới bắt đầu
Tôi đã học được rất nhiều điều khi xây dựng dự án này và chắc chắn có một phần thăng trầm. Nhưng cuối cùng, tôi rất hạnh phúc với kết quả mình đã đạt được. Nhất là với những kinh nghiệm lập trình tôi đúc kết được.
Những kinh nghiệm lập trình đó là gì?
Nếu bạn có ý tưởng cho một dự án, chỉ cần bắt đầu. Đừng đợi cho đến khi bạn sẵn sàng. Xây dựng nó theo cách tốt nhất mà bạn biết cách và triển khai nó. Nó là hoàn toàn tốt nó không phải là hoàn hảo hoặc đánh bóng. Chỉ cần tiếp tục xây dựng và học hỏi.
Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.
Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.