Bài viết được dịch từ trang web Makeuseof
Lập trình phần mềm là một trong những lĩnh vực khó học nhất. Bạn phải mất thời gian rất lâu thì mới có thể trở thành một lập trình viên giỏi. Tuy nhiên, có một số cách để giảm bớt lượng thời gian học tập đó, và một trong những cách hiệu quả nhất là bạn phải tự tay làm một vài dự án phụ (side project) của riêng mình.
Không có gì giúp bạn tiếp thu và ghi nhớ các khái niệm lập trình tốt hơn bằng chính kinh nghiệm làm việc thực tế. Sau khi bạn đã tải về những cuốn sách lập trình chất lượng và miễn phí này, bạn nên tạo ra một dự án mới và bắt đầu vọc vậy ngay.
Và nếu bạn thực sự muốn đẩy nhanh tiến độ học tập của mình, thì hãy nên trau dồi một lối tư duy đúng đắn về việc làm thế nào để học lập trình mà không bị căng thẳng.
Tạo ra một trang web hoặc một ứng dụng di động
Lập trình web là một trong những hình thức lập trình phổ biến nhất hiện nay. Một khi bạn đã quen thuộc với các ngôn ngữ lập trình web khác nhau có sẵn trên mạng, bạn nên xem xét đến việc tạo ra một ứng dụng web phục vụ một mục đích thực sự trong cuộc sống của mình.
Nếu bạn không quan tâm đến việc phát triển web, thì có lẽ bạn sẽ thích phát triển ứng dụng di động? Các công nghệ thực tế được sử dụng trên Android, iOS và Windows Phone có thể khác nhau - đôi khi khác nhau rất nhiều - nhưng bạn đừng e ngại để chọn lấy một công nghệ và theo đuổi. Các khái niệm mà bạn học được sẽ có mối liên quan đến nhau từ nền tảng này sang nền tảng khác.
Bạn nên làm những kiểu ứng dụng nào? Thành thật mà nói, hãy làm một ứng dụng mà bạn cảm thấy phấn khích. Nó có thể đơn giản là một ứng dụng dạng to-do list (danh sách công việc cần phải làm) hoặc phức tạp như một mạng xã hội mới, nhưng dù nó là gì, thì phải chắc chắn nó đủ thú vị để bạn không thể không nghĩ về nó suốt cả ngày.
Nhưng nếu bạn đang thực sự bối rối cho những ý tưởng, thì dưới đây là một số gợi ý mà bạn có thể tham khảo:
- Personal to-do list
- Content link aggregator
- URL shortener
- Media hoster
- Media optimizer
- Social network
Tạo ra một Browser Extension
Phải thừa nhận rằng, việc tạo ra một browser extension thì tương tự như tạo một trang web hoặc ứng dụng di động, nhưng trước đây dường như thường bị bỏ qua vì một số lý do.
Ngày nay, mọi người dành phần lớn thời gian trực tuyến của họ để dán mắt vào các trình duyệt web. Một công cụ dựa trên trình duyệt có thể sẽ vô cùng hữu ích - vậy tại sao bạn không thử tạo ra một công cụ của riêng mình như là một cách để bổ sung vào việc học của bạn?
Trong thực tế, một trong những biên tập viên của chúng tôi đã tạo ra một Chrome extension để sử dụng nội bộ giúp tăng năng suất viết bài một cách đáng kể. Đó là lợi ích thực tế có thể mang lại từ một cái gì đó đơn giản như là một browser extension.
Để có cảm hứng với ý tưởng này, hãy duyệt qua danh sách của chúng tôi về những Addon Firefox tốt nhất và những Chrome Extension tốt nhất. Một số chỉ có trên một trình duyệt nhất định, ví dụ như những extension chỉ dành cho Firefox này chẳng hạn, và đó là một gợi ý để cho ai đó có thể tạo ra một bản sao trên những trình duyệt khác. Có lẽ bạn chính là người đó.
Tạo ra một Video Game
Phát triển game là một lĩnh vực hơi khác trong thế giới lập trình. Một số khái niệm nền tảng mà bạn học được - ví dụ như game loop - là hoàn toàn khác với những gì bạn đã học trong một lĩnh vực như phát triển web hoặc phần mềm thương mại. Tuy nhiên, một số thứ có thể chuyển sang được, vì vậy bạn vẫn có thể áp dụng một số kiến thức mà bạn học được ở nơi khác.
Điều đáng nói là, phát triển game có thể là một cách tuyệt vời để học lập trình. Các công cụ làm game đã phát triển rất nhiều trong những năm vừa qua, khiến cho bất kỳ người mới học nào cũng có thể tạo ra một trò game đơn giản chỉ trong vòng vài tuần. Hơn nữa, các trò game mang lại niềm vui, và không có gì tạo động lực tốt hơn là niềm vui phải không bạn?
Chúng tôi khuyên người mới học nên bắt đầu với Unity Engine, đó là môi trường phát triển game miễn phí mạnh nhất hiện nay. Một khi bạn đã cảm thấy thoải mái với các công cụ và ngôn ngữ, hãy thử nhân bản những game nổi tiếng sau:
- Pong
- Breakout
- Tetris
- Bomberman
- Flappy Bird
Đóng góp tới mã nguồn mở
Một trong những cách tốt nhất để trở thành một lập trình viên giỏi đó là tham gia vào một dự án mã nguồn mở. Lợi ích của nó gồm có 3 điểm sau:
- Bạn có thể nghiên cứu code và học hỏi từ dự án đó một cách trực tiếp.
- Những người khác có thể sẽ phê bình phần code của bạn đã submit để giúp bạn cải tiến hơn.
- Bạn có thể mở rộng mạng lưới bạn bè và cố vấn (mentor) trong giới lập trình.
Điều tuyệt vời nhất về một dự án mã nguồn mở là bạn không phải đối phó với áp lực - hoặc nếu có cũng không nhiều lắm. Không giống như khi làm việc cho một công ty, bạn sẽ không phải quan tâm nhiều đến các thời hạn deadline và milestone nếu bạn không phải là một người đóng góp chính cho dự án đó (main contributor). Thêm vào đó, các dự án mã nguồn mở cung cấp một nền tảng và cấu trúc mà bạn có thể không có được nếu tự làm việc theo kiểu của mình.
Hãy lựa chọn một dự án mã nguồn mở mà bạn phấn khích. Nếu bạn chưa đủ kỹ năng để đóng góp code đáp ứng các tiêu chuẩn của dự án, thì bạn vẫn học được qua code đó và bạn cũng có thể đóng góp bằng những hình thức khác.
Tham gia các cuộc thi lập trình
Bạn có phải thuộc tuýp người được thúc đẩy bởi sự cạnh tranh? Nếu đúng vậy thì bạn nên tìm kiếm và tham gia các cuộc thi về lập trình. Những cuộc thi đó có rất nhiều giá trị giáo dục, đơn giản bởi vì chúng buộc bạn phải phát triển và thích ứng càng nhanh càng tốt. Các deadline có khuynh hướng tạo ra hiệu ứng đó.
Dưới đây là một số cuộc thi đáng chú ý để giúp bạn bắt đầu:
Google Code Jam. Cuộc thi trực tuyến này đã được tổ chức liên tục trong 12 năm vừa qua, bao gồm nhiều vòng liên quan đến các câu đố thuật toán hóc búa cần được giải quyết bằng code. Đó là một trong những cuộc thi nổi tiếng nhất trên thế giới và chắc chắn là tính chất cạnh tranh rất lớn.
CodeChef Competitions. CodeChef là một cộng đồng toàn cầu cung cấp một nơi để các lập trình viên có thể đến, tìm hiểu, và cạnh tranh với nhau. Trang web này tổ chức nhiều cuộc thi suốt cả năm và việc cạnh tranh trong cuộc thi đó có thể là cách tuyệt vời để giữ cho tâm trí của bạn luôn sắc bén.
Project Euler. Mặc dù nó không phải là một cuộc thi đấu theo nghĩa truyền thống, Project Euler là một cách tuyệt vời để thách thức khả năng lập trình của bạn. Họ cung cấp một loạt các câu đố toán học và tính toán với độ khó tăng dần mà chắc chắn sẽ mở rộng các giới hạn của bạn.
Nếu chừng đó là chưa đủ đối với bạn, thì hãy xem qua các cuộc thi lập trình trực tuyến khác tại đây. Chúng sẽ giữ cho bạn luôn bận rộn và đầy hứng khởi.
Kết luận
Lập trình không phải là một chuỗi dài vô tận của những cuốn sách và bài giảng nhàm chán. Một khi bạn bắt đầu làm việc trên một vài dự án thực tế, bạn sẽ thấy mình đang nâng cao kỹ năng hơn bao giờ hết. Nếu bạn vẫn cảm thấy bế tắc, thì hãy thử tham khảo các tài nguyên lập trình miễn phí này và cố gắng sử dụng những cách thức độc đáo để thực hành viết code.
Bạn đã học lập trình như thế nào? Những ý tưởng dự án nào mà bạn cảm thấy rằng nó mang lại nhiều hữu ích? Hãy chia sẻ những bí quyết và lời khuyên của bạn với chúng tôi trong phần bình luận phía dưới nhé!
Bình luận