1. Học đi đôi với hành

Học Java dựa trên thực hành

Có những người yêu CodeGym bằng cả trái tim, và có những người ghét nó bằng cả trái tim. Nhưng ngay cả nhà phê bình ác ý nhất của CodeGym cũng sẽ dễ dàng đồng ý rằng nó có một số lượng lớn nhiệm vụ ấn tượng. Và lý do tại sao có rất nhiều người trong số họ là bởi vì tất cả các khóa đào tạo CodeGym đều lấy thực hành làm nền tảng .

Lập trình là một kỹ năng. Không ai nói, "Tôi biết cách lập trình". Mọi lập trình viên đều nói, "Tôi có thể lập trình". Đó là một kỹ năng thực hành, giống như bơi lội hoặc chơi cờ. Và bạn chỉ có thể trau dồi kỹ năng thông qua thực hành liên tục.

Đó là lý do tại sao toàn bộ khóa học CodeGym là một chuỗi các nhiệm vụ ngày càng khó khăn. Bạn bắt đầu với những nhiệm vụ cơ bản, rất dễ dàng và kết thúc với những nhiệm vụ khó khăn và thú vị nhất. Khó khăn tăng lên một chút với mỗi cấp độ. Đây chính xác là con đường dẫn bạn đến mục tiêu trở thành một lập trình viên.


2. Các loại nhiệm vụ

Rất nhiều loại nhiệm vụ khác nhau đang chờ bạn trên CodeGym. Hãy liệt kê những cái chính:

Nhiệm vụ nơi bạn viết một chương trình

Đây là những nhiệm vụ quan trọng nhất trong khóa học. Mức độ khó của chúng rất khác nhau: từ những nhiệm vụ đơn giản nhất đến những nhiệm vụ mà bạn sẽ phải suy nghĩ rất nhiều.

Mục tiêu của các nhiệm vụ này là viết một chương trình đáp ứng các điều kiện và yêu cầu cụ thể. Hầu hết các nhiệm vụ thuộc loại này. Để thuận tiện cho học viên CodeGym, chúng tôi đánh dấu các nhiệm vụ này theo mức độ khó của chúng: DỄ , TRUNG BÌNH , HARDEPIC .

Các nhiệm vụ EPIC thường dựa trên tài liệu học tập trong tương lai trong các bài học mà bạn chưa mở khóa. Chúng phổ biến với những sinh viên CodeGym, những người cảm thấy khóa học quá dễ đối với họ. Những người khác có thể chỉ cần bỏ qua những nhiệm vụ này và quay lại với chúng sau, khi họ đã quen thuộc với lý thuyết liên quan.

dự án

Nhược điểm của các nhiệm vụ thông thường là chúng nhỏ. Làm xong và quên, như họ nói. Do đó, hiếm khi có thể làm cho chúng trở nên thú vị. Nhưng một chương trình lớn rất khó kiểm tra: đơn giản là có quá nhiều cách để thực hiện nó.

Đó là lý do CodeGym giới thiệu các nhiệm vụ dự án — các nhiệm vụ lớn được chia thành 5-35 nhiệm vụ con thông thường. Bạn thực hiện tuần tự tất cả các nhiệm vụ con và kết thúc bằng một chương trình lớn.

Ở cuối mỗi cấp sau Cấp 20, có một nhiệm vụ dự án lớn, được chia thành 20 nhiệm vụ phụ. Ngoài ra còn có 6 nhiệm vụ trò chơi khác, cũng là các dự án. Và có một nhiệm vụ dự án để được nhận vào thực tập trực tuyến. Tổng cộng, có 27 nhiệm vụ dự án trong toàn bộ khóa học.

câu đố

Trong một thời gian dài, CodeGym không có bài kiểm tra hay câu đố nào. Người tạo ra CodeGym cho rằng các bài kiểm tra đã vượt qua tạo ra "ảo tưởng về kiến ​​​​thức" ở mọi người. Mọi người không thực sự biết cách lập trình, nhưng họ hoàn toàn bị thuyết phục bởi vì họ đã vượt qua các bài kiểm tra. Những người như vậy ngừng học hỏi, vì "họ đã biết mọi thứ".

Sau đó, các câu đố đã được thêm vào để cho phép sinh viên CodeGym dễ dàng xác định những lỗ hổng trong quá trình học tập của họ. Sẽ rất hữu ích cho các lập trình viên khi biết các sắc thái của những thứ họ làm việc hàng ngày trong nghề nghiệp của họ.


3. Trạng thái nhiệm vụ

