В последнее время возникло несколько вопросов на тему "Как быстро начать работу?" или "Какой минимум мне нужно знать, чтобы получить работу?".

Если вам интересно, как это сделать… вам не понравится этот ответ.

Возможно, вы пришли из Rails, Django или какой-нибудь штуковины на базе Spring. Вы привыкли к этим самоуверенным монолитам, где первое, что вам показывают, — это учебник с нуля до хлама, который занимает менее 15 минут. Вы ищете аналог Clojure, чтобы (очевидно) быстро приступить к работе.

Потому что кто хотел бы начать медленно, верно?

Возможно, вам не хватает фундаментальной части кривой обучения Clojure: если вы переходите с объектно-ориентированного языка, вам нужно не только выучить правильный словарный запас, вам нужно выучить новую семантику .

Нравится вам это или нет, но семантику нельзя быстро освоить. Вы получаете их только после постоянной практики. Требуется несколько итераций ходьбы по незнакомой функциональной дороге, спотыкаясь, вставая и продолжая идти.

Не пытайтесь перейти от Clojure Koans сразу к созданию большого веб-приложения. Коаны — хорошее начало, но в основном они учат вас заполнять синтаксические пробелы и показывают некоторые встроенные функции. Они не обеспечивают достаточной семантической практики. Также легко упустить смысл коана и отредактировать его так, чтобы тест прошел, не узнав, что имел в виду автор.

Гораздо лучший следующий шаг — решить проблемы 4Clojure. Вам нужно будет реализовать небольшие решения в функциональной манере. Часто эти функции будут чем-то, что вы считаете само собой разумеющимся, или что вы можете делать во сне на своем обычном языке… и они все равно будут ставить вас в тупик. Как только вы, наконец, разберетесь с одним из них, вы почувствуете, что поднялись на гору кода. Вы самый худощавый и самый функциональный программист.

Затем вы видите более чистые решения других людей, задаетесь вопросом, о чем, черт возьми, вы думали, и переходите к следующей проблеме.

Вы также должны прочитать Clojure для смелых и истинных, прежде чем пытаться погрузиться в какую-либо книгу по Clojure, посвященную предметной области. Это отличное чтение, доступное как в Интернете, так и на мертвых деревьях, и оно даст вам больше информации о том, что возможно с помощью языка.

Но больше всего вам нужно не торопиться. Это обучающее путешествие, а не соревнование по хакерству выходного дня. Если вы попытаетесь бежать сразу после первых детских шагов, вы в конечном итоге упадете лицом в тот момент, когда вам нужно выйти за рамки знакомых фрагментов кода.

Помедленней. Вы доберетесь туда быстрее, если не будете торопиться.

Первоначально опубликовано на numergent.com.