6 project vui dành cho dev build khi chán
Tác giả: Dann
Hẳn là có nhiều lúc bạn sẽ đắn đo suy nghĩ về những side project vui, thú vị mà mình có thể tự tay build, mà chưa thật sự có ý tưởng gì hay ho nên cảm thấy chán và nản dần. Vậy tại sao không thử build project gì đó vừa vui mà vừa luyện thêm vài kỹ năng mới?
Mình sẽ liệt kê một danh sách những thứ theo mình là vừa vui vừa hơi hóc búa để luyện trình, từ đó có thể cải thiện kỹ năng của bạn rất nhiều:
Xe Lego tự lái
Một thời gian trước mình từng làm một dự án tương tự thế này, mục tiêu là tạo ra chiếc xe đồ chơi từ Lego mà có thể viết một từ nào đó lên mảnh giấy.
Thì cái project này hướng đến việc làm chiếc xe hơi từ Lego (hay Lego Technic) có thể tự lái mà không va chạm vào các vật khác. Với project này, bạn sẽ cần một Raspberry Pi (hoặc Arduino) hay thiết bị cảm biến sóng siêu âm (ultrasonic sensor) để tránh vật cản. Nếu bạn chưa bao giờ đụng đến Raspberry Pi (hoặc Arduino) thì mình cực kỳ recommend sử dụng và làm quen thiết bị này, bởi sự kết hợp giữa phần cứng và mềm là điểm thú vị của project này.
Bạn sẽ học được:
- Cách sử dụng cơ bản Arduino (hay Raspberry Pi)
- Đọc cảm biến
- Tương tác giữa software và hardware
Ứng dụng catalog
Tạo catalog thì đã có khá nhiều dự án rồi, nhưng bạn có thể thêm thắt vào vài chi tiết như sử dụng Flutter.
Flutter là bộ toolkit UI từ Google, cho phép bạn tạp một native mobile application với một codebase duy nhất. Nó sử dụng ngôn ngữ lập trình Dart. Flutter hiện nay đang khá hot và được nhiều người quan tâm đấy.
Bạn sẽ học được:
- Flutter
- The Dart programming language
- App development
Xem thêm Chat app đơn giản với Flutter
Giải mã sudoku
Giải đố sudoku thì không cần giới thiệu nữa, nó là ứng dụng khá hay khi tập build thuật toán. Mục tiêu của project này là tạo một thuật toán có thể tự động tạo ra câu đố Sudoku hợp lệ.
Nếu dễ quá thì bạn có thể làm thêm 1 bước nữa đó là build thuật toán giải Sudoku với thuật toán quay lui: Backtracking alogorithm.
Xem thêm 10 thuật toán hàng đầu dành cho lập trình viên
Bạn sẽ học được:
- Học và triển khai thuật toán Sudoku
- Thậm chí bạn có nâng trình hơn bằng cách thêm level khó hơn vào câu đố Sudoku
Phân loại xe hơi
Phân cụm và phân loại (Clustering và Classification) là một phần trong Machine learning. Mục tiêu của proect này là phân loại độ an toàn của xe hơi dựa trên data của chúng. Nếu bạn chưa quen với giới ML thì project này khá ổn để bạn luyện trình của mình đó. Và để bắt đầu thì bạn có cần có data set.
Bạn sẽ học được:
- Sơ qua và làm quen về Machine Learning
- Phân tích dữ liệu
Xem thêm Giải thích Machine Learning cho con nít 5 tuổi
Game 2D
Nếu bạn từng muốn thử sức với lập trình game thì ban có thể cân nhắc build một game 2D. Vì là những buớc đầu tiên trong quá trình làm quen với lập trình game nên bạn sẽ học được nhiều cái thú vị lắm, từ đó đẩy mạnh kỹ năng lập trình của mình.
Bạn cũng chưa cần phải nghĩ ra một ý tưởng nào đó hoàn toàn mới, bạn có thể build lại game rất nổi tiếng Flappy Bird của Nguyễn Hà Đông – phiên bản dành cho mobile hay máy tính.
Xem thêm 4 ngôn ngữ phát triển game indie phổ biến
Bạn sẽ học được:
- Sự chuyển động của thực thể
- Side-scrolling – góc nhìn ngang
- Phát hiện va chạm
Progressive Web App
Progressive Web App đang khá hot, mà kiểm soát phạm vi của PWA cũng không phức tạp nên hoàn toàn phù hợp cho một side-project. Nếu có ý định build một PWA thì đây là lúc thích hợp để kết hợp với một trong top JavaScript framework hiện nay – là Angular, React, Vue. Có thể research trước và chọn ra framework phù hợp với mình.
Bạn sẽ học được:
- Mọi thứ cần cho PWA
- Một framwork JavaScript theo ý mình
- Xây web cơ bản như HTML/CSS
Bắt tay vào thôi! project vui
Hy vọng bạn đã tìm được một project thú vị mà không kém phần thử thách trong list của mình. Chắc chắn bạn sẽ học được rất nhiều điều mới khi bắt tay làm dù chỉ là một trong những project như vầy.
Happy coding!
Bài viết gốc được đăng tải tại Medium
Có thể bạn quan tâm: project vui
- Mẫu bảng công việc Project Manager mức lương hấp dẫn
- Những project cá nhân giúp mình lên trình senior Javascript
- Những projects giúp nâng hạng Front-end Developer
Xem thêm việc làm developer hấp dẫn tại TopDev
- B BenQ RD Series – Dòng Màn Hình Lập Trình 4k+ Đầu Tiên Trên Thế Giới
- F Framework nào tốt nhất cho dự án của bạn? – Checklist chi tiết
- K Kinh nghiệm xử lý responsive table hiệu quả
- S Stackoverflow là gì? Bí kíp tận dụng Stack Overflow hiệu quả
- 7 7 kinh nghiệm hữu ích khi làm việc với GIT trong dự án
- B Bài tập Python từ cơ bản đến nâng cao (có lời giải)
- B Bảo mật API là gì? Một số nguyên tắc và kỹ thuật cần biết
- H Hướng dẫn cài đặt và tự học lập trình Python cơ bản từ A-Z
- C Chinh Phục Phân Tích Dữ Liệu Với Pandas Trong Python: Hướng Dẫn Từng Bước
- D Display CSS là gì? Cách khai báo và sử dụng thuộc tính display trong CSS