Tổng hợp các trang học code tốt nhất 2018

Dịp đầu năm mới, ai cũng thường đặt ra các mục tiêu cho bản thân để nỗ lực phấn đấu, hơn chính bản thân mình của ngày hôm qua đã là một thành công lớn. Với những người muốn lập trình giỏi, không có gì ngoài việc liên tục và bền bỉ luyện tập, luyện tập, và luyện tập.

Nhớ có một cái hình minh họa cho vấn đề này của tác giả Sarah Anderson.

practice.png

Thật sự thì đúng như vậy. Làm nhiều là khá hơn.

Năm 2018 đã tới, tôi có tổng hợp được một số trang chuyên tạo ra các challenge và tutorial dành cho dân lập trình để thử sức và trao đổi với các lập trình viên ở khắp mọi nơi trên thế giới. Điều kiện tiên quyết đầu tiên để tham gia các sân chơi này, chính là ngoại ngữ tiếng Anh. Và lưu ý, nếu bạn giỏi thì cứ thử hết các trang này luôn, còn không thì cứ dạo qua một vòng, thấy thích trang nào (về mặt giao diện, style cá tính cute,…) thì chơi thôi. Thứ tự sắp xếp ở đây chỉ là theo dạng từ thấp tới cao, chỉ mang tính chủ quan chứ không phải tiêu chuẩn quốc tế.

1. Coderbyte

1.png

Trang Coderbyte này cung cấp tới hơn 200 challenge cho bạn thử sức, hỗ trợ sẵn các IDE online kèm với 10 loại ngôn ngữ lập trình khác nhau. Dĩ nhiên, nó cũng cung cấp cho ta các lời giải chính thức từ những người tạo lập ra, kèm với hơn 800.000 ngàn lời giải khác được đóng góp từ các lập trình viên khác trên toàn thế giới. Điểm thú vị của trang này dễ ghi điểm trong lòng người hâm mộ là có cả một thư viện đồ sộ những tuyển tập câu hỏi phỏng vấn của các công ty, tập đoàn lớn như Google, Facebook, Microsoft, Amazon,…

Bên cạnh đó, nó còn cung cấp cho ta các khóa học về Cấu trúc dữ liệu và Giải thuật, Lập trình web, và các khóa ngắn hạn đào tạo dạng trại code – code bootcamps. Hình thức này khá phổ biến ở các nước phương Tây, nhưng chưa thấy nhiều ở nước mình.

Mức độ: Beginner – Intermediate

2. Codewars

2.png

Trang này cá nhân tôi từng chơi qua, ở mảng ngôn ngữ C#. Đúng với tên gọi của nó, mới vào là có ngay một bài võ nhập môn ra mắt liền. Trang này không dành cho người mới học lèo tèo vài dòng code đã chui vào đây liền. Việc này giống như học được một bài quyền đơn giản và ra giữa chợ đứng chỉ tay thách đấu thiên hạ vậy. Không gãy răng cũng què giò thôi.

Codewars thú vị hơn là nó có cả các challenge được tạo ra từ chính cộng đồng người sử dụng, do đó mà rất phong phú về nhiều vấn đề trong lập trình. Nó cũng hỗ trợ sẵn IDE online cho bạn dùng, số lượng ngôn ngữ lên tới hơn 20. Trang này cũng đánh giá thứ hạng người chơi khi họ giải quyết được một vấn đề nào đó. Nếu bí quá không làm được thì có thể tham khảo các phần thảo luận, hoặc chính mình đóng góp vào đó để tăng độ uy tín.

Mức độ: Beginner – Intermediate

3. CodeFights

3.png

Trang này tạo hẳn ra một cái diễn đàn riêng để bạn thảo luận luôn. Bên cạnh các điểm chung giống với các trang kể trên thì nó có thêm một tính năng thú vị là Company Bots. Bây giờ cái vụ “bot” thịnh hành ghê, mặc dù tôi tìm hiểu nó từ ngay lúc nó mánh mung phát triển nhưng tới bây giờ kiến thức về nó vẫn là con số 0 hahaha…

