Làm chủ Python GitHub

Theo tôi, sau tài liệu, kho GitHub là một trong những cách tốt nhất để học lập trình. Có rất nhiều tài nguyên để bạn có thể học lập trình và rất dễ bị lạc trong đống tài nguyên này. Python là một trong những ngôn ngữ lập trình nổi tiếng và được sử dụng nhiều nhất. Ở đây tôi đã tổng hợp 7 kho lưu trữ sẽ…

Bạn có thể nhớ một bài báo tương tự mà tôi đã xuất bản có tên là “4 kho lưu trữ hàng đầu trên GitHub để tìm hiểu gấu trúc”. Ở đó, tôi đã nói rằng tôi sợ sử dụng bất cứ thứ gì hơn git commit + git push vì GitHub rất đáng sợ. Tôi đã tiến bộ một chút. bây giờ tôi nhớ nhấn git pull mỗi khi tôi có tác phẩm mới [thay vì la hét trong nội bộ khi tôi cố gắng đẩy các chỉnh sửa của mình và nhận ra rằng kho lưu trữ cục bộ của tôi không được cập nhật với nhánh chính]

Lần này, tôi quyết định biên soạn một danh sách các tài nguyên học tập tương tự cho Python. Một số trong số chúng chứa sổ ghi chép Jupyter kiểu hướng dẫn, trong khi một số khác có bộ sưu tập phong phú về các vấn đề lập trình. Tất cả chúng đều có khả năng hữu ích, tùy thuộc vào cách học ưa thích của bạn

Nếu bạn chưa từng sử dụng Python trước đây, bạn có thể hưởng lợi từ các kho lưu trữ có tài nguyên dành cho người mới bắt đầu. Nếu bạn đã quen thuộc với Python và đang muốn tìm hiểu về một chủ đề cụ thể, chẳng hạn như thuật toán, thì cũng có một kho lưu trữ dành riêng cho bạn

learn-python — Sơ cấp đến Trung cấp [1. 8k sao]

learn-python-3 trên GitHub bởi jerry-git

Kho lưu trữ này đưa bạn qua 19 sổ ghi chép Jupyter trong phần dành cho người mới bắt đầu. Nó bao gồm cấp độ nền tảng như chuỗi và điều kiện, sau đó đi sâu hơn một chút bằng cách thảo luận về các lớp [giới thiệu nhanh về lập trình hướng đối tượng], các ngoại lệ [chúng là gì và cách xử lý chúng] và một số tính năng có trong tiêu chuẩn Python

Mỗi chủ đề có một liên kết “sổ tay”, đưa bạn đến phần giới thiệu về chủ đề và một số mã mẫu. Sau khi bạn làm xong, sẽ có một liên kết "bài tập", liên kết này sẽ đưa bạn đến một sổ ghi chép với các bài toán mẫu mà bạn có thể điền vào và kiểm tra

Sổ tay bài tập mẫu từ jerry-git

Sau đó, có một phần "thành ngữ" trung gian. Phần này mô tả “Các tính năng của Python”, là các tính năng trong Python không có trong nhiều ngôn ngữ lập trình khác. Nếu bạn đã quen thuộc với một ngôn ngữ khác, bạn có thể muốn xem phần này để biết các mẹo và thủ thuật làm việc cụ thể với Python. Ví dụ: có một phần về cách tiếp cận các vòng lặp trong Python khác với các ngôn ngữ khác

Sổ ghi chép thành ngữ mẫu từ jerry-git

Kho lưu trữ này cũng có một liên kết đến sổ ghi chép “các phương pháp hay nhất” tiện dụng mà bạn có thể sử dụng để tìm hiểu về những phương pháp bạn nên triển khai khi tạo dự án Python. Nó bao gồm những thứ như thiết lập một môi trường ảo với pipenv và sử dụng pytest để thử nghiệm [bạn đoán đúng rồi đấy]

learn-python — Sơ cấp đến Trung cấp [3. 9k sao]

learn-python trên GitHub bởi trekhleb

Kho lưu trữ này cũng phục vụ như một phần giới thiệu về Python có thể đưa bạn từ người mới bắt đầu đến trung cấp [và ở mức trung cấp, ý tôi là thoải mái với việc sử dụng ngôn ngữ ngoài các vòng lặp và số học đơn giản]. Thay vì sử dụng sổ ghi chép, kho lưu trữ là một tập hợp các tập lệnh Python, mỗi tập lệnh là một chủ đề phụ của một danh mục chính như “Người vận hành”, “Kiểu dữ liệu” và “Luồng điều khiển”

