2 điểm bởi GN⁺ 2024-02-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đây là sách nhập môn Python dành cho người mới học lập trình hoặc từng gặp khó khăn khi học trước đây; có thể đặt mua bản in ấn bản thứ 3 và ebook
  • Toàn bộ sách ở dạng Jupyter notebook, cho phép đọc văn bản, chạy code và làm bài tập trong cùng một luồng
  • Notebook của từng chương có thể chạy trực tiếp trên Colab, giúp dễ bắt đầu học mà không cần cài đặt riêng
  • Ấn bản thứ 3 sắp xếp lại luồng học thông qua việc chỉnh sửa nội dung, điều chỉnh thứ tự một số chương và mở rộng bài tập
  • Các gợi ý sử dụng ChatGPT và Colab AI ở cuối chương được dùng như phương tiện hỗ trợ để nhận thêm giải thích và trợ giúp bài tập tại những điểm bị vướng

Sách nhập môn Python cho người mới bắt đầu

  • Think Python là sách nhập môn Python dành cho người lần đầu tiếp cận lập trình, hoặc những người từng thử học nhưng gặp khó khăn
  • Bản in ấn bản thứ 3 và ebook có thể đặt mua trên Bookshop.orgAmazon
  • Trang landing page của sách từ Green Tea Press có tại Think Python 3rd Edition
  • Ấn bản thứ 3 tổ chức toàn bộ sách dưới dạng Jupyter notebook, xử lý văn bản, code có thể chạy và bài tập ở cùng một nơi
    • Notebook có thể chạy trên Colab, giảm gánh nặng cài đặt
    • Nội dung đã được chỉnh sửa đáng kể và thứ tự một số chương được sắp xếp lại
    • Có thêm nhiều bài tập hơn
    • Cuối mỗi chương có phần hướng dẫn cách dùng ChatGPT và Colab AI cho việc học và giải bài tập

Notebook Colab và tài liệu dùng cho lớp học

