Товарищи IT-шники !
Всем привет!
Расскажите, на какие темы сферы IT вам было бы интересно почитать статьи? Такие темы, статей на которые еще не написаны, или написаны недостаточно подробно.
Например, "различия между FTP, FTPS, SFTP" и т.п.
Всем привет!
Расскажите, на какие темы сферы IT вам было бы интересно почитать статьи? Такие темы, статей на которые еще не написаны, или написаны недостаточно подробно.
Например, "различия между FTP, FTPS, SFTP" и т.п.
Читать статью на сайте incognito_life
C++ ЭТО
C++ – это один из самых популярных языков программирования, который используется для создания широкого спектра приложений и программ. Он был разработан в 1983 году Бьярном Страуструпом как расширение языка Си.
C++ сочетает в себе высокую производительность и эффективность, что делает его идеальным выбором для создания сложных систем и программного обеспечения. Одной из основных причин популярности C++ является его возможность написания кода, который может работать на различных платформах. Это означает, что разработчики могут создавать приложения, которые могут запускаться на Windows, macOS, Linux и других операционных системах.
ЧЕМ ИЗВЕСТЕН C++
C++ также известен своей высокой скоростью выполнения кода. Это делает его идеальным для создания приложений, требующих быстродействия и обработки больших объемов данных. Кроме того, C++ предоставляет разработчикам полный контроль над памятью, что позволяет им оптимизировать производительность своих приложений.
В C++ есть множество инструментов и библиотек, которые облегчают процесс разработки. Например, STL (Standard Template Library) предоставляет разработчикам множество готовых классов и функций, которые упрощают процесс написания кода.
НАЗНАЧЕНИЕ C++
C++ также используется для создания игр и графических приложений благодаря своей возможности работать с графическими библиотеками, такими как OpenGL и DirectX.
В заключение, C++ – это мощный и гибкий язык программирования, который используется для создания различных приложений и систем. Он обладает высокой производительностью, эффективностью и возможностью работы на разных платформах, что делает его одним из самых популярных языков программирования в мире.
Вы не поверите, но я уже и разработчиков Kandinsky 2.2 спрашивал, что такое CFG Scale в фундаментальном смысле, и нейронщиков всех мастей, однако так не получил внятного ответа. От обывательских блогов меня вообще теперь тошнит, ибо там одно и то же: параметр CFG Scale увеличивает силу следования подсказке... И все как бы, окей — сами разберемся.
Так вот, я начал с базы и открыл научные статьи родоначальников метода classifier free guidance scale. Прикреплю ссылки на них сразу же, чтобы вы тоже могли ознакомиться. Вот статья, посвященная именно CFG Scale для диффузных моделей, а вот статейка о применении данного метода в современных языковых моделях.
Для чего это нужно?
Меня поразил тот факт, что метод CFG Scale и позволил диффузным моделям родиться. До них были GAN-модели, которые совмещали в себе генератор и дискриминатор. Дискриминатор, по-другому, это классификатор. Т.е. моделька сначала генерит изображение, а потом вторая полноценная модель оценивает его на вшивость и корректирует вместе с первой.
Из этого вытекают минусы: например, нужно вместе с одной моделью обучать и вторую (работы в два раза больше). Также нужно, чтобы железо тянуло сразу две модели, ибо они задействуются в паре.
Метод же SFG Scale позволил задействовать только одну модель — диффузнную, т.е. обучать вторую больше не нужно. Чтобы вы понимали, механика описывается парой строк кода. Думаю, вы смекаете, что это намного проще дополнительной полноценной модели, которую еще хранить где-то нужно.
В общем, благодаря CFG Scale мы получили более быстрое и стабильное обучение моделей, которые еще и по точности не уступают GAN-ам, а также могут генерировать изображения в разных разрешениях. Плюс дополнительные надстройки в виде LoRA стали доступны.
Как это работает?
Метод Classifier-Free Guidance Scale использует безусловную и условную генерации, которые перемножаются друг с другом. Грубо говоря, сначала создается изображение без учета текстовой подсказки, а затем с ней. Чем выше CFG Scale, тем больше будет доминировать условное изображение.
Это нужно для того, чтобы мы могли получить либо больше вариативности генерации, либо больше точности — того самого следования текстовой подсказке. Получается, что чем ниже CFG Scale, тем нейронка свободнее в своих действиях, а чем больше — наоборот, скованнее.
Так как формула просчета CFG Scale и перемножения двух генераций простая, то и минусы из этого следуют такие же простые и очевидные. Всем ясно, что математематические формулы можно совершенствовать до бесконечности, повышая точность и скорость. И это делают, сейчас разберем как.
Вот вам наглядная демонстрация влияния CFG Scale на качество генерации.
Как вы можете видеть, первое изображение при низком CFG Scale близко к безусловному, т.е. не учитывающем классы из текстовой подсказки. При высоком же значении этого параметра мы получаем те самые минусы математики, о которых я говорил выше. Нейросеть как бы пытается достать генерацию, выдавить ее через трафарет, максимально четко охарактеризовать объект.
Помните лизуна в сетке? Представьте, что когда вы сжимаете его, то увеличиваете тем самым CFG Scale. Т.е. вы проталкиваете подсказку через некий трафарет (сетка — это безусловное базовое изображение, а лизун — это условное изображение, сформированное подсказкой).
Теперь посмотрим на чрезмерное увеличение контрастности изображения в Photoshop. Принцип по сути очень похож: мы пытаемся усилить цвета и как бы выделить на фоне остальных, т.е. выжать, как того самого лизуна.
Снова возвращусь к минусам математики и ее бесконечном улучшении. Взгляните на примеры выше и сравните с предыдущими. Высокие значения уже не так коверкают генерацию, как раньше, а помогло в этом расширение CFG Dynamic trashholing, которое не выдавливает, а спиливает ненужные части. Вместе с лишним уходит и освещенность, но это все же лучше артефактов. Суть метода в том, чтобы как бы отодвигать яркие пиксели назад, тем самым уменьшая эффект ярких артефактов.
Про данное расширение и другие способы увеличить качество ваших генераций в десятки раз у меня, кстати, есть ролик.
Еще одной иллюстрацией механики CFG Scale можно считать два негативных промпта у нейросети Kandinsky 2.1, один из которых является безусловным, а другой условным. При CFG Scale < 1 отрицательная подсказка игнорируется.
По ссылке вы можете найти официальную документацию Kandinsky 2.1, а также прочитать буклет Google о classifier-free guidance scale, на который ссылаются разработчики Кандинского.
Что по итогу?
А по итогу мы имеем представление о методе, который является одним из родителей диффузных моделей, к примеру, Stable Diffusion или Midjourney.
Теперь нам не нужен дискриминатор, а модель генерирует изображение за несколько шагов, что дает массу простора в контроле генерации. Мы можем и ControlNet подрубать, и LoRA, всякие разные расширения, дополнения.
Но не только ControlNet-ом хороши современные нейронки, но и целыми каскадами других, не менее масштабных сетей. У Midjourney, к примеру, есть сеть-генератор формы объекта, граней, апскейла, раскраски и много чего еще. С GAN-моделями такое было бы практически невозможно совместить.
Если вы хотите глубже погрузиться в диффузные нейросети, то советую прочитать этот материал, который мне также помог в изучении темы. Также продублирую статью о методе CFG Scale в диффузных моделях, а также статью о применении методики в языковых моделях.
Congratulations, вы выжили!
Теперь вы разбираетесь в том, что такое CFG Scale в нейросетях. Буду рад обратной связи и вашим комментариям, а также приглашаю в свой телеграм чат, где отвечу на все вопросы касаемо SD.
Буду рад видеть вас в телеграм-канале, где я собираю лучшие гайды по Stable Diffusion. А если не найду, то пишу сам.
Взять с собой побольше вкусняшек, запасное колесо и знак аварийной остановки. А что сделать еще — посмотрите в нашем чек-листе. Бонусом — маршруты для отдыха, которые можно проехать даже в плохую погоду.
Основной совет, который даётся в статье — нужно разбивать деплой новой фичи на 2 и более части, чтобы соблюсти обратную совместимость. Это очень важно, если для выкатки новой фичи необходимо изменить схему базы данных.
Обратная совместимость необходима, потому что во время деплоя в кластере будут одновременно инстансы со старой версий и обновлённой версией приложения, и нам необходимо обеспечить их одновременную бесперебойную работу.
Например, если требуется удалить поле из БД, нужно выполнять деплой в 2 захода:
Удаляем весь код, работающий с этим столбцом — деплоим
Удаляем столбец и снова — деплоим
Если бы мы удаляли одновременно поле и код, взаимодействующий с кодом, то мы бы столкнулись с ситуацией, когда старые версии, всё ещё будут пытаться обращаться к этому полю, но так как поле удалено — это может привести к даунтайму.
В нашем случае, такой ситуации не случится, так как к моменту удаления столбца, все инстансы в кластере обновлены и больше не взаимодействуют с полем, теперь его можно удалить.
Я стою в зале Макдоналдса. Со шваброй. Мою полы. А в голове мысли о том, как побольше всего узнать и при этом не вызвать подозрений у руководства.
– Блин, а ведь кто угодно может им сдать меня как предпринимателя-«рецидивиста» со стажем.
– Улыбаюсь своим мыслям. Городок у нас небольшой. Меня видит много знакомых, с удивлением машут рукой, а я от этого только больше нервничаю. Но я точно знаю, зачем мне всё это надо!
Меня зовут Михаил Лапин. Я – основатель сети пекарен Хлеббери.
На данный момент у нас уже 10 пекарен в 4 разных городах. Мы запустили франшизу. Хлеббери – это умная пекарня, которой управляет собственная IT-система. Продумана каждая мелочь. И наша цель – построить сеть умных пекарен № 1 в мире.
Давайте теперь по порядку расскажу, как я пришел к этому.
10 000 рублей: деньги, чтобы выжить, или чего-то стоящий стартовый капитал?
Я родился и вырос в Саранске, это небольшой провинциальный городок. Мама работает в музыкальном училище, папа – водителем. Денег в семье всегда не хватало. Поэтому-то я еще мальчишкой горел работой – продавал землянику, сдавал металлолом, был дворником, продавал sim-карты. В то время твердо решил, что в будущем не буду ни в чем нуждаться.
Август 2011 года. Учусь на архитектурно-строительном факультете. Но это вовсе не то, чему я хочу посвятить свою жизнь. Кое-как скопил 10000 руб. И решился закупить на них баллон гелия, шарики и визитки. Приступил к поиску клиентов. Ох как это было непросто…
В результате 15 магазинов по доставке шаров «Михаил Шариков» в разных городах. Слышали о таком? Целеустремленность, упорство, настойчивость – дальше сами можете подбирать красивые слова. А я продолжу, ведь с этим бизнесом я попрощался в 2017ом, но это, как говорится, уже совсем другая история…
Осенью 2014 года параллельно с шарами я с одноклассником запустил новый проект по доставке суши «Fast’n Roll». Начинали работать с поваром вдвоем — сами принимали звонки, делали роллы, развозили по адресам. В этом бизнесе было не меньше сложностей, но нам удалось расшириться до трех городов.
Так сложилось, что наши с партнером взгляды разошлись, и я был вынужден выйти из бизнеса. Я вынес для себя еще несколько ценных уроков — никогда не создавать бизнес с друзьями и обговаривать все нюансы с самого начала.
Что общего у Китая с пекарней?
У меня всегда было желание создать компанию, способную масштабироваться, быть устойчивой к кризису и не зависеть от зарубежных поставок. Ни в доставке шаров, ни в роллах я не видел этого потенциала. Но идей, что именно это должно быть, не было.
Нужна перезагрузка. Новый 2017 год. Китай. Бизнес-экскурсия.
Вот тогда ко мне пришло решение строить сеть пекарен. Причины, по которым я выбрал именно этот бизнес, понятные и реально по моим запросам:
· возможность быстро масштабироваться;
· мало крупных конкурентов на рынке;
· хлеб и выпечка – продукты ежедневного спроса, которые не подвержены кризису и будут работать в любых условиях;
· ну и у меня уже был опыт работы в сфере общепита.
Вижу цель – погнали к ней!
После возвращения из Китая началась большая подготовительная работа к открытию пекарни. Я с головой ушел в изучение проекта. Вы бы видели стены офиса: всё в стикерах с задачами.
Для себя определил три первостепенные:
1. Изучить конкурентный рынок России.
2. Поработать в Макдоналдс.
3. Устроиться на работу к самому крупному конкуренту на рынке пекарен.
Начались поездки по городам России: Санкт-Петербург, Казань, Нижний Новгород, Ижевск, Москва, Пенза. Дегустации пирожков килограммами в 50 пекарнях. Я звонил под видом покупателя франшизы самым интересным и быстро развивающимся компаниям, задавал огромное количество вопросов, договаривался о встречах, чтобы увидеть бизнес изнутри. Поехал в Сыктывкар, чтобы посетить главный офис компании Додо Пицца.
Я давно хотел поработать в Макдоналдс, но времени на это категорически не хватало. Но если есть цель, то и время нашлось. Прошел тестирование на сайте и через 3 недели меня позвали на собеседование, которое я успешно прошел.
Сначала был «членом бригады ресторана». Потом собеседования, обучение, тестирование. И вот я уже на кухне жарю картошку фри. В процессе работы ко мне подходят и спрашивают стандарты, а у меня голова идет кругом от того, как здесь все быстро работают – я же был с напарником вдвоем и не справлялся. Каждый день я узнавал что-то новое, задавал очень много вопросов. Получал невероятные эмоции от работы в Макдоналдс, не переставая удивляться тому, какой у них эффективный менеджмент. И постоянно крутились мысли о том, сколько же всего из Макдоналдса можно внедрить в работу пекарен.
Я поработал на разных линиях и узнал работу ресторана со многих сторон. Но спустя две недели меня все же рассекретили. Я поднялся к директору ресторана и объяснил, зачем я пришел к ним. За это время я получил ценнейший опыт и полное удовлетворение выполненной задачи. При увольнении попытался создать позитивную атмосферу для всех — делал цветы из воздушных шаров и дарил их всем сотрудницам.
Дьявол кроется в мелочах, а успех бизнеса — в процессах.
После работы в Макдоналдс я поехал в Нижний Новгород и устроился на работу в очень известную сеть пекарен. Два дня стоял на заготовках, учился нарезать начинки и часто резал себе пальцы. Но не сдавался и продолжал работать, несмотря на раны. Вскоре понял принцип нарезки и ошибок больше не повторял.
Далее меня перевели в пекари — для меня это было гораздо интереснее. Учился делать замес теста, защипы и узоры на пирогах, познал процессы расстойки и выпечки изделий. Работал по 12-15 часов в день, не было времени даже на обед. Всё, чему меня обучали, я записывал и снимал на телефон, а в выходные дни систематизировал полученную информацию, чтобы воспользоваться ей при открытии собственной пекарни.
Со временем все стало получаться быстрее и лучше. Спустя две недели, меня назначили старшим пекарем. Так я узнал, как делать заказ на продукты, принимать поставки, управлять планом на день и пр. Но время моей работы подходило к концу, да и узнал я всё, что мне было необходимо. Пора возвращаться на родину.
Разведка» в пекарне дала мне мощную базу – я ответил на все свои вопросы, научился лепить и выпекать пирожки, узнал все процессы и технологии, которые помогают мне до сих пор.Расскажите, за каким брендом общепита хотели бы пошпионить вы?
Более того на тот момент я был уже не одинок в этом деле – а у меня появился единомышленник. В следующей статье обязательно поделюсь своими знаниями о партнерстве в бизнесе. Ну и конечно расскажу про открытие первой пекарни Хлеббери.
Подпишитесь, чтобы не пропустить, а пообщаться приходите в Вконтакте
Создадим обвязку новостей в которую будут попадать недавно просмотренные материалы пользователя.
Установим модуль Recently Read:
composer require drupal/recently_read ; drush en recently_read -y
Переходим в настройки модуля:
/admin/config/system/recently-read
Ставим галки на «Включить» и необходимые типы материалов:
Мне нужна только «Новость»
Во вкладке «Конфигурация» модуля меняем настройки:
Как именно будет удалена информация о недавно просмотренных материалов у пользователя?
- Time based — спустя указанное время;
- Count based — при просмотре нового материала — старый в конце сотрется;
- Никогда — не будет удалятся.
Добавим новый блок представления с обвязкой, а в него — Связь:
Content recently read
В «Наборы» укажем необходимый тип материала:
Далее, в критериях сортировки добавляем «Created» с категорией «Recently read» с порядком «По убыванию».
Добавим в контекстные фильтры ID без связи «Recently read» со следующими настройками:
- Когда значение фильтра не доступно → Передать значение по умолчанию → ID материала из URL;
- More → Исключить → Ставим галку.
Это нужно для того, чтобы в обвязке не выводился материал, на странице которого находится пользователь.
Мои настройки блока представления выглядят вот так:
Выведем блок с обвязкой.
Переходим в схему блоков:
/admin/structure/block
Размещаем новосозданный блок представления в любом удобном для вас регионе:
Если нужно — меняем настройки, указываем область видимости:
Мой блок будет выводиться на страницах «Новость»
Теперь посетим несколько новостей и взглянем на обвязку:
На скриншоте мало что понятно, но все работает — честное слово :)
Наткнулся на отличную статью. Считаю, что ее необходимо прочитать не только тем, кто учится на программиста, но и в принципе связан с интеллектуальным трудом. Пост без картинок, поэтому может быть трудно осилить. Статья на хабре, там этот же текст разбавлен картинками https://habr.com/en/amp/post/569062/
На картинке- проблема, с которой придётся бороться
Случай с бомжом
Однажды в конце декабря, когда воздух пахнет сгорающими над городом фейерверками, а улицы полны паникующих из-за цен на горошек, я решил научить программированию бомжа. Он сидел у стены в подземном переходе; мужчина средних лет с разумными глазами, не пьющий и не деградировавший, в опрятной, но очень поношенной одежде. Совершенно очевидно, что он переживал одиночество и отчаяние.
Обычно вместо денег я даю попрошайкам-мужчинам телефон отдела кадров одной курьерской компании, которая постоянно нуждается в сотрудниках. Но у него не было ног… Тогда я подумал: «Чувак, у тебя полным полно времени. Работа за компом — лучшее, что может случиться в твоей жизни. Купон со скидкой на курс по PHP — вот, что должны были положить тебе на койку туда, где раньше были ноги, когда ты очнулся после ампутации».
Я решил предложить ему изучить программирование. В его положении он должен был быть чертовски мотивирован. Но получится ли у него?
Да конечно нет!
Ранее я много раз видел, как у людей не получалось. У каждого программиста в России был или будет момент, когда он начинает зарабатывать больше, чем все его неайтишные знакомые вместе взятые (исключение — успешные бизнесмены, коих так мало, что можно их не учитывать). Естественно, у кого-то из них возникает желание повторить успех. А потом мы с болью в сердце наблюдаем, как у них ничего не выходит.
В моём окружении припасть к живительному источнику кодинга безуспешно пытались старший брат, девушка, подруга девушки, друг, несколько шапочных знакомых и коллег с предыдущих мест работы. Некоторые по несколько раз. Большинство из них объясняют своё фиаско так: «Программирование не моё. У меня нет к этому таланта».
Талант к программированию
Помню рассказ подруги, как она стала виолончелисткой. В класс пришла преподавательница и попросила детей показать руки. Для виолончели с её огромными струнами совершенно необходимо, чтобы у музыканта были пухлые нескошенные подушечки на пальцах особой формы. Такие оказались только у неё.
В известных додзё кёкусинкай в Японии преподаватели просят приводить мальчиков на занятия именно пап. Чтобы посмотреть на толщину костей в конечностях родителя, потому что люди с тонкими костями никогда не научатся разбивать камни голыми руками даже на первый дан. Тренировать их бесперспективно. У будущего художника должен по-особенному работать аппарат мысленного представления. Проще говоря, закрывая глаза, художник должен быть способен ясно видеть представляемый образ. Без этой способности он никогда не поднимется выше уровня посредственности. То есть для успешности в разных видах деятельности необходима соответствующая одаренность, талант.
Существует ли талант и к программированию?
Ключевая способность программиста
По моему опыту, главная особенность, необходимая для того, чтобы стать программистом, это способность длительно, в повседневном режиме выдерживать фрустрацию, возникающую от преодоления когнитивной сложности. Не ум, не рациональность мышления, не высокая концентрация внимания, а именно способность терпеть страдания, разбираясь в чём-то сложном.
Фрустрация от когнитивной сложности — это то самое неприятное чувство, которое возникает, когда не можешь разобраться в какой-то запутанной фигне. Практически вся повседневная работа программиста состоит из таких моментов. Такая фрустрация выражается в рефлекторном напряжении мышц тела с задержкой дыхания. Она сама по себе неприятна, но худшее начинается ещё через мгновение: в зависимости от своего типа личности, человек начинает чувствовать раздражение, гнев (вспомните тех своих коллег, которые орут на свой код, когда тот не работает) или печаль и разочарование (вспомните обессиленных, демотивированных коллег, напоминающих вялую макаронину).
В результате для любого человека процесс программирования переполнен страданием. Нормальный человек боль не любит и прогать бросает.
Паровозик, который не смог
Мой старший брат, — серебряный школьный медалист и умница, каких поискать, — обучаясь программированию, проходил через что-то вроде изгнания бесов. Он жутко горел, когда что-то не получалось. Баги надолго выводили его из душевного равновесия. Оказалось, что он не может длительно без физической активности находиться у компьютера. И он очень расстраивался, когда что-то не получалось. Вернее, не расстраивался раз, второй, третий, демонстрируя нормальную для человека стойкость, а потом его ломало. Несколько раз в день он уходил на улицу и подолгу шёл куда-то просто так, чтобы подвигаться.
Затем он начал прокрастинировать, используя любую возможность, чтобы отвлечься. Одновременно начались жалобы на чрезмерное напряжение во всём теле, особенно в плечах, глазах и голове. Начал болеть затылок. На подобные боли жалуются многие люди интеллектуального труда. И хотя его обучение шло успешно, было видно, что ему плохо.
А потом он сдался.
Я очень хотел, чтобы у него получилось. Он начал работать в 14 лет и фактически заменил в нашей семье отца. До 28 лет он работал на шахте на севере, отправляя нам почти все заработанные деньги, чтобы мы, младшие братья, встали на ноги. Из-за этого он так и не получил высшее образование и не создал свою семью. Я очень хотел чтобы у него получилось, и в его жизни наступила светлая полоса… Но ничего не вышло.
И, естественно, глядя на этого человека в переходе, перед тем как отдать ему свой старый комп, оплатить курсы и месяц жизни в хостеле, я думал о том, не повторится ли эта история, есть ли в нём эта способность. Судя по его виду, почти наверняка нет. Он выглядел слишком нормально. Дело в том, что способностью терпеть фрустрацию от когнитивной сложности, по моему опыту, обладают особенные люди.
Чудаки
Чтобы стало понятно, я опишу вам несколько своих знакомых программистов:
Параноик, строящий в Подмосковье бункер на случай апокалипсиса. Будучи тимлидом проекта он так его усложнил и запутал, что теперь только он понимает как всё работает. Фактически, теперь он держит за горло всю компанию.
Неряшливый парень с жиденькой бородкой дьякона и синдромом Аспергера (лёгкая форма аутизма), кодящий как боженька, но совершенно не понимающий таких простых вещей, как флирт или юмор.
Программист С++ с шизоидным расстройством личности, выглядящий как живой скелет. Несколько лет в одиночку создавал собственный объектный поисковик.
Женоподобный юноша с тихим голосом, никогда не смотрящий в глаза, без шуток состоящий на правах личного раба при своей девушке-феминистке.
Думаю, вы уже поняли.
Самый редкий типаж в нашей среде — это обычный мужчина, не испытывающий проблем с противоположным полом и друзьями, имеющий благополучную семью, симпатичный, общительный, любящий физическую активность и нормально развитый. Без проблем с психикой. Человек-норма. Программирование переполнено чудаками, как ни одна другая профессия. Фрики, изгои, субкультурщики, социофобы, суицидники, депрессивные, тревожные, злобные параноики, люди с серьезными психологическими проблемами — кого я только не встречал среди нашей братии. Именно у них есть заветное качество: способность длительно выдерживать фрустрацию от когнитивной сложности.
Объясню, как она появляется, на примере тех же знакомых:
Прогер-параноик, закошмаривший свою компанию, обрёл способность долго и дотошно пробиваться через когнитивную сложность благодаря тому, что и в своей повседневной жизни занимается именно этим. Дело в том, что он всё время от всех вокруг ожидает подвоха и предательства. По сути дела он всегда настороже и никогда не расслабляется, контролируя вообще всё вокруг, вроде шахматиста во время партии. Он настолько привык к этому состоянию, что дискомфорт от когнитивной сложности для него совершенно обыденная вещь. Тем не менее время от времени и ему нужна разрядка. Тогда он уходит в зверские запои.
Программист с синдромом Аспергера банально не умеет фрустрироваться. Так устроена его психика, что он просто не испытывает фрустрации, натыкаясь на когнитивную сложность. Соответственно, дискомфорта от неё не имеет и легко переносит тяготы и лишения программистской службы.
Суть шизоидного расстройства — раскол между разумом и телом. Фактически, такие люди своего тела не чувствуют, а так как эмоции, включая фрустрацию, гнев и печаль, — это телесные реакции, то и их он не ощущает. Негативные ощущения в теле банально не мешают его умственной деятельности на ниве программирования.
Парень-раб находится в затяжной депрессии. Он испытывает фрустрацию, но она вызывает не гнев, а печаль. Его тело слабое и дряблое, руки-бамбуки. Мышцы настолько не напряжены, что не доставляют ему никакого дискомфорта. Соответственно, он может сутками напролёт сидеть за компом, совершенно не нуждается в физической активности и легко переносит когнитивную сложность. При этом имеет крайне низкий уровень мотивации. Девушка-стерва необходима ему, потому что только она своим давлением может заставить его делать хоть что-то.
Вот так это и работает. Думаю, если вы имеете отношение к программированию, то и сами навскидку накидаете примеры программистов-чудаков. Обладая способностью терпеть фрустрацию, они относительно без потерь проходят дорогу, обочины которой усеяны костями их более обычных товарищей.
Нечудаки
Значит ли это, что нечудаку не стать программистом, и наши братья, сёстры, внучатые племянники никогда не повторят ваш успех, войдя в мир богатых и знаменитых? Какое-то время я думал именно так. Более того, я стал свидетелем того, как несколько программистов благодаря хорошей жизни и высоким зарплатам решали свои проблемы и теряли свою чудаковатость. После этого когнитивная сложность становилась проблемой и для них, им становилось трудно программировать, и они уходили в различные смежные области. Несколько уехали в более благополучные страны и так там раскисли, что стали ни на что не годны.
Так бы я и жил, роняя яд скепсиса в души начинающих прогеров, если бы ко мне на работу не устроился Саша.
Мой первый знакомый программист-нечудак
Саша работал охранником. Совершенно обычный парень, без какого бы то ни было изюма. Образцовый нечудак. Он был похож на моего брата. И этот человек пришёл устраиваться на программиста PHP. Он банально выучил учебник на своих сменах в торговом центре. Практически наизусть. Но на практике не умел ничего.
Моя организация не могла нанять настоящего программиста по финансовым соображением. Платить собирались тысяч 30 и, естественно, на эту сумму я мог взять только джуна. И то не каждого. Понятно что особого выбора у меня не было. Оценив кандидатов, я позвонил Саше. Весь мой опыт говорил о том, что полноценным программистом он не станет, но он был хотя бы вменяемым, а значит должен был оказаться исполнительным. Делать предстояло сайт, который станет автоматически парсить площадки для тендеров, формируя единую базу данных для наших менеджеров. Я рассчитывал, что будучи адекватным и старательным (как-никак, он всё-таки выучил тот учебник), Саша сможет хотя бы просто выполнять мои указания по части рутинных операций, и мы шаг за шагом закроем эту задачу.
Когда мы начали, мои сомнения только усилились. Саше действительно было трудно. Сталкиваясь с когнитивной сложностью, он проходил через весь спектр негативных эмоций от гнева до отчаяния. Я то и дело слышал его тяжёлые вздохи и матюги под нос. «Да как так-то!» и «Не понимаю!» срывалось с его уст по несколько сотен раз за день. Когда становилось совсем худо, он выходил курить, либо устраивал небольшую разминку прямо посреди офиса. Сидеть неподвижно за компьютером ему было трудно. Как и моему брату, ему необходимо было двигаться. Мы договорились, что каждые полчаса он будет вставать и, к примеру, ходить за чаем, и т.д. Но не чаще, потому что иначе это превратится в способ прокрастинировать.
Проблем добавлял его английский в зачаточной форме, из-за которого он не мог полноценно пользоваться гуглом. Вторая, чисто утилитарная, проблема: печатая, он искал глазами каждую клавишу. И нажимал её одним пальцем. Получалось крайне долго.
Мы договорились, что обращаться ко мне он будет только тогда, если сам трижды не смог найти решение. И это происходило часто. Первое время объяснять ему приходилось буквально всё. К счастью, мы не были особо ограничены дедлайнами, поэтому у него было достаточно времени, чтобы справиться с каждой возникающей проблемой.
Довольно скоро от постоянного смотрения на экран у него начали болеть глаза. Он кое-как дотянул до конца месяца и на первую зарплату купил большой монитор, который решил проблему. Это был тем более отчаянный поступок, потому что я знал, что денег у него нет и питается он одной гречкой, мешок которой был куплен заранее как раз для такого случая.
Стало понятно, что отступать Саша не намерен. А поводы для этого были. Скоро он стал жаловаться на боли в правой руке, которая держит мышь. Что-то вроде тоннельного синдрома. Боль простреливала в плечо, распространяясь на правую сторону тела. Раньше он никогда не проводил столько времени за компом. Пришлось сходить к неврологу и чуть изменить положение руки. Тем не менее полностью боль не ушла, и время от времени я видел, что он перекладывает мышь, чтобы использовать её левой рукой.
Саше было сложно, но я видел, что он полон решимости вырваться из замкнутого круга физической работы, которая кормила его до сих пор. На протяжении трёх месяцев, уходя домой, я оставлял его перед монитором. И каждый мой следующий рабочий день начинался с вопросов о проблемах, которые накопились у него, пока меня не было.
Первое время настроение у него было ни к чёрту, но постепенно я начал замечать, что появляется что-то новое. Это была гордость. Он хвалил себя всё чаще и обращался за моей помощью всё реже. Я по прежнему видел, что иногда он бьётся над какой-нибудь элементарной проблемой по полдня, но решения находил уже полностью самостоятельно. И это происходило всё быстрее.
Пока не наступил день, когда он не обратился ко мне ни разу.
Ту площадку для тендеров мы запустили вовремя. Саша так и работает программистом. Это был первый программист в моём опыте, который пришёл в профессию, совершенно не будучи интеллектуалом и не имея никаких особенностей психики, которые защищали бы его от фрустрации когнитивной сложности. Я думаю, у него получилось потому, что он не имел права на отступление: дома его ждала беременная первенцем жена.
Вывод
Чудаки по умолчанию обладают способностью терпеть фрустрацию от когнитивной сложности. Это позволяет им успешно освоить программирование, если у них когда-нибудь появляется такая мысль. У нечудаков этой способности нет. Поэтому они, как правило, терпят фиаско. Но это не значит, что они не могут её натренировать. Просто они не делают этого.
Ваш знакомый нечудак, проваливший попытку стать прогером, даже не попытался, потому что в его голове есть иллюзия про одарённость, что для того, чтобы стать программистом, надо иметь соответствующий талант. Десятки раз до этого, с самого детства, он пробовал делать трёхмерные модели, вязать макраме, рисовать аниме и играть на губной гармошке. В результате в его голове появился шаблон: если это трудно, если это не получается лучше, чем у других, если скучно, значит таланта нет, надо бросать и идти искать дальше. Такой человек берётся за программирование (да и вообще за что угодно трудное для понимания), натыкается на когнитивную сложность, решает, что не по Хуану сомбреро, и разом сдаётся.
Это выученная беспомощность. Именно она, а не фрустрация сама по себе, словно волшебные ворота, закрывает путь к сокровищам. Это привычка отступать перед болью и трудностями, принимая их за признак своей негодности к выбранной деятельности.
— Знаешь, Лёха, а ведь я всегда считал себя особенным человеком, — сказал мне тот мужчина, когда мы сидели на остановке с купленными мной хот-догами и кофе. — Маме ещё до моего рождения нагадали, что я многого добьюсь, буду большим человеком. Посмотри на меня. Где я и где большой человек?
Мы все в детстве верим в то, что мы особенные, что в нас есть что-то, что принесёт нам силу, славу и богатство, а потом ждём, когда же это что-то проявит себя, ищем свою одарённость, пробуем сотни занятий, меняем увлечения и пробуем, пробуем, пробуем в поисках спрятанного в нас Грааля.
И чаще всего ничего не находим. Вот тебе 35 и ты — ничего особенного. А то и ещё хуже — у тебя нет ног.
Пифия говорит Нео: «Я видела много избранных. И ты точно не один из них».
Робот-офицер полиции Кей из «Бегущего по лезвию» вдруг узнаёт, что его воспоминания — фальшивка. Никакой он не первый рождённый андроид. Он обычная заводская штамповка.
Аста проигрывает первый бой. Ему никогда не стать Королём Магов.
Безногий мужчина после двух недель попыток сдаётся и относит в ломбард мой старенький ноутбук.
Даже если это произошло, у тебя ещё есть выход. Всё может резко измениться, если ты научишься делать что-то полезное за хорошие деньги. Не обязательно именно программировать. Но для этого нужно понять главное:
Себя особенного невозможно найти, себя особенного можно только создать.
Выбери сложное, трудное дело, развернись навстречу когнитивной сложности и шагни сквозь неё. Нечудаку никогда не найти в себе таланта к программированию. Такого таланта не существует. Программиста из себя он должен сделать сам. Сжать зубы и стараться изо всех возможных сил, игнорируя отрицательную обратную связь, которую всегда получают от программирования нечудаки.
Будет колотить от гнева, станут опускаться руки, накатит отчаяние. Силы будут уходить, ты станешь ошибаться и начнёшь чувствовать себя ничтожеством. Тело будет болеть, глаза слезиться, волосы выпадать, окружающие станут говорить тебе про отсутствие таланта и прочую чушь, иногда тебе будет смертельно скучно, но если ты будешь настойчив, то в какой то момент всё это перестанет быть проблемой.
Это и есть Путь Героя.
Да и учить тебе его не хочется. Да и хочется чего-нибудь простого, чтобы сконцентрироваться на контенте и структуре игры.
В таком случае, для тебя есть несколько вариантов игровых движков и конструкторов игр, а один из них Construct 3.
Данный движок позволяет создавать игры без программирования.
Для небольших проектов - до 40 событий он полностью бесплатен. Все, что будет мешать - это заставка движка при создании готового билда проекта.
+ Стоит уточнить, что Констракт больше заточен на веб HTML-5 игры.
Да да, крутая штука, с которой я столкнулся при экспорте игры под винду это псевдо .exe, которой внутри себя запускает браузер, лол
А вот что внутри папки "www"
Т.е эксешник просто запускает локальный сервер и загружает в него index.html с игрой.
Зато движок поддерживает русский язык и полная лицензия стоит всего 524 руб. в месяц.
Структура и функционал игры строится из "событий" - это аналог полноценной функции в классических играх, отвечающей за какую-либо последовательность действий, например:
Событие, которое отвечает за отдаление камеры и дополнительные эффекты.
Событие выстрела (тут враги начинаю бежать на "звук выстрела" и всякое такое)
Как оно выглядит в игре
Подведем небольшой итог:
Плюсы Construct3:
- Бесплатен для небольших проектов;
- Разработка игр без программирования;
- Множество эффектов пост-обработки из коробки (можно увидеть на гифках в посте);
- Большое количество уроков и бесплатных шаблонов игр;
- Сетевые функции - можно создать мультиплеер без излишнего дрочева;
- Хорошее быстродействие;
- Поддерживает JS - если тебе так хочется писать код;
Минусы Construct3:
- Придется платить для серьезных - больших проектов;
- Нет адекватного экспорта по Windows и мобильные платформы;
- Некоторые плагины - реклама Яндекс и ВК, доступны только для платной лицензии движка;
Буду рад услышать ваше мнение о движке, если Вы с ним работали, всем ня ня и прочая хуйня ;3
Кстати, в посте показываю свою игру Я ковбой: Вестерн Шутер https://store.steampowered.com/app/1712120/_/
Если добавите ее в желаемое, буду безумно рад) Всем спасибо за внимание)