Tệp Python chủ đề phụ mẫu của trekhleb

Mỗi tệp Python thể hiện chủ đề phụ được đề cập cũng như một liên kết hữu ích mà bạn có thể truy cập để biết thêm thông tin. Điều này có thể hữu ích nếu bạn không rõ mã làm gì và cần nhanh chóng xem lại một số lý thuyết

Hai tính năng quan trọng có trong kho lưu trữ khi bạn làm việc với các tệp Python là kiểm tra và kiểm tra kiểu. Bạn có thể xem chi tiết đầy đủ trong “Cách sử dụng Kho lưu trữ này”, nhưng để thử nghiệm, tác giả bao gồm các dòng có assert ở cuối chức năng chính để xem chức năng có hoạt động như bình thường không. Điều này có thể hữu ích nếu bạn muốn thay đổi mã và xem liệu nó có còn hoạt động bình thường không. Có hướng dẫn về cách bạn thực sự có thể chạy thử nghiệm với pytest. Ngoài ra, để có thói quen làm theo hướng dẫn về phong cách chính của Python [PEP 8], có thêm hướng dẫn để bạn chạy pylint trên mã để xem các tệp Python có tuân theo hướng dẫn về phong cách hay không

Bạn không cần phải theo dõi toàn bộ khóa học, vì tác giả lưu ý rằng bạn cũng có thể sử dụng kho lưu trữ dưới dạng cheat-sheet. Bạn có thể chỉ cần tìm phần mà bạn đang tìm kiếm, xem lại tài liệu, thử mã, sau đó chạy thử nghiệm và kiểm tra mã để xem liệu nó có hoạt động và được viết như bình thường không

full-speed-python — Sơ cấp đến Trung cấp [2. 6k sao]

full-speed-python trên GitHub bởi joaoventura

Kho lưu trữ này có một cuốn sách lướt qua nhanh các khái niệm cơ bản về chuỗi và danh sách, sau đó nhanh chóng đi sâu vào các chủ đề tương đối nâng cao hơn như “Lớp học”, “Coroutines” và “Lập trình không đồng bộ”. Tác giả đã viết cuốn sách với cách tiếp cận thực tế, giới thiệu ngắn gọn từng chủ đề với các ví dụ mã và sau đó đi thẳng vào các vấn đề thực hành mà người đọc có thể tự mình thử

Bạn có thể tải xuống tệp pdf/epub từ liên kết Readme hoặc bạn có thể sao chép kho lưu trữ và tự xây dựng nó

Tác giả viết rằng “Sinh viên Điện toán phân tán lấy bằng kỹ sư phần mềm đã làm quen với Python sau hai tuần và có thể triển khai ứng dụng máy khách-máy chủ phân tán với ổ cắm trong tuần thứ ba”. Nếu bạn đã có một số kinh nghiệm về công nghệ phần mềm bằng ngôn ngữ khác hoặc nếu đây không phải là ngôn ngữ lập trình đầu tiên của bạn, thì việc sử dụng cuốn sách này có thể giúp bạn nhanh chóng bắt kịp tốc độ với Python

python_reference — Trung cấp [2. 3k sao]

python_reference trên GitHub bởi rasbt

Kho này không phải là tài nguyên kiểu hướng dẫn với các nhóm khái niệm như các kho trước. Thay vào đó, kho lưu trữ này giống một tập hợp các sổ ghi chép khác nhau về các chủ đề cấp trung gian như “Hoạt động cơ sở dữ liệu SQLite trong Python” và “Xử lý song song thông qua mô-đun đa xử lý”. Nếu bạn đã có nền tảng vững chắc về Python, tài nguyên này có thể hữu ích để giúp bạn thực sự tận dụng các tính năng khác nhau của ngôn ngữ. Giống như các kho lưu trữ trước, kho lưu trữ này cũng bao gồm các sổ ghi chép có mã mà bạn có thể chỉnh sửa và chạy

Sổ ghi chép mẹo mẫu của rasbt

Cuốn sổ ghi chép “không quá rõ ràng về Python” [đoạn trích ở trên] cung cấp danh sách các tính năng mô-đun Python và Python khác nhau mà bạn có thể chưa học được khi nghiên cứu những điều cơ bản tuyệt đối. Bạn không bao giờ biết khi mẹo ngẫu nhiên đó có thể giúp ích cho công việc của bạn trong tương lai. Mặc dù thật tuyệt khi xây dựng kiến ​​thức chuyên sâu khi bạn mới bắt đầu với Python, nhưng khi bạn đã học đủ kiến ​​thức cơ bản, bạn có thể xem qua phần tổng hợp các mẹo không liên quan để mở rộng và lấp đầy lỗ hổng kiến ​​thức của mình

