paint-brush
Những gì tôi đã học được khi sử dụng ChatGPT với tư cách là Người cố vấn lập trìnhtừ tác giả@zawistowski
5,165 lượt đọc
5,165 lượt đọc

Những gì tôi đã học được khi sử dụng ChatGPT với tư cách là Người cố vấn lập trình

từ tác giả Wojciech Zawistowski22m2023/05/08
Read on Terminal Reader

dài quá đọc không nổi

Không có gì thúc đẩy sự phát triển của bạn nhanh bằng một người cố vấn có kinh nghiệm. ChatGPT có thể đóng vai trò thay thế hợp lý không? Tôi là một nhà phát triển với hơn 20 năm kinh nghiệm và tôi đã thử nghiệm nó.
featured image - Những gì tôi đã học được khi sử dụng ChatGPT với tư cách là Người cố vấn lập trình
Wojciech Zawistowski HackerNoon profile picture
0-item
1-item

Không có gì có thể thúc đẩy sự phát triển của bạn giống như một người cố vấn có kinh nghiệm. Tuy nhiên, việc tìm kiếm một cái có thể là một thách thức và tính khả dụng của chúng thường bị hạn chế.


Mặt khác, các tác nhân AI như ChatGPT luôn sẵn sàng 24/7 và dường như cũng khá am hiểu. Một tác nhân như vậy có thể phục vụ như một sự thay thế hợp lý cho một người cố vấn thực sự của con người không?


Điều tôi đặc biệt quan tâm là lời khuyên "meta" hơn - các mẹo và thủ thuật nhỏ, chỉ có được nhờ kinh nghiệm sâu rộng, sẽ giúp bạn phát triển và trưởng thành với tư cách là nhà phát triển - không chỉ đơn thuần là tạo hoặc giải thích mã.


Là một người có hơn 20 năm kinh nghiệm, người đã cố vấn cho một số nhà phát triển mới vào nghề, tôi tò mò không biết lời khuyên của ChatGPT như thế nào là hợp lý, toàn diện và khả thi đối với người mới bắt đầu.


Hãy mang nó đi lái thử nhanh!

TL; DR.

Nếu bạn tò mò về chất lượng lời khuyên của ChatGPT nhưng không muốn xem qua toàn bộ cuộc thảo luận và bình luận chi tiết từng bước của tôi, vui lòng chuyển thẳng đến phần cuối cùng.

Một truyền thuyết ngắn.

💬 Lời nhắc của tôi.


🤖 ChatGPT trả lời.


🤔 Suy nghĩ/nhận xét của tôi.

Việc thiết lập.

💬 Đóng vai trò là nhà phát triển phần mềm chuyên nghiệp, dày dạn kinh nghiệm với hơn 10 năm kinh nghiệm. Hãy tưởng tượng rằng bạn đang cố vấn cho một đồng nghiệp trẻ hơn, cấp dưới, với kinh nghiệm không quá 2-3 năm. Tôi sẽ hỏi bạn những câu hỏi khác nhau liên quan đến sự nghiệp lập trình và phát triển phần mềm. Tôi sẽ hỏi họ với tư cách là nhà phát triển trẻ tuổi này. Trả lời chúng theo cách hữu ích nhất để tôi trở thành một nhà phát triển tốt hơn và phát triển một cách chuyên nghiệp.


🤖 Chắc chắn rồi, tôi ở đây để giúp bạn! Vui lòng hỏi bất kỳ câu hỏi nào bạn có về lập trình hoặc sự nghiệp phát triển phần mềm của mình và tôi sẽ cố gắng hết sức để hướng dẫn bạn dựa trên kinh nghiệm của tôi.


🤔 Cho đến nay, rất tốt. Bắt đầu nào!


Câu hỏi "Triệu đô": 10 mẹo vặt để trở thành nhà phát triển giỏi hơn

💬 Vui lòng chia sẻ 10 mẹo vặt nhanh chóng, dễ thực hiện và sẽ ngay lập tức giúp tôi trở thành một nhà phát triển tốt hơn.


🤖 Tất nhiên! Dưới đây là 10 mẹo vặt mà bạn có thể nhanh chóng thực hiện để cải thiện kỹ năng của mình với tư cách là nhà phát triển:


  1. Sử dụng phím tắt : Tìm hiểu và sử dụng IDE hoặc phím tắt dành riêng cho trình soạn thảo để điều hướng và thao tác mã nhanh hơn. Nó sẽ giúp bạn tiết kiệm thời gian và tăng năng suất của bạn.


  2. Thực hiện theo Kỹ thuật Pomodoro : Chia công việc của bạn thành những khoảng thời gian nhỏ, có thể quản lý được (thường là 25 phút), sau đó là một khoảng thời gian nghỉ giải lao ngắn. Kỹ thuật này có thể giúp bạn tập trung và duy trì nhịp điệu công việc nhất quán.


  3. Kiểm soát phiên bản chính : Thoải mái với Git hoặc hệ thống kiểm soát phiên bản khác. Điều này sẽ giúp bạn theo dõi các thay đổi trong mã của mình, cộng tác với những người khác và hoàn nguyên về các phiên bản trước khi cần.


  4. Tự động hóa các tác vụ lặp đi lặp lại : Sử dụng các tập lệnh hoặc công cụ để tự động hóa các tác vụ thông thường như định dạng mã, đổi tên tệp hoặc dàn dựng dự án. Điều này sẽ giúp bạn tiết kiệm thời gian và giảm khả năng mắc lỗi của con người.


  5. Đọc và viết mã sạch : Áp dụng phong cách viết mã sạch, dễ đọc và dễ hiểu. Thực hiện theo các phương pháp hay nhất để đặt tên theo quy ước, thụt đầu dòng và cấu trúc mã. Điều này sẽ làm cho mã của bạn dễ bảo trì hơn và giảm thời gian gỡ lỗi.


  6. Nhận xét mã của bạn : Viết các nhận xét có ý nghĩa để giải thích mục đích và chức năng của mã của bạn. Điều này sẽ giúp người khác hiểu mã của bạn dễ dàng hơn và giúp bạn nhớ lại quá trình suy nghĩ của mình khi xem lại mã sau này.


  7. Tìm kiếm đánh giá mã : Yêu cầu đồng nghiệp hoặc người cố vấn của bạn xem lại mã của bạn thường xuyên. Điều này sẽ giúp bạn xác định các lĩnh vực cần cải thiện và học hỏi từ chuyên môn của họ.


  8. Luôn tò mò : Không ngừng khám phá các ngôn ngữ, khuôn khổ và công cụ mới. Điều này sẽ giúp bạn cập nhật những xu hướng mới nhất của ngành và mở rộng bộ kỹ năng của bạn.


  9. Chia vấn đề thành những phần nhỏ hơn : Khi đối mặt với một vấn đề phức tạp, hãy chia nó thành những nhiệm vụ nhỏ hơn, dễ quản lý hơn. Điều này sẽ giúp bạn duy trì sự tập trung và giúp bạn không bị choáng ngợp.


  10. Chăm sóc bản thân : Ưu tiên sức khỏe thể chất và tinh thần của bạn. Tập thể dục thường xuyên, ngủ đủ giấc và nghỉ ngơi khi cần thiết. Một tinh thần và thể chất khỏe mạnh sẽ giúp bạn làm việc hiệu quả và tập trung hơn.


