2009-05-18 30 views
5

Câu hỏiLời khuyên cho ngôn ngữ lập trình khai thác grokking?

Như đã trình bày, có bạn bất cứ lời khuyên để giúp grok/hiểu/get-bạn-đầu-around ngôn ngữ lập trình khai báo? Hoặc đơn giản là một trường hợp bạn phải đắm mình trong ngôn ngữ và cú pháp của nó, cho đến khi nó thấm vào, cho đến khi bạn nhận được khoảnh khắc vàng đó nơi bạn Tải xuống. Đây không thực sự là một lựa chọn vì tôi không còn có thể khóa bản thân mình trong một căn phòng trong nhiều ngày, kết thúc hơn nửa tá sách khác nhau về vấn đề này (trách nhiệm là họ là gì và tất cả)

Vì vậy, mọi mẹo hoặc các thủ đoạn đã giúp bạn khi bạn giải quyết các ngôn ngữ khai báo, bất kỳ thông tin chi tiết nào để vượt qua?

P.S. Cá nhân tôi sẽ đưa ra câu trả lời đầu tiên cho biết “Shutup và được đặt trong tác phẩm”.

nền

Tôi đã 13 tuổi tôi khi tôi lần đầu tiên bắt đầu liên danh vắt (cơ bản, về chị em tôi Oric-1).

Kể từ đó, tôi đã làm việc với nhiều khái niệm mới và nhiều ngôn ngữ khác nhau, tất cả trong bước tiến của tôi, tôi nắm lấy tay trên đủ nhanh. Định hướng đối tượng? Không phiền đâu. Sự kiện định hướng mô hình? Khói tôi kipper, tôi sẽ trở lại ăn sáng.

Cú, Mfc, ActiveX, Vb3, 4, 5 & 6, VB.Net, Pascal, Delphi, C, C++ & C#. Không ai cản đường tôi, ít nhất là không lâu.

Tuy nhiên, gần đây điểm số hoàn hảo của tôi đã bị mất một chút.

Một vài tuần trước, tôi đã ném bản thân mình vào Xaml, và mọi người, tôi chìm sâu hơn bơi lội.

Tôi nghĩ rằng vấn đề chính của tôi là nó mang tính khai báo. Tất cả các kỹ năng lập trình khác của tôi đều là thủ tục. Tôi đã đạt được khối này trước đó với MSBuild, tôi có thể sao chép các ví dụ về cách làm cho MSBuild làm việc, nhưng sẽ bị mất việc đưa thứ gì đó lại với nhau từ đầu.

Quay lại Xaml, hiện tại tôi đang mất trí để cố gắng kích hoạt các thuộc tính và nhận được hiệu ứng tôi cần.

Tôi có thể đăng câu hỏi Xaml cụ thể của mình ở đây đủ sớm. Bây giờ tôi đang hỏi câu hỏi “lập trình khai báo” chung này.

P.S. Không, tôi không thực sự như vậy. Vâng, tôi đã vấp ngã như địa ngục lần đầu tiên tôi nhấn OO và lần đầu tiên tôi viết một UI hướng sự kiện (VB3 trên Windows 3.11).

Sửa

Nó bắt đầu chìm trong, sự kiên trì đó đã cho tôi này đến nay trong lĩnh vực này được đền đáp xứng đáng, nó chỉ mất rất nhiều thời gian fracking!

. . . Tôi nghĩ rằng tôi đang quá già cho công cụ này. . .:)

+1

Em gái của bạn có Oric? Cô ấy phải là một phụ nữ rất khác thường! –

+0

Grokking, với 2 k;) – Carra

+0

Cơ bản? Xin lỗi - bạn là FUBAR ... :) – xtofl

Trả lời

3

Tôi đã phải dạy XSL (hoặc XSLT, như bạn muốn) một loạt vào đầu thế kỷ :), và đó là một thế giới khác, thực sự. Tuy nhiên, đó là cơ sở cho sự thay đổi mô hình: bạn phải nhận ra rằng các ngôn ngữ khai báo thực sự khác nhau. Lời khuyên quan trọng nhất mà tôi có là tiếp tục nghiên cứu các giải pháp của người khác, đưa công việc vào và thực sự cố gắng ngừng suy nghĩ trong FLOW. Điều tồi tệ nhất là, trong XSL, có một "if" và "else", nhưng thường có một cách khác để làm mọi thứ.