Ngoài ra còn có các tài nguyên phi mã hữu ích mà tác giả đã liên kết đến để phục vụ nhiều hơn dưới dạng “tài nguyên lý thuyết”. Ví dụ: tác giả đã tạo một bài có tên “Thử nghiệm đơn vị trong Python - Tại sao chúng tôi muốn biến nó thành thói quen”

Tài nguyên lý thuyết mẫu của rasbt

Tác giả cũng đã liên kết nhiều tài nguyên bên ngoài khác mà họ thấy hữu ích cho việc học Python, bao gồm diễn đàn, sách và các dự án Python hiện có. Ví dụ: r/Python trên Reddit là một nơi tuyệt vời để tìm các mẹo hữu ích về Python cũng như các dự án cá nhân mà các thành viên cộng đồng giới thiệu

Bài tập lập trình Python — Sơ cấp đến nâng cao [10. 8k sao]

Bài tập lập trình Python trên GitHub của zhiwehu

Kho lưu trữ này hiện có một trăm bài tập lập trình Python, từ cơ bản đến nâng cao với độ khó. Các câu hỏi và giải pháp ban đầu được viết bằng Python 2, nhưng tác giả đã cập nhật tất cả 100 câu hỏi để bao gồm các giải pháp được viết bằng Python 3

Các bài tập mẫu của zhiwehu

Nếu bạn đã quen thuộc với Python, một số câu hỏi này có vẻ quá dễ. Tôi muốn nói rằng có thể giải quyết những câu hỏi dễ dàng là một chuyện, nhưng có thể vượt qua chúng lại là một chuyện khác. Xem qua tất cả những vấn đề này, có thể song song với một khóa học trực tuyến mà bạn theo dõi hoặc các tài nguyên từ một trong các kho GitHub tại đây, có thể giúp chuẩn bị cho việc đào tạo bạn giải các bài tập lập trình

