Скучные дела в Скучном месте

Mar 27, 2020 05:49


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

Итак, сложная инфраструктура, сложные задачи, огромные возможности для самореализации. Но кто и как их будет осуществлять?



Скучные дела



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

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

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

От человека к человеку

Вместо того, чтобы что-то перечислить: «Что это там за кружки такие технологические?» Хотелось бы дать ещё одно пояснение - главный вопрос состоит не в том «что?», а в том «кто?». Не в том, «что это за кружки?» А в том, «кто эти кружки будет вести?» В Скучном месте мы пытаемся собрать и оформить сообщество людей, которые готовы развиваться в технической сфере, и готовы помогать тем, кому это тоже интересно - делиться своими знаниями. То есть вести такие кружки.

Но зачем? Зачем кому-то желать тратить своё время и ресурсы, чтобы вести какой-то там кружок? На этот вопрос нет простого, одинакового для всех, ответа. Но есть общие черты в мотивации. Одна из таких черт в культуре открытых технологий состоит в потребности и « праве поделиться».

У этой потребности есть и объективные предпосылки. Как сформулировал в своей книге главный автор ядра Linux: «Хорошо известно, что лучше всего работает тот, кто одержим страстью. Кто работает  ради удовольствия» (Линус Торвальдс, Дэвид Даймонд. Just for fun). При этом какие-то глубокие цели вполне могут быть вторичны, интересен же оказывается сам процесс коллективного творчества.

Если у вас есть такая страсть, то вы можете оформить у нас в Скучном месте свой технологический кружок. Откуда эта страсть возьмётся - уже другой вопрос. Но мы готовы помочь тем, у кого она есть, у кого она конструктивна и связана с открытыми технологиями. Готовы помочь найти для себя технологическую базу и возможность находить и заражать своей страстью других.

Скучные дела и задачи

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

И тут возникают вопросы: «А на что же тогда опереться? Как понять о чём сегодня мы проводим наш кружок? С чего начать тому, кто совсем далёк от обозначенной предметной области? Где тут у вас программа?»

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

Открытые технологии

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

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

В общем, если кратко,  то я убеждён, что

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

Примечание: для долгосрочной перспективы нужно опираться на совсем другие модели и обладать совсем другими ресурсами. Большинству же необходимые ресурсы всё равно недоступны. А потому и не очень интересны (в личном, мотивационном, мобилизующем на реальную деятельность плане).

Освоение открытых технологий требует знакомства с подходами открытой разработки. Открытая разработка - это культурный феномен. Культура открытой программной разработки предполагает не только способность программировать, но и желание делиться «чертежами» своих наработок с другими людьми. А это уже не совсем, если можно так выразиться, «производство» - это «производство средств производства», это «станки, которые позволяют создавать новые станки». Только воспроизводятся при этом не станки, а грамотные технические специалисты.

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

Для оформления открытой разработки требуются различные условия:

  • техническая и культурная база (на самом деле, где-то в глубине это чей-то подвиг и чья-то жертва, причём не всегда достаточно осмысленные и зачастую скромно умалчиваемые);
  • технически подготовленные, заинтересованные разработчики, способные создавать на основе сложившейся технической базы конкретные решения;
  • актуальные технические задачи, позволяющие столкнуться с реальными проблемами, а не только с личными интересами;
  • средства разработки, позволяющие решать такие задачи в адекватные сроки, и примеры их использования.
Актуальные задачи

Самое сложное и противоречивое - это найти себе актуальную и одновременно достижимую в адекватные сроки задачу.  Неактуальную, но достижимую задачу решать, просто так, не интересно. Для того, чтобы такая задача стала интересной, её превращают в игру (не стоит путать с «компьютерными играми»). Любое учебное пособие - это и есть такая методически выверенная «игра».

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

При этом «играть» можно долго, бесконечно долго... Поэтому вместо «игры» я пытаюсь найти «интересные задачи» (полезные и чем-то ценные программные решения на базе современных технологий) и отобрать среди них достижимые и ценные не только для меня. Такие задачи сложно найти.

Актуальные по настоящему задачи обычно оказываются либо слишком сложными, и поэтому недостижимыми в адекватные сроки, либо совершенно бестолковыми, никому не нужными «безделушками».

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

Ниже представлены актуальные и интересные лично мне направления для таких задач.

Программирование «под Linux»

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

Так с чего же начать освоение программирования «под Linux»?
Ответ тут, казалось бы, очевиден. Нужно, всего лишь:

  • найти себе пример проекта в исходном коде под свою задачу;
  • установить «свой Linux» и необходимые средства разработки;
  • освоить на примере найденного проекта, используемые в нём инструменты программирования и средства взаимодействия.

Какая бы у вас не была гениальная программная задумка - помните: начинать нужно с освоения существующей кодовой базы.

Ну, хорошо, а с чего начинать-то? Тут всё зависит от уровня квалификации. Начнём с простого и даже тривиального:

  • Операционная система, драйвера, загрузчики, файловые системы, сетевые интерфейсы и протоколы... Чтобы суметь подготовить компьютерную систему к работе и связать её по сети с другими компьютерными системами, в этом нужно что-то понимать. И знакомство с Linux - это отличный повод в этом немного разобраться;
  • Оболочка (по англ. Shell) - это рабочий инструмент для запуска программ и язык программирования, где каждое действие - это запуск программы. Цепочка запуска программ, как функций, передача данных из одной программы в другую через специальные каналы, плюс условия, циклы и переменные технически составляют суть так называемого «Unix way». Такие программы называются «скриптами». Разобраться в этом и занимательно, и полезно. А ещё в хакерских CTF-соревнованиях поучаствовать можно;
  • Выйти за пределы оболочки, познакомиться со средствами сборки (компиляторами, специальными утилитами) и написать свою первую программу или собрать из исходного кода новую версию - это серьёзный шаг на пути к профессиональному программированию.

Дальше больше, но это уже темы для отдельных статей по каждому найденному проекту. Программирование «под Linux» - это инструменты, связь с сообществом и проекты. В эту тему существуют студенческие и школьные программы от Google  - тоже неплохой вариант для старта.

Образовательная робототехника

image Click to view



Робототехника - это сфера, где программирование тесно переплетается с производством. Любой автоматизированный станок - это, по сути, робот.

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

Кроме того, робототехника программированием не исчерпывается. Тут и моделирование под задачу механической части в виде «тележки с датчиками» или «манипулятора с карандашом», и разбор электроники в виде «контроллера», «системы питания с аккумуляторной батареей», «датчиками» и т.п.

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

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

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

И это уже тоже отдельная тема (какие чертежи, под какие соревнования?). Об этом я напишу отдельно.

Скучные выводы

Вот такие «скучные дела» творятся в Скучном месте.

В нашей команде участвуют разные люди, как по профильному образованию, так и по опыту. У каждого свой подход, свои цели и свои скучные дела.
Previous post Next post
Up