Chủ đề thịnh hành
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Đáng để bạn dành thời gian học những ngôn ngữ lập trình này, ngay cả khi bạn không sử dụng chúng:
1/6
C
C là một bước gần với việc viết mã assembly. Nó buộc bạn phải hiểu sự khác biệt giữa "stack" và "heap." Bạn cũng phải làm quen với con trỏ — và việc rèn luyện não bộ của bạn để xử lý sự gián tiếp sẽ giúp bạn hiểu những vấn đề khó khăn hơn sau này, vì gần như mọi "vấn đề khó" đều phải được mô hình hóa với một mức độ gián tiếp nào đó.
2/6
Lập trình hợp ngữ
Học cách lập trình hợp ngữ là điều kiện tiên quyết để học cách hoạt động của các trình biên dịch. Khác với C, bạn cũng buộc phải học khi nào bạn đang sử dụng "register" và bạn sẽ phát triển một cảm nhận mạnh mẽ hơn về mã nào là hiệu suất và mã nào không. Tôi nghĩ rằng việc biết cách lập trình bằng hợp ngữ có lẽ đóng góp nhiều nhất vào việc giúp tôi có thể tiếp cận một blockchain mới rất nhanh. Tôi tiếp cận chúng với một mô hình tư duy rằng "bất kỳ máy ảo/kiến trúc CPU nào hoạt động cũng phải có các tính năng sau, vậy tôi có thể tìm thấy chúng ở đâu?" Điều này giúp tôi tiếp cận các hệ thống mới với một tập hợp các câu hỏi thông minh để hỏi thay vì tự hỏi không biết chuyện gì đang xảy ra.
3/6
Rust
Rust rất nghiêm ngặt về việc tham chiếu nhiều đến cùng một giá trị, điều mà các ngôn ngữ khác không bắt buộc bạn phải suy nghĩ, mặc dù điều đó có thể là nguồn gốc của những lỗi thực sự.
Hơn nữa, hệ thống kiểu của Rust được suy nghĩ khá kỹ lưỡng, vì vậy bạn có nhiều lựa chọn hơn về cách mô hình hóa thế giới thực (điều này tất nhiên là một con dao hai lưỡi vì bạn có thể kết thúc việc suy nghĩ quá nhiều về những vấn đề đơn giản, vì vậy bạn phải học cách kiểm soát sức mạnh mà nó mang lại cho bạn). Ai đó học cách viết Rust theo phong cách idiomatic cũng sẽ không xa lắm với việc học cách viết lập trình hàm.
4/6
Lisp
Nếu bạn muốn học lập trình hàm mà không bị biên dịch phạt, đây là cách tốt nhất để làm điều đó. Hơn nữa, bạn sẽ được tiếp xúc với hệ thống macro mạnh mẽ nhất tồn tại và bạn sẽ "thấy" cấu trúc đệ quy trong những thứ như JSON, XML và mã nguồn.
Cấu trúc đệ quy không có nghĩa là viết mã đệ quy. Thay vào đó, nó buộc bạn phải suy nghĩ về cách chia một vấn đề lớn thành những vấn đề nhỏ hơn và suy nghĩ về các trường hợp đặc biệt trước thay vì sau.
Lisp cũng đã tiên phong: thu gom rác, câu lệnh if, macro, hàm bậc nhất và nhiều thứ khác. Hầu như tất cả các ngôn ngữ hiện đại đều mượn một số ý tưởng mà Lisp đã phát minh. Vì vậy, nếu bạn biết Lisp, bạn có thể thông minh hỏi "ngôn ngữ này có cách nào để làm X không? Nếu không, tôi làm điều đó như thế nào?"
Nếu bạn bị ám ảnh với việc "thực tiễn", tôi khuyên bạn nên sử dụng phương ngữ Clojure, nhưng chỉ để học, Racket khá thân thiện (nếu bạn biết một cái, thì rất dễ để học cái kia).
5/6
Haskell
Haskell có lẽ có hệ thống kiểu nghiêm ngặt nhất tồn tại (ít nhất là trong số các ngôn ngữ mà tôi biết). Nó thậm chí còn nghiêm ngặt hơn Rust và buộc bạn phải suy nghĩ về cách xử lý các thao tác có thể thất bại (chẳng hạn như một cuộc gọi mạng). Nó giống như làm việc với một lập trình viên cao cấp cực kỳ cầu toàn, người sẽ phát hiện mọi sai sót bạn mắc phải, ngay cả những thứ có khả năng rất thấp dẫn đến lỗi. Vâng, trình biên dịch thậm chí còn khắt khe hơn Rust, nhưng phản hồi liên tục về "bạn đã không xem xét khả năng ..." sẽ giúp bạn nâng cao kỹ năng nhanh hơn. Nếu bạn là một kỹ sư junior và muốn có một kỹ sư senior bên cạnh, hãy lập trình bằng Haskell và sự khôn ngoan của tổ tiên chúng ta sẽ được ban cho bạn.
6/6
Cách chúng giúp đỡ
Việc học hiệu quả xảy ra khi bạn cố gắng giải quyết một vấn đề và ngay lập tức nhận được phản hồi về công việc của bạn — điều mà mỗi ngôn ngữ này đều làm tốt theo cách riêng của nó.
Mỗi ngôn ngữ này buộc bạn phải tham gia vào những vấn đề mà các ngôn ngữ như JavaScript hoặc Python thường bỏ qua và cung cấp cho bạn phản hồi trực tiếp và ngay lập tức về những gì bạn đã làm sai.
Hãy nhớ: cả vấn đề của lập trình viên junior và senior đều có thể viết mã “giải quyết” một vấn đề — nhưng mã của senior thì tinh tế hơn nhiều. Việc “tinh tế hóa” đó đến từ việc đào tạo — điều mà mỗi ngôn ngữ này đều cung cấp cho bạn miễn phí.
9,26K
Hàng đầu
Thứ hạng
Yêu thích