Con đường phát triển Python - Từ người học việc đến guru


659

Tôi đã học, làm việc và chơi với Python được một năm rưỡi rồi. Là một nhà sinh vật học đang dần chuyển sang tin học sinh học, ngôn ngữ này là cốt lõi của tất cả những đóng góp chính mà tôi đã thực hiện trong phòng thí nghiệm. Tôi ít nhiều đã yêu cách Python cho phép tôi thể hiện các giải pháp đẹp và cả với ngữ nghĩa của ngôn ngữ cho phép dòng chảy tự nhiên như vậy từ suy nghĩ đến mã khả thi.

Những gì tôi muốn biết là câu trả lời của bạn cho một loại câu hỏi mà tôi hiếm khi thấy trong diễn đàn này hoặc các diễn đàn khác. Câu hỏi này có vẻ là trung tâm đối với tôi đối với bất kỳ ai trên con đường cải thiện Python nhưng ai tự hỏi bước tiếp theo của anh ta là gì.

Hãy để tôi tổng hợp những gì tôi KHÔNG muốn hỏi trước;)

  • Tôi không muốn biết cách NHANH CHÓNG học Python
  • Tôi cũng không muốn tìm ra cách tốt nhất để làm quen với ngôn ngữ
  • Cuối cùng, tôi không muốn biết một "một mẹo mà làm tất cả".

Những gì tôi muốn biết ý kiến ​​của bạn về, là:

Các bước mà BẠN muốn giới thiệu cho một người hành trình Python, từ việc học nghề đến trạng thái guru (hãy dừng lại ở bất cứ nơi nào chuyên môn của bạn ra lệnh), để một NGAY LẬP TỨC, trở thành một lập trình viên Python tốt hơn và tốt hơn, từng bước một. Một số người trên SO dường như đáng được tôn thờ vì năng lực Python của họ, xin hãy khai sáng cho chúng tôi :)

Loại câu trả lời tôi sẽ thích (nhưng cảm thấy thoải mái với độc giả: P), được định dạng ít nhiều như thế này:

  • Đọc này (ví dụ: hướng dẫn python), chú ý đến loại chi tiết đó
  • Mã cho rất nhiều thời gian / vấn đề / dòng mã
  • Sau đó, đọc nó (ví dụ: cuốn sách này hoặc cuốn sách đó), nhưng lần này, hãy chú ý đến điều này
  • Giải quyết một vài vấn đề thực tế
  • Sau đó, tiến hành đọc Y.
  • Hãy chắc chắn để nắm bắt những khái niệm này
  • Mã cho thời gian X
  • Quay trở lại những điều cơ bản và như vậy hoặc di chuyển xa hơn đến ...
  • (bạn sẽ có được điểm :)

Tôi thực sự quan tâm đến việc biết ý kiến ​​của bạn về chính xác những gì một người nên chú ý, ở các giai đoạn khác nhau, để tiến bộ NGAY LẬP TỨC (tất nhiên là với những nỗ lực đúng hạn). Nếu bạn đến từ một lĩnh vực chuyên môn cụ thể, hãy thảo luận về con đường bạn thấy là phù hợp trong lĩnh vực này.

EDIT: Nhờ vào đầu vào tuyệt vời của bạn, tôi đã trở lại theo dõi cải tiến Python! Tôi thực sự đánh giá cao!

Câu trả lời:


471