Mỗi nhiệm vụ trên CodeGym có một trạng thái đặc biệt. Trạng thái có thể thay đổi khi bạn giải quyết các nhiệm vụ.

Mỗi nhiệm vụ CodeGym được liên kết với một bài học. Ban đầu, bạn sẽ không có quyền truy cập vào bất kỳ nhiệm vụ nào, điều đó có nghĩa là bạn sẽ không thể giải quyết chúng.

Khi bạn mở bài học tiếp theo, tất cả các nhiệm vụ trong bài học sẽ có sẵn để giải quyết, tức là trạng thái của chúng thay đổi thành "Có sẵn".

Nếu bạn đã gửi một nhiệm vụ để xác minh ít nhất một lần thì trạng thái của nhiệm vụ đó sẽ thay đổi từ "Có sẵn" thành "Đang tiến hành".

Cuối cùng, khi bạn đã đáp ứng thành công tất cả các yêu cầu và trình xác nhận chấp nhận nội dung gửi của bạn, thì trạng thái của nhiệm vụ sẽ chuyển thành "Đã hoàn thành".

Người dùng có đăng ký Premium Mentor có thêm 3 ngày để viết các giải pháp khác cho nhiệm vụ. Sau khi khoảng thời gian bổ sung này hết hạn, nhiệm vụ sẽ chuyển sang trạng thái "Đã đóng" và trạng thái này sẽ không còn thay đổi.


4. Yêu cầu

Trong những năm đầu của CodeGym, khi bạn xác minh từng nhiệm vụ, bạn sẽ nhận được một kết quả đơn giản: có hoặc không. Chương trình hoặc vượt qua tất cả các bài kiểm tra hoặc không. Siêu đơn giản, nhưng không siêu hữu ích.

Khi mọi người học hỏi, điều rất quan trọng là họ hiểu họ đang làm gì sai và làm thế nào để bắt đầu làm đúng. Theo đó, hoàn toàn hợp lý nếu máy chủ không chấp nhận giải pháp của bạn, thì bạn sẽ hỏi, ồ, nó bị sao vậy?

Để có câu trả lời cho câu hỏi này, bạn cần ai đó đi sâu vào giải pháp của bạn, phân tích nó và cho bạn biết nó có vấn đề gì. Điều này sẽ mất nhiều thời gian và tốn kém. Cái hay của xác minh nhiệm vụ tức thời là bạn có thể ngồi học lúc 2 giờ sáng và mọi thứ sẽ hoạt động bình thường như bất kỳ thời điểm nào khác.

Đó là lý do tại sao chúng tôi viết lại tất cả các tác vụ trên CodeGym. Giờ đây, mỗi nhiệm vụ không chỉ có các điều kiện của nhiệm vụ mà còn có một danh sách 5-10 yêu cầu bổ sung cho các điều kiện. Quan trọng nhất, mỗi yêu cầu được xác minh riêng.

Điều đó có nghĩa là khi bạn gửi một nhiệm vụ để xác minh ngay hôm nay, bạn sẽ nhận được phản hồi mở rộng: bên cạnh mỗi yêu cầu của nhiệm vụ, bạn sẽ thấy một biểu tượng đặc biệt cho biết liệu chương trình của bạn có đáp ứng yêu cầu này hay không. Ví dụ:

Yêu cầu

Cách tiếp cận này đơn giản hóa rất nhiều cuộc sống khi bạn làm việc với các nhiệm vụ yêu cầu bạn phải viết một số lớp hoặc phương thức. Bạn sẽ luôn có thể xem phương thức hoặc lớp nào bạn đã viết đúng và lớp nào bạn viết chưa đúng.


5. Khuyến nghị

Có thể làm cho các nhiệm vụ thậm chí tốt hơn bằng cách nào đó? Sẽ không tuyệt sao nếu sau mỗi lần kiểm tra, bạn được cho biết chính xác điều gì sai trong chương trình của mình và được gợi ý về cách khắc phục nó? Vâng, đó sẽ là mát mẻ! Cũng đoán những gì? Chúng tôi làm điều đó trên CodeGym 🙂

Chúng tôi phát hiện hàng chục lỗi phổ biến bằng cách kiểm tra từng yêu cầu của nhiệm vụ. Nếu chương trình của bạn mắc lỗi mà trình xác thực biết, thì chương trình sẽ đưa ra đề xuất — gợi ý về cách bạn có thể khắc phục giải pháp của mình để giải pháp đó đáp ứng tất cả các yêu cầu.

