"Xin chào, Amigo, bạn của tôi (xin thứ lỗi cho tôi vì hơi thừa!). Chắc bạn đã nghe câu này: 'Bạn càng đổ mồ hôi trong huấn luyện, bạn càng ít đổ máu trong chiến tranh', phải không?"

"Vâng, đó là sự thật, việc học thường không dễ dàng! Bạn đang thành thạo một nghề mới với tư cách là một lập trình viên, và rất có thể bạn đang thay đổi mạnh mẽ lĩnh vực công việc của mình."

"CodeGym bao gồm một lượng lớn thực hành. Nó chiếm hơn 80% toàn bộ quá trình học tập."

"Chúng tôi biến chúng thành một nhiệm vụ lớn, thú vị (thực ra là cả một chuỗi nhiệm vụ), nhưng mọi người đều khác nhau: một số học nhanh, những người khác chậm hơn. Một số nắm vững tài liệu mới dễ dàng, trong khi những người khác thì khó hơn. Tuy nhiên, công việc của chúng tôi là để đưa mỗi học sinh của chúng tôi đến vạch đích."

"Nhưng, thưa giáo sư, nếu tôi có cố gắng thế nào cũng không thể tìm ra nhiệm vụ tiếp theo, hoặc nếu tôi không thể hiểu được lời giải thích của chủ đề tiếp theo nếu cuộc sống của tôi phụ thuộc vào nó thì sao?"

"Giải pháp rất đơn giản: cộng đồng . Cộng đồng bao gồm những sinh viên như bạn, sinh viên mới tốt nghiệp, giáo viên và nhà phát triển chuyên nghiệp…

"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 gồm những người liên tục chia sẻ kiến ​​thức của mình với những người khác. Họ sẵn sàng trả lời các câu hỏi và giúp người khác hiểu chủ đề phức tạp."

"Cộng đồng nhà phát triển lớn nhất thế giới, trang web StackOverflow , được thành lập bởi vì các lập trình viên cần học hỏi lẫn nhau. Khái niệm này rất đơn giản: bạn đặ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 câu hỏi đó. Tiện lợi, phải không? :)"

"Ở đây tại CodeGym, chúng tôi nghĩ rằng việc sinh viên trao đổi kiến ​​thức có giá trị rất lớn. Bằng cách giúp đỡ người khác, lập trình viên phát triển bản thân (xét cho cùng, 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 điều đó cho người khác )."

Đó là lý do tại sao chúng tôi tạo ra các phần đặc biệt đượ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 quá trình học tập.

"Vì vậy, bạn nên làm gì nếu bạn bị đình trệ trong một nhiệm vụ? Tìm kiếm giải pháp đã hoàn thành trên Internet không phải là một ý tưởng hay. Nếu bạn tìm thấy một giải pháp, bạn sẽ nhận được tín dụng cho nhiệm vụ. Nhưng, bạn vẫn sẽ có một lỗ hổng trong hiểu biết của bạn và nó chắc chắn sẽ quay lại cắn bạn trong tương lai. Tin tôi đi."

"Sẽ tốt hơn nhiều nếu bắt đầu tích cực sử dụng phần Trợ giúp . "

"Nó thực sự dễ sử dụng. Chỉ cần nhấp vào nút 'Trợ giúp' bên cạnh nhiệm vụ:"

wedIDE-Trợ giúp

"Nếu bạn cần tìm một nhiệm vụ cụ thể từ một cấp độ cụ thể, chỉ cần nhập tên của nó vào thanh tìm kiếm."

Trợ giúp Java

"Hoặc, chọn nhiệm vụ và cấp độ bạn cần từ danh sách thả xuống."

Mã trợ giúpGym

"Nếu bạn chọn bộ lọc 'Đã giải quyết', bạn sẽ thấy các câu hỏi mà cộng đồng CodeGym đã trả lời."

"Chỉ cần nhấp vào nút 'Đặt câu hỏi', đính kèm liên kết tới nhiệm vụ và giải thích vấn đề của bạn."

"Lưu ý: không được phép trả lời bằng mã hoàn chỉnh trong phần Trợ giúp . Mục đích của phần này là cho phép người dùng đưa ra các mẹo cho nhau , điều này sẽ giúp họ tự tìm ra giải pháp phù hợp. Một mặt, bạn sẽ không bạn sẽ không còn có những lỗ hổng trong hiểu biết của mình nữa; và mặt khác, bạn sẽ cảm thấy hài lòng với chính mình: bạn đã hoàn thành nhiệm vụ thay vì bỏ qua nó hoặc tra cứu trên Google để tìm một giải pháp hoàn chỉnh. Không có gì ngoài những mặt tích cực ở đây! :)"