Không giống như học OO, trong XSL (hoặc bất kỳ ngôn ngữ khai báo nào, tôi giả sử) bạn sẽ không quản lý để làm những gì bạn đang cố gắng làm trừ khi bạn khai báo nó. Vì vậy, câu trả lời là một phần, "đóng cửa và làm công việc" như bạn đề nghị, nhưng điểm quan trọng hơn là nhận ra rằng rất nhiều công việc là nhận được đầu của bạn xung quanh sự thay đổi mô hình. Vì vậy, câu trả lời thực sự là, "giữ cho đôi mắt của bạn bóc vỏ cho sự thay đổi mô hình." Bạn phải ngừng suy nghĩ trong dòng chảy và bắt đầu suy nghĩ về các quy tắc có thể bắn theo thứ tự bất kỳ ... nếu chúng được thực hiện đúng, nó không quan trọng khi chúng bắn. Khi bạn cuối cùng nghĩ về các quy tắc thay vì WHEN, bạn sẽ bắt đầu thay đổi.

+0

+1 cho lời khuyên tốt. . . mà còn cho "đóng cửa và làm công việc". Cảm ơn bạn đời :) –

+0

Sho 'điều, chúc may mắn với điều này ... –

+0

Chọn câu trả lời chính xác, để được tư vấn hữu ích. Cảm ơn bạn đời. –

0

Tôi tìm cách dễ nhất để "bẻ khóa" một ngôn ngữ chỉ đơn giản là bắt đầu sử dụng nó dành riêng cho tất cả các mã của bạn. Với một ngôn ngữ hoàn toàn mới, tôi sẽ nói với tôi rằng đường cong học tập là khoảng 2 tuần mã hóa khoảng 4-5 giờ mỗi ngày. Sau đó, nó đột nhiên "nhấp chuột" và bạn có thể bắt đầu dựa vào ít tài liệu hướng dẫn và tài liệu hơn.

+0

Tôi đồng ý, nhưng tôi đang tìm kiếm các bài học rút ra ở nơi khác a.k.a "Cắt ngắn", rằng trong tất cả sự trung thực không nghĩ rằng tồn tại. Tuy nhiên, nó không làm tổn thương khi hỏi :) –

+1

Thực sự không có phím tắt nào (ngoài "cheatsheets" và ngay cả khi bạn có thể lừa dối bản thân bằng cách không thực sự hiểu được sắc thái ngôn ngữ. – ennuikiller

2

Tìm một số ví dụ, với giải thích về "lý do", từ người thực sự biết ngôn ngữ. Nó học các mẫu và thành ngữ tạo nên sự khác biệt.

Tôi nghi ngờ bạn đang cố gắng thực hiện những điều bắt buộc trong khu vực khai báo, có nghĩa là bạn nghĩ về các bước. Viết dataflow xuống về các đầu vào cần thiết + chức năng không trạng thái của các đầu vào đó và xem nó có giúp ích gì không.

Hãy thử một ngôn ngữ chức năng hoặc functionalesqe như ML hoặc Đề án.

1

Tôi không biết vấn đề cụ thể của bạn với Xaml là gì (và tôi chưa tự mình sử dụng), nhưng tôi thấy rằng khi sử dụng các công nghệ dựa trên XML như XSLT, một ít kinh nghiệm LISP hoặc Đề án có thể đi đường dài. Bạn có thể muốn xem xét chơi với hệ thống lược đồ tuyệt vời có sẵn miễn phí từ http://www.plt-scheme.org.

0

Tôi học một lớp ở trường đại học (Ngôn ngữ lập trình). Tôi cảm thấy như tôi liên tục đập đầu vào một bức tường gạch, nhưng khoảng 3/4 đường đi qua lớp, tôi nhận ra bức tường không còn ở đó nữa; Tôi đã đánh đầu mình không chống lại gì trong vài tuần. Đó là một cảm giác khá kỳ lạ.

Tôi nghĩ rằng bất kỳ cách nào khác sẽ không có cùng sự quyến rũ. Đọc Godel, Escher, Bach; nghe rất nhiều Emerson, Lake, và Palmer và Kaikhosru Sorabji; hút một ít ganja và bỏ vào thời điểm đó.

+0

Lớp học là gì? –

1

Hãy xem xét yêu thích của bạn “programmer ignorance” pet peeve. Đoạn mã đầu tiên rõ ràng là thủ tục. Trong đoạn thứ hai, bạn thực hiện tuyên bố khai báo rằng tỷ lệ phần trăm hợp lệ phải nằm trong khoảng từ 0 đến 100.

Vì vậy, tôi đoán bạn sẽ không gặp khó khăn khi ngôn ngữ lập trình khai báo grokking miễn là bạn làm việc trên nó đủ cứng ... there is no royal road to geometry

+1

+1 để biến bài đăng thành công nhất của tôi chống lại tôi. Đẹp nhất :) –