Tôi nghĩ rằng quá trình làm chủ Python đã diễn ra như sau:

  1. Khám phá danh sách hiểu
  2. Khám phá máy phát điện
  3. Kết hợp bản đồ, thu nhỏ, lọc, lặp, phạm vi, xrange thường xuyên vào mã của bạn
  4. Khám phá trang trí
  5. Viết các hàm đệ quy, rất nhiều
  6. Khám phá itertoolsfuncools
  7. Đọc Real World Haskell ( đọc trực tuyến miễn phí )
  8. Viết lại tất cả mã Python cũ của bạn với hàng tấn hàm bậc cao, đệ quy và không có gì.
  9. Làm phiền bạn bè của bạn mỗi khi họ giới thiệu bạn với một lớp Python. Yêu cầu nó có thể được "tốt hơn" được thực hiện như một từ điển cộng với một số chức năng. Nắm bắt lập trình chức năng.
  10. Tái khám phá mô hình Chiến lược và sau đó tất cả những điều đó từ mã bắt buộc mà bạn đã cố gắng rất nhiều để quên sau Haskell.
  11. Tìm sự cân bằng.

@wheaties Danh sách siêu đẹp, thích lắm! Bạn dường như có một sự thiên vị đối với lập trình chức năng và tránh xa đối tượng hướng ... có một lý do cụ thể? Trải nghiệm Haskell có định hướng lại cho bạn về phương pháp này không?
Morlock

8
Có và không. Tôi thấy tôi viết mã tốt hơn và ngắn gọn hơn khi tôi đến gần hơn với lập trình chức năng. Điều đó nói rằng, có rất nhiều nơi mà mọi thứ được thể hiện rõ ràng hơn theo cách bắt buộc. Có một lý do Real World Haskell được bán hết tại các công ước Python, nó khiến bạn trở thành một lập trình viên giỏi hơn. Lời khuyên của tôi, hãy khám phá càng nhiều khía cạnh của Python càng tốt, sau đó thử một ngôn ngữ chức năng.
Wheaties

@wheaties nhận được trả lời vì nó gần giống với định dạng được yêu cầu và rất truyền cảm hứng. Cảm ơn đã dành thời gian của bạn để trả lời!
Morlock

1
Người mới bắt đầu: Từ điển sau đó về sau ... Mastery: Metaprogramming
gath

Bạn có thể giải thích về >> nó có thể được "triển khai" tốt hơn như một từ điển cộng với một số chức năng. <<?
Koobz

108

Một cách tốt để nâng cao kiến ​​thức Python của bạn là đào sâu vào mã nguồn của các thư viện, nền tảng và khung công tác bạn đã sử dụng.

Ví dụ: nếu bạn đang xây dựng một trang web trên Django , nhiều câu hỏi có thể khiến bạn phải trả lời bằng cách xem Django thực hiện tính năng này như thế nào.

Bằng cách này, bạn sẽ tiếp tục chọn thành ngữ mới, kiểu mã hóa và thủ thuật Python . (Một số sẽ tốt và một số sẽ xấu.)

Và khi bạn thấy một thứ Pythony mà bạn không hiểu trong nguồn, hãy truy cập kênh IRC #python và bạn sẽ thấy rất nhiều "luật sư ngôn ngữ" vui lòng giải thích.

Một sự tích lũy của những làm rõ nhỏ này trong nhiều năm dẫn đến sự hiểu biết sâu sắc hơn nhiều về ngôn ngữ và tất cả các vấn đề của nó.


1
Tôi sẽ thêm vào điều này thay vì chỉ đơn giản là cài đặt một phần mở rộng / plugin django, hãy thử thêm mã thủ công bằng cách sử dụng một nhánh git. Điều này sẽ buộc bạn phải thực sự đọc mã bạn đang thêm vào dự án.
g33kz0r

14
Có tò mò tại sao sử dụng IRC khi phần còn lại của chúng tôi có thể được hưởng lợi từ Câu hỏi?
tshepang

1
+1 cho "thành ngữ, phong cách và thủ thuật". Sống một VĂN HÓA thực sự được tạo ra bởi những người thực sự tiếp xúc (ngay cả khi liên hệ này có nghĩa là chủ yếu đọc mã của nhau trong trường hợp này) là những gì đã làm cho kiến ​​thức của con người TUYỆT VỜI theo thời gian.
heltonbiker

92

