9 Project nhỏ mà bạn có thể code để luyện tập kỹ năng lập trình

08:58 25-09-2019BKAP Media

JavaScript được đánh giá là một ngôn ngữ mạnh mẽ, đáng học và cũng được sử dụng đa dạng các mảng khác nhau.

Một trong những cách học nhanh nhất chính là sử dụng JavaScript để build một số pet project (dự án nhỏ) để làm quen với ngôn ngữ và công nghệ.


Dưới đây là một số project nhỏ mà các bạn có thể sử dụng JavaScript để build. 9 dự án nhỏ, đơn giản, dễ làm mà các bạn có thể tập code để nâng cao kỹ năng lập trình.

Note: Tuy nói là JavaScript nhưng các bạn có thể dùng bất cứ ngôn ngữ gì code cũng được nhé (C#, Java, PHP). Chỉ có một vài dự án sẽ cần dùng JavaScript ở front-end thôi.

I. Cấp độ dễ

Các dự án cấp độ dễ này chỉ cần đụng tới console/file. Thời gian code cũng khá nhanh. Hoàn thành các dự án này, bạn sẽ có nền tảng để làm những thứ phức tạp hơn.

1. Tool crawl dữ liệu từ các website

Mô tả: Viết một tool gửi HTTP Request tới một trang web tin tức bất kỳ như vnexpress, webtretho, kenh14, bóc tách dữ liệu từ HTML, sau đó in ra cửa sổ console.

Kỹ năng học được:

Cách sử dụng thư viện để gọi HTTP Request

Cách sử dụng xpath/selector để lấy dữ liệu từ HTML

2. Ứng dụng ghi chú (notes) trên console

Mô tả: Cửa sổ console sẽ hiện 1 menu bao gồm:

Hiển thị toàn bộ các ghi chú

Thêm một ghi chú mới

Sửa một ghi chú đã code

Xóa bỏ một ghi chú

Bonus: Nếu lưu toàn bộ các notes trong memory, khi tắt ứng dụng các note sẽ biến mất. Lưu toàn bộ các notes xuống file txt, khi mở ứng dụng lên ta sẽ đọc từ file này.

Kỹ năng học được:

Cách nhận input/output từ console

Cách làm việc với mảng

Cách làm việc với file I/O

Thử bắt đầu với các project dễ trước

II. Cấp độ trung bình

Các dự án ở cấp độ trung bình này sẽ đòi hỏi bạn biết thêm về UI, database, cron, Web API.

3. Ứng dụng ghi chú (notes) cải tiến:

Mô tả: Chức năng tương tự như ứng dụng ghi chú phía trên, nhưng có UI (Dùng Electron của JS, Winform/WPF của C#, Java Swing của Java). Note nên được lưu vào database, đọc từ database

Kỹ năng học được:

Cách làm việc với UI

Cách lưu trữ, đọc dữ liệu từ database

4. Rest API cho VNExpress, Web Trẻ Thơ

Mô tả: Dự án gồm 2 phần:

Crawler lấy dữ liệu bài viết từ VNExpress, webtretho, bao gồm: Tựa đề, nội dung, url bài viết, thời gian đăng, lưu xuống database. Crawler này sẽ chạy mỗi 60 phút. (Tìm hiểu về cron hoặc recurring task)

RESTful API, cho phép người dùng lấy thông tin các bài viết đã có trong database dưới dạng JSON. API này cho phép search, filtering, paging. Có thể dùng bất kì framework nào (Express, Hapi, ASP.NET MVC) tùy thích.

Bonus: Tìm cách deploy dự án này lên heroku hoặc now.sh cho bạn bè dùng thử. Nhớ thêm swagger để người dùng biết cách gọi API nha.

Kỹ năng học được:

Cách viết cron job/recurring task

Cách viết RestfulAPI sử dụng Web Framework

5. Làm Facebook chat bot

Mô tả: Làm một con Facebook chat bot đơn giản, có khả năng nhận tin nhắn của người dùng, chat lại những thứ người dùng nói

Hướng dẫn thì các bạn xem lại series Hướng dẫn Facebook Chat Bot của mình nha.

Kỹ năng học được:

Hiểu về webhook, biết cách setup webhook

Biết message payload của Facebook webhook gồm những thành phần nào

Cách sử dụng RestAPI/ Facebook Graph API

III. Cấp độ khó

Nói là khó chứ cấp độ này cũng không quá khó đâu, chỉ có điều hơi nhiều chức năng và hơi rộng thôi.

Bạn phải hoàn thành những dự án nhỏ ở những cấp độ trước thì mới đủ khả năng hoàn thành những dự án này nhé. Đa phần các dự án này là dự án web, các bạn muốn dùng framework nào cũng được.

6. Ứng dụng ghi chú bản Web/Mobile

Mô tả: Đưa ứng dụng ghi chú của bạn lên Web/Mobile. Thêm một số tính năng như Login, cho phép người dùng chọn màu sắc, style của note.

Ứng dụng Ghi chú

Bạn có thể sử dụng framework gì tùy thích. Nếu làm bản mobile thì phía back-end sẽ tạo RestAPI cho mobile dùng nhé.

Kỹ năng học được:

Cách dùng web framework để tạo 1 trang web động.

Cách implement chức năng login, lưu trữ thông tin người dùng.

7. App chat đơn giản realtime

Mô tả: Làm một chatroom đơn giản, ko cần đăng nhập, chỉ cần nhập username là có thể chat (Tương tự ví dụ mẫu này: Làm app chat đơn giản với Firebase)

Bạn có thể tìm hiểu về Firebase, socket.io của NodeJS hoặc SignalR của .NET

Kỹ năng học được:

Cách code ứng dụng realtime, dùng công nghệ hỗ trợ realtime.

8. Blog cá nhân

Mô tả: Tạo 1 blog cá nhân với 2 phần

Phần mặt tiền: hiển thị blog, paging, chia blog theo các category, comment blog

Phần admin: cho phép bạn tạo category, tạo bài viết, format dưới dạng HTML, sửa hoặc xóa bài viết.

Kỹ năng học được:

Cách thiết kế Database cho một blog

Cách lưu trữ hình ảnh (lưu file rồi đường dẫn xuống database nha), hiển thị hình ảnh

Cách làm web động và sử dụng WYSIWYG editor

9. Web bán hàng

Mô tả: Tạo một trang web bán hàng với 2 phần

Phần mặt tiền: Hiển thị sản phẩm theo category, tìm kiếm sản phẩm, mua hàng

Phần admin: Tạo category và sản phẩm, kiểm tra/thay đổi trạng thái đơn hàng.

Tạo website bán hàng

Kỹ năng học được:

Cách thiết kế database cho một web bán hàng

Cách xử lý transaction trong Database

Thiết kế flow mua hàng/xử lý đơn hàng

Tạm kết

Bạn có thể dùng những dự án này để luyện tập bất kì ngôn ngữ nào chứ không chỉ là  JavaScript nhé! Đọc có vẻ nhiều nhưng thực chất các bạn hoàn toàn có thể làm hết những dự án này trong khoảng 3-6 tuần, tùy vào ngộ tính và cần cù thôi.

Làm hết những thứ này, bạn sẽ đủ kiến thức và tự tin để đi phỏng vấn, xin việc ở những vị trí junior/fresher rồi. Chúc các bạn may mắn!

---------------------------------------

Nhằm khích lệ tinh thần học tập và gia tăng giá trị kết nối cho các bạn sinh viên đầu năm học, Hệ thống đào tạo CNTT Quốc tế Bachkhoa-Aptech tri ân NGÀY VÀNG ƯU ĐÃI - với nhiều lợi ích bất ngờ!

  • TẶNG NGAY 1.000.000 VNĐ khi đăng ký khóa học dài hạn (Lập trình, quản trị mạng và bảo mật) tại Bachkhoa-Aptech.
  • TẶNG NGAY 300.000 VNĐ khi đăng ký khóa học ngắn hạn (Lập trình PHP, Android, lập trình website, Tester…)
  • Tự do lựa chọn chuyên ngành, xét tuyển hoàn toàn miễn phí

>>> Nhận ngay ưu đãi: https://bit.ly/2kef80P

-------------------------------------

Bachkhoa-Aptech - Hệ thống Đào tạo CNTT Quốc tế Số 1 Việt Nam

  • Địa chỉ: Tòa nhà HTC, 236B & 238 Hoàng Quốc Việt, Từ Liêm, Hà Nội

  • Hotline: 0968 27 6996 - 024 3755 4010

  • Email: tuyensinh@bachkhoa-aptech.edu.vn

CÙNG BACHKHOA-APTECH BỨT PHÁ ĐỂ DẪN ĐẦU!

   0968276996
< wire:id="98B8YMtQW7aArcdFRxZu" wire:initial-data="{"fingerprint":{"id":"98B8YMtQW7aArcdFRxZu","name":"embedded.footer","locale":"vn"},"effects":{"listeners":[]},"serverMemo":{"children":[],"errors":[],"htmlHash":"26380eb1","data":[],"dataMeta":[],"checksum":"504d2116c1bb1cadb2dc597d4c5634bbfc0d5a59259a66e89d5e3933ab07c13c"}}"!-- Messenger Plugin chat Code -->