You are on page 1of 8

10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi

er đến developer – Tôi đi code dạo

Từ coder đến developer – Tôi đi code dạo

CHUYỆN CODING

9 project nhỏ mà bạn có thể code để luyện tập kĩ


năng lập trình

04/09/2018 | PHẠM HUY HOÀNG | 5 COMMENTS


Hôm trước, mình có giới thiệu về JavaScript, đánh giá nó là một ngôn ngữ mạnh mẽ, đáng học.

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
(h ps://toidicodedao.com/2017/01/19/code-pet-project/) (dự án nhỏ) để làm quen với ngôn ngữ và
công nghệ.

Mình cũng có hứa là sẽ chia sẻ một số project nhỏ mà các bạn có thể sử dụng JavaScript để build.

Do vậy, hôm nay mình viết bài này, tổng hợp 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ữ
(h ps://toidicodedao.com/2015/07/30/c-la-ngon-ngu-tuyet-voi-nhat-java-php-c-c-ruby-chi-toan-la-
thu-re-tien/) 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.

https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 1/8
10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi đi code dạo

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.

Mình từng có 2 bài chia sẻ về cái này:

Sử dụng HTML Agility Pack trong C# (h ps://toidicodedao.com/2015/07/28/tutorial-trich-xuat-


thong-tin-tu-website-voi-html-aglitity-pack/)
Sử dụng Puppeteer trong NodeJS (h ps://toidicodedao.com/2017/12/19/puppeteer-headless-
chrome-api-phan-2-cao-du-lieu-kenh14/)

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

(h ps://toidicodedao.files.wordpress.com/2015/06/webcraw
ler.png)
Làm một con web crawler đơn giản

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

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

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


2. Thêm một ghi chú mới
3. Sửa một ghi chú đã code
4. 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.
https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 2/8
10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi đi code dạo

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

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

(h ps://toidicodedao.files.wordpress.com/2018/08/electron
-js-framework-hacking.png)
Các bạn có thể tìm hiểu về Electron (h ps://electronjs.org/),
framework cho phép ta dùng HTML/CSS/JS để build ứng dụng
chạy trên mọi hệ điều hành

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

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

1. 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)

https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 3/8
10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi đi code dạo

2. RESTful API (h ps://toidicodedao.com/2016/05/31/huong-dan-viet-chat-bot-cho-facebook-phan-1-


kien-thuc-co-ban-co-che-hoat-dong/), 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 (h ps://www.heroku.com/) hoặc now.sh
(h p://now.sh) cho bạn bè dùng thử. Nhớ thêm swageer để 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

(h ps://toidicodedao.files.wordpress.com/2018/08/screen-
shot-2018-08-26-at-5-05-31-pm.jpg)
RestAPI của Code Dạo viết, cho phép tìm info diễn viên và những
phim họ đã đóng

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
(h ps://toidicodedao.com/2016/05/31/huong-dan-viet-chat-bot-cho-facebook-phan-1-kien-thuc-co-
ban-co-che-hoat-dong/) 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

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.

https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 4/8
10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi đi code dạo

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 (h ps://toidicodedao.com/2017/08/17/lam-the-
nao-de-tro-thanh-web-developer-phan-1/), 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.

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 (h ps://toidicodedao.com/2016/12/20/quan-ly-user-dung-cach/),
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 (h ps://toidicodedao.com/2015/07/07/tutorial-
tao-ung-dung-chat-voi-50-dong-code-firebase-va-angularjs/))

Bạn có thể tìm hiểu về Firebase (h p://firebase.google.com), socket.io (h p://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.

(h ps://toidicodedao.files.wordpress.com/2018/08/fi
rebase11.jpg)
Firebase dùng làm ứng dụng real-time khá là ok nha

https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 5/8
10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi đi code dạo

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.

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

(h ps://toidicodedao.files.wordpress.com/2018/08/1_v3dyq3
lseelx4u3eqtubrq.png)
Muốn sử dụng công nghê/ngôn ngữ gì cũng được nha

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é!

https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 6/8
10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi đi code dạo

Đọc thì nhiều thế thôi chứ 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
(h ps://toidicodedao.com/2018/03/01/lightning-talk-ki-8-kinh-nghiem-viet-cv-va-phong-van-xin-
viec/) ở những vị trí junior/fresher rồi. Chúc các bạn may mắn!

Ngoài ra, nếu có ý tưởng project nào nho nhỏ, thú vị, các bạn có thể comment bên dưới để mình bổ
sung nha.

P/S: Để theo dõi bài viết trên Tôi Đi Code Dạo, nhớ Subscribe Chat Bot (h p://bit.ly/codedao-bot) của
tụi mình nha. Bot của Code Dạo sẽ gửi bạn những bài viết cực kì hay ho về kĩ năng mềm và cứng,
kinh nghiệm trong ngành vào thứ 4 hàng tuần nhé!

(h p://bit.ly/codedao-bot)

Advertisements

REPORT THIS AD
ADVERTISEMENT

.NET BLOG BUILD C# CHAT BOT CRAWL DATABASE E-


COMMERCE FACEBOOK HTTP
REQUEST JAVA JAVACSRIPT JS MOBILE NODEJS PET PROJECT SẢN
PHẨM WEB WEB BÁN HÀNG

5 thoughts on “9 project nhỏ mà bạn có thể code để luyện


tập kĩ năng lập trình”
https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 7/8
10/10/2018 9 project nhỏ mà bạn có thể code để luyện tập kĩ năng lập trình | Từ coder đến developer – Tôi đi code dạo

1. tudiemblog says:
04/09/2018 AT 9:10 AM
Gợi ý hữu ích , thanks bạn !

2. Luris says:
04/09/2018 AT 8:20 PM
Cám ơn anh, gợi ý khá hữu ích. Hi vọng sẽ còn nhiều bài về gợi ý các project như vầy nữa.

3. Thang Le says:
21/09/2018 AT 11:37 AM
Am thấy anh có ghi là: “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.”. Trong suy nghĩ của em thì có 3 nấc junior -> developer -
> senior, nên em nghĩ ai mà làm tuốt hết 9 projects này thì trình độ cũng tầm developer trở lên rồi
anh hi, có khi gần đến mức senior, lúc đó thì phải apply ở những vị trí cao hơn anh nhỉ, tại sao
anh lại ghi “junior/fresher” lại còn in nghiêng vậy a. (Thực ra em cũng có chút “ảo tưởng sức
mạnh”, nên hỏi vậy để nhờ anh “dìm” bớt em xuống hehe)

1. Phạm Huy Hoàng says:


22/09/2018 AT 8:48 PM
Làm thử mấy cái này cho nó chạy được thì junior là làm được rồi em. Thời anh đi học sinh
viên năm 3/4 bọn nó làm mấy cái này ầm ầm.

Tầm developer/senior là sẽ biết viết code chạy được, bảo trì và mở rộng theo ý người dùng
được. Pv cỡ developer hoặc senior mà kể mấy project làm chơi ra thì nó và sml e nhé

4. Thang Le says:
22/09/2018 AT 10:27 PM
Haha. em hiểu ý a rùi, tầm developer trở lên sẽ làm những thứ tầm cỡ coder thường sẽ không với
tới, với lại code sẽ dễ bảo trì, mở rộng ạ. :D.

https://toidicodedao.com/2018/09/04/project-luyen-tap-ki-nang-lap-trinh/ 8/8

You might also like