"Và khi bạn tích lũy kinh nghiệm trên CodeGym, đừng quên phần Trợ giúp! Như tôi đã đề cập ở trên, không có cách nào tốt hơn để học điều gì đó hơn là giải thích điều đó cho người khác. Học viên CodeGym sẽ rất vui nếu bạn hỗ trợ họ, giống như những người khác đã đến để giúp bạn. Chỉ cần chọn bộ lọc 'Mới' và cố gắng trả lời các câu hỏi do những người đồng nghiệp của bạn đặt ra. Họ sẽ biết ơn và bạn sẽ đi sâu vào chủ đề một lần nữa và đào sâu vào mã của người khác (và hiểu mã của người khác là một kỹ năng quan trọng đối với các lập trình viên!).

Nhưng CodeGym không chỉ dành cho việc học! Chúng tôi cũng tương tác với các lập trình viên đồng nghiệp của mình (cả người mới bắt đầu và chuyên gia)."

"Thông thường, mọi người tạo các nhóm trên mạng xã hội để liên kết với những người cùng chí hướng. Chúng tôi quyết định rằng đây là một ý tưởng hay, vì vậy trang web của chúng tôi cũng có các nhóm (được gọi là các phần trong phần Bài viết )".

"Như bạn có thể thấy, có nhiều loại nhóm khác nhau. Chúng tập trung vào các sở thích CNTT khác nhau (ví dụ: có các nhóm dành cho nhà phát triển giao diện người dùng và người thử nghiệm)."

"Và hãy chắc chắn tham gia ba nhóm chính trên trang web của chúng tôi!

Trong nhóm CodeGym , chúng tôi đăng những tin tức mới nhất về trang web, các cuộc thi và chương trình khuyến mãi. Tất cả các cập nhật và thay đổi trang web mới xuất hiện ở đó đầu tiên ."

"Trong nhóm Ngẫu nhiên , chúng tôi xuất bản các bài viết thú vị về CNTT nói chung, nhiều bài viết trong số đó được viết bởi sinh viên và sinh viên đã tốt nghiệp của chúng tôi! Tại đây, bạn có thể mở rộng đáng kể tầm nhìn của mình bằng cách khám phá các công nghệ mới, tìm kiếm các bài phê bình sách, nhận các mẹo về cách tìm việc, thư giãn với những trò đùa về CNTT và hơn thế nữa. :)"

"Cũng có phần Bảng xếp hạng ."

"Hoàn thành xuất sắc tất cả các nhiệm vụ, và một ngày nào đó bạn có thể là học sinh giỏi nhất trong tất cả! :)"

"Trong nhóm Nhà phát triển Java , bạn sẽ tìm thấy các bài báo thú vị về Java, tài liệu đào tạo bổ sung cũng như tin tức về ngôn ngữ này."

"Và còn nhiều nhóm nữa. CodeGym là nơi tốt nhất cho những người viết mới! Viết một bài báo là một cách tuyệt vời để sắp xếp kiến ​​thức của bạn về một chủ đề một cách chu đáo."

"Được rồi, tuyệt. Thực hành có ý nghĩa. Nhưng lý thuyết đóng vai trò gì?"

"Tất nhiên, lý thuyết cũng rất quan trọng. Nếu các nhà vật lý không áp dụng kiến ​​thức lý thuyết của họ mà thay vào đó chỉ thử nghiệm, dù vui, thì có lẽ nó sẽ không hữu ích lắm! Lập trình cũng không ngoại lệ. Trên CodeGym, chúng tôi tập trung chủ yếu vào thực hành , cho phép bạn tiến bộ nhanh nhất có thể. Tuy nhiên, bạn có thể (và chúng tôi thực sự khuyên bạn nên làm như vậy!) thu thập kiến ​​thức từ các nguồn thông tin khác, chủ yếu là sách."

"Mọi người đều khác nhau: một số người chỉ đọc một bài học ngắn trên CodeGym và ngay lập tức hiểu được; những người khác thấy thuận tiện hơn khi thu thập thông tin từ các nguồn khác, tóm tắt và sau đó đưa ra kết luận."