1

Tôi có thể thấy nơi điều này có thể làm bạn lo lắng. Tất cả những ngôn ngữ mà bạn liệt kê thực sự là khá giống nhau (thủ tục).

Khi bạn gỡ xuống, tôi cao cũng khuyến khích bạn tìm hiểu một số functional language. Bạn cũng có thể thấy nó khó khăn, nhưng việc học nó sẽ giúp các kỹ năng mã hóa nói chung của bạn rất nhiều. Bạn sẽ có một túi hoàn toàn mới của thủ thuật (ngay cả trong các ngôn ngữ thủ tục), và bạn sẽ không bao giờ sợ đệ quy một lần nữa.

1

Giống như Binary Worrier, tôi đã có một lịch sử lâu dài với những thứ như C, C++, MFC, v.v ... và đã tăng tốc trên XAML, WPF và C#. Tôi đã có một chuyến đi phụ thông qua HTML, Javascript và XSLT mà tôi nghĩ đã giúp rất nhiều trong việc chuẩn bị cho XAML.

Ý tưởng cơ bản đằng sau XAML khá đơn giản - đó là tất cả về những gì bạn hiển thị, không phải là những gì bạn làm. Phần khó khăn với XAML là chỉ có rất nhiều chi tiết thực hiện để tìm hiểu và bạn có thể học tất cả cùng một lúc để có thể làm được nhiều việc.

Tôi có thể hữu ích hơn nếu câu hỏi cụ thể hơn.

1

"Lập trình sắp đặt cho máy tính một chuỗi hướng dẫn".

Hầu hết các lập trình viên phản ứng với sự bình đẳng với tuyên bố này. Nó gần giống như ... "duh?"

Nhưng niềm tin trong tuyên bố này là nguyên nhân khiến mọi người gặp khó khăn khi hiểu các mô hình lập trình khác. Đó là không phải đúng và không lâu. Để hiểu rõ hơn về lập trình, nhiều người có thể hưởng lợi từ việc suy nghĩ về lý do tại sao tuyên bố này là sai.

Ngay cả khi bạn lập trình trong hội đồng tinh khiết, bộ vi xử lý hiện đại sẽ sắp xếp lại hướng dẫn của bạn, thực hiện dự đoán nhánh và cố gắng thực hiện nhiều hướng dẫn độc lập tiềm năng cùng một lúc. Bằng cách này, họ nghĩ về các phụ thuộc hợp lý, không phải là chuỗi. Ẩn dụ trình tự là khái niệm sai lầm rằng một lệnh một cách hợp lý phụ thuộc vào tất cả mọi thứ đi trước nó. Nếu điều này đúng, cách tốt nhất để giải thích về các chương trình sẽ là kiểm tra luồng điều khiển. Nhưng nó không phải là sự thật.

Nó không chỉ là lập trình khai báo không phù hợp với phép ẩn dụ này, mà còn lập trình song song và không đồng bộ.

Các vấn đề liên quan