Hiểu đơn giản thì con bot này sẽ làm nhiệm vụ so sánh chất lượng code của bạn và của nó xem liệu bạn có hơn cái máy hay không. Nếu dở hơn thì người ta sẽ bảo bạn “mày thua cả một cái máy”, còn nếu bằng nó thì miệng lưỡi thế gian lại tiếp tục “mày cũng chỉ bằng cái máy”, thậm chí nếu code bạn tốt hơn thì họ sẽ bỉu môi “ít ra mày cũng còn hơn cái máy”. Thế đấy, căn bản là giống loài homo sapiens không cách nào làm hài lòng cái tôi kiêu ngạo và hay ganh tị của chúng cả :”))

Thật ra thì con bot này được lập trình bởi các kĩ sư ở các công ty lớn như Uber, Dropbox, Quora nên chắc chắn là nó sẽ dồi dào tri thức hơn bạn. Cứ thử xem, biết đâu bạn ra khỏi 3 cảnh giới kể trên (mà thật ra tôi cũng chưa định hình được cảnh giới đó gọi là gì haha…)

Mức độ: Beginner – Intermediate

4. CodinGame

4.png

Trang này là một sự phá cách hoàn toàn về cách chơi luôn. Không chỉ đơn thuần là giải các challenge bằng cách dùng các test case của đề bài, mà nó yêu cầu bạn phải viết code để tạo ra một cái game online hẳn luôn. Dĩ nhiên là các game nho nhỏ bé bé thôi chứ không tới mức như Call of Duty hay Battlefield đâu.

Nhưng như vậy cũng đủ sướng rồi !

Các game này phân loại theo từng chủ đề trong lập trình như Conditions, Loops, List,… nói chung là tất cả các khái niệm và vấn đề từ căn bản tới nâng cao trong lập trình. Tất cả được dẫn dắt với nền game 2D rất bắt mắt.

Giao diện đẹp, UI cực kỳ mượt. Nếu muốn thư giãn nhưng không bị xuống tay nghề thì vào đây vừa học vừa chơi. Biết đâu, kinh qua xong hết chúng lại tạo ra được cái game của riêng mình làm sản phẩm, cho con hoặc cháu mình chơi 😀

Mức độ: Beginner – Intermediate

5. TopCoder

5.png

Trang này đúng chất nguyên thủy từ ngày xưa. Nó tập hợp tất cả các bài toán kinh điển nhất cho bạn giải quyết. Đặc biệt, vài lần trong tháng sẽ có tổ chức Single Round Matches để bạn thi thố trực tuyến với mọi người.

Bên cạnh đó, TopCoder còn cung cấp giải thưởng cho những ai có lời giải hay nhất. Cái này giống như chơi CTF, sau khi thi xong nếu ai có write-up hay thì tùy ban tổ chức mà sẽ có thưởng hay không.

Mức độ: Intermediate – Advanced

6. HackerRank

6.png

Trang này tập trung nhiều vào chủ đề Khoa học máy tính, do đó mà các chủ đề của nó đưa ra không dễ nuốt lắm: Giải thuật, Toán học, SQL, Hàm, AI,…

Trang này trước đây (và hiện tại) mình cũng có cắm cúi giải thử một số challenge về Security. Cảm nhận là nó dẫn đề khá kinh dị. Nhưng nói chung giải thì không khó lắm.

Mức độ: Intermediate – Advanced

7. LeetCode

7.png

Trang này cập nhật các challenge theo xu thế nhất. Các chủ đề của nó cũng đa dạng, bao phủ nhiều về Cấu trúc dữ liệu và Giải thuật nên chắc chắn mới chỉ làm quen mà tham gia trang này thì cũng sẽ dễ sinh nản chí.