Hãy nhớ rằng, trở thành một nhà phát triển giỏi hơn là một quá trình liên tục và cần có thời gian cũng như sự cống hiến. Nhưng bằng cách thực hiện những thủ thuật cuộc sống này, bạn có thể đẩy nhanh tốc độ phát triển và liên tục cải thiện các kỹ năng của mình.


🤔 Danh sách này hầu như chắc chắn, mặc dù hơi ngẫu nhiên và không đặc biệt đột phá. Tuy nhiên, tôi đã hỏi ChatGPT để được tư vấn cho người mới bắt đầu, vì vậy câu trả lời tương đối rõ ràng là dễ hiểu.


Một số mẹo này có vẻ không được thực hiện nhanh chóng và dễ dàng cho lắm (đó là một phần trong lời nhắc của tôi). Một số khác hơi mơ hồ và yêu cầu giải thích thêm – nhưng vì ChatGPT được thiết kế để sử dụng lặp đi lặp lại, đào sâu hơn và sâu hơn với các câu hỏi tiếp theo, tôi đoán điều đó ổn. Có một vài điểm tôi không hoàn toàn đồng ý, nhưng tôi xem chúng như một vấn đề quan điểm hơn là không chính xác. Nhìn chung, không tệ!


Hãy đi sâu hơn một chút vào từng gợi ý:


  1. Sử dụng phím tắt : Lời khuyên chắc chắn. Nhanh chóng và dễ thực hiện, và chắc chắn nó sẽ tăng năng suất của bạn. Một điều làm tôi ngạc nhiên là tại sao chỉ có các phím tắt đơn giản? Việc sử dụng các tính năng nâng cao hơn như trí thông minh mã, đoạn trích, trình định dạng tự động, trình tạo mã và trợ lý AI như GitHub Copilot (hoặc chính ChatGPT, duh) sẽ dễ dàng bắt đầu sử dụng và mang lại hiệu quả lớn hơn nhiều.


  1. Thực hiện theo Kỹ thuật Pomodoro : Lời khuyên tốt. Bạn chắc chắn nên thử nó. Nếu bạn chưa bao giờ nghe nói về Pomodoro trước đây, bạn có thể phải google nó hoặc hỏi ChatGPT một câu hỏi tiếp theo, nhưng nếu không thì nó khá đơn giản và dễ hiểu.


  1. Kiểm soát phiên bản chính : Lời khuyên tốt, nhưng chắc chắn không phải mẹo vặt. Ngay cả từ "bậc thầy" cũng cho thấy rõ ràng rằng đó không phải là cách khắc phục nhanh chóng và dễ dàng. Tôi cũng cho rằng kiểm soát phiên bản là một phần không thể thiếu trong ngăn xếp công nghệ chính của bạn, tương tự như ngôn ngữ lập trình, khung chính hoặc cơ sở dữ liệu của bạn, chứ không phải là "hack" để cải thiện năng suất của bạn. Nhưng nếu không, lời khuyên là chính xác.


  1. Tự động hóa các tác vụ lặp đi lặp lại : Lời khuyên chắc chắn, nhưng một lần nữa, nó cần khám phá thêm. Nó quá cao cấp để thực hiện ngay lập tức.


  1. Đọc và viết mã sạch : Đọc nhiều mã sạch (hoặc mã nói chung) là lời khuyên tuyệt vời – và dễ thực hiện. Phần khó khăn duy nhất là làm thế nào để biết, với tư cách là người mới bắt đầu, mã nào sạch và tìm mã đó ở đâu. Điều này một lần nữa đòi hỏi phải tìm hiểu sâu hơn. Tuy nhiên, viết clean code lại là một vấn đề hoàn toàn khác. Đó là một phần của quá trình làm chủ nghề thủ công suốt đời của bạn và toàn bộ sách được viết về chủ đề này. Bạn hoàn toàn nên nghiên cứu về nó, nhưng cũng giống như việc thành thạo kiểm soát phiên bản, nó còn rất xa so với mẹo vặt.


  1. Nhận xét mã của bạn : Đây là mẹo đầu tiên mà tôi thấy gây tranh cãi (mặc dù, như tôi đã nói trước đó, không phải vì nó rõ ràng là sai mà vì sở thích cá nhân). Có hai lập trường liên quan đến nhận xét: nhận xét nhiều so với làm cho mã dễ hiểu đến mức bạn không cần nhận xét (trừ khi bạn cần giải thích mục đích kinh doanh đằng sau mã của mình). Tôi mạnh mẽ ở trại thứ hai, vì vậy việc "viết nhận xét" rất có thẩm quyền của ChatGPT không phù hợp với tôi. Mặt khác, nó cũng yêu cầu viết các nhận xét có ý nghĩa và giải thích mục đích mã của bạn, điều mà tôi rất đồng ý. Nhưng nó cũng nói để giải thích chức năng của mã của bạn, điều mà tôi cho là một cách làm không tốt và lãng phí thời gian. Vì vậy, tôi có cảm xúc lẫn lộn về điều này.


  1. Tìm kiếm các đánh giá về mã : Lời khuyên này chắc chắn và dễ dàng áp dụng nhất có thể. Bạn hoàn toàn nên tìm kiếm các bài đánh giá mã càng nhiều càng tốt, đặc biệt là khi mới bắt đầu.


  1. Hãy luôn tò mò : Đây là lời khuyên thứ hai mà tôi thấy hơi đáng tranh cãi. Khám phá các ngôn ngữ, khuôn khổ và công cụ mới nói chung là lời khuyên tốt (mặc dù tôi tranh luận về "liên tục" - nó có mùi giống như sự phát triển dựa trên từ thông dụng), nhưng nó có thể không phải là chiến lược tốt nhất cho người mới bắt đầu chỉ với một hoặc hai năm kinh nghiệm. Là người mới bắt đầu, bạn nên tập trung nhiều hơn vào việc xây dựng nền tảng vững chắc về các nguyên tắc và phương pháp hay nhất cũng như tìm hiểu chúng một cách chuyên sâu, điều này sẽ dễ dàng hơn khi bạn tập trung vào việc thành thạo một ngăn xếp trong một thời gian. Nhưng thành thật mà nói, tôi đang soi mói ở đây, và tôi sẽ không gọi lời khuyên này là sai.


  1. Chia vấn đề thành những phần nhỏ hơn : Lời khuyên chắc chắn, nhưng một lần nữa, nó quá cao cấp. Chia nhỏ vấn đề một cách hiệu quả không phải chuyện nhỏ. Để thực sự triển khai điều này trong thực tế, cần phải đi sâu hơn nữa.


  1. Chăm sóc bản thân : Lời khuyên rất hay và có thể áp dụng. Thật tuyệt khi ChatGPT bao gồm lời khuyên như thế này, vốn không liên quan trực tiếp đến kỹ năng công nghệ cứng.