Hãy suy nghĩ về nó. Hiện có khoảng 1200 nhiệm vụ trên CodeGym, với tổng số khoảng 10.000 yêu cầu. Và có một số khuyến nghị liên quan đến từng yêu cầu. Một số yêu cầu có hàng chục trong số họ. Trình xác thực của CodeGym đã sẵn sàng đưa ra hơn 50.000 đề xuất cho giải pháp người dùng.

Ngoài ra, tất cả điều này xảy ra khi giải pháp của bạn được xác thực, trong hầu hết các trường hợp chỉ mất chưa đến một giây. Không ai có thể làm điều đó. Đây là một cố vấn ảo thực sự.

khuyến nghị

6. Cộng đồng

CodeGym tập trung vào thực hành rất nhiều , chiếm hơn 80% toàn bộ quá trình học. Chúng tôi biến việc học thành một nhiệm vụ lớn, hấp dẫn (thực ra là một chuỗi nhiệm vụ).

Nhưng mọi người đều khác nhau: một số người học nhanh và những người khác học chậm hơn. Một số người thấy tài liệu mới dễ dàng, trong khi những người khác thấy khó hơn. Nhưng công việc của chúng tôi là mỗi học sinh của chúng tôi phải về đích. Ít nhất đó là những gì chúng tôi đang phấn đấu.

Trên thế giới này, các lập trình viên không chỉ là một vài triệu người viết mã bằng nhiều ngôn ngữ khác nhau và tạo ra các công ty khởi nghiệp trong thời gian rảnh rỗi. Họ tạo thành một mạng lưới toàn cầu, liên tục chia sẻ kiến ​​thức của mình với những người khác, sẵn sàng trả lời các câu hỏi và giúp bạn hiểu các chủ đề phức tạp.

Cộng đồng nhà phát triển lớn nhất thế giới — trang web StackOverflow — ra đời từ nhu cầu các lập trình viên học hỏi lẫn nhau. Khái niệm của nó rất đơn giản: bạn đặt một câu hỏi và bất kỳ lập trình viên nào trên thế giới cũng có thể trả lời nó. Thuận tiện, phải không? 🙂

Tại CodeGym, chúng tôi tin rằng việc trao đổi kiến ​​thức giữa các học viên là vô cùng quý giá. Khi các lập trình viên giúp đỡ người khác, chính họ cũng phát triển . Và không có cách nào tốt hơn để tự mình hiểu điều gì đó hơn là giải thích nó cho người khác. Đó là lý do tại sao chúng tôi đã tạo các phần đặc biệt trên trang web của chúng tôi được thiết kế để mang đến cho tất cả học sinh cơ hội chia sẻ kiến ​​thức và giúp đỡ lẫn nhau trong học tập.

Vì vậy, bạn sẽ làm gì nếu bạn gặp khó khăn trong nhiệm vụ mới nhất? Tìm kiếm một giải pháp làm sẵn trên Internet là một ý tưởng tồi. Chắc chắn, bạn sẽ nhận được tín dụng cho nhiệm vụ nếu bạn chỉ sao chép giải pháp của người khác hoặc sử dụng giải pháp chính xác của chúng tôi. Nhưng bạn sẽ không thu hẹp khoảng cách kiến ​​thức của mình và điều đó chắc chắn sẽ quay lại cắn vào mông bạn trong tương lai.


7. Câu hỏi về nhiệm vụ

Các yêu cầu , đề xuấtcố vấn ảo cực kỳ thú vị. Nhưng nếu trình xác thực vẫn không chấp nhận giải pháp của bạn và bạn không chắc vấn đề là gì thì sao?

Ngay cả trong trường hợp này, vẫn có một lối thoát. Gặp phần Trợ giúp . Trong phần này của trang web, sinh viên CodeGym có thể đặt câu hỏi về các nhiệm vụ, khám phá các giải pháp của nhau, đồng thời đưa ra lời khuyên và mẹo. Đăng các giải pháp hoàn chỉnh không được phép!

Nghe có vẻ rất đơn giản và cơ bản, nhưng nó thực sự khá phức tạp.

Đầu tiên, mỗi câu hỏi có thể có một nhiệm vụ liên quan . Điều này có nghĩa là không cần phải lướt qua tất cả các câu hỏi nếu bạn quan tâm đến các câu hỏi về một nhiệm vụ cụ thể. Bạn luôn có thể sử dụng bộ lọc để chỉ dễ dàng xem các câu hỏi liên quan đến nhiệm vụ mà bạn quan tâm. Chỉ cần nhập tên nhiệm vụ vào thanh tìm kiếm:

Câu hỏi về nhiệm vụ