Nhưng bù lại, do bao phủ các vấn đề khó nhằn đó mà sẽ thích hợp cho ai muốn luyện tập để chuẩn bị đi phỏng vấn.

Đặc biệt, LeetCode còn có một phần riêng là Mock Interview giúp hỗ trợ cho ai muốn chuẩn bị hồ sơ các kiểu để phỏng vấn.

Mức độ: Intermediate – Advanced

8. CodeChef

8.png

Trang này của người Ấn Độ lập ra. Nó cung cấp hàng trăm challenge với từng mức phân loại và các challenge khác nhau cho từng mức độ của bạn.

Dĩ nhiên, nó cũng có mục lời giải để tham khảo.

Mức độ: Intermediate – Advanced

9. GeeksforGeeks

9.png

Trang này cung cấp các challenge, cách giải và code mẫu từ chính đội ngũ phát triển web. Điểm thú vị là cách họ phân bổ, sắp xếp và chia ra các vấn đề cần giải quyết thành các mục riêng rất dễ dàng theo dõi.

Đặc biệt, nó có tuyển tập các câu hỏi để dành đi phỏng vấn về Cấu trúc dữ liệu và Giải thuật.

Mức độ: Intermediate – Advanced

10. Codeforces

10.png

Trang này do người Nga lập ra. Nó cho phép các lập trình viên tự tin với tài năng và kiến thức của mình có thể tham gia vào các cuộc thi trực tuyến với nhau.

Điểm gây ngại ngùng cho người tham gia nó là mức độ quá Nâng cao của nó. Nếu chỉ mới lần đầu tiếp xúc với code, thì không nên tham gia vào kẻo dễ mất ý chí và tinh thần.

Mức độ: Advanced.

VÕ TÌNH THƯƠNG

votinhthuong9@gmail.com

Advertisements

4 Comments Add yours

  1. Chào bạn, mình rất thích code nhưng không biết bắt đầu từ đâu? Hay nói cách khác là cần những gì (công cụ, kiến thức…) cụ thể để có thể code nên 1 cái gì đó đơn giản nhất?

    Like

    1. Chào bạn,
      Nếu bạn thích code, chào mừng bạn đến với thế giới của sự cô đơn để tập trung…code. Nếu bạn chỉ đơn thuần tò mò, thì có thể đọc các bài viết, tham gia các diễn đàn (khuyến khích các trang nước ngoài như medium.com) để theo dõi, xem và tự rút ra cho bản thân liệu code có phù hợp với mình hay không. Chuyện bắt đầu từ đâu không quan trọng, quan trọng là đọc nhiều trước đã. Về chuyện “công cụ, kiến thức,..” thì ai cũng bước những bước đầu tiên, bạn nên thử lên codecademy.com hoặc khanacademy.org hoặc code.org để học thử trước. Đặc trưng là các trang này dạy cho người không biết gì và người không chuyên nên rất dễ hiểu và làm theo được liền ngay.

      “có thể code nên 1 cái gì đó đơn giản nhất” hay không? Để tránh hụt hẫng và cảm quan ngộ nhận khi vùi đầu vào học ngay những cái quá cao, khuyến khích bạn nên thử học web development trước, nghĩa là thử vọc cái gì đó đơn giản như HTML, CSS để làm ra một trang web đơn giản. Việc hiện thực nhanh thành quả dễ tạo động lực hơn.

      Cám ơn bạn đã quan tâm blog của mình. Nếu muốn trao đổi thêm, mời bạn cứ thoải mái liên hệ qua email: votinhthuong9@gmail.com và vui lòng dùng danh tính thật :”)

      Liked by 1 person

      1. Cảm ơn bạn, mình đang tìm hiểu, chắc sẽ có nhiều cái để hỏi

        Like

      2. :”) Rất vui khi thấy có người đam mê với code. Có thắc mắc cứ hỏi, trong phạm vi kiến thức của em nếu biết sẽ trả lời :”)

        Liked by 1 person

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s