Được rồi, chúng tôi đã xem qua tất cả các mẹo. Ko tồi, ko tồi chút nào. Tuy nhiên không phải cái nào cũng áp dụng được ngay. Hãy đi sâu vào một vài vấn đề để xem chúng ta có thể tiến gần đến vấn đề cốt lõi đến mức nào

Phím tắt - đào sâu hơn.

💬 Hãy tìm hiểu sâu hơn về thủ thuật "Sử dụng phím tắt". Bạn có thể giải thích một chút nếu tôi nên tìm hiểu tất cả các phím tắt có thể có hoặc nếu có bất kỳ loại phím tắt cụ thể nào mà tôi nên tập trung vào không?


🤖 Chắc chắn! Khi nói đến các phím tắt, điều quan trọng là tập trung vào việc học những phím tắt sẽ có tác động đáng kể nhất đến năng suất và hiệu quả của bạn. Bạn không cần phải tìm hiểu mọi phím tắt có sẵn mà nên ưu tiên những phím tắt giúp bạn tiết kiệm thời gian nhất và giúp hợp lý hóa quy trình làm việc của bạn.


Dưới đây là một số loại phím tắt để tập trung vào:


  1. Phím tắt điều hướng : Những phím tắt này giúp bạn nhanh chóng điều hướng qua mã của mình, chuyển giữa các tệp hoặc tab và tìm các ký hiệu hoặc phiên bản cụ thể của từ khóa. Các ví dụ bao gồm "Chuyển đến Định nghĩa", "Chuyển đến Dòng" và "Tìm tất cả các tham chiếu".


  2. Phím tắt chỉnh sửa : Các phím tắt này hỗ trợ bạn thao tác mã bằng cách cắt, sao chép, dán và định dạng văn bản. Các ví dụ bao gồm "Dòng trùng lặp", "Di chuyển dòng lên/xuống" và "Chuyển đổi nhận xét".


  3. Phím tắt tái cấu trúc : Tái cấu trúc là một phần thiết yếu để duy trì mã sạch và hiệu quả. Các phím tắt giúp bạn tái cấu trúc mã nhanh chóng có thể giúp bạn tiết kiệm rất nhiều thời gian. Các ví dụ bao gồm "Đổi tên biểu tượng", "Phương pháp trích xuất" và "Thay đổi chữ ký".


  4. Phím tắt gỡ lỗi : Gỡ lỗi là một phần quan trọng của quá trình phát triển. Các lối tắt giúp bạn quản lý các điểm dừng, từng bước mã và kiểm tra các biến có thể hợp lý hóa các phiên gỡ lỗi của bạn. Các ví dụ bao gồm "Chuyển đổi điểm dừng", "Bước qua" và "Bước vào".


  5. Phím tắt dành riêng cho IDE : IDE hoặc trình chỉnh sửa mã của bạn có thể có các tính năng hoặc công cụ độc đáo có thể được truy cập thông qua phím tắt. Tự làm quen với các phím tắt này để tận dụng tối đa môi trường phát triển bạn đã chọn.


Hãy nhớ rằng các tổ hợp phím thực tế cho các phím tắt này có thể khác nhau tùy thuộc vào IDE hoặc trình chỉnh sửa mã mà bạn đang sử dụng. Tham khảo tài liệu hoặc cài đặt của trình chỉnh sửa để khám phá và tùy chỉnh các phím tắt này theo sở thích của bạn.


Khi học các phím tắt, hãy bắt đầu bằng cách tập trung vào một số phím tắt tại một thời điểm. Khi bạn cảm thấy thoải mái hơn với chúng, hãy dần dần kết hợp nhiều phím tắt hơn vào quy trình làm việc hàng ngày của bạn. Theo thời gian, việc sử dụng các phím tắt này sẽ trở thành bản chất thứ hai và bạn sẽ nhận thấy sự cải thiện đáng kể về năng suất và hiệu quả của mình.


