Tự học lập trình

Kiến thức chúng ta được học tại nhà trường chỉ là căn bản, những giờ thực hành ngắn ngủi cũng mang tính chất giới thiệu. Để thành công trong lĩnh vực CNTT, tự học là một yếu tố vô cùng quan trọng.

Đối với chúng ta, những bạn đang theo học hoặc đang làm trong lĩnh vực CNTT. Được tiếp xúc với internet mỗi ngày là một lợi thế rất lớn. Các nguồn tài nguyên trên internet là vô hạn, chúng ta hãy tận dụng lợi thế của mình để khai thác nguồn tài nguyên ấy một cách hiệu quả.

Trong bài viết này, mình sẽ giới thiệu một số trang web cung cấp các khóa học rất hấp dẫn, mà mình đã có cơ hội thử qua. Các bạn có thể đăng ký và trải nghiệm chúng. Qua đó, chúng ta có thể tích lũy thêm kiến thức cho bản thân. Chúc các bạn thành công nhé.

Học online

google.com và stackoverflow.com

Như đã bàn ở phần mở đầu, internet ngày nay cực kỳ phát triển, lượng dữ liệu trên không gian mạng là vô cùng lớn. Đó là một kho tàng tri thức nếu chúng ta biết cách khai thác chúng.

Đối với 1 lập trình viên, 2 trang web chúng ta bắt buộc phải biết là google.com và stackoverflow.com. Khi gặp một vấn đề nan giải, chúng ta cần biết cách đặt câu hỏi, tìm kiếm và khai thác thông tin có sẵn.

geeksforgeeks.com

Mình cũng không biết gọi geeksforgeeks vào thể loại web nào nữa. Nơi đây tập trung đầy đủ các bài viết, thảo luận, hướng dẫn các bài toán đơn giản đến phức tạp.

Geeksforgeeks là một nơi tuyệt vời để bạn tìm kiếm sự hỗ trợ khi gặp khó khăn trong quá trình học tập hay làm việc.

udemy.com

Trang web udemy hoạt động theo mô hình kinh doanh khóa học. Các trainers sẽ tạo các khóa học, thường dưới dạng video, sau đó họ đăng lên udemy. Học viên sẽ phải trả học phí để có thể liên kết với các khóa học này.

Bản thân mình biết đến Udemy vào những năm 2012-2013. Vào thời điểm hiện tại, Udemy đã rất phát triển, với hàng triệu videos. Các khóa học cũng liên tục khuyến mãi, giảm giá ở mức 10-12USD, một mức giá rẻ. Udemy là một lựa chọn rất tốt cho các bạn nếu muốn bắt đầu tìm hiểu một chủ đề mới.

coursera.org

Trang web coursera hoạt động với mô hình hơi khác một xíu với Udemy. Lĩnh vực course tập trung hơn, do đó, theo cảm nhận cá nhân của mình thì chất lượng của coursera cao hơn một chút so với udemy. Coursera hiện tại rất ít các khóa học lẻ mà chủ yếu tập trung liên kết với các trường đại học lớn trên thế giới. Bạn có thể được hướng dẫn bởi các giáo sư đầu ngành. Tuyệt vời, đúng không nào.

Khi chất lượng tăng lên, coursera cũng thu hẹp lại các khóa học miễn phí so với trước đây. Tuy nhiên, vẫn còn rất nhiều khóa học có chất lượng và miễn phí trên coursera.

edx.org

Mô hình của edx tương tự coursera, edx ra đời sau coursera nên cũng có nhiều điểm cải tiến hơn. Và điều đặc biệt ở edx là hiện tại, rất nhiều khóa học miễn phí và có chất lượng khá cao. Bạn sẽ được hướng dẫn bởi các giảng viên của các trường đại học hàng đầu hay các chuyên viên của các công ty hàng đầu như Microsoft.

scrimba.com

Là một trang web cung cấp các khóa học tập trung vào chủ đề lập trình web. Với các bạn có định hướng trở thành Frontend developer thì không nên bỏ qua trang web này nhé.

