Earl.Kutsakov

Earl.Kutsakov

Пикабушник
Дата рождения: 5 июля
131 рейтинг 7 подписчиков 66 подписок 5 постов 0 в горячем
Награды:
5 лет на Пикабу
7

Дневник Робинзона в море ИТ. ч.1 глава 5

Часть 1.

Глава 5. Один совсем один и немного имён переменных.

Июль 2022. (Долго не писал. Ушла муза)

Остался на острове (курсе) один.

Коллега покинула меня и сдалась. Решила, что это не её. Жаль. Переубедить её не получилось. Что ж у каждого свой путь.

Итак, я сдал 2 «заготовки лодки» на «смотрины» мастеру и даже после многочисленных клеймо на них «все х….ня – переделывай» защитил их доведя до ума (после сборки обработать напильником).

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

Основные успехи связаны со структурой и разделением действий между функциями.

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

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

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

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

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

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

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

Ах да совсем забыл одну деталь.

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

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

Продолжение следует….

Показать полностью
3

Дневник Робинзона в море ИТ. ч.1 глава 4

Часть 1.

Глава 4. Проблемы делегации полномочий и специалистов узкого профиля.

Март 22 года. Продолжаю строить «корабль» из знаний и умений для того, чтобы отплыть в море ИТ.

Столкнулся с 2 наиболее очевидными проблемами в процессе.

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

Некоторые детали "корабля" приходится ломать и строить заново. Дело не только в изменяющихся «чертежах», сколько в том, что только с опытом познаётся «дзен» чистоты кода.

Основы основ – краткость и лаконичность достигается не всегда просто.

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

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

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

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

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

На примере программирования особенно заметна эта грань между балансом ряда «узких специалистов» и супергероем «универсалом».

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

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

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

Возможно даже в дальнейшем создадим с "сенсеем" небольшой "кинофильм" о том, как же изменялся код в пределах одного задания. Для меня эта идея кажется интересной. Хотел бы так же добавить, что несмотря на всю мою импульсивность на данный момент удаётся держать себя в руках несмотря на замечания проверяющего. Но и посредственные знания английского языка, изучение которого происходит параллельно дают конечно свои нюансы. Так оказалось, что некоторые переводчики переводят слово игнорируя ошибку. Так я попался со словом "ромб" перевод которого некоторые переводчики выдавали как "romb", а не предлагали исправить ошибку на  "rhomb" или "rhombus"

Продолжение следует….

Показать полностью
3

Дневник Робинзона в море ИТ. ч.1 глава 3

Часть 1.

Глава 3. Все что кажется простым, таковым не является.

Не смотря на все мои потуги в постройке корабля жизнь вносит свои коррективы. В середине февраля 22-го я взял мини отпуск надеясь провести его исключительно в познании тонкостей языка. Однако только лишь треть удалось выделить на целевое мероприятие. Могло быть и лучше может сказать кто-то. Но в то же время оглядываясь назад я не могу сказать, что время было растрачено напрасно. Да я не сильно продвинулся в изучении материалов. Но взгляд со стороны позволил мне понять, что часто скорость не является определяющим. К тому же я отлично провёл время с дорогими моему сердцу людьми

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

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

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

Начал изучать раздел «Коллекции» (объекты, коллекции, кортежи, списки и т.д.). Как и следовало ожидать стало очевидно: все, что казалось простым, словно атом содержит ещё более простые элементы, из которых и складывается. И с этими элементами внутри материнского элемента так же возможно эффективно работать забирая только часть объекта срезами в том или ином направлении. В некотором роде ощутил себя плотником, снимающим с полена излишки для того, чтобы получилась фигура. В тоже время сами объекты складываются в наборы ещё более сложных структур.

Вероятно, как и я мои «соплеменники» на курсе столкнулись со сложностями и темп замедлился, наш ментор даже забеспокоился, не наблюдая нашей активности какое-то время.

Продолжаю работать над созданием в своей голове структурированных основ по мотивам программы «how it’s made» но применительно к общим принципам сотворения программ. В комментариях к посту коллеги прочитал интересную мысль, ранее об этом не думал.

«Программирование — это стык филологии и архитектуры»

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

Продолжение следует….