🤔 Đó là một phân loại tuyệt vời! Tôi rất ấn tượng. Tôi cũng thích các ví dụ cụ thể cho từng loại. Mức độ lời khuyên này đã có thể thực hiện được – bạn có thể dễ dàng tìm kiếm "Phím tắt điều hướng" hoặc "Chuyển đến Định nghĩa" trong tài liệu IDE của bạn. Hơn nữa, các danh mục được lựa chọn tốt. Chúng thực sự là những thứ sẽ giúp năng suất của bạn tăng lên đáng kể.


Tôi vẫn còn thiếu một thứ duy nhất: các công cụ tăng năng suất đáng kể hơn, như tính năng tự động hoàn thành hoặc đoạn mã. Tôi không muốn hỏi về chúng một cách rõ ràng, vì tôi đang giả vờ không biết chúng tồn tại. Tuy nhiên, hãy bẻ cong các quy tắc một chút:


💬 Bạn nói rằng tôi nên học các phím tắt "để điều hướng và thao tác mã nhanh hơn", rằng "điều quan trọng là tập trung vào việc học những cái sẽ có tác động đáng kể nhất đến năng suất và hiệu quả của bạn" và "ưu tiên những cái sẽ giúp bạn tiết kiệm nhiều thời gian nhất và giúp hợp lý hóa quy trình làm việc của bạn". Có bất kỳ công cụ hoặc tính năng IDE nào khác, ngoài phím tắt, có thể giúp tôi đạt được những mục tiêu này không?


🤖 Tuyệt đối! Ngoài các phím tắt, còn có nhiều công cụ và tính năng IDE khác có thể giúp tăng năng suất và hiệu quả của bạn. Dưới đây là một số trong số họ:


  1. Đoạn mã và mẫu : Nhiều IDE và trình chỉnh sửa hỗ trợ các đoạn mã hoặc mẫu có thể tạo cấu trúc mã thường được sử dụng hoặc mã soạn sẵn chỉ bằng một vài lần nhấn phím. Những điều này có thể giúp bạn tiết kiệm thời gian và giúp duy trì tính nhất quán trong mã của bạn.


  2. Tự động hoàn thành và IntelliSense : Các IDE và trình chỉnh sửa mã hiện đại thường cung cấp khả năng hoàn thành mã thông minh, gợi ý hoàn thành cho các biến, phương thức hoặc từ khóa dựa trên ngữ cảnh hiện tại. Điều này có thể tăng tốc quá trình viết mã của bạn và giảm khả năng mắc lỗi chính tả hoặc lỗi cú pháp.


  3. Gỡ lỗi tích hợp : Các công cụ gỡ lỗi được tích hợp vào IDE của bạn cho phép bạn đặt các điểm dừng, duyệt mã và kiểm tra các biến mà không cần rời khỏi môi trường phát triển của mình. Trải nghiệm gỡ lỗi liền mạch này có thể giúp bạn tìm và khắc phục sự cố hiệu quả hơn.


  4. Tích hợp kiểm soát phiên bản : Nhiều IDE cung cấp hỗ trợ tích hợp sẵn cho các hệ thống kiểm soát phiên bản như Git. Việc tích hợp này có thể đơn giản hóa các tác vụ kiểm soát phiên bản phổ biến, như thực hiện thay đổi, tạo nhánh và giải quyết xung đột, tất cả đều nằm trong IDE của bạn.


  5. Phân tích mã và tạo xơ vải : Các công cụ phân tích mã và tạo xơ vải trong thời gian thực có thể giúp bạn xác định các vấn đề tiềm ẩn, chẳng hạn như lỗi cú pháp, biến không sử dụng hoặc vi phạm kiểu mã khi bạn viết mã. Điều này có thể giúp bạn tiết kiệm thời gian gỡ lỗi và đảm bảo mã của bạn tuân thủ các phương pháp hay nhất.


  6. Công cụ tái cấu trúc : Một số IDE có các công cụ tích hợp có thể tự động tái cấu trúc mã của bạn, chẳng hạn như trích xuất phương thức, đổi tên biến hoặc thay đổi chữ ký phương thức. Những công cụ này có thể giúp bạn duy trì mã sạch và hiệu quả mà không cần nỗ lực thủ công.


  7. Quản lý dự án và tác vụ : Nhiều IDE và trình chỉnh sửa có các tính năng cho phép bạn quản lý tác vụ, tạo danh sách việc cần làm và theo dõi tiến độ trong dự án của mình. Điều này có thể giúp bạn sắp xếp ngăn nắp và ưu tiên công việc hiệu quả hơn.


  8. Tùy chỉnh : Hầu hết các IDE và trình chỉnh sửa đều cung cấp mức độ tùy chỉnh cao, bao gồm chủ đề, plugin và tùy chọn cấu hình. Điều chỉnh môi trường phát triển của bạn theo sở thích của bạn có thể giúp bạn làm việc thoải mái và hiệu quả hơn.


  9. Thiết bị đầu cuối tích hợp : Có một thiết bị đầu cuối tích hợp trong IDE của bạn có thể giúp bạn tiết kiệm thời gian bằng cách cho phép bạn chạy các lệnh, xây dựng dự án hoặc tương tác với kiểm soát phiên bản mà không cần chuyển đổi giữa các cửa sổ.


Những công cụ và tính năng này có thể cải thiện đáng kể trải nghiệm viết mã của bạn, giúp bạn làm việc hiệu quả và năng suất hơn. Hãy dành thời gian để khám phá các khả năng của IDE hoặc trình soạn thảo mã của bạn và đừng ngần ngại thử các công cụ hoặc plugin mới có thể nâng cao quy trình làm việc của bạn.


🤔 Bây giờ chúng ta đang nói chuyện! Danh sách này không hoàn toàn đầy đủ (ví dụ: nó bỏ sót trình định dạng mã tự động và đáng ngạc nhiên là nó vẫn bỏ lỡ trợ lý AI – ChatGPT không nhận thức được khả năng của chính mình sao? Hay nó quá khiêm tốn?) nhưng nó đủ mạnh và rộng để thực sự hữu ích cho một nhà phát triển mới bắt đầu. Ngoài ra, giờ đây bạn đã biết về sự phong phú của các công cụ dành cho nhà phát triển hiện đại, dần dần bạn có thể tìm hiểu sâu hơn nữa.