Hiểu (sâu hơn) các loại dữ liệu của Python và vai trò của chúng liên quan đến bộ nhớ mgmt

Như một số bạn trong cộng đồng biết, tôi dạy các khóa học Python , những khóa học phổ biến nhất là khóa học Intro + Trung cấp toàn diện cũng như khóa học "nâng cao" giới thiệu nhiều lĩnh vực phát triển ứng dụng.

Rất thường xuyên, tôi nhận được một câu hỏi khá giống với câu hỏi: "Tôi nên học phần giới thiệu hay khóa học nâng cao của bạn? Tôi đã lập trình Python được 1-2 năm và tôi nghĩ phần giới thiệu này quá đơn giản đối với tôi nên tôi muốn nhảy thẳng lên nâng cao ... bạn muốn giới thiệu khóa học nào ? "

Để trả lời câu hỏi của họ, tôi thăm dò xem họ mạnh đến mức nào trong lĩnh vực này - không phải đó thực sự là cách tốt nhất để đo xem họ đã sẵn sàng cho bất kỳ khóa học nâng cao nào chưa, nhưng để xem kiến ​​thức cơ bản của họ về các đối tượng Python như thế nào và mô hình bộ nhớ, là nguyên nhân của nhiều lỗi Python được viết bởi những người không chỉ mới bắt đầu mà cả những người đã vượt ra ngoài điều đó.

Để làm điều này, tôi chỉ cho họ câu hỏi đố 2 phần đơn giản này: Ex1: x = 42;  y = x;  x + = 1;  in x, y Ex2: x = [1,2,3]; y = x; x [0] = 4; in x, y

Nhiều lần, họ có thể nhận được đầu ra, nhưng tại sao câu trả lời lại khó khăn và quan trọng hơn nhiều ... Tôi sẽ cân nhắc đầu ra là 20% câu trả lời trong khi "tại sao" nhận được tín dụng 80%. Nếu họ không thể hiểu tại sao, bất kể họ có trải nghiệm Python như thế nào, tôi sẽ luôn hướng mọi người đến khóa học giới thiệu + trung cấp toàn diện vì tôi dành một bài giảng về các đối tượng và quản lý bộ nhớ đến mức bạn có thể trả lời đầu ra và tại sao với sự tự tin đầy đủ. (Chỉ vì bạn biết cú pháp của Python sau 1-2 năm không khiến bạn sẵn sàng vượt ra khỏi nhãn "người mới bắt đầu" cho đến khi bạn hiểu rõ hơn nhiều về cách Python hoạt động dưới vỏ bọc.)

Một cuộc điều tra thành công đòi hỏi một câu trả lời tương tự thậm chí còn khó khăn hơn, ví dụ,

Ví dụ 3

x = ['foo', [1,2,3], 10.4]
y = list(x) # or x[:]
y[0] = 'fooooooo'
y[1][0] = 4
print x
print y

Các chủ đề tiếp theo tôi khuyên là nên hiểu rõ về tham chiếu, tìm hiểu "thực tập" nghĩa là gì (nhưng không nhất thiết phải sử dụng nó), tìm hiểu về các bản sao nông và sâu (như trong ví dụ 3 ở trên) và cuối cùng là mối liên hệ giữa các loại và cấu trúc trong ngôn ngữ, tức là liệt kê so với tuples, dicts vs. bộ, liệt kê danh sách so với biểu thức trình tạo, trình lặp so với trình tạo, v.v.; tuy nhiên tất cả những đề xuất khác là một bài viết cho một thời điểm khác. Hy vọng điều này sẽ giúp trong khi chờ đợi! :-)

ps. Tôi đồng ý với các phản hồi khác để có được sự thân mật hơn với nội tâm cũng như nghiên cứu mã nguồn của các dự án khác và thêm "+1" mạnh mẽ vào cả hai đề xuất!

