1 điểm bởi GN⁺ 2024-06-19 | 1 bình luận | Chia sẻ qua WhatsApp

Vì sao tôi mất 15 năm để học Haskell

Lần đầu gặp Haskell

  • Haskell là một ngôn ngữ lập trình hàm do các nhà logic học Scotland thế kỷ 20 tạo ra.
  • Tôi lần đầu tiếp xúc với Haskell vào khoảng năm 2006.
  • Thời đại học, tôi bắt đầu học Haskell thông qua một nghiên cứu độc lập, nhưng thực ra không học được bao nhiêu.

Haskell trong thực tế

  • Năm 2009, khi sử dụng một trình quản lý cửa sổ xếp ô tên là Xmonad, tôi có dịp tiếp xúc với Haskell thêm một chút.
  • Tệp cấu hình của Xmonad được viết bằng Haskell, và qua đó tôi hiểu thêm đôi chút về Haskell.

Học qua Elm

  • Elm là một ngôn ngữ tương tự Haskell, và thông qua Elm tôi có thể hiểu các khái niệm của lập trình hàm một cách dễ dàng hơn.
  • Khi dùng Elm để tạo một trang dashboard, tôi đã học được các nguyên lý của lập trình hàm.

Quay lại với Haskell

  • Dựa trên kiến thức học được từ Elm, tôi đã dùng Shake, một thư viện Haskell, để tạo một trình xây dựng trang tĩnh.
  • Sau đó, tôi áp dụng các khái niệm của Haskell trong Python để viết mã tốt hơn.

Viết chương trình Haskell hữu ích đầu tiên

  • Năm 2023, khi làm việc freelance, tôi đã viết một chương trình theo dõi thời gian bằng Haskell.
  • Chương trình này có khả năng phân tích tùy chọn dòng lệnh và tương tác với cơ sở dữ liệu.
  • Cuối cùng tôi cũng viết được một chương trình Haskell hữu ích và cảm thấy rất thành tựu.

Ý kiến của GN⁺

  • Ưu điểm của lập trình hàm: Các ngôn ngữ hàm như Haskell nhấn mạnh tính bất biến và hàm thuần, từ đó tăng tính dễ dự đoán và độ ổn định của mã.
  • Độ dốc học tập: Haskell khó học, nhưng việc tiếp cận dần dần thông qua những ngôn ngữ tương tự như Elm có thể là một cách hiệu quả.
  • Ứng dụng thực tiễn: Sử dụng Haskell trong các dự án thực tế có thể giúp hiểu và áp dụng tốt hơn các nguyên lý của lập trình hàm.
  • Lựa chọn công cụ: Các thư viện Haskell như Shake rất hữu ích để xây dựng hệ thống build, và qua đó có thể trải nghiệm tính thực dụng của Haskell.
  • Cộng đồng và tài liệu: Tận dụng cộng đồng Haskell và nhiều tài liệu học tập khác nhau có thể mang lại rất nhiều trợ giúp trong quá trình học.

1 bình luận

 
GN⁺ 2024-06-19
Ý kiến Hacker News
  • Việc học lập trình hàm là đáng giá và không mất tới 15 năm. Haskell tạo cảm giác tự nhiên khi mô hình hóa dữ liệu miền theo cách khai báo, làm việc với các hàm thuần, và tương tác với thế giới thực ở ranh giới của chương trình. Tác giả khuyên người mới bắt đầu nên dùng F#.
  • Prolog mang lại nhiều góc nhìn sâu sắc hơn để hiểu lập trình hàm. Chỉ mất vài ngày để hiểu ngôn ngữ này, nhưng cần thời gian để hiểu được ý nghĩa của kết quả mà nó tạo ra.
  • Có người đề nghị giới thiệu các tài nguyên tốt để học Haskell. Họ đã quan tâm đến Haskell từ lâu và đã phần nào thấm được một số khái niệm của lập trình hàm qua các dự án phụ dùng F#, nhưng vẫn chưa hiểu rõ về monad.
  • Liên kết: Tài nguyên học Haskell
  • Có ý kiến muốn xem mã nguồn của tác giả. Họ tò mò hành trình của tác giả đã tạo ra kết quả như thế nào.
  • Liên kết: Xem mã nguồn của tác giả
  • Có câu hỏi về lợi ích của việc học một ngôn ngữ lập trình hàm thuần túy. Khi viết mã xử lý dữ liệu và sự kiện trong thế giới thực, ranh giới giữa mã được tối ưu và sự tò mò trí tuệ trở nên mờ nhạt.
  • Điều hấp dẫn ở Haskell là cách nó cho phép mô hình hóa dữ liệu miền theo lối khai báo, làm việc với các hàm thuần, và tương tác với thế giới thực ở ranh giới của chương trình một cách tự nhiên. Đây không chỉ là cách tiếp cận của Haskell mà còn là phong cách làm việc được ưa thích trong các ngôn ngữ khác.
  • Khi Haskell là chủ đề nóng cách đây 20 năm, ML cũng thường được nhắc đến. Ngày nay, ML gần như chỉ còn mang nghĩa machine learning.
  • 15 năm hoặc không gì cả.