Актуальні теми
#
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.
Вивчення цих мов програмування варте вашого часу, навіть якщо ви ними не користуєтеся:
1/6
C
C на крок віддалений від запису збірки. Це змушує зрозуміти різницю між «стеком» і «купою». Ви також повинні заплутатися з вказівниками — і тренування вашого мозку обробляти непрямі вказівки допоможе вам пізніше виявити складніші проблеми, оскільки майже кожна «важка» проблема має бути змодельована з певним рівнем непрямості.
2/6
Асамблеї
Вивчення того, як працює асемблер, є обов'язковою умовою для вивчення того, як працюють компілятори. На відміну від C, вам також доведеться вчитися, коли ви використовуєте «реєстр», і ви розвинете сильніше розуміння того, що є ефективним кодом, а що ні. Я думаю, що знання того, як програмувати в збірці, ймовірно, найбільше сприяє тому, що я можу дуже швидко освоїти новий блокчейн. Я підходжу до них з ментальною моделлю: «Будь-яка функціонуюча архітектура віртуальної машини/процесора повинна мати такі особливості, то де я можу їх знайти?». Це допомагає мені підходити до нових систем з набором розумних запитань, а не задаватися питанням, що в біса відбувається.
3/6
Іржі
Rust дуже суворо ставиться до кількох посилань на одне й те саме значення, про що інші мови не змушують вас думати, навіть якщо це може бути джерелом справжніх помилок.
Крім того, система типу Rust досить добре продумана, тому у вас є більше варіантів щодо того, як моделювати реальний світ (це, звичайно, палиця з двома кінцями, оскільки ви можете в кінцевому підсумку переосмислити прості проблеми, тому вам доведеться навчитися контролювати силу, яку вона вам дає). Той, хто навчиться писати ідіоматичний Rust, також буде недалеко від того, щоб навчитися писати функціональне програмування.
4/6
Шепелявий
Якщо ви хочете вивчити функціональне програмування, не отримавши покарання з боку компілятора, це найкращий спосіб це зробити. Крім того, ви отримаєте доступ до найпотужнішої системи макросів з існуючих і «побачите» рекурсивну структуру в таких речах, як JSON, XML і вихідний код.
Рекурсивна структура не означає написання рекурсивного коду. Швидше, це змушує вас думати про те, як розбити велику проблему на більш дрібні і думати про кутові випадки спочатку, а не пізніше.
Lisp також став першопрохідцем: збір сміття, оператори if, макроси, першокласні функції та багато іншого. Майже всі сучасні мови запозичують якусь ідею, яку винайшов Лісп. Отже, якщо ви знаєте Lisp, ви можете розумно запитати: «Чи має ця мова спосіб робити X? Якщо ні, то як я можу цього досягти?»
Якщо ви одержимі ідеєю бути «практичним», я рекомендую діалект Clojure, але для простого навчання, Racket досить доброзичливий (якщо ви знаєте одне, надзвичайно легко вивчити інше).
5/6
Хаскелл
Haskell, ймовірно, має найсуворішу систему типів з усіх існуючих (принаймні з мов, які я знаю). Він навіть суворіший, ніж Rust, і змушує вас думати про те, як обробляти операції, які можуть не вдатися (наприклад, мережевий дзвінок). Це схоже на роботу з надзвичайно педантичним старшим програмістом, який вловлює кожну вашу помилку, навіть те, що має дуже низькі шанси призвести до помилки. Так, компілятор карає ще більше, ніж Rust, але постійний зворотний зв'язок про те, що "ви не розглядали можливість ..." допоможе вам швидше наростити навички. Якщо ви молодший інженер і хочете мати старшого інженера на зв'язку, програма в Haskell і мудрість наших предків буде дарована вам.
6/6
Як вони допомагають
Ефективне навчання відбувається, коли ви намагаєтеся вирішити проблему і миттєво отримуєте зворотний зв'язок про свою роботу — з чим кожна з цих мов добре справляється по-своєму.
Кожна з цих мов змушує вас займатися проблемами, які такі мови, як JavaScript або Python, замітають під килим, і дають вам прямий і негайний зворотний зв'язок про те, що ви зробили неправильно.
Пам'ятайте: і молодші, і старші задачі можуть написати код, який «вирішує» проблему, але старший код набагато більш витончений. Це «вдосконалення» походить від навчання — те, що кожна з цих мов дає вам безкоштовно.
7,49K
Найкращі
Рейтинг
Вибране