Kiểm soát phiên bản - chuyển sang các mẹo có kích thước nhỏ hơn, dễ thực hiện hơn.

💬 Một trong những mẹo bạn đã cho tôi là "Kiểm soát phiên bản chính". Nhưng nó có thực sự là một cuộc sống nhanh chóng và dễ dàng? Đối với tôi, có vẻ như đó là một quá trình dài để kiểm soát hoàn toàn phiên bản. Có bất kỳ mẹo nhanh nào liên quan đến kiểm soát phiên bản có thể được triển khai ngay không?


🤖 Bạn đã đúng rằng việc thành thạo kiểm soát phiên bản có thể là một quá trình lâu hơn, nhưng có một số mẹo nhanh và phương pháp hay nhất mà bạn có thể triển khai ngay để sử dụng hiệu quả hơn các hệ thống kiểm soát phiên bản như Git. Ở đây có một ít:


  1. Cam kết thường xuyên và theo đơn vị nhỏ : Thực hiện các cam kết nhỏ, tập trung có chứa một thay đổi hợp lý, duy nhất. Điều này giúp dễ dàng hiểu được lịch sử của dự án, định vị các vấn đề và hoàn nguyên các thay đổi nếu cần.


  2. Viết thông báo cam kết mô tả : Khi bạn thực hiện các thay đổi, hãy viết các thông báo cam kết rõ ràng và ngắn gọn mô tả các thay đổi và mục đích của chúng. Điều này giúp bạn và nhóm của bạn hiểu được lịch sử dự án và giúp dễ dàng tìm thấy những thay đổi cụ thể sau này.


  3. Sử dụng các nhánh : Tạo các nhánh cho các tính năng mới, sửa lỗi hoặc thử nghiệm. Điều này giữ cho nhánh chính của bạn ổn định và cho phép bạn làm việc trên nhiều tác vụ song song mà không ảnh hưởng đến cơ sở mã chính.


  4. Hợp nhất thường xuyên : Hợp nhất các thay đổi từ nhánh chính vào các nhánh tính năng của bạn thường xuyên để giữ cho chúng được cập nhật và giảm thiểu xung đột hợp nhất khi đến lúc tích hợp các thay đổi của bạn.


  5. Kéo trước khi đẩy : Trước khi đẩy các thay đổi của bạn vào kho lưu trữ từ xa, hãy luôn kéo các thay đổi mới nhất từ xa để đảm bảo kho lưu trữ cục bộ của bạn được cập nhật. Điều này có thể giúp ngăn ngừa xung đột và đảm bảo trải nghiệm cộng tác mượt mà hơn.


  6. Embrace .gitignore : Sử dụng tệp .gitignore để loại trừ các tệp không cần theo dõi, chẳng hạn như tệp tạm thời, tạo phẩm tạo tác hoặc tệp dành riêng cho IDE. Điều này giữ cho kho lưu trữ của bạn sạch sẽ và tập trung vào mã thiết yếu.


Những mẹo nhanh này có thể giúp bạn sử dụng hiệu quả hơn các hệ thống kiểm soát phiên bản và hợp lý hóa quy trình làm việc của mình. Mặc dù chúng có thể không giúp bạn trở thành chuyên gia kiểm soát phiên bản chỉ sau một đêm, nhưng chúng có thể đóng vai trò là nền tảng vững chắc để bạn xây dựng dựa trên đó khi bạn tiếp tục học hỏi và hoàn thiện các kỹ năng của mình.


🤔 Khá bóng bẩy. Mặc dù những mẹo này sẽ không giúp bạn thành thạo việc kiểm soát phiên bản đầy đủ, nhưng giờ đây chúng có thể thực hiện được nhiều hơn – và nhìn chung, chúng khá tốt, coi đó là lời khuyên dành cho người mới bắt đầu.


Một số điểm vẫn còn hơi mơ hồ, ví dụ: "Sử dụng các nhánh". Chiến lược phân nhánh kiểm soát phiên bản là một chủ đề rộng, phức tạp và điểm cụ thể này không khả thi nếu không khám phá thêm. Tuy nhiên, đó là một ngoại lệ duy nhất và ít nhất cung cấp một điểm khởi đầu rõ ràng cho nghiên cứu chuyên sâu hơn.


Nhìn chung, không tệ!

Đọc mã sạch - loại bỏ sự mơ hồ.

💬 Bạn đã cho tôi một mẹo để "Đọc mã sạch". Nhưng làm sao tôi biết, với tư cách là người mới bắt đầu, mã nào sạch? Làm thế nào để nhận ra nó? Và nơi để tìm mã như vậy để đọc?


🤖 Là người mới bắt đầu, thoạt nhìn có thể khó nhận ra mã sạch. Tuy nhiên, với việc thực hành và tiếp xúc với mã được viết tốt, bạn sẽ bắt đầu phát triển sự hiểu biết về những gì tạo nên mã sạch. Dưới đây là một số hướng dẫn chung và đặc điểm của mã sạch:


  1. Khả năng đọc : Clean code dễ đọc và dễ hiểu. Nó có cấu trúc rõ ràng, tên biến và hàm có ý nghĩa, và thụt đầu dòng thích hợp. Nó cũng tuân theo các quy ước đặt tên nhất quán và hướng dẫn về phong cách.


  2. Tính mô đun : Clean code được tổ chức thành các hàm hoặc phương thức nhỏ, tập trung thực hiện một tác vụ duy nhất. Mỗi mô-đun phải có một trách nhiệm duy nhất và mã phải được chia thành các thành phần hợp lý.


  3. Khả năng bảo trì : Mã sạch dễ sửa đổi, mở rộng và tái cấu trúc. Nó tránh sao chép mã (nguyên tắc DRY) và tuân theo các phương pháp hay nhất để giảm thiểu khả năng đưa ra lỗi khi thay đổi được thực hiện.


  4. Tài liệu và nhận xét : Mã sạch được ghi lại đầy đủ với các nhận xét giải thích mục đích và chức năng của mã. Nhận xét phải ngắn gọn và chỉ cung cấp thông tin không rõ ràng ngay lập tức khi đọc mã.


  5. Hiệu quả : Mã sạch hiệu quả về mặt hiệu suất và sử dụng tài nguyên. Nó tránh được sự phức tạp không cần thiết, đồng thời các thuật toán và cấu trúc dữ liệu được sử dụng rất phù hợp với vấn đề hiện tại.


