Зачем нужна теория?

Очень часто можно услышать “да зачем мне всё это читать, я вот делать начал и попёрло”, “только время тратить, лучше сразу дело делать”, “чего ты тут словоблудием занимаешься, пиши код!” и прочее. Пыл и страсть похвальны: сразу засучить рукава и начать адово готовить самые шикарные блюда. Однако, очень часто так изобретаются велосипеды и не те, что братьев Райт, а уже придуманные много-много раз. Часто с таким подходом собираются всеми собранные шишки, встречаются все откопанные от прошлогоднего снега грабли и придумываются костыли высочайшего класса (которые потом могут стать целыми паттернами, боже нет). Сегодняшняя лодка посвящается теории, её значимости и балансу между делом и знанием этого дела. Поiхали.

Выясним необходимое

Представим, что мы хотим собирать самые стульные стулья в мире. Начнём с малого – возьмём молоток и начнём молотить им по куску дерева в надежде получить стул. Спустя несколько запоротых деревяшек пойдём на форумы и начнём задавать каверзные вопросы. Вежливо получив перенаправление в гугл выясняем, что нам необходимы пила, наждачка, напильник, а ещё лучше взять электроинструменты, 2к18 год же. Короче, получили первый стул и он вроде даже не сломался, когда мы на него сели. Но он твёрдый какой-то, тяжелый, занозы скоро превратятся в небольшой слой поверх кожи, а вставать со стула страшно, вдруг он сломается именно в этот момент.

Конечно, первый блин чаще всего комом. И найдя самую простую инструкцию по изготовлению стула, мы смогли сделать хоть что-то, однако нам ещё многое предстоит узнать. Да, можно каждый раз находить новую инструкцию, но рано или поздно может попасться задача, под которую ещё не написали инструкцию на chairoverflow. А значит будет полезным знать базовые основы.

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

Немного баянов в тему

Инструкция – это как первый шаг (раз), за которым следует изучение вопроса “а почему именно так”. Ответив на этот вопрос, уже проще понимать сам процесс и контролировать его, проще что-то изменить и предположить (или даже твёрдо знать) последствия. Понимание этой инструкции, конечно, ещё не сделает из вас профессионала, ибо есть и более сложные инструкции, однако эти более сложные инструкции уже будет гораздо проще понять. Как говорится “учи матчасть!” и будет тебе счастье.

Построим структуру

Но даже заучивание или вычитывание всего и вся, далеко не финал. Казалось бы: вот лежит молоток под столом, где-то там разбросаны гвозди, в другом месте тихо плачет спрятанная под пылью пила. Многие называют это “творческим беспорядком” (да чего уж, я и сам часто в таком бываю), но чаще это просто хаос и бардак, который отнимает время на сбор гвоздей, на поиск молотка и на сдувание вековой пыли с несчастной пилы. В голове примерно так же: вот ваш практический опыт методом проб и ошибок, вот обрывки статей и советов со stackoverflow и где-то там каша из примерного представления базовых вещей. Как и с молотком, гвоздями и пилой, с такими знаниями можно работать и будет получаться результат. Но согласитесь, если бы рабочее место было приведено в порядок, то процесс пошёл бы быстрее и даже эффективнее.

Структурирование знаний в своей голове (а иногда и в чужой) – важная и одна из базовых задач теории. Разложив по полочкам каждый компонент страдальчески выгрызенного гранита, гораздо проще в нём разбираться и навигироваться, гораздо проще понять, где могут быть пробелы, проще осознать, что необходимо дополнить, а где можно взять что-то новенькое. Это как собранный в единую конструкцию механизм, который не будет работать в разобранном состоянии.

А из этой структуры вытекает дальнейшее…

Словоблудие

На вашей полке уютно расположились процессы “попиливаем”, “забиваем”, “варим” и ваше любимое – “перемешиваем”. Вы знаете довольно много о деревообработке и производстве стульев и даже придумали свои супер уникальные стулья, которые собираются сами. Продажи прут, стартап поднялся и вы купили себе гироскутер и смузи. Вы решили поделиться своим успехом с миром и пошли на КРС – Конференция Разработчиков Стульев. И ваш доклад получил невероятную критику и даже пару летающих печенек с задних рядов. Никто ничего не понял, а те, кто пытался разобраться вроде бы шарили в вопросах деревообработки, но каждый раз плакали, когда вы говорили, что сначала нужно “варить”, а потом “перемешивать”. Разговор шёл явно на разных языках.

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

В холиварах может родиться истина. До поры до времени…

Разумеется, придумывать термин для каждого чиха и жутко ругаться, когда употребляется профессионализм в лексиконе – это перебор. Но когда перед вами ТЗ, в котором перепутаны спинка стула и сиденье, то это не приведёт к хорошему диалогу и производству. Скорее всего эти термины уже придумали, они активно используются и вам только нужно только взять и использовать их. А если это что-то совершенно новое, то не стоит забывать ту теорию и реальное положение вещей, чтоб термин отображал суть, а не назывался “синий-4-5-белый газонокосилка”. Но это уже скорее вопрос логики и местами не всегда она поддаётся нашему КО.

И чо теперь?

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

На этом всё. Адмирал Ясин Хун с радостью просит вернуться очередного Капитана Очевидность в гавань. Надеюсь, что Капитан знает, как управлять своим судном.

Обратите внимание на то, что комментарии отображаются не мгновенно, а спустя некоторое время после сборки на стороне GitHub Pages.

Комментарии