О, бедные и несчастные островитяне, плодящиеся до тех пор, пока вам на острове станет не хватать еды! Как же вас с толку сбили во вторую мировую войну американские ВВС! Печально, что и говорить, если вы, подсмотрев за действиями военнослужащих, решили, что и вам что-то перепадёт с неба, если вы бросите возделывать землю, выращивать скот, заниматься ремёслами, и начнёте подражать действиям обслуживающего персонала аэродромов и расположившихся на ваших островах представителей вооружённых сил.
Ну ладно, тут, на самом деле, есть отличие слепой веры от желания повторять за более успешными, диктуемого инстинктами. Но без огня не бывает дыма, а о желании слепого повторения за более успешными (usbtype-cи монобровь – во имя счастья и процветания) мы поговорим в другой раз.
Что есть знания? Знания – это когда тебе мудрый учитель говорит, или ты подсматриваешь за кем-то кто что-то делает – и учишься, как делать Надо, но никто не говорит тебе, или ты не хочешь знать, почему.
Что есть опыт? Опыт – это когда ты что-то пробуешь делать – и у тебя что-то получается, а что-то нет. И ты знаешь, что помимо того единственного как делать Надо, есть ещё десяток, а то и сотня того, как делать Не Надо, и почему.
Островитяне решили, что Надо строить вышки – это их знания. Они не знали, почему. Затем, островитяне поняли, что вышки строить Не Надо – это их опыт. Потому что прошли десятилетия, и, за исключением гуманитарной помощи, скинутой им тем же способом, никаких даров с неба более не прилетало, а голод уносил всё больше тех, кто так ничего и не дождался.
Но вера в Надо (строить вышки, маршировать, рисовать подобие военной формы на телах) без понимания зачем и почему будет жить до тех пор, пока океан будет выбрасывать утерянные с кораблей вещи.
Знания – это вера. Ты можешь не знать дна, физической, молекулярной или же программной реализации того или иного явления. Но ты всё равно будешь знать, как Надо, верить, что так надо, и всё.
Опыт – это неверие. И хула слепой вере, и её укрепление. Это знание, и почему так Надо, и почему так тебе оторвёт яйца Не Надо.
Но опыт единичных успешных действий без теоретических знаний – это как раз опыт получения гуманитарной помощи после долгих лет воззваний к небесам. Это ложные ответы на вопросы «Почему», и та же теория, просто подкреплённая каким-то одним успешным примером. По сути, это те же Знания и та же слепая вера, если успешный пример не сопровождался десятком неуспешных, или в сути которых никто не разбирался.
Ты знаешь, что модулю нужно прописать IP-адрес, и он будет по нему отвечать.
Но где-то там, на программном уровне, софт не хавает младший октет IP-адреса модуля, если тот выше 128ми, и модуль стартует не 30 секунд, а 10 минут. И ты не узнаешь этого, пока не переберёшь все октеты и не перепробуешь разные значения октетов. А если ты думаешь, что модуль – волшебный, а не программный, тебе никогда не объяснить, что такая ситуация возможна. При попытке тебе объяснить почему, ты убежишь курить и думать о детстве с криками «Этого не может быть», а когда прибежишь – модуль уже загрузится и проработает годы, если его не трогать. Книги этого не объяснят, а программист – вообще опровергнет, ведь иначе ему придётся исправлять этот баг.
Ты знаешь, как поднять IPSec, и он будет работать.
Но где-то там, на программном уровне, из-за отсутствия в аксесс-листе строчки, работающей с IP, а не с TCPили UDP, крипто-мапа нормально не отработает инициализацию трансформ-сета. Фаза 1 пройдёт, а фаза 2 – нет. И ты не узнаешь почему у тебя не работает при, казалось бы, верном конфиге, пока не попробуешь сначала прописать аксесс-лист не как в учебном материале, а потом добавить в него такую строчку, как гласит учебник. Но автор учебного материала не скажет тебе: «Чувак, а тут постарайся не прописывать UDPи TCP, а то у нас баг, начиная с такой-то версии, и чёто вторая фаза враскаряку встаёт».
Однако, и опыт может рождать слепые знания, если у тебя как-то так заработало, но ты не особо паришься, почему:
Взять, на очередном Кукме прописать транспорт TCP и u-Lawв качестве дефолтного кодека. И попробуй потом объясни, что в случае, если удалённый хост будет недоступен, абонент будет ждать таймаута TCP-запроса, прежде, чем услышит бизитон. А со своим u-Law в Европе у тебя, конечно, голос будет ходить, но ты не учитываешь, что где-то, при очередном вызове, будут заниматься ресурсы на перекодировку в общепринятый у нас a-Law, хотя этого можно было избежать. Но автор этих экзерсисов не досидит даже до нагрузочного тестирования, а занятие ресурсов всё равно будет где-нибудь вне его зоны ответственности.
(Самое отвратительное, когда u-Lawвсплывает в WebRTC– уж дотнетчику фиг ты что объяснишь за кодеки, а перекодировка трафика от этого клиента будет производиться на твоей стороне, в твоей зоне ответственности).
И как же избегать слепой веры и порождаемого вспышками знаний мрака незнания?
При изучении Явы мне недавно попалась прекрасная книжка для подготовки к OCA, где авторы сначала повторяли теорию, то самое «как Надо», а потом долго разжёвывали, как Не Надо. В книге было столько много сложных, заковыристых, неочевидных и схожих по понятиям вопросов, что я, читая её, не на шутку переживала за свои умственные способности: раньше я не задумывалась, почему именно так правильно, а авторы ждали именно этих эмоций: «You may also be experiencing confusion around why you ever wanted to take this exam in the firstplace. That’s normal at this point. If you hear yourself asking, “What was I thinking?” just lie down until it passes. We would like to tell you that it gets easier…» Рассчитывая разобрать этот курс за 2-3 недели, в итоге, я потратила два, с небольшим, месяца, чтобы отложить у себя в голове то самое «как Не Надо».
Конечно, хороши учебники, которые говорят: «Делай так – и будет хорошо», (по крайней мере, лучше тех, которые говорят также, но хорошо от этого не становится). Так ты учишься, как делать Надо, получаешь знания. Но всегда лучше те, которые спрашивают: «Это ты тут знаешь, как надо? А если сделать вот так? А так? А эдак?» - тут ты узнаёшь, с лютым баттхёртом, как делать Не Надо, и получаешь знания и опыт. Понимаешь, почему не надо – узнаёшь подложку тех самых любезно предоставленных тебе методов.
И я теперь понимаю, почему меня так любят за знания телефонии и интересуются мной за знания по Транзакту – потому что у меня есть опыт работы по ним – то самое, что ты не почерпаешь из учебников.
И теперь понятно, почему ко мне так холодно относились, когда я получила CCNP, имея лишь опыт на паре настоящих железяк и GNSe. – У меня было очень мало опыта и слишком высокие амбиции. И кому бы я была нужна, если с самого первого момента у меня появилась нештатная ситуация с какой-нибудь железякой? Ну конечно, всего знать невозможно, но согласитесь, если инженер, хотя-бы, в течении года потраблшутит подобное гамно и выкатит хотя-бы пяток кейсов на TAC, убедится, что новая прошивка чинит одно, но ломает другое, от него будет больше пользы, чем от человека лишь с верой в Надо - лишь теоретическими знаниями в голове.
Как-то давно, уже полтора года назад, я писала, что следующим моим шагом в изучении Явы будет практика по заданиям на сайтах фриланса, когда я ещё не буду делать ставки и выполнять задания за деньги, но буду получать опыт. Так вот, я начала делать так. Я начала выполнять задания, оценивая собственные силы и время, и изучая JavaFX, Collections, Junit4, и вот, поняв, что сильно налажала со сравнением объектов в коллекции, меня и дёрнуло опубликовать эти мысли.
Инстинктивно, меня всегда тошнит от бесцельного изучения теории. Инстинктивно же, меня тянет сразу пробовать, смотреть примеры, что-то делать ради какой-то цели и пользы. В такой перспективе и знаниям и опыту находится место.