"Đây là một số cuốn sách hay nhất về lập trình Java mà bạn có thể học song song với các hoạt động của mình trên CodeGym. Mỗi cuốn đều đã được chứng minh là đáng giá từ lâu và chắc chắn sẽ không lãng phí thời gian hay tiền bạc của bạn."

  1. "Kathy Sierra và Bert Bates, người đứng đầu Java đầu tiên"

    Giáo sư Mì ra tay giải cứu - 4

    "Chắc chắn là cuốn sách hay nhất về Java dành cho người mới bắt đầu! Bộ sách Head-First có hàng chục cuốn sách về các ngôn ngữ lập trình khác nhau. Các tác giả có cách trình bày tài liệu độc đáo của riêng họ, khiến nó trở nên dễ đọc và nhanh chóng. Ngoài ra, bạn có thể viết viết mã và thực hiện các nhiệm vụ ngay trong sách!"

    "Bạn có thể bắt đầu đọc nó bất kể cấp độ của bạn là gì trên CodeGym, ngay cả khi bạn mới ở cấp độ 0. :)"


  2. "Herbert Schildt: Java: Tài liệu tham khảo đầy đủ "

    Giáo sư Mì ra tay giải cứu - 5

    "Cuốn sách này cũng tốt cho người mới bắt đầu. Sự khác biệt chính so với cuốn sách trước là cách trình bày tài liệu: ở đây tài liệu được trình bày theo cách chặt chẽ và nhất quán hơn (nhiều người thích phương pháp trình bày 'luật chơi' này hơn). Trong số những ưu điểm không thể nghi ngờ của nó là thực tế là nó chia nhỏ tài liệu thành từng chi tiết nhỏ nhất, đôi khi, lặp đi lặp lại."


  3. "Bruce Eckel, Tư duy bằng Java "

    Giáo sư Mì ra tay giải cứu - 6

    "Đây là kinh thánh của lập trình viên Java. Và đó không phải là cường điệu: mọi nhà phát triển Java nên đọc nó. Nó khá lớn và có lý do cho điều đó. Nó không được đặt tên một cách nhẹ nhàng: nó không chỉ bao gồm các chủ đề cụ thể về ngôn ngữ này, nó cũng giải thích triết lý của Java —hệ tư tưởng của nó; tại sao những người tạo ra ngôn ngữ này đôi khi làm mọi thứ theo cách riêng của họ, khác với các ngôn ngữ khác."

    "Nó không dành cho người mới bắt đầu, nhưng khi bạn đạt đến cấp độ thứ 20 trên CodeGym, bạn có thể bắt đầu học nó."

    "Đây là những cuốn sách cần thiết về Java mà bạn nên đọc (còn nhiều cuốn khác nữa). Bằng cách đọc sách, ngoài việc học về ngôn ngữ, bạn cũng sẽ mở rộng hiểu biết của mình về lập trình nói chung. Đây là những cuốn sách tốt nhất cho điều đó:"


  4. "Charles Petzold, Mã: Ngôn ngữ ẩn của phần cứng và phần mềm máy tính "

    Giáo sư Mì ra tay giải cứu - 7

    "Xếp hạng của cuốn sách này trên Amazon (4,7/5) và các bài phê bình tích cực khác, tự chúng nói lên điều đó."

    "Đó là một cuốn sách tuyệt vời dành cho những người từ lâu đã quên những gì họ đã học trong lớp khoa học máy tính ở trường trung học, hoặc những người chưa bao giờ lấy một cuốn. Nó giải thích, theo cách hiểu của người bình thường, những điều quan trọng về cách thức hoạt động của máy tính và mã. Ví dụ, làm thế nào máy tính thực thi đoạn mã do lập trình viên viết ra? Và làm thế nào để máy tính hiểu được văn bản của đoạn mã đó, tức là những gì mọi người muốn máy tính thực hiện?"

    "Cuốn sách này, vốn đã trở thành một tác phẩm kinh điển, chứa đựng câu trả lời cho những câu hỏi này. Cuốn sách đã thực hiện một công việc tuyệt vời trong việc giúp nâng cao tốc độ cho những người đang học lập trình mà không được đào tạo chuyên môn."


  5. "Aditya Bhargava, Thuật toán Grokking ".

    Giáo sư Mì ra tay giải cứu - 8

    "Các thuật toán và cấu trúc dữ liệu rất quan trọng và cần thiết. Chúng chiếm một phần quan trọng trong công việc của lập trình viên và lập trình viên phải sử dụng chúng một cách hiệu quả! Ví dụ, làm cách nào để sắp xếp hàng nghìn số ngẫu nhiên?"

    "Thực ra, bạn có thể làm theo nhiều cách! Nhưng chúng không hiệu quả bằng nhau. Có rất nhiều sách và khóa học về thuật toán và cấu trúc dữ liệu, nhưng sách của Bhargava chắc chắn là tốt nhất cho những người mới bắt đầu học lập trình. Nó sử dụng ngôn ngữ đơn giản, bao gồm các giải thích chi tiết bằng hình ảnh và không quá lớn. Đó chính là thứ bạn cần để bắt đầu!"

"Đọc sách, hoàn thành nhiệm vụ và tham gia vào cộng đồng: công thức hoàn hảo để trở thành một lập trình viên!"