Thứ hai, nếu bạn nhấp vào nút "Trợ giúp cộng đồng" trong khi giải quyết một nhiệm vụ, bạn sẽ ngay lập tức được đưa đến phần Trợ giúp, nơi bạn sẽ chỉ thấy các câu hỏi về nhiệm vụ mà bạn đang thực hiện. Nếu giải pháp của bạn không thành công trong quá trình xác minh tác vụ, thì các câu hỏi sẽ được sắp xếp theo cách hữu ích: các câu hỏi hàng đầu sẽ là về các yêu cầu không thỏa mãn khiến giải pháp của bạn không thành công.

Nút trợ giúp

Thứ ba, plugin IntelliJ IDEA cung cấp chức năng tương tự. Bạn có thể nhấp vào nút "Trợ giúp" hoặc nhấn tổ hợp phím Ctrl+Alt+W, thao tác này sẽ mở ngay phần Trợ giúp trong trình duyệt của bạn. Và tất nhiên, bộ lọc sẽ chỉ hiển thị các câu hỏi về tác vụ mà bạn đang giải quyết trong IntelliJ IDEA .

Trợ giúp IntelliJ IDEA

8. Tạo câu hỏi

Nếu bạn không tìm thấy phân tích tốt về lỗi của mình trong phần Trợ giúp, thì bạn luôn có thể tạo câu hỏi của riêng mình. Điều này khá dễ thực hiện — bạn chỉ cần nhấp vào nút "Đặt câu hỏi" và điền vào các trường bắt buộc:

Tạo câu hỏi

Không giống như nhiều dịch vụ khác, chẳng hạn như StackOverflow, Code Ranch, v.v., CodeGym không yêu cầu bạn nhồi nhét tất cả thông tin quan trọng vào tiêu đề của câu hỏi. Viết câu hỏi của bạn tuy nhiên bạn muốn.

Và nhân tiện, bạn không cần sao chép mã của mình từ WebIDE hoặc IntelliJ IDEA và thêm mã đó vào câu hỏi của mình. Khi bạn tạo một câu hỏi về một nhiệm vụ, mã giải pháp của bạn cùng với trạng thái của các yêu cầu nhiệm vụ khác nhau sẽ tự động được thêm vào đó , nghĩa là giải pháp của bạn hiện đang đáp ứng những yêu cầu nào và giải pháp nào không đáp ứng.

Tạo câu hỏi 2

Điều này có nghĩa là các học viên CodeGym khác sẽ ngay lập tức nhìn thấy tất cả thông tin liên quan về giải pháp của người hỏi, điều này giúp đưa ra lời khuyên tốt dễ dàng hơn nhiều.


9. Mã giải pháp

Trên nhiều trang web, khi tạo câu hỏi về mã, bạn cần đính kèm tệp lưu trữ có tệp chương trình vào câu hỏi hoặc thêm tất cả các tệp này vào chính văn bản của câu hỏi. Kết quả là tạo ra một mớ hỗn độn lớn mà mọi người không muốn hoặc không thể đào sâu vào.

Đặt câu hỏi một cách nhanh chóng và hiệu quả là cả một hình thức nghệ thuật. Trên các trang web thông thường, bạn sẽ phải dành nửa giờ để xây dựng câu hỏi của mình hoặc chấp nhận thực tế là sẽ không có ai trả lời bạn. Một câu hỏi hay về một nhiệm vụ nhất định phải chứa các thông tin sau:

  • Liên kết đến nhiệm vụ mà người hỏi đang giải quyết
  • Các điều kiện nhiệm vụ để những người khác không cần phải đi săn lùng chúng ở bất cứ đâu
  • Mã giải pháp - mã này có thể bao gồm nhiều tệp
  • Trạng thái của từng yêu cầu nhiệm vụ, nghĩa là những gì hiện đang hoạt động và những gì không.
  • Nội dung câu hỏi: điều này thường khá rõ ràng — giải pháp của tôi không hoạt động và tôi không chắc tại sao.

CodeGym hiển thị thông tin này bằng một tiện ích đặc biệt rất giống với tiện ích WebIDE . Rốt cuộc, nó đã được thiết kế để hiển thị tất cả thông tin đó. Chà, có lẽ ngoại trừ chính câu hỏi.

mã giải pháp

Trên thực tế, chúng tôi đã viết một tiện ích đặc biệt chỉ để giúp bạn thuận tiện nghiên cứu các giải pháp của người dùng khác. Và để giúp những người dùng khác dễ dàng và hài lòng khi kiểm tra các giải pháp của bạn trong các câu hỏi mà bạn đặt ra.