GrowUp Articles

15 ý tưởng Side Project độc đáo cho lập trình viên

Cho dù bạn là người mới bắt đầu, Junior hay Senior Developer, việc xây dựng các Side Project luôn là một ý tưởng tuyệt vời để nâng mình lên các cấp độ tiếp theo.  Bạn không nên chọn các dự án quá dễ vì bạn sẽ không học được nhiều từ chúng. Mặt khác, việc chọn những cái quá khó có thể làm bạn nản chí và mất tinh thần.Trong bài viết này, bạn sẽ tìm thấy các ý tưởng Side Project độc đáo cho mọi cấp độ lập trình. Trước khi tham khảo các ý tưởng này, hãy đảm bảo rằng bạn biết một số kiến ​​thức cơ bản về lập trình. 

15 ý tưởng Side Project độc đáo cho lập trình viên
15 ý tưởng Side Project độc đáo cho lập trình viên

Làm thế nào để cải thiện kỹ năng nếu bạn là một lập trình viên? Có rất nhiều câu trả lời cho câu hỏi này, trong đó Side Project là lựa chọn khá thú vị. Tuy nhiên, để phát triển một Side Project thực tế không phải là con đường dễ dàng. Hầu hết mọi người đều nghe nói rằng thực hiện Side Project là cách tốt nhất để cải thiện kỹ năng phát triển khi là một Developer. Tuy nhiên, theo số liệu thống kê cho thấy rằng nhiều người không thể duy trì Side Project hoặc đi sai mục đích ban đầu. 

Trước hết bạn cần hiểu Side Project là gì? Những giá trị và mục đích của Side Project, cũng như Làm thế nào để thực hiện một Side Project hiệu quả trong bài viết:

Vì sao Developer nên có ít nhất một Side Project?

Sau khi bạn đã hiểu và thực sự muốn bắt tay vào thực hiện một Side Project cho bản thân thì dưới đây là 15 ý tưởng Side Project mà lập trình viên có thể tham khảo!

1. Game Bao kéo búa

Trò chơi Bao kéo búa là một trong những ý tưởng dự án đơn giản nhất trong danh sách các ý tưởng Side Project này. 

Mô tả:

Bắt đầu bằng cách để người chơi lựa chọn các option như kéo, búa hoặc bao. Sau đó bạn hãy lưu kết quả đó và random lựa chọn của máy.Phân định thắng thua thì bạn cần lập trình các mối quan hệ giữa các lựa chọn như kéo thắng bao, bao thắng búa, búa thắng kéo. Sau đó, bạn kiểm tra xem người chơi thắng, thua hay hòa và hiển thị kết quả đầu ra. Hơn nữa, bạn cũng có thể triển khai bảng điểm theo dõi kết quả của người chơi. 

Side Project: Phát triển Game Bao kéo búa đơn giản

Cấp độ phát triển:  

Người mới bắt đầu - Junior Developer

Kỹ năng cần có:

Các khái niệm lập trình cơ bản

2. Đoán số

Ý tưởng này tương tự như dự án trước đó nhưng bổ sung thêm một số tính năng. 

Mô tả:

Đầu tiên, bạn tạo một số ngẫu nhiên từ phạm vi 1 đến 100 và người dùng cần đoán đúng. Cho dù con số bé hơn, lớn hơn hoặc, đoán đúng bạn cần thông báo kết quả này. Như vậy, sau mỗi lần đoán sai, cơ hội đoán đúng của người chơi sẽ tăng lên. Bạn cũng có thể giới hạn số lần được đoán sai là 5. Điều đó có nghĩa là, khi người chơi vượt quá giới hạn này thì sẽ tự động thua cuộc.

Cấp độ phát triển: 

Người mới bắt đầu

Kỹ năng cần có:

Các khái niệm lập trình cơ bản

3. Quiz Game - đố vui trắc nghiệm

Hãy tưởng tượng bạn đang tham gia chương trình truyền hình “Ai là thành triệu phú?”. Nhưng thay vì chơi trước khán giả, người chơi thực hiện thử thách với các câu hỏi này này với một game ảo trên các thiết bị. Ý tưởng này khá dễ dàng và đơn giản để phát triển

Mô tả:

Trước hết, hãy tạo một tệp JSON (JavaScript Object Notation) với các câu hỏi và câu trả lời của bạn. Luồng ứng dụng thực sự đơn giản - bạn hiển thị một câu hỏi và đợi người chơi trả lời câu hỏi đó. Nếu đúng, hãy cộng cho người chơi một điểm. Lặp lại quá trình này tùy thuộc vào bộ câu hỏi mà bạn có. Cuối cùng, hãy tạo một danh sách High Score, nơi bạn sẽ thêm những người chơi đã thực hiện thử thách của bạn với số điểm cao nhất gần đây nhất.

Cấp độ phát triển:

Người mới bắt đầu

Kỹ năng cần có:

Các khái niệm lập trình cơ bản
File JSON

4. Game Caro

Trò chơi Caro truyền thống được chơi trên giấy hoặc bất kỳ mặt phẳng nào, với 2 người chơi. Giờ đây chúng ta có thể biến trò chơi này thành ý tưởng cho Side project - một Game Caro ảo 

Mô tả:

Trong trường hợp này, Bạn hãy phát triển những ô vuông hiển thị cho 2 người chơi điền vào. Bây giờ, người chơi thứ nhất chọn ký hiệu X hay O đề điền vào ô, rồi đổi lượt cho người tiếp theo. Trò chơi kết thúc khi ai đó đạt được 3 dấu ký hiệu mà họ chọn thẳng hàng ngang, hàng chéo, hay hang dọc hoặc không còn ô trống nào. Rồi công bố kết quả!

Lập trình Game Caro ảo dành cho 2 người chơi
Lập trình Game Caro ảo dành cho 2 người chơi

Cấp độ phát triển:

Người mới bắt đầu

Kỹ năng cần có

Các khái niệm lập trình cơ bản

5. Hangman

Hangman cũng là một trò chơi dựa trên sự ngẫu nhiên và phỏng đoán. Lần này, người chơi sẽ cố gắng đoán một từ mà trò chơi đưa ra dựa trên số lượng ký tự. 

Mô tả:

Trước hết, hãy chuẩn bị một tệp chứa tất cả các cụm từ. Nó có thể là một tệp văn bản đơn giản hoặc JSON. Bây giờ, hãy bắt đầu ứng dụng của bạn bằng cách đọc danh sách các từ và chọn một từ ngẫu nhiên. Hiển thị nó dưới dạng ký hiệu lên giao diện trò chơi và yêu cầu người chơi nhập ký tự mà họ đoán là có trong cụm từ này. Nếu anh ta chọn đúng một trong những trong cụm từ mà game chọn ngẫu nhiên trước đó thì hãy báo đúng và hiển thị nó lên trong cụm từ đan ẩn các ký tự.

Ví dụ: Từ của bạn là “ngang”, và người chơi nhập chữ ”n”. Trong trường hợp này, bạn cần hiển thị kết quả sau: n***n*

Bạn cũng nên hạn chế số được lần đoán sai và kết thúc trò chơi khi vượt quá. Hơn nữa, bạn cần kiểm tra xem người chơi chỉ cung cấp cho bạn một chữ cái hay không. Nếu không, bạn cần hiển thị thông báo lỗi.

Cấp độ phát triển:

Người mới bắt đầu

Kỹ năng cần có

Các khái niệm lập trình cơ bản
Filesystem

6. API rút gọn URL

Để có thêm gợi ý cho dự án này, bạn có thể kiểm tra một số trang web phổ biến như cutt.ly, bit.ly hoặc shorturl.at. Bắt đầu bằng cách tạo API REST với một điểm cuối duy nhất nơi người dùng có thể rút ngắn URL của họ. 

Mô tả

Trong yêu cầu, người dùng cần cung cấp liên kết và ngày hết hạn của mình dưới dạng thông số tùy chọn. Kết quả Output là người dùng nhận được phản hồi có chứa URL đã rút gọn của mình. Bạn nên lưu trữ mọi address và liên tục loại bỏ những address  đã hết hạn. Bạn có thể lưu chúng vào Database, address  trong bộ nhớ hoặc chỉ giữ chúng trong một biến.

Cấp độ phát triển:

Mức độ lập trình là Junior Developer

Kỹ năng cần có:

API REST
Data storage

7. Portfolio

Hầu hết mọi Developer đều nên có một Portfolio bởi vì nó thực sự hữu ích khi một developer đang tìm kiếm các cơ hội công việc khác nhau từ chính thức đến part-time hoặc freelance theo dự án. Đó là một cách tuyệt vời để thuyết phục nhà tuyển dụng về năng lực của bạn với những dự án tuyệt vời mà bạn đã từng phát triển, tất cả hiển thị thông qua Portfolio 

Mô tả:

Ý tưởng này không chỉ nâng cao kỹ năng phát triển của bạn mà còn cung cấp cho bạn một tài sản thiết yếu cho sự nghiệp lập trình của mình. Bắt đầu với một thiết kế đơn giản. Bao gồm các dự án trước đây của bạn có thể thể hiện kỹ năng của bạn và thêm liên kết đến những nơi mà mọi người có thể contact với bạn. Đừng quên deploy website và đảm bảo nó hoạt động!

Nếu bạn thực sự muốn thiết kế ra một giao diện nổi bật, đây là một số website Portfolio hay để tham khảo cho Portfolio của riêng mình:

https://mattfarley.ca/
https://jacekjeznach.com/
http://findmatthew.com/

Cấp độ phát triển:

Trung bình, dành cho các Developer ở Mid Level

Kỹ năng cần có:

UI / UX

8. Ứng dụng Dự báo Thời tiết

Ứng dụng này sẽ cho phép mọi người nhanh chóng tìm thấy thông tin liên quan về thời tiết hiện tại và tương lai.

Mô tả:

Tùy thuộc vào đối tượng người dùng mục tiêu của bạn, nó có thể là một website, desktop hoặc Mobile app. Để nhận dữ liệu thời tiết, bạn cần kết nối và tương tác với API thời tiết.

Có rất nhiều API thời tiết, chẳng hạn như OpenWeather. Sau khi thiết lập kết nối với API, bạn cần tạo giao diện người dùng và hiển thị dữ liệu có liên quan. Bạn cũng nên cho phép người dùng lọc thông tin dựa trên vị trí và thời gian hiện tại của họ.

Cấp độ phát triển:

Từ trung bình trở lên, không quá khó để các Junior Developer thực hiện

Kỹ năng cần có

API
UI / UX

9. Encrypt và decrypt thuật toán

Nếu bạn muốn cải thiện cấu trúc dữ liệu và kỹ năng thuật toán của mình, dự án này chắc chắn là dành cho bạn. Hơn nữa, việc xây dựng một cơ chế như vậy có thể thực sự thú vị. 

Mô tả:

Hãy tưởng tượng gửi một tin nhắn được mã hóa cho đồng nghiệp của bạn trong khi không ai có thể hiểu được nó ngoài người nhận. Đây là một ví dụ:

Cụm từ "ATTACKATDAWN" được mã hóa bằng một trong những thuật toán phổ biến nhất được gọi là “mật mã Vigenère” với key dùng để mã hóa là “LEMON”

Đầu tiên bạn cần nhân chuỗi “LEMON” để nó có cùng độ dài với chuỗi cần mã hóa, thành: “LEMONLEMONLE”. Và kết quả sau khi mã hóa có thể trông như vầy: “LXFOPVEFRNHR”

Khi thực hiện dự án này cũng sẽ ngốn không ít thời gian của bạn nhưng kết quả rất xứng đáng với thời gian và nỗ lực của bạn.

Cấp độ phát triển: 

Nhà phát triển cấp độ Junior trở lên

Kỹ năng cần có:

Cấu trúc dữ liệu
Thuật toán

10. Trình theo dõi thu chi

Dự án này tập trung vào nhiều lĩnh vực lập trình. Nếu tương lai bạn muốn được thực hiện các dự án Fintech thì ý tướng này sẽ là bước đệm ban đầu để bạn có thể tiếp cận.

Trước hết, bạn cần tạo một giao diện nơi người dùng có thể thêm chi phí và thu nhập của họ. Hơn nữa, dữ liệu phải được hiển thị dưới dạng biểu đồ để người dùng có thể có đánh giá trực quan về tình hình tài chính của họ. Cuối cùng là tất cả tiến trình cần được lưu trong database, file hoặc thứ gì đó khác sẽ phù hợp với trường hợp sử dụng cụ thể của bạn.

Cấp độ phát triển:

Nhà phát triển cấp độ trung bình trở lên

Kỹ năng cần có:

UI / UX
Data visualization (Trực quan hóa dữ liệu)
Databases

10. Website mạng xã hội

Nói cách khác - xây dựng một Facebook của riêng bạn. Cách tiếp cận đơn giản nhất là kiểm tra các trang mạng xã hội (chẳng hạn như Facebook, Twitter, Reddit) và lấy cảm hứng từ chúng. 

Như bạn có thể biết, ứng dụng của bạn cần phải có giao diện người dùng, API và Database để lưu trữ tất cả thông tin. Nếu bạn triển khai dược các tính năng định vị địa lý thì càng tốt. Ví dụ: hiển thị những người đang ở gần vị trí của người dùng.

Cấp độ phát triển:

Phức tạp và nâng cao

Kỹ năng cần có:

API REST
UI / UX
Databases

12. Website bán hàng online

Một cửa hàng online hay còn gọi là E-commerce là một ví dụ tuyệt vời về một website full-stack. 

Mô tả

Bạn nên xây dựng giao diện người dùng hoàn chỉnh ở phía Clients, bao gồm các phần như trang chủ, menu với nhiều danh mục và sản phẩm, công cụ tìm kiếm và trang đặt hàng. Phần phụ trợ của bạn sẽ bao gồm một API sẽ xử lý các yêu cầu đến và một database để lưu giữ tất cả các thông tin được yêu cầu. Ngoài ra, đừng quên triển khai cổng thanh toán vì nó là một phần tất yếu.

Cấp độ phát triển:

Phức tạp và nâng cao

Kỹ năng cần có:

API REST
UI / UX
Databases
Kiến thức nghiệp vụ về Thanh toán

13. SQL Databases

Khi thực hiện ý tưởng Side Project này sẽ giúp bạn luyện tập các regex expressions và kỹ năng thao tác với chuỗi. 

Mô tả:

Đây là một SQL Databases đơn giản hỗ trợ một số truy vấn hiện có. Những thứ phổ biến nhất như CHỌN, CHÈN, CẬP NHẬT và XÓA sẽ cần được cài vào. Để lưu trữ dữ liệu cần thiết, bạn có thể sử dụng tệp JSON hoặc chỉ cần lưu trong bộ nhớ. 

Phần thách thức nhất thực sự là phát hiện các truy vấn không đúng định dạng và chỉ thực thi những truy vấn hợp lệ. Bạn có thể sẽ phải đối mặt với một số vấn đề trong quá trình này nhưng chắc chắn bạn sẽ có nhiều kinh nghiệm khi làm việc với dữ liệu.

Cấp độ phát triển:

Phức tạp và nâng cao

Kỹ năng cần có:

Regex
Thao tác với chuỗi
Data structures
Các thuật toán

14. Khóa học Online

Mọi lập trình viên có thể đều biết Udemy. Đó là nơi bạn có thể mua khóa học của người khác hoặc bán khóa học của chính mình. Ứng dụng khóa học của bạn cũng sẽ có thể giống vậy.

Mô tả:

Bạn phải có tất cả các tính năng cần thiết như xác thực, tải và hiển thị video và công cụ tìm kiếm. Hiện cũng rất nhiều developer đang cố gắng thực hiện ý tưởng này nhưng hầu hết các dự án của họ bao gồm một giao diện người dùng đơn giản và một chút logic phía máy chủ. Đây có thể là một sai lầm vì có thể bạn sẽ không học được nhiều khi chỉ tạo một ý tưởng đơn giản như vậy. Bạn nên tập trung vào việc làm cho nó thực tế nhất có thể để học được nhiều kiến thức nhất có thể và giới thiệu kỹ năng của bạn với nhà tuyển dụng tiềm năng.

Cấp độ phát triển:

Phức tạp và nâng cao

Kỹ năng cần có:

API REST
UI / UX
Truyền video
Cơ sở dữ liệu
Thanh toán

15. Cờ vua

Dù là Game nhưng đây có thể là ý tưởng thách thức lập trình viên nhất trong danh sách các ý tưởng Side Project này. 

Mô tả:

Ứng dụng của bạn sẽ có hai chế độ: một người chơi và nhiều người chơi. Trong chế độ chơi một người, bạn cần tạo một thuật toán máy học thực sự biết cách chơi cờ. Hơn nữa, người dùng có thể chọn mức độ khó trong phạm vi từ 1 đến 10. Về chế độ nhiều người chơi, các quy tắc đều giống nhau. Sự khác biệt duy nhất là thay vì một bot, sẽ có một người dùng khác. Để người chơi thực hiện các bước di chuyển trực tiếp, bạn cần sử dụng giao thức thời gian thực cho phép bạn cập nhật các thay đổi trong thời gian thực (ví dụ: Websockets).

Cấp độ phát triển:

Phức tạp và nâng cao

Kỹ năng cần có:

UI / UX
API REST
Tương tác thời gian thực
Machine Learning
Data structures
Các thuật toán

Kết luận

Thế là chúng ta vừa đi qua 15 ý tưởng Side Project độc đáo dành cho lập trình viên mà bạn có thể tham khảo. Bây giờ, đã đến lúc bạn phải hành động. Chọn một dự án thực sự cuốn hút, truyền cảm hứng và động lực cho bạn. Điều quan trọng hơn hết là dù chọn ý tưởng nào, bạn cần phải nhất quán, bám sát ý tưởng và kiên trì thực hiện được mục tiêu mong muốn. Chúc bạn thành công!
 


Tin tức liên quan

Chọn FrontEnd hay BackEnd? Nghề nào dễ tìm việc và lương cao hơn?

Kiến thức kỹ thuật| 2021-10-21
Nên chọn FrontEnd hay BackEnd? Rất nhiều thắc mắc với hai lĩnh vực này, hãy cùng GrowUpWork tìm hiểu chi tiết hai lĩnh vực này dưới bài viết hôm nhé.

Kỹ năng cần thiết của Dev khi làm việc ở công ty Nhật?

Kiến thức kỹ thuật| 2021-10-18
Những kỹ năng cần thiết của Dev khi làm việc ở công ty Nhật sẽ giúp các bạn có thể có ấn tượng mạnh đối với nhà tuyển dụng. Từ đó, bạn sẽ có mức lương như mong muốn.

Smoke test là gì? Hiệu quả tối ưu của smoke test trong ngành QA

Kiến thức kỹ thuật| 2021-10-15
Trong ngành Kiểm thử phần mềm chúng ta có nhiều chuyên môn khác nhau. Cùng tìm hiểu Smoke test là gì? Và biết thêm về hiệu quả tối ưu của Smoke Test trong ngành QA.

Nhu cầu tuyển dụng kỹ sư IT trong tương lai

Kiến thức kỹ thuật| 2021-10-14
Nhu cầu tuyển dụng kỹ sư IT trong tương lai luôn tăng mạnh mẽ như thế nào? Tình hình thị trường việc làm ra sao? Bài viết dưới đây sẽ giúp tìm hiểu về điều này nhé!