Để tìm mã sạch để đọc và học hỏi, hãy xem xét các nguồn sau:


  1. Các dự án nguồn mở phổ biến : Nhiều dự án nguồn mở phổ biến trên các nền tảng như GitHub có mã chất lượng cao đã được nhiều người đóng góp xem xét và tinh chỉnh. Khám phá các dự án bằng ngôn ngữ hoặc khuôn khổ mà bạn đang làm việc để tìm các ví dụ về mã sạch.


  2. Các phương pháp viết mã hay nhất : Hãy tìm các bài báo, sách hoặc khóa học về các phương pháp viết mã hay nhất cho ngôn ngữ lập trình mà bạn đang làm việc. Các tài nguyên này thường cung cấp các ví dụ về mã sạch và các hướng dẫn về cách viết mã.


  3. Đánh giá mã : Tham gia đánh giá mã trong nhóm của bạn hoặc tìm kiếm phản hồi từ các nhà phát triển hoặc cố vấn có kinh nghiệm. Quan sát phản hồi và đề xuất của họ có thể giúp bạn học cách nhận ra mã sạch và cải thiện phong cách viết mã của riêng bạn.


  4. Thử thách viết mã : Các trang web như LeetCode, HackerRank hoặc Codewars đưa ra các thử thách viết mã cùng với các giải pháp do người dùng khác gửi. Việc xem xét các giải pháp này có thể giúp bạn tìm hiểu các cách tiếp cận khác nhau để giải quyết vấn đề và đưa bạn đến các ví dụ mã sạch.


Hãy nhớ rằng, nhận biết và viết mã sạch là một kỹ năng phát triển theo thời gian. Khi bạn đọc và viết nhiều mã hơn, bạn sẽ trở nên thành thạo hơn trong việc xác định mã sạch và áp dụng các phương pháp hay nhất trong công việc của mình.


🤔 Lần này, kết quả là tốt nhất.


Phần đầu tiên của câu trả lời về cơ bản nói rằng bạn có thể nhận ra mã sạch bởi thực tế là nó tuân thủ các nguyên tắc rất cao và mơ hồ về mã sạch (một số trong đó, như nhận xét và hiệu quả, thậm chí còn gây tranh cãi - ví dụ: mã thực sự cần phải hiệu quả để sạch và dễ đọc?).


Phần thứ hai cũng là hit-or-miss. Tham gia đánh giá mã là một lời khuyên tốt (mặc dù có thể nhấn mạnh hơn rằng bạn không chỉ nên đánh giá mã của mình mà còn tự mình thực hiện nhiều đánh giá nhất có thể, để học hỏi từ mã của các nhà phát triển cấp cao hơn). Đọc sách và bài viết về cách viết mã tốt nhất là lời khuyên hợp lý nhưng khá hiển nhiên, không mang lại nhiều giá trị. Học hỏi từ các dự án nguồn mở và các trang web thách thức viết mã có thể là lời khuyên tuyệt vời, nhưng những nguồn này cũng thường chứa mã xấu và nó vẫn không giải quyết được câu hỏi hóc búa về cách người mới bắt đầu có thể nhận ra cái nào.


Hãy thử tìm hiểu sâu hơn một chút:


💬 Bạn nói rằng để tìm mã sạch để đọc và học hỏi, tôi có thể xem các dự án nguồn mở phổ biến, vì nhiều dự án trong số đó có mã chất lượng cao. Nhưng nhiều dự án mã nguồn mở cũng có mã chất lượng thấp. Làm cách nào tôi có thể nhận ra dự án nguồn mở nào có chất lượng cao và dự án nào không?


🤖 Bạn nói đúng rằng không phải tất cả các dự án mã nguồn mở đều có mã chất lượng cao. Để xác định các dự án nguồn mở chất lượng cao, bạn có thể xem xét các yếu tố sau:


  1. Mức độ phổ biến : Các dự án có số lượng sao, lượt chia sẻ hoặc người theo dõi lớn trên các nền tảng như GitHub thường cho thấy rằng dự án đó được cộng đồng đánh giá cao. Mặc dù mức độ phổ biến không đảm bảo cho chất lượng mã, nhưng nó có thể là một chỉ số hữu ích.


  2. Người bảo trì và cộng tác viên tích cực : Các dự án chất lượng cao thường có những người bảo trì tích cực và một nhóm cộng tác viên đa dạng. Tìm kiếm các dự án có lịch sử cam kết, cập nhật và sửa lỗi thường xuyên. Số lượng người đóng góp lành mạnh và một cộng đồng tích cực có thể là dấu hiệu cho thấy cơ sở mã liên tục được cải thiện và hoàn thiện.


  3. Tài liệu rõ ràng : Các dự án có tài liệu tốt thường là dấu hiệu của một cơ sở mã chất lượng cao và được duy trì tốt. Tìm kiếm các dự án có tệp README toàn diện, tài liệu API và hướng dẫn sử dụng.


  4. Đánh giá và thảo luận về mã : Kiểm tra các yêu cầu kéo của dự án và đưa ra các cuộc thảo luận. Một dự án lành mạnh sẽ có các bài đánh giá mã kỹ lưỡng, phản hồi mang tính xây dựng và các cuộc thảo luận tích cực về các cải tiến và sửa lỗi.


  5. Tuân thủ các tiêu chuẩn mã hóa : Các dự án chất lượng cao thường tuân theo các tiêu chuẩn mã hóa và các phương pháp hay nhất cho ngôn ngữ lập trình hoặc khung mà họ sử dụng. Tìm định dạng nhất quán, quy ước đặt tên và tổ chức mã.


  6. Kiểm tra tự động : Các dự án có bộ kiểm tra tự động mạnh mẽ cho thấy rằng những người bảo trì quan tâm đến chất lượng mã và đảm bảo phần mềm hoạt động như mong đợi. Tìm kiếm các dự án có phạm vi kiểm tra cao và quy trình tích hợp liên tục (CI) chạy thử nghiệm trên mọi yêu cầu cam kết hoặc kéo.


  7. Phụ thuộc và cấp phép : Các dự án chất lượng cao nên có một danh sách rõ ràng về các phụ thuộc, cùng với giấy phép tương ứng của chúng. Điều này cho thấy những người bảo trì quan tâm đến các khía cạnh pháp lý và hoạt động của dự án.


