Актуальные темы
#
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 довольно хорошо продумана, поэтому у вас есть больше возможностей для моделирования реального мира (это, конечно, двусторонний меч, так как вы можете начать слишком углубляться в простые проблемы, поэтому вам нужно научиться контролировать ту силу, которую она вам дает). Тот, кто научится писать идиоматический Rust, также будет недалек от того, чтобы научиться писать функциональное программирование.
4/6
Lisp
Если вы хотите изучить функциональное программирование, не подвергаясь наказанию со стороны компилятора, это лучший способ сделать это. Более того, вы получите доступ к самой мощной системе макросов, существующей на данный момент, и вы "увидите" рекурсивную структуру в таких вещах, как JSON, XML и исходный код.
Рекурсивная структура не означает написание рекурсивного кода. Скорее, это заставляет вас думать о том, как разбить большую проблему на более мелкие задачи и думать о крайних случаях сначала, а не позже.
Lisp также стал пионером: сборки мусора, операторов if, макросов, функций первого класса и многих других вещей. Практически все современные языки заимствовали какую-то идею, которую изобрел Lisp. Так что если вы знаете Lisp, вы можете разумно спросить: "есть ли у этого языка способ сделать X? Если нет, как мне это осуществить?"
Если вы одержимы тем, чтобы быть "практичными", я рекомендую диалект Clojure, но для простого обучения Racket довольно дружелюбен (если вы знаете один, то очень легко выучить другой).
5/6
Haskell
Haskell, вероятно, имеет самую строгую типовую систему из всех существующих (по крайней мере, из тех языков, которые я знаю). Она даже строже, чем Rust, и заставляет вас задумываться о том, как обрабатывать операции, которые могут завершиться неудачей (например, сетевой вызов). Это похоже на работу с крайне педантичным старшим программистом, который ловит каждую вашу ошибку, даже те, которые имеют очень низкий шанс привести к багу. Да, компилятор даже более строгий, чем в Rust, но постоянная обратная связь о том, что "вы не учли возможность ..." поможет вам быстрее развиваться. Если вы младший инженер и хотите, чтобы у вас был старший инженер под рукой, программируйте на Haskell, и мудрость наших предков будет дарована вам.
6/6
Как они помогают
Эффективное обучение происходит, когда вы пытаетесь решить проблему и мгновенно получаете обратную связь о своей работе — это то, что каждый из этих языков делает хорошо по-своему.
Каждый из этих языков заставляет вас взаимодействовать с проблемами, которые такие языки, как JavaScript или Python, заметают под ковер, и дает вам прямую и немедленную обратную связь о том, что вы сделали неправильно.
Помните: как младшие, так и старшие разработчики могут написать код, который "решает" проблему — но код старшего разработчика гораздо более отточен. Это "оттачивание" происходит благодаря обучению — то, что каждый из этих языков предоставляет вам бесплатно.
10,07K
Топ
Рейтинг
Избранное