pps. Câu hỏi lớn BTW. Tôi ước rằng tôi đủ thông minh ngay từ đầu để hỏi một câu như thế này, nhưng đó là một thời gian dài trước đây và bây giờ tôi đang cố gắng giúp đỡ những người khác với chương trình Python toàn thời gian nhiều năm của tôi !!


Wesley Chun! Morlock, đây là loại người mà bạn đang nói về phần in đậm trong câu hỏi của bạn. Một anh chàng hiểu biết sâu sắc và cũng là một giáo viên rất có năng khiếu, tôi đã nhận được một sự thúc đẩy lớn từ cuốn sách.
không đếm được

thx @bvmou! tôi chỉ có thể trả lời câu hỏi này vì tôi phải trải qua quá trình học tập như mọi người khác ... chỉ có tôi là 13 năm trước! :-) thx để cắm corepython.com tho! :-)
wescpy

@wescpy Bạn có thể giải thích cho tôi đầu ra ví dụ3 hoặc chỉ cho tôi một tài nguyên tốt để tìm hiểu nội dung này. Xin cảm ơn.
Sankalp

1
Bí quyết là chỉ các tham chiếu đối tượng được sao chép, không phải chính các đối tượng. Đó là tất cả để có nó ... hy vọng nó sẽ giúp! Tôi đã nói chuyện về vấn đề này vài tuần trước, tại OSCON. Tôi đã rất ngạc nhiên khi ai đó nói với tôi rằng đó là cuộc nói chuyện Python được đánh giá cao nhất tại hội nghị! Bạn có thể tải xuống các slide tại đây: oscon.com/oscon2013/public/schedule/detail/29374
wescpy

Đầu ra là SyntaxError: cú pháp không hợp lệ, phải không? Tại sao? Bởi vì tôi đã sử dụng Python 3 và printkhông phải là một tuyên bố.
Konrad Borowski


59

Hiểu nội tâm

  • viết dir()tương đương
  • viết type()tương đương
  • tìm ra cách "vá khỉ"
  • sử dụng dismô-đun để xem các cấu trúc ngôn ngữ khác nhau hoạt động như thế nào

Làm những điều này sẽ

  • cung cấp cho bạn một số kiến ​​thức lý thuyết tốt về cách thức thực hiện trăn
  • cung cấp cho bạn một số kinh nghiệm thực tế tốt trong lập trình cấp thấp hơn
  • cung cấp cho bạn một cảm giác trực quan tốt cho các cấu trúc dữ liệu python

1
"Viết một type()tương đương" sẽ rất khó nếu bạn lấy thông số siêu dữ liệu đầy đủ của type!
asmeker

48
def apprentice():
  read(diveintopython)
  experiment(interpreter)
  read(python_tutorial)
  experiment(interpreter, modules/files)
  watch(pycon)

def master():
  refer(python-essential-reference)
  refer(PEPs/language reference)
  experiment()
  read(good_python_code) # Eg. twisted, other libraries
  write(basic_library)   # reinvent wheel and compare to existing wheels
  if have_interesting_ideas:
     give_talk(pycon)

def guru():
  pass # Not qualified to comment. Fix the GIL perhaps?

4
guru () nên được thông qua. không có gì có thể mô tả guru, hãy để nó qua đi
inv

1
Nếu bạn sửa GIL thì tôi nghĩ điều đó đặt bạn ở cấp độ CAO hơn so với guru, nhưng ngay dưới nhà độc tài nhân từ. ;)
Adam Parkin

41

Tôi sẽ cho bạn một lời khuyên đơn giản và hiệu quả nhất mà tôi nghĩ rằng bất kỳ ai cũng có thể cho bạn: .

Bạn chỉ có thể giỏi hơn trong việc sử dụng một ngôn ngữ (ngụ ý hiểu nó) bằng cách mã hóa . Bạn phải tích cực thưởng thức mã hóa, được truyền cảm hứng, đặt câu hỏi và tự tìm câu trả lời.