Để bắt đầu tìm kiếm các dự án nguồn mở chất lượng cao, bạn có thể khám phá các danh sách hoặc bộ sưu tập được tuyển chọn, chẳng hạn như Danh sách tuyệt vời trên GitHub, tổng hợp các dự án phổ biến và được đánh giá cao trong các lĩnh vực khác nhau. Bạn cũng có thể kiểm tra các dự án được duy trì bởi các tổ chức hoặc nhà phát triển có uy tín, những người nổi tiếng trong ngành.


Hãy nhớ rằng ngay cả những dự án chất lượng cao cũng có thể có những điểm cần cải thiện. Khi có thêm kinh nghiệm, bạn sẽ hiểu rõ hơn về mã sạch và được trang bị tốt hơn để đánh giá chất lượng của các dự án mã nguồn mở khác nhau.


🤔 Câu trả lời này là đàng hoàng một lần nữa. Mặc dù các yếu tố như mức độ phổ biến của dự án hoặc tài liệu tốt không nhất thiết phải đảm bảo mã sạch, nhưng tất cả những yếu tố đó được kết hợp lại đều là một đại diện phù hợp – có thể là tốt nhất có thể, vì không bao giờ có sự đảm bảo chắc chắn. Và lời khuyên là hãy xem các danh sách được tuyển chọn, mặc dù chúng là một chỉ báo về mức độ phổ biến hơn là chất lượng nhất thiết, cung cấp một điểm khởi đầu hợp lý. Nó không đầy đủ, ví dụ như tìm kiếm GitHub cũng là một cách tuyệt vời để tìm các dự án nguồn mở phổ biến và đang hoạt động. Nhưng xem xét việc nhận ra mã sạch là một chủ đề rất chủ quan và khó khăn, câu trả lời này khá ổn. Chúng ta có thể cố gắng tìm hiểu sâu hơn nữa - nhưng tôi cần kiểm soát độ dài của bài đăng này...

Nhận xét mã của bạn - làm rõ các khía cạnh có vấn đề.

💬 Một trong những mẹo vặt mà bạn đã cho tôi là viết những nhận xét có ý nghĩa để giải thích mục đích và chức năng của mã của tôi. bạn có thể xây dựng trên này? Những nhận xét nào bạn cho là có ý nghĩa? Tôi có nên luôn viết bình luận cho tất cả mã của mình không? Có kinh nghiệm tốt nào về thời điểm và cách viết bình luận không?


🤖 Viết nhận xét có ý nghĩa là một khía cạnh quan trọng của việc viết mã sạch và có thể bảo trì. Các nhận xét có ý nghĩa sẽ cung cấp thông tin chi tiết và ngữ cảnh bổ sung không rõ ràng ngay lập tức khi đọc chính mã đó. Dưới đây là một số hướng dẫn về thời điểm và cách viết nhận xét:


  1. Giải thích mã phức tạp hoặc không rõ ràng : Nếu một đoạn mã phức tạp hoặc có thể khó hiểu đối với người không quen với dự án, một nhận xét có thể giúp giải thích lý do đằng sau việc triển khai hoặc cung cấp tổng quan cấp cao về thuật toán.


  2. Ghi lại các giả định và giới hạn : Nếu mã của bạn dựa trên các giả định cụ thể hoặc có các giới hạn, điều quan trọng là phải ghi lại chúng trong các nhận xét. Điều này giúp ngăn ngừa các sự cố hoặc hiểu lầm trong tương lai khi người khác (hoặc thậm chí bạn) sửa đổi mã sau này.


  3. Làm rõ mục đích của hàm và lớp : Mặc dù tên hàm và lớp phải mang tính mô tả, nhưng một nhận xét ngắn gọn có thể cung cấp ngữ cảnh bổ sung về mục đích và hành vi dự kiến của một hàm hoặc lớp.


  4. Giải thích cách giải quyết hoặc phương pháp hack : Nếu bạn phải triển khai phương pháp giải quyết hoặc phương pháp hack để giải quyết một vấn đề hoặc giới hạn cụ thể, hãy ghi lại lý do và bất kỳ tác dụng phụ tiềm ẩn nào trong nhận xét. Điều này giúp những người bảo trì trong tương lai hiểu mục đích của giải pháp thay thế và xem xét các cải tiến tiềm năng.


  5. Tham khảo tài nguyên bên ngoài : Nếu mã của bạn dựa trên một tài nguyên cụ thể, chẳng hạn như tài liệu nghiên cứu, thuật toán hoặc thư viện của bên thứ ba, hãy bao gồm nhận xét có tham chiếu đến tài nguyên đó. Điều này giúp cung cấp bối cảnh và thông tin cơ bản cho những người khác làm việc trong dự án.


Dưới đây là một số lời khuyên về cách viết nhận xét hiệu quả:


  1. Hãy súc tích : Nhận xét nên ngắn gọn và đi thẳng vào vấn đề. Tránh viết các đoạn văn dài hoặc lặp lại thông tin đã rõ ràng trong mã.


  2. Luôn cập nhật nhận xét : Đảm bảo rằng nhận xét của bạn luôn phù hợp khi mã của bạn phát triển. Cập nhật nhận xét khi bạn sửa đổi mã để chúng phản ánh chính xác trạng thái hiện tại của mã.


  3. Tránh nêu rõ ràng : Không viết bình luận chỉ đơn giản là trình bày lại những gì mã làm. Tập trung vào việc cung cấp ngữ cảnh, lý do hoặc giải thích không rõ ràng ngay lập tức từ chính mã.


