Nên hay không việc lấy code chùa của người khác khi học lập trình?
Mỗi nhà phát triển phần mềm là một kẻ trộm mã, vì ăn cắp mã là một công cụ tự học và tiết kiệm thời gian.
Trong bài đăng này, tôi sẽ giải thích ý của tôi về mã ăn cắp. Cụ thể, tôi sẽ chỉ cho bạn cách chúng giúp cải thiện cả việc học Java và mã của bạn.
Cho dù bạn là người mới bắt đầu sử dụng Java hay lập trình viên nâng cao hơn, thì chắc chắn sẽ có thứ gì đó cho bạn ở đây. Rốt cuộc, ngay cả những người có kinh nghiệm nhất trong chúng ta luôn có thể học được điều gì đó mới.
Bạn có biết rằng hầu hết mọi họa sĩ bậc thầy có phong cách riêng của họ bắt đầu bằng cách sao chép những người khác?
Hầu như mọi bậc thầy có bức tranh mà bạn nhận ra ngay từ cái nhìn đầu tiên vì tính nguyên bản của chúng bắt đầu trong các bảo tàng bằng cách phác họa và sao chép các tác phẩm phổ biến trong thời đại của họ.
Tại sao các họa sĩ làm điều này? Để học hỏi từ các chuyên gia, tất nhiên. Sao chép giúp cải thiện kỹ năng của bạn trong khi bạn dần dần phát triển phong cách của riêng bạn.
Phong cách ban đầu không quá quan trọng đối với lập trình viên, chắc chắn. Hơn nữa, nó thậm chí có thể gây hại. Những dòng code tốt không phải lúc nào cũng là bảo gốc. Đôi khi, tất cả những gì phải làm là đáp ứng các điều kiện sau:
Các mã nên giải quyết nhiệm vụ, ít nhiều rõ ràng (mặc dù cũng có nhiều sắc thái: để hiểu liệu vấn đề được giải quyết chính xác không phải lúc nào cũng dễ dàng). Nhưng làm thế nào để bạn biết mã của bạn có dễ hiểu, chuẩn và dễ bảo trì hay không, đặc biệt nếu bạn mới bắt đầu học?
Giải pháp: “Ăn cắp” mã từ người khác!
Sử dụng một số ví dụ mã khác của người khác cũng giống như học hỏi từ các bậc thầy và các nhà phát triển có kinh nghiệm hơn.
Vì vậy, điều này có nghĩa là gì?
Làm thế nào để một người ăn cắp mã của Google sao cho hợp pháp và hữu ích cho nghiên cứu cá nhân?
Chúng ta đủ may mắn để sống với internet. Bạn có thể tìm thấy các khóa học hữu ích và thực tế và các dự án học tập ở đó sẽ giúp bạn phát triển như một lập trình viên.
Một số trong số họ thậm chí có hướng dẫn từng bước và mẫu mã bạn có thể học hỏi.
Khi phát triển một dự án nhỏ, đôi khi nó tốt nhất để bắt đầu với các khuyến nghị chuyên nghiệp. Bằng cách này, một phần của mã đã được viết và bạn có thể sử dụng các mẫu được viết sẵn của chúng để giúp xây dựng mã của riêng bạn từ đó.
Bước đầu tiên để mã hóa như các chuyên gia là kiểm tra công việc của các lập trình viên chuyên nghiệp.
Dự án game
Chơi game trên thiết bị di động là một hoạt động cực kỳ phổ biến và các game chiếm tỷ lệ lớn trong số các ứng dụng có sẵn. Nó rất có thể là vào lúc này hay lúc khác, game lập trình sẽ là thứ mà bạn ít nhất muốn thử một lần.
Một ý tưởng tuyệt vời cho các dự án chơi game là tạo ra các phần của game và viết mã dựa trên mã của các game cổ điển.
John Carmack, tác giả của các dự án game có ảnh hưởng như Doom, Wolfenstein 3D và Quake, đã từng nói trên Twitter của mình rằng mọi người mới bắt đầu nên cố gắng tạo lại các game retro cổ điển như các bài tập lập trình. Hoạt động này rất hữu ích cho các nhà phát triển trong tương lai.
Tuy nhiên, việc tạo ra ngay cả game đơn giản nhất cũng có thể khó khăn cho người mới bắt đầu hoàn thành. Thông thường, một tân binh bị lạc và không biết bắt đầu từ đâu. Nhưng một lần nữa, chúng ta may mắn như thế nào khi chúng ta có mạng Internet với tài nguyên của nó là ở đây để giúp đỡ!
Các game được cung cấp rất nhiều với các hướng dẫn và ví dụ mã. Sau khi bạn hoàn thành game, bạn có thể sửa đổi nó theo ý muốn.
Trên trang web zetcode, bạn có thể tìm thấy một hướng dẫn chi tiết cho các game Java 2D, với các ví dụ mã cho các game cổ điển (Sokoban, Snake, PacMan và các game khác), cũng như một hướng dẫn hữu ích để phát triển các game của riêng bạn.
Hạn chế duy nhất là thư viện Swing khá cũ được sử dụng ở đây. Tuy nhiên, bạn vẫn có thể học hỏi từ nó. Điều chính là để hiểu khái niệm. Tìm hiểu mã, sử dụng một phần của mã đó và sau đó thử tạo lại các game tương tự bằng cách áp dụng công nghệ chơi game hiện đại hơn để hiển thị.
Có một dự án thú vị tên là Codingame, nơi bạn có thể tham gia phát triển một game không gian quy mô tương đối lớn. Một phần của mã đã được viết. Tìm hiểu nó một cách cẩn thận, và sau đó tiến hành viết phần của riêng bạn theo sự phân công.
Nhờ chương trình đặc biệt này, bạn sẽ dễ dàng tạo ra các game của riêng mình sau này. Hạn chế duy nhất là dự án này được thiết kế cho những người đã tương đối tự tin trong lập trình.
Ít nhất, bạn có thể viết lại mã từ các sách Java như Head First Java, Core Java hoặc bất kỳ thứ gì khác mà bạn sử dụng trong quá trình học.
Nếu có gì đó không đúng với nhiệm vụ của bạn, hoặc bạn không biết phải làm gì để giải quyết vấn đề mà bạn đang giải quyết, bước đầu tiên bạn nên làm là đến Google.
Google sẽ hiển thị cho bạn các diễn đàn tốt nhất để đọc mã, chẳng hạn như Stack Overflow, một số luồng Reddit, JavaRanch hay DevPro.
Hãy mô hình hóa tình huống này. Bạn có một vấn đề, bạn đã đi đến Google và bạn đã tìm thấy một người có vấn đề tương tự.
Đi đến các bình luận nơi những người khác đã đăng một giải pháp và trộm cắp mã! Tuy nhiên, một ý tưởng tốt là cố gắng nhận ra điều gì sai và tại sao mã đồng nghiệp Internet của bạn lại đúng.
Nếu bạn có thể tìm thấy câu trả lời cho câu hỏi của mình thì hãy tạo một câu hỏi mới!
Đừng sợ điều này. Để biết cách hỏi trong lập trình có nghĩa là bạn nửa chừng để giải quyết vấn đề. Bạn có thể nói, đó là một con đường nguy hiểm để tìm kiếm giải pháp trên internet mỗi khi bạn bị mắc kẹt với một vấn đề.
Chà, có thể là nếu bạn không cố gắng đủ. Thường xuyên hơn, các lập trình viên tân binh gắn bó với các nhiệm vụ phức tạp của họ quá lâu.
Kết quả là họ mất động lực.
Vì vậy, hãy cẩn thận.
Hãy thử, nhưng không quá lâu. Hãy hỏi trên internet và làm việc trên đoạn mã bị đánh cắp của Google hơn là khăng khăng tự mình giải quyết nó và tự đuổi theo cái đuôi của mình một cách vô ích.
Một mẹo tuyệt vời khác là đọc các diễn đàn, và cố gắng giúp đỡ người khác giải quyết vấn đề của họ. Bài tập này không chỉ mang lại lợi ích cho bạn cho công việc tương lai của bạn mà còn có thể giúp bạn bước vào cửa như một chuyên gia trong lĩnh vực của bạn, cho dù bạn có cảm thấy bạn có hay không.
Một trong những học sinh của tôi rất thích Minecraft. Khi bắt đầu lập trình, anh bắt đầu bằng cách dịch ngược Minecraft, lấy mã Java và thay đổi nó theo cách sử dụng của riêng mình.
Đầu tiên, anh ta đã sửa đổi mã dịch ngược này và sau đó anh ta đã viết bản sao Minecraft của riêng mình cho Android. Bây giờ, anh ấy tự tạo game Android.
Chúng tôi có một Github với hàng triệu dự án khác nhau trên đó. Nếu bạn đã nhận ra, Github là một trong những nơi thú vị nhất trên toàn bộ internet. Nếu bạn muốn tìm một dự án thú vị, bấm Khám phá và tìm các kho lưu trữ phổ biến. Bạn có thể chọn nó theo loại (ví dụ: Công cụ năng suất, mô hình 3D), theo bộ sưu tập hoặc chỉ theo tên.
Ví dụ: Tôi muốn tạo phiên bản Space Invaders nhưng tôi là một tân binh. Bằng cách sử dụng tab khám phá, tôi có thể tìm thấy một bản sao Kẻ xâm lược không gian Java, tải xuống và thử đọc mã. Làm y hệt!
Tôi chắc chắn rằng phần lớn các lập trình viên hiện đại tự hỏi mình câu hỏi này nhiều lần. Tôi không chỉ nói về sinh viên hay thực tập sinh; ngay cả các chuyên gia cũng có vấn đề này.
Thực tế là lập trình ngày càng trở nên cao cấp. Có ít dòng mã do bạn viết hơn so với những dòng khác mà bạn sử dụng. Vì vậy, bạn có thể bị rung cảm Hội chứng Impostor, một tình trạng cực kỳ phổ biến ở các lập trình viên, nơi bạn liên tục nghi ngờ về thành tích và kỹ năng của chính mình.
Để chống lại điều này, hãy viết mã từ đầu.
Thỉnh thoảng, tôi cho học sinh của mình một giờ mã trên một tờ giấy. Tôi khuyên bạn nên làm như vậy một hoặc hai lần một tuần. Chọn một nhiệm vụ mà bạn đã giải quyết cách đây không lâu hoặc nếu bạn đủ can đảm, bạn có thể có một nhiệm vụ mới và giải quyết nó trong ứng dụng Notebook mà không cần tô sáng cú pháp và không có Google.
Bạn có thể sử dụng ngay cả một mảnh giấy!
Nhiệm vụ này không phải là về cú pháp. Một điểm đánh dấu quan trọng hơn nhiều là liệu bạn có thể tạo ra một thuật toán giải pháp hay không.
Đừng lười biếng, và thực hiện bài tập này như một loại vắc-xin cho Hội chứng kẻ mạo danh liên quan đến trộm cắp mã nặng.
Tôi tin rằng ăn cắp mã là một công cụ giảng dạy và tiết kiệm thời gian. Các ví dụ và phương pháp tôi đã chỉ ra cho bạn có thể giúp ích rất nhiều cho việc học của bạn.
Ăn cắp mã không phải là một tội ác, mà là một phương pháp để dạy bản thân cách viết mã. Mỗi học sinh, thậm chí mỗi học sinh chuyên nghiệp của mọi lĩnh vực đều sao chép thứ gì đó do người khác tạo ra. Sử dụng lại mã là một quá trình tự nhiên cho mọi nhà phát triển phần mềm. Họ sử dụng các thư viện, các thành phần và các dự án nguồn mở rộng rãi.
Khi bắt đầu vào việc học lập trình, đừng nên vội vàng nghĩ rằng tự mình sẽ làm được hết. Đôi khi mới học lập trình, bạn cũng nên học hỏi và sử dụng code của người đi trước như một gợi ý cho bài tập của mình.
Vì vậy đừng cố gắng phát minh lại bánh xe. Thay vào đó, sử dụng bánh xe này để hoàn thành mô hình xe hơi của riêng bạn. Giữ bình tĩnh và đánh cắp mã với lợi ích. Chúc may mắn với việc học của bạn!
20 October 2020
14 September 2020
21 December 2018
07 May 2019
15 February 2020
11 May 2019