1 bình luận

 
GN⁺ 2024-02-17
Các ý kiến trên Hacker News
  • Tin này thật sự rất đáng mừng. Khi xuất bản Practical Deep Learning for Coders dưới dạng Jupyter Notebook, tôi từng nói chuyện với Allen về việc làm một vài cuốn sách của ông ấy theo cách tương tự
    Giờ việc đó thực sự đang được tiến hành, và còn tốt hơn nữa là họ đã thêm cả những công cụ thú vị như turtle dựa trên Jupyter, hiển thị đồ họa inline ngay trong notebook
    Khi ra mắt, tôi nghĩ rất có thể đây sẽ là cách tốt nhất để học lập trình Python
    Tôi nhớ trước đây mình cũng từng trình bày một bản proof of concept chuyển một phần ấn bản thứ 2 của cuốn này sang notebook nbdev: https://github.com/fastai/nbdev_cards/blob/master/01_deck.ip...
    Notebook đó được render thành HTML này: https://fastai.github.io/nbdev_cards/deck.html

    • Tôi rất thích Think Bayes và Think Stats, nhưng khi mọi người khác đều dùng notebook thì nó có cảm giác hơi lệch nhịp
      Khi học một ngôn ngữ mới bằng những thứ như AdventOfCode, việc đầu tiên của tôi luôn là tạo một image Jupyter cho ngôn ngữ đó
    • Kiểu mã có thể ẩn đi như thế này trông rất tuyệt cho tài liệu hóa. Tôi đã tìm thứ như vậy một thời gian rồi
  • Think Python ấn bản 2 đã đổi hướng cuộc đời tôi. Tôi từng học một lớp Java và ghét đến mức bỏ lập trình, nhưng vài năm sau khi đang làm kỹ sư mạng, tôi gặp một vấn đề có vẻ có thể giải bằng script; tôi cầm Think Python lên và rồi mê luôn Python cũng như chính việc lập trình

    • Đây đúng là thứ tôi cần đọc ngay lúc này
      Tôi đang cân nhắc chuyển hướng cuộc đời sang vai trò cộng đồng/maker/giáo viên, và có ý tưởng làm freelance/doanh nghiệp nhỏ về giảng dạy, nhưng cần tài liệu kiểu “giáo trình lỏng”
      Trong thời gian làm lập trình viên web chuyên nghiệp, tôi chưa từng cần Python nên giờ mới đang học. Tôi đã dùng gần như mọi ngôn ngữ thiên về web, gồm cả Perl và Ruby
      Python có vẻ là ngôn ngữ phù hợp để dạy các khái niệm chung, và có một cuốn sách để tham khảo chắc sẽ hữu ích
    • Như một phản ví dụ, tôi bắt đầu với bash/Perl rồi chuyển sang Python và ban đầu thấy rất tuyệt, nhưng kiểu động bắt đầu gây ra vấn đề
      Vào khoảng thời gian đó, ngôn ngữ chính của nhóm được chốt là Java, và sau khi thấy lợi ích của kiểu tĩnh thì tôi không thể quay lại nữa
      Về sau Python cũng đã tiến bộ nhiều nhờ hỗ trợ type tùy chọn và các IDE có thể bắt buộc dùng chúng, nhưng hiện giờ tôi hoàn toàn thiên về các ngôn ngữ kiểu tĩnh
      Khi viết script tiện ích, tôi vẫn thích Python vì nó trau chuốt hơn nhiều so với chỉ dùng bash. Nhưng nếu được chọn ngôn ngữ cho một ứng dụng hoàn chỉnh, tôi sẽ thích Java/Scala hơn. Rust cũng tuyệt, nhưng đường cong học quá dốc với phần lớn người bình thường
      Tôi chưa từng trực tiếp dùng type tùy chọn của Python với các công cụ như PyCharm, nên có khả năng nhờ công cụ mà trải nghiệm đã gần giống ngôn ngữ kiểu tĩnh. Nếu ai đã bật bắt buộc type cho Python trong IntelliJ Community Edition và dùng rồi, tôi muốn nghe trải nghiệm
    • Tôi cũng tương tự. Tôi đã học chút ít Java, Matlab, C, Perl, nhưng chỉ sau khi đọc Think Python ấn bản 2 tôi mới thực sự bị cuốn vào, rồi đọc thêm nhiều sách và chuyển sang sự nghiệp phần mềm
    • Tôi cũng vậy. Khi chuyển thành phố và đang tìm việc, tôi in cuốn sách này ra rồi bắt đầu đọc theo từng chương; nhờ cuốn này mà tôi trở thành kỹ sư phần mềm
    • Nhờ Think Python, lần đầu tiên tôi thật sự hiểu lập trình hướng đối tượng, thứ mà sau các lớp C++, Java, v.v. tôi vẫn chưa hiểu được
  • Tôi thích Think Python và đã giới thiệu nó cho nhiều người học. Cuốn sách cân bằng rất tốt nhiều yếu tố mà một cuốn sách cho lập trình viên mới cần quan tâm
    Allen Downey còn có nhiều cuốn khác với cách tiếp cận tương tự: https://greenteapress.com/wp/
    Tôi nghĩ một số cuốn hơi đi quá xa theo hướng giảm độ chặt chẽ, nhưng nhìn chung những cuốn tôi đã xem đều khá tốt
    Trước đây tôi từng ngồi cùng bàn với Allen tại một hội nghị, và khi tôi nói mình đã giới thiệu hoặc mua tặng sách của ông ấy thường xuyên đến mức nào, có vẻ ông ấy nghĩ tôi đang nói khoác

    • Con trai của một người bạn đang năm cuối đại học và có thể sẽ vào Olin, nơi tôi đã giới thiệu. Tôi biết đến Olin cũng là nhờ Think Python
  • Xin lỗi vì hơi chuyển chủ đề, nhưng nếu đã có kinh nghiệm thực tế và đang tiếp tục tích lũy trong công việc, liệu có tài liệu chất lượng tương tự cho lập trình viên Python trung cấp/cao cấp không?
    Tôi luôn có cảm giác còn những mảng lớn trong ngôn ngữ hoặc thư viện chuẩn mà mình chưa biết

    • Tôi bắt đầu học bằng tài liệu chính thức từ thời Python 1.5.2, và đến giờ vẫn nghĩ đó là tài liệu tốt
      https://docs.python.org/3/tutorial/index.html
      https://docs.python.org/3/library/index.html
      Mỗi khi có phiên bản mới, tôi đọc tài liệu What’s New
      Ngoài ra tôi thích đọc mã nguồn của thư viện chuẩn và các gói bên thứ ba phổ biến. Lời khuyên này nhìn chung cũng áp dụng không chỉ cho Python mà cả khi học hoặc ôn lại một ngôn ngữ mới
    • Effective Python rất hay. Đây là một cuốn sách dạng mẹo gồm các khuyến nghị kèm use case và ví dụ áp dụng
    • Fluent Python là một cuốn sách hay ở trình độ đó, và cũng tốt để dùng làm sách tham khảo khi làm việc
    • Tôi thích https://effectivepython.com/
      Và chỉ riêng việc đọc các bài triển khai Advent of Code hằng năm của Norvig cũng thường cho tôi nhiều insight về cách viết mã Python thanh lịch và súc tích
    • Fluent Python và Effective Python đều là sách hay. Cuốn đầu rất dày, gần như nhiều cuốn sách gộp trong một cuốn
  • Tác giả đăng blog về các dự án Python mới nhất, chủ yếu là các công việc phân tích dữ liệu Bayes, tại https://www.allendowney.com/blog/, và tôi thấy khá thú vị

  • Có những cuốn sách nào dành cho lập trình Python từ trung cấp đến nâng cao? Tôi đã biết Python và lập trình nói chung, nhưng muốn nâng cao thêm kỹ năng Python
    Hiện tôi chỉ biết đến Fluent Python và CPython Internals, hai cuốn tôi đang đọc

    • Có thể cân nhắc những cuốn sách cho thấy các kỹ thuật được áp dụng như thế nào trong mã thực dụng ngoài đời
      Ví dụ, Effective Pandas 2 trình bày các mẫu phổ biến khi xử lý dữ liệu dạng bảng. Trong quá trình đó, sách dùng comprehension, lambda, unpacking, v.v., đồng thời cũng cho thấy cách refactor bằng pytest và cách tận dụng trực quan hóa để hiểu dữ liệu
      Nhân tiện, tôi là tác giả
    • Fluent Python là đủ rồi. Các tính năng ngôn ngữ còn lại thì đọc sổ tay tham chiếu chính thức là sẽ hiểu
    • Bạn cũng có thể xem các sách tổng quát hơn về thuật toán và cấu trúc dữ liệu hoặc sách liên quan đến thiết kế
      https://www.redblobgames.com/ cũng có rất nhiều bài viết cực kỳ dí dỏm
    • Cũng đáng xem Exercises in Programming Style, ấn bản 2, của Cristina Videira Lopes
      Đây là cuốn sách không quá nổi tiếng, nhưng khám phá nhiều phong cách lập trình để giải cùng một vấn đề dưới các ràng buộc khác nhau
    • Rốt cuộc chẳng phải vẫn là tài liệu và mã nguồn sao?
      Khi đã vượt qua một mức độ thành thạo nhất định, tức là trên mức người làm thực tế cơ bản, thì thứ còn lại chỉ là đọc và viết mã
  • Bài liên quan:
    Think Python 2e - https://news.ycombinator.com/item?id=35421096 - tháng 4 năm 2023, 30 bình luận
    Think Python: How to Think Like a Computer Scientist - https://news.ycombinator.com/item?id=1586000 - tháng 8 năm 2010, 9 bình luận

  • Thật may mắn. Tôi vừa bắt đầu mentoring Python, và tôi là một fan cuồng của Downey. Ông ấy thật sự là một nhà giáo dục xuất sắc và một con người kiểu Phục hưng
    Tôi chắc chắn sẽ theo dõi cuốn sách này

  • Khi tôi mới học lập trình, cuốn sách này cũng đã thay đổi cuộc đời tôi. Không hẳn là chuyển hướng sự nghiệp, mà chủ yếu là cách cuốn sách được viết và cách một số khái niệm bỗng trở nên dễ hiểu đối với một người hoàn toàn mới như tôi
    Giờ nhìn thấy ấn bản 3 sau 10~15 năm, tôi thấy rất hoài niệm, và có khuyên cuốn này bao nhiêu cũng không đủ

  • Trong ấn bản trước Think Java, tôi đặc biệt thích đoạn này: https://files.catbox.moe/v1vgdc.jpg
    Một đoạn tuyệt vời khác là đây:

    Điều xảy ra tiếp theo mới là phần thú vị. Jeff Elkner, một giáo viên trung học ở Virginia, đã chọn dùng cuốn sách [Think Java] của tôi và dịch nó sang Python. Anh ấy gửi bản dịch cho tôi, và tôi đã có trải nghiệm kỳ lạ là học Python bằng cách đọc chính cuốn sách của mình.