Показать полностью
5

Дневник Робинзона в море ИТ. ч.1 глава 2

Часть 1.

Глава 2. В живых останутся не только лишь все, не каждый может остаться.

Конец января 2022. Уже прошло 2 недели с начала включения в проект

Я продолжал изучать основную тему «введение в программирование». Это как основы строительства корабля. Хотя нет какого корабля в моем случае это скромный плот. Но любой средство лучше, чем его отсутствие. Только так я смогу уплыть с «острова» жизни куда занёс меня шторм.

Кроме того, участвую в испытании наравне с другими 10 участникам.

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

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

На данный момент я изучил тему построения примитивных алгоритмов, правил написания и оформления кода принятых в python. Сдал 3 работы выполненные на платформе replit с участием ревьюера. Работы были сданы, честно говоря, не с первой и далеко не с третьей попытки. Я научился тому, что всегда что – то можно улучшить. Причём ревьюер практически никогда не говорит, как надо сделать. Он указывает на места проекта, которые необходимо улучшить и на что обратить внимание. Затем ты садишься и думаешь, что же не так-то здесь.

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

Контрольный срез....

Честно говоря не сильно на что то рассчитывал.

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

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

Ура!!! Да я выжил.

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

Продолжение следует….

Показать полностью
7

Дневник Робинзона в море ИТ. ч.1

Часть 1.

Глава 1. Как я попал на этот остров.

С детства меня всегда интересовала техника, а первый появившийся в далёком 1996 году ПК на базе тогда ещё 386 процессора я прямо-таки боготворил. Не смотря на все это пойти учиться на профиль инженера электронщика и программиста в высшее заведение мне не удалось по ряду причин. В том числе вероятно и то, что, живя в 90-x вместе с сестрой был на самовоспитании и самообразовании т.к. родители выживали как могли, стараясь обеспечить нас. Поэтому мной было решено идти по пути меньшего сопротивления по тем наукам, в которых я преуспевал. И математика, с которой у меня всех хорошо было и физика (с которой не очень) были отодвинуты на второй план.

Я получил хорошее образование в области естественных наук (химии и биологии) и к тому же приобрёл отличные педагогические навыки, которые в дальнейшем помогут мне развить свои коммуникативные способности.

После окончания ВУЗа я не смог найти достойное применение своим на тот момент хорошим познаниям в естественных науках за достойные деньги и попал в ИТ сферу, ну не совсем ИТ, но около того. Работа моя была связана больше с настройкой серверов, цифровых мини АТС, различными проектами по прокладке СКС, ОПС и других слаботочных инженерных систем.

Так сложились обстоятельства, что жизнь до этого прерывала все мои попытки вернуться в сферу настоящего ИТ с её большими данными, алгоритмами и т.д. Долгое время я пытался что-то изменить понимая, что круг моих интересов все-таки лежит именно там. Часто начинал обучение на различных курсах, которые советовали то тут, то там. Например, это был и stepik и hexlet и куча других ресурсов. Часто не хватало времени нормально подойти к обучению.

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

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

Я, прекрасно понимая, что шансы довольно иллюзорны,  поступил как всеми известный герой Джима Керри в фильме «всегда говори да» и написал, что хотел бы тоже попробовать. Тем более, что я увидел чёткую структурированную программу обучения. А первое чему меня научили в ВУЗе это не то, что ты должен все знать, ты должен знать где это найти и зачем это надо. Программа состояла из связанного комплекса: Python, сети, PostgreSQL, Django + DRF, Git, Docker. Такой комплекс позволил бы освоить программу минимум для начала строительства плавсредства в море ИТ в качестве разработчика.

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

Так получилось, что я был отобран в круг 10 участников – учеников.

Ставились относительно не сложные цели. Пройти начало курса. Уделяя обучению в среднем 20 часов в неделю. Быть активными, интересоваться предметом и способствовать развитию данного коммерческого продукта выявляя различные «не стыковки» как в самом материале, так и на платформе.

Нас сразу предупредили о контрольном срезе через какой-то период. И да предполагалась битва как у горцев. Правда принцип «останется только один» был модернизирован в принцип останутся только трое.

Небольшое отступление:

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

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

Показать полностью
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества