Chào các bạn,
Sau rất nhiều năm làm việc trong ngành lập trình, đào tạo ra nhiều kỹ sư phần mềm, những lập trình viên ở những vị trí khác nhau, tôi đã rút ra một kinh nghiệm, để trở thành một top developer rất đơn giản: phải rèn luyện tính kỷ luật. Điều này giúp bạn phát triển khả năng tìm ra giải pháp cho các vấn đề mà lý thuyết suông sẽ không nhắc đến. Dưới đây là 7 project bạn nên build giúp bạn rèn luyện khả năng của mình đồng thời có thể trở thành một lập trình viên giỏi. Lưu ý: Tôi sẽ KHÔNG chỉ định sử dụng công nghệ nào do đó bạn có thể tự mình chọn lựa. Hãy tự mình làm chủ cuộc chơi của mình. Bắt đầu nhé!
Project 1. To-do App
Bạn có thể tìm thấy những hướng dẫn, giải thích về cách làm To Do App khi học bất kỳ công nghệ nào. Những người mới bắt đầu hãy bắt đầu từ app này, cũng giống như việc bạn bắt đầu với Hello Word trong phát triển ứng dụng vậy. Do đó, bạn nên chọn build To Do App là một trong những app đầu tiên của bạn khi học một công nghệ mới.
Bạn sẽ học được:
- Tạo new task
- Validating fields
- Filtering tasks (completed, active, all).
To-do node + mongoDB + Angular
Node app được build với MongoDB và Angular. Node cung cấp API RESTful còn Angular cung cấp frontend và truy cập API. MongoDB lưu trữ như một hoarder.
https://github.com/scotch-io/node-todo
To-do Android
Một ứng dụng Material ToDo đầy đủ với các tính năng tối thiểu, vừa đủ và hữu ích.
https://github.com/avjinder/Minimal-Todo
Project 2. Products Admin Dashboard
Ứng dụng CRUD đơn giản, tuyệt vời.
Bạn sẽ học được:
- Tạo và quản lý sản phẩm.
- Tương tác với cơ sở dữ liệu - tạo, đọc, chỉnh sửa và xóa sản phẩm.
- Xác nhận đầu vào và cách làm việc với các biểu mẫu.
Vuejs + Firestore
Ứng dụng CRUD đơn giản cho các sản phẩm được xây dựng với Vuejs và Firestore
https://github.com/waseembarcha/vuejs-crud
Laravel 5.6 + Vue.js — Simple CRUD Demo
Project đơn giản cho thấy cách thức hoạt động của Laravel với Vue.js.
Chỉ một thao tác CRUD để quản lý các công ty - tạo / chỉnh sửa / cập nhật / xóa.
https://github.com/LaravelDaily/Laravel-Vue-First-CRUD
Project 3. Card-Memory-Game
Card memory là một trò chơi mà bạn phải nhấp vào từng card để xem hình ảnh nào bên dưới nó và cố gắng tìm hình ảnh phù hợp bên dưới các card khác.
Bạn sẽ học được:
- DOM manipulation (JavaScript)
- UI Events.
- Animations
- Basic logic in views
HTML, CSS and JavaScript
Memory Game được tạo ra như một phần của lập trình web với phần Javascript phát triển web Front-End. Mục đích của nhiệm vụ này là chứng minh khả năng làm chủ web core.
Các kỹ năng phát triển - HTML, CSS và JavaScript.
https://github.com/jdmedlock/memorygame/
JavaScript Memory Game
Đây là 1 trò chơi đơn giản và thú vị, giống như Super Mario 3, được phát triển bằng JavaScript đơn giản.
Project 4. Paint software
Nghĩa là tạo một bức vẽ trên web để chia sẻ trực tuyến và cũng có thể xuất dưới dạng hình ảnh.
Bạn sẽ học được:
- UI Events
- Thao tác màn hình cấp thấp
- Một số mẫu thiết kế như lệnh, singleton hoặc strategy
- Một số thư viện để thao tác canvas (hoặc tương tự trong stack khác nhau)
JS Paint
Là một bản remake MS Paint trên nền web đẹp và nhiều hơn nữa...
Mục tiêu là remake MS Paint (bao gồm các tính năng ít được biết đến của nó), cải thiện nó và mở rộng các loại hình ảnh mà nó có thể chỉnh sửa. Cho đến nay, nó làm điều này khá tốt.
Style2Paints (JavaScript + Python)
Style2paints V4 là công cụ tô màu tuyến tính điều khiển AI tốt nhất hiện nay. Khác với các phương pháp dịch hình ảnh từ đầu đến cuối trước đó, style2paints V4 là hệ thống đầu tiên tô màu tuyến tính trong quy trình làm việc của con người trong đời thực và các layout đều được xếp lớp.
Project 5. Tạo một bot
Ngày nay, chúng ta đều ở trong thời đại của bot (chatbot và voicebots). Do đó, bạn có thể muốn tạo các bot hoạt động trên Twitter, Telegram hoặc Slack - các mạng xã hội quan trọng nhất cung cấp API bằng nhiều ngôn ngữ.
Vài năm trước tôi đã bắt đầu gợi ý cho các sinh viên của mình tạo ra một bot twitter hoặc telegram, với một chút AI. "Hành trình" này có thể như sau:
- Level 0: Tạo bot twitter / slack / telegram chào đón khi một thành viên join room.
- Level 1: Tạo bot twitter / slack / telegram đăng các trích dẫn truyền cảm hứng từ cơ sở dữ liệu.
- Level 2: Có một bài cảm ơn mỗi khi ai đó theo dõi tài khoản hoặc nghe về một chủ đề cụ thể.
- Level 3: Bot trả lời các bình luận và tìm hiểu về hành vi của những người dùng khác.
Trump2Cash
Bot này sẽ theo dõi các tweet của Donald Trump, và chờ ông đề cập đến bất kỳ công ty giao dịch công khai nào. Khi Trump đề cập đến, nó sử dụng phân tích tình cảm để xác định xem ý kiến của ông ấy là tích cực hay tiêu cực đối với các công ty đó. Sau đó bot sẽ tự động thực hiện giao dịch trên các cổ phiếu có liên quan theo phản ứng thị trường dự kiến. Nó cũng tweet ra một bản tóm tắt các phát hiện của nó trong thời gian thực tại @Trump2Cash.
https://github.com/maxbbraun/trump2cash
Twitter-Bot tutorial
Tạo một thông điệp chào mừng gửi cho những người theo dõi mới của bạn trên twitter để thu hút nhiều người tham gia vào các tweet và link của bạn. Bạn biết đấy, có rất nhiều dịch vụ trực tuyến giúp bạn gửi tin nhắn trực tiếp đến những người theo dõi mới. Tuy nhiên, thật điên rồ khi phải bỏ ra 5 - 15 $ để trả cho một công cụ đơn giản tạo ra các bot trong khi bạn hoàn toàn có thể tự xây dựng được.
Trong repo này, bạn học từng bước cách bạn tạo twitter-bot của riêng bạn. Để phát triển bot này, chúng ta cần:
- Cài đặt Nodejs
- Twit: Twitter API Client cho Node (API REST & Streaming)
- Tài khoản Github
- Tài khoản Twitter
- Tài khoản Heroku để triển khai bot.
https://github.com/yjose/twitter-bot
Project 6. A Messenger Clone
Hiểu cách các ứng dụng native/hydrid và ứng dụng web hoạt động.
Bạn sẽ học được:
- Web sockets
- Cách các ứng dụng native/hybrid hoạt động
- Cách các layouts hoạt động trong native
- Định tuyến cho các ứng dụng native hoặc sử dụng một framework như Ionic, NativeScript, Angular hoặc React.
WhatsApp Clone Tutorial
Phiên bản của Whatsapp Clone mà bạn đang xem sử dụng:
- React (với Hooks và Suspense)
- Styled-Components
- Material-UI
- TypeScript
- Apollo GraphQL
- GraphQL Code Generator
- GraphQL Modules
- PostgreSQL
- GraphQL Inspector
https://github.com/urigo/whatsApp-Clone-Tutorial
A Flutter Chat App
Một ứng dụng Flutter Chat được xây dựng với Firestore và Firebase Cloud. Nó là clone của messenger. Người dùng có thể tạo câu chuyện, trò chuyện và tìm kiếm trong thời gian thực.
https://github.com/singhbhavneet/chat_app
Project 7. Chess Engine/Chess game
Hiểu cách các ứng dụng native và ứng dụng web hoạt động.
Bạn sẽ học được:
- Web sockets
- Cách các ứng dụng native hoạt động
- Cách các layouts hoạt động trong native
- Định tuyến cho các ứng dụng native
Lila (li[chess in sca]la)
Lila (li [Chess in sca] la) là một máy chủ trò chơi cờ vua trực tuyến miễn phí tập trung vào lối chơi thời gian thực và dễ sử dụng.
Nó có một công cụ tìm kiếm, phân tích máy tính được phân phối với fishnet, giải đấu, mô phỏng, diễn đàn, đội, huấn luyện chiến thuật, ứng dụng di động và bảng phân tích được chia sẻ. Giao diện người dùng có sẵn trong hơn 80 ngôn ngữ.
Web client được viết bằng TypeScript và snabbdom, sử dụng Sass để tạo CSS.
https://github.com/ornicar/lila
Sunfish: một Python Chess Engine trong 111 dòng code
Sunfish là một công cụ cờ đơn giản nhưng mạnh mẽ, được viết bằng Python, chủ yếu phục vụ mục đích giảng dạy. Không có bảng và giao diện đơn giản - chỉ mất 111 dòng mã!
App Sunfish nhỏ và đơn giản. Mọi người thường dùng nó để thử nghiệm các thuật toán tìm kiếm song song, thử nghiệm các chức năng đánh giá và phát triển các chương trình cờ vua deep learning.
https://github.com/thomasahle/sunfish
Chess.js
Chess.js là một thư viện cờ vua Javascript được sử dụng để di chuyển cờ vua
Chess.js đã được thử nghiệm rộng rãi trong node.js và hầu hết các trình duyệt hiện đại.
https://github.com/jhlywa/chess.js
Trong bài viết này, tôi đã chia sẻ những ý tưởng để rèn luyện kỹ năng code. Bất kỳ ý tưởng hoặc project nào bạn thực hiện ngoài công việc đều có lợi và có thể giúp cải thiện kỹ năng của bạn, bài viết được dịch từ đây, cám ơn đã đọc!
Bình luận