Có một giờ để rảnh rỗi? Viết mã sẽ đảo ngược một chuỗi và tìm ra giải pháp tối ưu nhất. Một buổi tối rảnh rỗi? Tại sao không thử một số web-scraping. Đọc mã người khác. Xem cách họ làm mọi thứ. Tự hỏi bản thân bạn sẽ làm gì.

Khi tôi chán máy tính của mình, tôi mở IDE và bão mã. Tôi ghi lại những ý tưởng nghe có vẻ thú vị và đầy thách thức. Một trình rút ngắn URL? Chắc chắn, tôi có thể làm điều đó. Ồ, tôi đã học được cách chuyển đổi số từ cơ sở này sang cơ sở khác như một tác dụng phụ!

Điều này là hợp lệ bất cứ mức độ kỹ năng của bạn. Bạn không bao giờ ngừng học hỏi. Bằng cách tích cực mã hóa trong thời gian rảnh rỗi, bạn sẽ, với ít nỗ lực bổ sung, để hiểu ngôn ngữ, và cuối cùng, trở thành một bậc thầy. Bạn sẽ xây dựng kiến ​​thức và mã có thể tái sử dụng và ghi nhớ các thành ngữ.


24

Nếu bạn tham gia và sử dụng python cho khoa học (có vẻ như bạn là vậy), một phần trong đó sẽ là học và hiểu các thư viện khoa học, đối với tôi đây sẽ là

  • numpy
  • xảo quyệt
  • matplotlib
  • mayavi / mlab
  • chaco
  • Con trăn

biết cách sử dụng đúng các thư viện và vector hóa mã của bạn là điều cần thiết cho máy tính khoa học.

Tôi muốn thêm rằng, việc xử lý các bộ dữ liệu số lớn theo các cách pythonic thông thường (cách tiếp cận hướng đối tượng, danh sách, bộ lặp) có thể cực kỳ kém hiệu quả. Trong điện toán khoa học, có thể cần phải cấu trúc mã của bạn theo những cách khác biệt lớn so với cách mà hầu hết các lập trình viên python thông thường tiếp cận dữ liệu.


Cảm ơn. Chắc chắn là đáng để dành thời gian để học numpy và scipy để đạt được hiệu quả trong việc sử dụng bộ nhớ cho các bộ dữ liệu lớn!
Morlock

1
Có lẽ thêm gấu trúc và IPython vào danh sách.
Eric Wilson

23

Google vừa mới phát hành một lớp Python trực tuyến ("lớp" như trong "một khóa học").

http://code.google.com.vn/edu/lacular/google-python- class /

Tôi biết điều này không trả lời câu hỏi đầy đủ của bạn, nhưng tôi nghĩ đó là một nơi tuyệt vời để bắt đầu!


6
trên thực tế, những bài giảng video từ google này hướng nhiều hơn đến việc lặp đi lặp lại để nâng cao tôi nghĩ. code.google.com/intl/fi-FI/edu/lacular/ từ
Tom Willis


12

Hiểu thấu đáo tất cả các kiểu dữ liệu và cấu trúc

Đối với mỗi loại và cấu trúc, hãy viết một loạt các chương trình demo thực hiện mọi khía cạnh của loại hoặc cấu trúc dữ liệu. Nếu bạn làm điều này, có thể đáng để ghi chú blog trên mỗi người ... nó có thể hữu ích cho nhiều người!


Điều này không chỉ hữu ích trong Python, mà còn theo nghĩa trừu tượng.
Humphrey Bogart

1
Đây là điều tôi cũng làm, bất cứ khi nào tôi tìm thấy một cấu trúc mới, tôi viết một chương trình đồ chơi cho biết cách sử dụng nó. Và đặt nó trực tuyến trong một repo github: github.com/pzelnip/MiscPython
Adam Parkin

10

Tôi đã tự học trăn trong một mùa hè chỉ bằng cách thực hiện hướng dẫn trên trang web về trăn (đáng buồn thay, tôi dường như không thể tìm thấy nó nữa, vì vậy tôi không thể đăng một liên kết).