Bạn không cần phải viết nhận xét cho từng dòng hoặc khối mã. Thay vào đó, hãy tập trung vào nhận xét nơi nó tăng thêm giá trị và giúp cải thiện sự hiểu biết về mã. Hãy nhớ rằng mã được viết tốt hầu hết phải tự giải thích, vì vậy hãy ưu tiên viết mã rõ ràng và biểu cảm, sử dụng nhận xét để bổ sung khi cần thiết.


🤔 Đây là một câu trả lời thực sự tốt. Mặc dù mẹo ban đầu còn mơ hồ và còn chỗ để giải thích có khả năng dẫn đến bình luận quá mức, nhưng phần giải thích này đã làm rõ nó rất rõ ràng và chính xác 100%. Đó chính xác là cách tôi khuyên bạn nên viết bình luận.

Phần kết luận.

Có một vài sai lầm nhỏ ở đây và ở đó, nhưng nhìn chung kết quả là tốt một cách đáng ngạc nhiên.


Một số câu trả lời quá rõ ràng, một số là vấn đề quan điểm, nhưng không có câu trả lời nào rõ ràng là sai và nhiều câu trả lời thực sự tốt và có thể áp dụng được. Tôi cũng thích những lời khuyên đa dạng và phong phú - thậm chí nó còn bao gồm một điểm về việc chăm sóc sức khỏe của bạn!


Các câu trả lời ban đầu còn nông cạn - chúng không mang lại nhiều giá trị nếu không đi sâu hơn ít nhất một vài cấp độ thông qua các câu hỏi tiếp theo. Nhưng nếu bạn đã quen với dòng chảy này, nó sẽ diễn ra khá suôn sẻ. Bạn không bị choáng ngợp trước vô số thông tin mà thay vào đó có thể khám phá dần dần, chỉ tìm hiểu sâu hơn về những chủ đề bạn quan tâm hoặc không hiểu. Tôi thậm chí có thể nói rằng nó giống như làm việc với một người cố vấn thực sự, con người hơn là đọc một cuốn sách hoặc xem một khóa học chẳng hạn.


Bạn sẽ có thêm một chút gánh nặng khi làm việc với ChatGPT so với một cố vấn người thật. Một người có thể nhận được nhiều tín hiệu hơn từ giọng nói, nét mặt và ngôn ngữ cơ thể của bạn và có thể điều khiển cuộc thảo luận một cách chủ động hơn để đáp lại hành vi của bạn. Tuy nhiên, khi làm việc với ChatGPT, tín hiệu duy nhất mà nó có thể nhận được là các câu hỏi trực tiếp của bạn – vì vậy chất lượng của trải nghiệm chỉ phụ thuộc vào khả năng đặt câu hỏi rõ ràng của bạn, chứ không phụ thuộc vào kinh nghiệm hoặc trí tuệ cảm xúc của người cố vấn của bạn. Nói như vậy, học cách đặt câu hỏi phù hợp không quá khó và nếu làm được, bạn vẫn có thể nhận được nhiều giá trị từ sự tương tác của mình.


Đối với người mới bắt đầu, phần phức tạp hơn có thể là tìm ra chính xác những gì cần hỏi để chuyển từ câu trả lời nông cạn sang câu trả lời sâu sắc hơn. Nếu bạn không có chuyên môn sâu trong một lĩnh vực nhất định, thì điều đó thường không rõ ràng. Tuy nhiên, điều này có thể được giảm thiểu bằng cách học hỏi những câu hỏi "đi sâu" tổng quát hơn, chẳng hạn như "Tại sao bạn lại chọn câu trả lời này?", "Bạn có thể giải thích thêm được không?", "Câu trả lời này có thực sự là câu trả lời hay nhất không?", " Đây có phải là câu trả lời hay duy nhất không?", "Những ưu và nhược điểm là gì?", "Các lựa chọn thay thế sẽ là gì?", "Có nhiều kỹ thuật tương tự không?", v.v. Trở nên giỏi trong việc đặt những câu hỏi như thế này cũng sẽ mang lại lợi ích cho bạn trong công việc hàng ngày: khi làm rõ các yêu cầu, động não với đồng đội hoặc thậm chí khi làm việc với một người cố vấn thực thụ – vì vậy bản thân nó cũng là một quá trình đào tạo đáng giá.


Tóm lại, từ những gì tôi có thể quan sát được từ một thử nghiệm hạn chế như vậy, tôi chắc chắn khuyên dùng nó .


Nó không phải là sự thay thế hoàn toàn cho một người cố vấn thực sự, nhưng nếu bạn không có quyền truy cập vào một người cố vấn, bạn chắc chắn nên thử ChatGPT. Và ngay cả khi bạn có một người cố vấn, bạn vẫn nên tận dụng cả hai, vì ChatGPT sẵn có hơn nhiều. Bạn có thể bắt đầu với ChatGPT (và sử dụng nó thường xuyên hơn), sau đó yêu cầu người cố vấn thực sự của bạn đánh giá các câu trả lời của nó, mở rộng chúng hoặc tìm hiểu sâu hơn về các lĩnh vực phức tạp hơn trong khi gắn bó với ChatGPT cho các trường hợp đơn giản hơn.


Cũng có thể hữu ích khi bắt đầu với một cái nhìn tổng quan cấp cao về những gì cần tìm hiểu trong một khu vực nhất định, để hiểu được vị trí tổng thể của vùng đất - và sau đó sử dụng ChatGPT để tìm hiểu sâu hơn về các chủ đề đã chọn. Có rất nhiều tài nguyên tốt cung cấp thông tin tổng quan như vậy, chẳng hạn như maps.sh hoặc hướng dẫn mà tôi đang viết .