youtube.com

Tất cả chúng ta đều không lạ lẫm với nền tảng chia sẻ video youtube đúng không nào. Với youtube, chúng ta cũng có rất nhiều kênh học thuật tuyệt vời, các bạn có thể theo dõi. Mình giới thiệu một vài kênh mình đang theo dõi hiện nay nhé:

  • 3Blue1Brown: Bạn có sợ toán ghét toán không? 3Blue1Brown sẽ giúp bạn loại bỏ nó, biến toán trở nên một môn học tuyệt vời. Điểm đáng yêu thứ 2 của 3Blue1Brown là khá nhiều videos của họ có phụ đề Tiếng Việt. Nên các bạn sẽ dễ dàng hơn.
  • freeCodeCamp.org: Có một lượng videos khổng lồ về các ngôn ngữ, các thư viện, frameworks hay các dự án nho nhỏ để chúng ta có thể thực hành.
  • MIT OpenCourseWare: Một số khóa học của đại học danh tiếng MIT. Các bạn có thể tiếp cận các khóa học từ toán, thuật toán hay cấu trúc dữ liệu đến các công nghệ mới như blockchain…vv

Thực hành

Song song với việc học kiến thức mới. Thực hành cũng là một yếu tố quan trọng trong việc phát triển các kỹ năng.

exercism.io

Hỗ trợ hơn 50 ngôn ngữ lập trình. Có hơn 3000 bài tập thuộc nhiều cấp độ và chủ đề. Bạn có thể thoải mái thực hành mà không sợ thiếu ý tưởng. Đặc biệt, ở exercism còn có đội ngũ hướng dẫn (mentor) là những lập trình viên giàu kinh nghiệm. Ở một số bài tập để vượt qua bạn phải nhận được sự đồng ý của mentor. Các mentor sẽ góp ý cho bạn về ý tưởng, thuật toán cũng như cú pháp, nhờ đó, bạn sẽ tiến bộ một cách nhanh chóng.

codesignal.com

Mục đích chính của codesignal là hỗ trợ các nhà tuyển dụng xây dựng các bài test. Song song với đó là hỗ trợ các bài tập cho các ứng viên ôn tập và chuẩn bị trước các buổi phỏng vấn.

Bên cạnh đó, để làm phong phú nội dung codesinal cung cấp cho chúng ta thêm 2 sự lựa chọn khác:

  • Arcade: Chia làm 6 mục chính, sấp sỉ 600 bài tập. Tập trung vào các nội dung như thuật toán, cấu trúc dữ liệu, cơ sở dữ liệu. Bạn cũng có thể chọn ngôn ngữ của mình thích. Sau khi hoàn thành bài tập, bạn có thể đi vòng vòng, xem bài giải của các người dùng khác. Qua đó, chúng ta sẽ tích lũy được một lượng lớn kinh nghiệm cho bản thân.
  • Challenges: Các bài toán do người dùng cung cấp, có thể là một bài toán do họ nghĩ ra, một bài tập ở trường hay 1 bài toán trong thực tiễn. Qua đó, bạn có thể cọ xát để nâng cao kiến thức và kinh nghiệm.

coderbyte.com

Coderbyte cung cấp các bài tập, thuộc nhiều chủ đề và cấp độ. Để sử dụng đầy đủ tính năng của Coderbyte chúng ta sẽ phải trả 1 khoản phí. Tuy nhiên, với lượng bài tập miễn phí của coderbyte, chúng ta cũng đủ vất vả và học được khá nhiều kiến thức rồi.

kaggle.com

Kaggle là một trang web chuyên về chủ đề dữ liệu. Nơi đây cung cấp cho chúng ta các khóa học, các bài tập cũng như các cuộc thi. Giúp cho các bạn có định hướng theo các ngành xử lý dữ liệu, trí tuệ nhân tạo có thể học tập và thực hành các kiến thức đã học.