Sau đó, trăn được dạy cho tôi trong một trong những khóa học năm đầu tiên của tôi tại trường đại học. Vào mùa hè sau đó, tôi đã luyện tập với PythonChallenge và với các vấn đề từ Google Code Jam . Việc giải quyết những vấn đề này giúp ích từ góc độ thuật toán cũng như từ góc độ tìm hiểu những gì Python có thể làm cũng như cách thao tác với nó để có được toàn bộ con trăn.

Vì những lý do tương tự, tôi đã nghe nói rằng golf code cũng hoạt động tốt, nhưng tôi chưa bao giờ thử nó cho bản thân mình.


3
Bạn có nghĩa là hướng dẫn này? Python 2: docs.python.org/tutorial/index.html ; Python 3: docs.python.org/py3k/tutorial/index.html .
Humphrey Bogart

10

Học thuật toán / toán học / tập tin tối ưu hóa IO / Pythonic

Điều này sẽ không giúp bạn thành thạo nhưng để bắt đầu, hãy thử giải quyết các vấn đề của Project Euler 50 hoặc không nên đánh thuế bạn nếu bạn có toán học trung học đàng hoàng và biết cách Google. Khi bạn giải quyết một vấn đề, bạn vào diễn đàn nơi bạn có thể xem qua các giải pháp của người khác, điều này sẽ dạy cho bạn nhiều hơn nữa. Hãy đứng đắn và đừng đăng lên các giải pháp của bạn vì ý tưởng là để khuyến khích mọi người tự giải quyết nó.

Buộc bản thân làm việc trong Python sẽ không tha thứ nếu bạn sử dụng thuật toán brute-force. Điều này sẽ dạy cho bạn cách sắp xếp các bộ dữ liệu lớn trong bộ nhớ và truy cập chúng một cách hiệu quả với các tính năng ngôn ngữ nhanh như từ điển.

Từ việc này, tôi đã học được:

  • Tệp IO
  • Các thuật toán và kỹ thuật như Lập trình động
  • Bố cục dữ liệu Python
    • Từ điển / hashtag
    • Danh sách
    • Bộ dữ liệu
    • Các kết hợp khác nhau, ví dụ từ điển cho danh sách các bộ dữ liệu
  • Máy phát điện
  • Hàm đệ quy
  • Phát triển thư viện Python
    • Bố trí hệ thống tập tin
    • Tải lại chúng trong phiên phiên dịch

Và cũng rất quan trọng

  • Khi nào nên từ bỏ và sử dụng C hoặc C ++!

Tất cả điều này nên liên quan đến Tin sinh học

Phải thừa nhận rằng tôi đã không tìm hiểu về các tính năng OOP của Python từ trải nghiệm đó.


3
Tôi thích trang PE, nhưng hãy trung thực: đó là trang toán, không phải trang lập trình. Hầu hết các vấn đề (hoặc ít nhất là hầu hết những vấn đề tôi đã làm) thực sự sôi sục khi biết một vài thủ thuật toán học hơn bất kỳ thứ gì liên quan đến ngôn ngữ lập trình. Thông thường, các giải pháp tốt trong các diễn đàn bị nhấn chìm bởi làn sóng của các giải pháp ngây thơ, v.v.
Adam Parkin

Ngược lại, tôi thấy rằng nó liên quan đến việc áp dụng cả kỹ năng lập trình và toán học và quan trọng nhất là sự kết hợp của cả hai để giải quyết các vấn đề thực sự. Bạn không thể sử dụng PE để học lập trình Python nếu bạn có kỹ năng Toán kém nhưng bạn sẽ chỉ học cách sử dụng ngôn ngữ bằng cách sử dụng nó sao cho thật lý tưởng nếu Toán của bạn đủ tốt.
Thuyền trưởng Lepton