Nếu bạn gặp khó khăn, bạn có thể sử dụng dòng “gợi ý” có ở mọi vấn đề để thử và tìm ra cách tiếp cận vấn đề. Cố gắng không cuộn xuống quá sâu cho mỗi câu hỏi để bạn không nhìn thấy lời giải ngay lập tức vì quá trình cố gắng tìm ra lời giải cho một bài toán giúp bạn thực sự nhớ lời giải [thay vì chỉ cố đọc và ghi nhớ lời giải

Các bài tập mẫu của zhiwehu

Ngoài ra còn có một “phiên bản mở rộng” của kho lưu trữ này của một tác giả khác với cùng câu hỏi và giải pháp thay thế. Trong kho lưu trữ mở rộng này, tác giả cố gắng chỉ ra các cách khác nhau để giải quyết một vấn đề, có thể hiệu quả hơn hoặc “Pythonic” hơn giải pháp ban đầu

Các bài tập mẫu của darkprinxcoding-problems — Trung cấp đến Nâng cao [2. 6k sao]

vấn đề mã hóa trên GitHub bởi MTrajK

Cũng giống như kho lưu trữ trước, kho lưu trữ này chứa danh sách đầy đủ các bài tập lập trình và thuật toán mà bạn có thể giải. Tuy nhiên, thay vì có tất cả các bài tập trong sổ ghi chép, kho lưu trữ này có một tệp Python cho mỗi bài tập, với mô tả về vấn đề và sau đó là giải pháp cho nó.

Bài tập mẫu của MTrajK

Những câu hỏi này không bắt đầu ở mức độ khó hoàn toàn dành cho người mới bắt đầu, vì vậy tôi khuyên bạn nên đến với những câu hỏi này khi bạn đã nắm chắc những điều cơ bản [sử dụng chức năng, quy trình điều khiển, v.v. ]

Tác giả cũng viết rằng “thuật toán và cấu trúc chứ không phải ngôn ngữ cụ thể”. Vì điều này, anh ấy đã viết các giải pháp bằng Python vì tính dễ đọc của ngôn ngữ này, nhưng những người thông thạo các ngôn ngữ khác cũng có thể sử dụng kho lưu trữ này để xem cách tiếp cận các vấn đề thuật toán

Các vấn đề trong kho lưu trữ này không phải do tác giả viết ban đầu, vì tác giả tuyên bố rõ ràng rằng chúng đến từ các trang web giải quyết vấn đề như LeetCode. Đóng góp của anh ấy là cung cấp các giải pháp và lời giải thích để giúp mọi người học cách giải quyết các loại vấn đề này

Bạn sẽ thấy rằng nhiều vấn đề có thể được nhóm lại theo một chủ đề chính, vì vậy cách tiếp cận để giải quyết những vấn đề đó có thể hơi giống nhau. Khi bạn tiếp tục thực hành các loại vấn đề tương tự trong một chủ đề, bạn sẽ thấy rằng chúng dần dần trở nên dễ dàng hơn đối với bạn.

Ngoài các tệp Python với các câu hỏi và giải pháp thuật toán, anh ấy còn bao gồm một danh sách đầy đủ các tài nguyên khác để bạn sử dụng. Có nhiều khóa học trực tuyến, sách được đề xuất và liên kết đến các trang web phổ biến về các vấn đề lập trình

TheAlgorithms — Trung cấp đến Cao cấp [82. 4k sao]

Python trên GitHub của TheAlgorithms

Kho lưu trữ này cũng có một tập hợp các tệp cho bạn thấy các thuật toán khác nhau có thể được triển khai như thế nào trong Python. Các thuật toán này được nhóm thành các danh mục từ “Phân tích số học” đến “Chuỗi khối” đến “Cấu trúc dữ liệu” và hơn thế nữa. Không có nhiều lời giải thích về cách giải quyết từng vấn đề vì kho lưu trữ này có thể đóng vai trò là hướng dẫn giải pháp để triển khai các thuật toán khác nhau

Giải pháp thuật toán mẫu của TheAlgorithms

Một số tệp cung cấp cho bạn một chút ngữ cảnh [và một hoặc hai liên kết để giúp bạn bắt đầu], nhưng bạn có thể phải tự mình thực hiện một số nghiên cứu trước khi cố gắng giải các thuật toán này. Nếu bạn hoàn toàn mới làm quen với Python, tôi khuyên bạn nên xây dựng kiến ​​thức cơ bản trước, vì kho lưu trữ này thực sự dành cho những người đã quen thuộc với ngôn ngữ này và đang tìm cách đào sâu kiến ​​thức về thuật toán

Tác giả cũng đã tạo các kho “thuật toán học” tương tự cho một vài ngôn ngữ chính khác [Java, C++, C, Go, Javascript], mà bạn có thể kiểm tra trên các kho được ghim của hồ sơ

Kho GitHub chứa vô số tài nguyên học tập có giá trị, nhưng điều đó không có nghĩa là bạn cần sử dụng tất cả chúng. Gợi ý của tôi là trước tiên hãy lấy một trong những kho lưu trữ loại “mới bắt đầu đến trung cấp” và tìm hiểu tất cả tài liệu học tập trong đó. Bạn nên làm việc thông qua kho lưu trữ phù hợp nhất với cách học của bạn. Ví dụ: nếu bạn muốn tìm hiểu qua sổ ghi chép Jupyter có thể chỉnh sửa đưa bạn từ các chủ đề cơ bản đến trung cấp, bạn nên thử kho lưu trữ đầu tiên trong phần này

Ngoài ra, hai bài toán hơn 100 Python rất hay để bạn sử dụng làm phần giới thiệu giải các bài toán lập trình. Bạn có thể chọn bắt đầu thử một vài lần mỗi ngày hoặc đợi cho đến khi bạn có nền tảng vững chắc hơn về Python trước. Những điều này cuối cùng có thể giúp bạn xây dựng một số kiến ​​thức cơ bản cho các loại câu hỏi lập trình có thể xuất hiện trong các cuộc phỏng vấn việc làm kỹ thuật. Bạn có thể chuyển từ những trang này sang các trang như HackerRank và LeetCode, những trang này cũng cung cấp cho bạn nhiều vấn đề lập trình khác nhau để giải quyết hàng ngày. Họ cũng có thể giúp bạn chuẩn bị cho các cuộc phỏng vấn xin việc tại các công ty cụ thể, như Facebook, Amazon và Google

Học Python [và bất cứ thứ gì thực sự] là duy trì động lực và thực hành. Python không phải là ma thuật - hãy lập một kế hoạch và sử dụng một trong những kho lưu trữ này nếu chúng phù hợp [hoặc sử dụng thứ gì đó hoàn toàn khác nếu chúng không phù hợp] và gắn bó với nó

Chủ Đề