7

Bạn đã xem cuốn sách " Lập trình tin sinh học bằng Python " chưa? Có vẻ như bạn là thành viên chính xác của nhóm tập trung.


2
Sau khi lướt qua cuốn sách một thời gian trước đây, tôi thấy rằng cuốn sách này không thú vị lắm. Nó hướng đến những người dùng Python mới làm quen và bản thân các vấn đề không phải là cực kỳ thú vị. Quá tệ, đây rõ ràng là một lĩnh vực mà việc sử dụng Python đang gia tăng. Một cuốn sách kích thích hơn sẽ có được tuyệt vời.
Morlock

6

Bạn đã có rất nhiều tài liệu đọc, nhưng nếu bạn có thể xử lý nhiều hơn, tôi khuyên bạn nên tìm hiểu về sự tiến hóa của trăn bằng cách đọc các Đề xuất cải tiến Python, đặc biệt là các PEP "Hoàn thành" và "Trì hoãn, Bị bỏ rơi, Rút tiền và Từ chối" PEP.

Bằng cách xem ngôn ngữ đã thay đổi như thế nào, các quyết định được đưa ra và sự hợp lý của chúng, bạn sẽ tiếp thu triết lý của Python và hiểu cách thức "Python thành ngữ" xuất hiện.

http://www.python.org/dev/peps/



3

Dạy cho người khác bắt đầu học Python luôn là một cách tuyệt vời để làm cho ý tưởng của bạn rõ ràng và đôi khi, tôi thường nhận được rất nhiều câu hỏi gọn gàng từ các sinh viên khiến tôi phải suy nghĩ lại những điều khái niệm về Python.


2

Không chính xác những gì bạn đang yêu cầu, nhưng tôi nghĩ đó là lời khuyên tốt.

Học một ngôn ngữ khác, không quá quan trọng. Mỗi ngôn ngữ có những ý tưởng và quy ước riêng mà bạn có thể học hỏi. Tìm hiểu về sự khác biệt trong ngôn ngữ và quan trọng hơn whylà chúng khác nhau. Hãy thử một ngôn ngữ chức năng thuần túy như Haskell và xem một số lợi ích (và thách thức) của các chức năng không có tác dụng phụ. Xem cách bạn có thể áp dụng một số điều bạn học được từ các ngôn ngữ khác cho Python.


1
Haskell rất hấp dẫn và tôi bị cuốn hút vào Lisp, nhưng tôi cảm thấy vẫn còn nhiều điều để tôi khám phá trong thế giới Python trước khi tôi muốn tiếp tục.
Morlock

2
Landoflisp (.com) gần đây đã thu hút sự chú ý của tôi.
Jiaaro

Nếu bất cứ ai nghĩ về Lisp, tôi khuyên bạn nên dùng Scheme
Tharindu Rusira

2

Tôi khuyên bạn nên bắt đầu với một cái gì đó buộc bạn phải khám phá sức mạnh biểu cảm của cú pháp. Python cho phép nhiều cách viết khác nhau cho cùng một chức năng, nhưng thường có một cách tiếp cận nhanh nhất và thanh lịch nhất. Nếu bạn đã quen với thành ngữ của các ngôn ngữ khác, bạn có thể không bao giờ tìm thấy hoặc chấp nhận những cách tốt hơn này. Tôi đã dành một ngày cuối tuần để vượt qua 20 vấn đề Project Euler đầu tiên và thực hiện một ứng dụng web đơn giản với Django trên Google App Engine. Điều này sẽ chỉ đưa bạn từ người học việc sang người mới, nhưng sau đó bạn có thể tiếp tục tạo ra các ứng dụng web nâng cao hơn một chút và giải quyết các vấn đề Project Euler nâng cao hơn. Sau một vài tháng, tôi đã quay lại và giải quyết 20 vấn đề PE đầu tiên từ đầu trong một giờ thay vì cuối tuần.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.