Журнал инженера-программиста – Telegram
Журнал инженера-программиста
226 subscribers
183 photos
7 videos
148 links
Мир глазами программиста. Истории и размышления.

Автор: @Dementor_AK
https://www.linkedin.com/in/dv-kinash
Download Telegram
И снова мне сегодня Windows сообщила, что на системном диске старого ноута закончилось место и она не может работать. Не в первый раз такое, знаю что делать. Перегружаю ноут и уже 3,5 Гб свободного места. Какие-то временные файлы почистились.

Достаточно раздражительное событие. В этой истории меня бесят даже сразу две вещи:

1) Буквально вчера, когда я покупал первый комп и ставил Win98, Win2k и WinXP, размер 3,5 Гига - это было много! Чтобы вы понимали - это вообще был максимально допустимый размер файловой системы FAT16!!! В те времена Windows еще была обычной ОС - т.е. программой для запуска других программ, а потому ее размер был скромным и увеличивался исключительно за счет папочки с драйверами, которые можно было чистить. Это сейчас у нас непонятное НЕЧТО, живущее своей жизнью. Особенно после добавления ИИ - Cortana в Win10 и Copilot в Win11

2) Зачем продавцы в рознице до сих пор продают компьютерную технику с размеченными дисками? Что за мышление из 90х и 00х? После изобретения NTFS ограничений на диск по размеру больше нет и логично наконец-то начать хранить свои документы в папке "Мои документы", а не на дисках D, F и G. Ведь проблема даже не во фрагментировании данных по разным дискам, а то что место на системном диске C просто неизбежно будет заканчиваться. Если выделить 50Гб, то Windows скушает их за полгода. Если выделить 100 Гб, то уйдут за годик обычного офисного применения. 200 Гб операционка возможно будет забивать своими служебными файлами несколько лет, но точно освоит в полной мере!

На моем новом ноуте подобной проблемы с нехваткой места уже не будет. Весь 1Тб SSD - это единый системный диск.
👍3
В последнее время у меня дома сложилась традиция по выходным смотреть выпуски шоу МастерШеф, про то как кулинары-аматоры (Junior) должны ради победы на проекте за считанные недели стать настоящими шефами (Senior).

Для этого им нужно:
🍮 освоить основные кулинарные направления (стеки технологий),
🍛 научится красивым презентациям (UX/UI),
🥧 не только работать в команде, но и управлять коллегами (Team Lead & Project Manager)
🫕 понимать туманные или неполные задачи (Business Analyst)
🍲 по внешнему виду блюда воссоздать рецептуру приготовления (Architect)

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

С другой стороны, это как наблюдать ускоренное становление профессионалов. Конечно, нам не показывают скучные моменты с RTFM и лишь в разговорах участников упоминаются моменты быта в обнимку с книгами в общежитии. Но зато нам показывают как на кухне применяются полученные знания и от банальных "Hello, World" постепенно переходят к сложным произведениям уровня мишленовских ресторанов к искреннему изумлению судей, конкурентов и даже самих кулинаров.

Развитие любых профессионалов очень похоже - через бесконечное обучение, пот, неудачи и критику своей работы нужно не сдаваться и продолжать заниматься любимым делом, оттачивая навыки!

- Можно ли с нуля "вайти в айти"? - часто слышу вопрос.
- Конечно, можно! Ведь каждый из нас без проблем с нуля входит в кулинарию: совсем не сложно заварить чай, нарезать бутербродов и даже сварить пельмени. Но если нужно приготовить лимонный тарт или котлету по-киевски, за которые не стыдно, то будьте добры потратить несколько дней или даже недель на кухне, изучая теорию и оттачивая практику.

"Вайти в айти" совсем не сложно. Сложнее остаться и развиваться. В прочем, так же как и в кулинарии!
👍6🔥5👨‍💻1
Вчера случайно наткнулся в Ютубе на канал AI-Music Jam, где авто публикует сгенерированных нейронкой каверы на популярные песни из фильмов и мультиков.

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

А на этом канале каждый день новинки и среди них очень много интересных решений. Полистал историю и только первые произведения были сделаны в Suno (хороший генератор, но сложно добиться предсказуемого результата), а потом автор стал использовать Udio AI, после чего треки стали шикарными - партии нескольких исполнителей, многоголосие, более точное оркестрирование голосов и инструментов. Просто мед для ушей!
👍5🔥2👏2
А давайте поговорим про Эйджизм!

Увидел как на LinkedIn сегодня подняли тему возрастной дискриминации при найме. Один специалист принес скриншот вакансии, где в требованиях указано "возраст: 17-30" и в комментариях люди сразу стали порицать такую практику, напирая на то, что "возраст = опыт" и "молодых легче водить за нос".

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

Трейни (trainee) - это стажер, у которого опыта и знаний еще не хватает на работу джуниором (junior). Именно они слышат те самые легендарные слова: Забудьте все то, чему вас учили в ВУЗе, и готовьтесь изучать действительно нужные вещи.


Я абсолютно уверен, что люди 30+, 40+ и даже 50+ могут успешно освоить программирование и сопутствующие технологии. Но я отлично понимаю и даже поддерживаю руководителя компании, который открыл упомянутую вакансию:

⚙️ Сейчас переизбыток молодых специалистов и конкурс на каждую вакансию в десятки человек. Берут тех, кто с опытом и без инвестиций в обучение может сразу приносить прибыль. Молодые Стивы Джобсы и Илоны Маски отчаянно нуждаются в доверии, чтобы проявить себя. Зачем отдавать их шансы людям, которые за свою жизнь уже получали сотни других шансов, но не воспользовались ими?

⚙️ Молодежь еще находится в состоянии "я ничего не знаю, а вокруг столько интересного". Люди по старше постепенно приходят в состояние "я такое уже видел и меня не удивишь". Вакансия создается для обучения с нуля, а люди с каким настроем будут максимально благодарными учениками?

⚙️ Меня тревожит вопрос - а чем занимались возрастные кандидаты предыдущие три десятилетия, что они готовы на всех своих жизненных достижениях поставить крест и начать все с нуля? Если причиной свитчинга было то, что на предыдущей работе их заставляли тяжело пахать, то тут пахать нужно будет больше! Или они хотят получить бесплатные обучение с практикой, чтобы через год уволится и на пересечении с прошлым опытом открыть собственный бизнес?

Финальная мысль. Талантливые люди обычно талантливы во многих областях - Да Винчи, Ньютон, Франклин и многие другие были экспертами во многих науках и при этом рисовали и писали стихи. Большинство гениев проявлялись в юном возрасте: Моцарт (начал играть в 3 года, первые пьесы написал в 5), Паскаль (в 11 написал первую научную работу "Трактат о звуках"), Пикассо (в 8 пишет первую серьёзную картину, в 14 получил признание). А еще всех гениев объединял то..., что никто из них в 30+ не жаловался, что родители их отправили учится не на ту профессию и теперь они хотят начать строить карьеру заново.
3👍3
Такие вопросы на Хабре сразу удаляют. На них невозможно дать "правильный" ответ из-за отсутствия критериев "правильности". "Правильность" определяется только по ощущениям спрашивающего - нравится ему или нет. Но если поразмышлять, то правильный ответ существует.

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


Сразу бросается в глаза сравнение теплого с мягким. Ведь C++ - это универсальный многоцелевой язык программирования, а "мобильная разработка" - это буквально разработка под мобильные устройства, которую можно делать на C++, в том числе. В зависимости от того, что действительно занимает мысли автора вопроса, нужно заменить либо "мобильная разработка" на "Object-C", либо "C++" на "программирование микроконтроллеров".

Определившись с уровнем - это инструмент или сфера применения, - можно для каждого из вариантов нарисовать по квадратику для SWOT-анализа. SWOT - это Strengths (сильные стороны), Weaknesses (слабые стороны), Opportunities (возможности), Threats (угрозы). Если данные лень самостоятельно гуглить, то можно задать вопросы ЧатуГПТ, при этом доступна возможность попросить особо выделять те моменты, которые уникальны только для одного из рассматриваемых вариантов.

Последнее упражнение позволяет принять "правильное" решение ответственно, аргументированно и лишь в соответствии со своей собственной системой ценностей.
👍4💯2
Самый необычный опыт последних дней - это доработка учета основных средств для турецкой бухгалтерской программы на платформе 1С:Предприятие

▪️ все метаданные, названия функций и почти все переменные на турецком
▪️ код нужно писать на английском
▪️ интерфейс конфигуратора и язык синтаксис-помощника - русский
👍5🤯21🔥1
Сервис для создания визиток "на стероидах" InOne снова прислал мне недельную статистику о том, что меня снова никто не посмотрел.

Обожаю такую статистику [ирония].

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

В этих письмах обычно меня хвалят:

- Дмитрий, вы поражаете и заставляете восхищаться собой, ведь за последний месяц вы выучили целых 0 слов. Это на целых 0 % больше чем за весь период использования и теперь ваш словарный запас составляет целых 0 слов, что выше чем у 60 % учащихся.


Ага, в такие моменты я сам собой восхищен [ирония].
Хотя иногда задумываюсь о тех 60%, чей словарный запас ниже нуля [тревога].
😁7🤣2
В середине 00х, еще до выхода 1С8.1 не существовало никаких стандартов написания кода на 1С. В то время я пришел на работу в один из ТОП-5 киевских франчей (потом станет ТОП-3), а курсы по программированию для джунов читали партнеры, тоже из киевского ТОП-5. И уже на вводном занятии, где нам показывали условный "Hello, World", я сразу задал вопрос - а как нужно правильно называть метаданные и переменные? Это очень важно с учетом отсутствия строгой типизации (как в JavaScript и прочих интерпретируемых языках). Мне ответили, что никаких общих стандартов не существует и могу называть как хочу.

Прошли годы и стандарты стали появляться. Как я понимаю, локомотивом перемен стала команда разработки БСП (общая библиотека большинства типовых конфигураций от 1С), которые свои наработки стали публиковать как "промышленный стандарт".

Когда в других языках есть "промышленный стандарт" для написания кода, то сначала учат его, на соответствие ему настраивают Sonar и лишь потом пишут код - пример, PEP8 для Python. Но "промышленный стандарт" от 1С почему-то многими игнорируется, а еще больше специалистов вообще про него не знают. Почему так сложилось?

Я вижу две причины, по которым стандарты не прижились - слишком поздно появились и оторваны от жизни. Очевидно, что если есть технология и тысячи клиентов, то никто десятилетиями не будет ждать подарок от братьев Нуралиевых и все давно сами выработали для себя внутренние стандарты хорошего кода. По сути "промышленный стандарт" - это просто правила для прохождения аудита от 1С для добавления в каталог решений. Не уверен, но думаю, что именно эти же правила использует команда Инфостарта для добавления в собственный магазин решений.

Почему стандарты оторванными от жизни? Потому, что они пишутся под БСП, которая пытается эмулировать ООП на базе DSL (язык для автоматизации предметной области).

Берем правило разметки областей модуля, согласно которому EDT самостоятельно вставляет в новые общие модули области - Public, Internal и Private. Но ведь это калька подхода из языков, у которых есть наследование, которого у 1С нет. Зачем нужна область Internal, в которой описывать экспортные методы и функции, которые декларативно запрещено использовать всем потребителям кроме других модулей подсистемы?

К слову, некоторые служебные экспортные функции БСП так и хочется использовать, так как они удобнее чем "публичные". Помню, что при рефакторинге стандартной подсистемы на партнерском форуме всегда было много возмущений - зачем вы нам все поломали? Ответ от разработчиков - а зачем вы использовали служебные экспортные функции, которые по стандарту только мы имеем право их использовать! Получается, что стандарты, которые теоретически направлены на облегчение восприятия и легкость поддержки кода, наоборот поощряют делать запутанный, тяжело анализируемый и плохо поддерживаемый код.

Я считаю, что в случае общих модулей, которые технически невозможно наследовать и переопределять, имеют смысл только два типа методов - открытые и закрытые! Не должно быть удобных экспортных функций для "избранных" и неудобных медленных вариантов для "простых смертных". Архитектурно нужно закладывать, что все экспортные методы должны быть открытыми, а все служебные функции не должны вообще иметь свойства "экспорт". Простое правило и внезапно уже нет нужды в десятке "подмодулей", которые дублируют методы; и код становится в целом чище и понятнее!
👍6👏2👎1
Еще один вопрос от начинающего специалиста - можно ли совмещать изучение языков программирования?

Не вижу с этим никаких проблем. Я в университете все время паралельно изучал множество разных языков программирования. Некоторые оставались со мной на несколько курсов (Pascal, C/C++), а некоторые понадобились всего на одну-две лабораторные работы (Modula-2, ESQL/C, Visual Prolog).

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

Другой вопрос - как так учить различные языки программирования, чтобы в голове не было каши из различного функционала, особенностей и ограничений?

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

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

📌 Разные языки лучше учить в разных IDE - например, один в IntelliJ IDEA, а второй в Visual Code.

📌 Лучше не учить языки совсем на одном уровне. Один пусть будет всегда чуть впереди, чтобы при изучении второго языка частично сравнивать его возможности с первым, искать параллели и отличия.

📌 Практика, практика, практика! Желательно ежедневная!
👍3🔥2
Вот это новость! Неужели наконец-то можно прекратить эмулировать табличные части на регистрах сведений и хранить информацию в родных таблицах?

Похоже, что разработчики платформы 1С наконец-то разгребли в бэклоге задачи от маркетологов и дошли до пожеланий пользователей 😂
👍5🔥5
Уделил полчасика и проголосовал за доклады на Infostart Tech Event. Много знакомых спикеров. Много интересных тем. Некоторые выступления прямо действительно буду ждать.
👍3
Неустаревающая классика мета-иронии. Взрывает мозг каждый раз, когда вижу 🙃
😁8💯1
Вчера мне исполнился 41 год. Это был рабочий день, который прошел достаточно буднично. У меня был целый год для привыкания к статусу 40+ и даже к статусу "уже пятый десяток".

А вот к ужасной погоде на мой ДР все никак не привыкну - очень редко могу застать Персеиды, которые раскрашивают ночное небо своими огненными росчерками именно на 12 августа - позавчера ночью лил ливень, а вчера небо было затянуто облаками. На протяжении всей ночи даже специально во время воя сирен воздушной тревоги поднимался и проверял состояние неба - облака все там же 😩

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

Особого прогресса и развития я за собой за год не заметил. Основной заработок как и ранее в проектах на платформе "1С:Предприятие". Зимой с интересом познакомился поближе с инфраструктурой Google Cloud и ее возможностями, в рамках бесплатного гугловского курса "AI & Data". Сейчас неспешно прохожу курс по программированию на блокчейне TON - судя по прогрессу закончу ближе к зиме 🙄

Весной присоединился к молодому, но очень веселому комьюнити "TON Society CIS", в рамках которого каким-то непостижимым для меня образом я трижды победил в местной активности "Path of Honor". Свои призовые я использовал для изучения на практике стейкинга, фарминга и поддержки ликвидности в пуллах на DEX'ах. Но главная ценность комьюнити - это познавательные вебинары и интервью, которые еженедельно проходят на площадках СНГ и в суб-хабах. Очень интересно слушать передачи от польского сообщества и тут обнаружил неожиданно высокий процент понимания (видимо из-за айтишной терминологии) 👽

В целом я себя абсолютно не чувствую старым и больным. Даже после 40 у меня все еще ощущение, что жизнь только начинается и все самое интересное ждет впереди! 🎉
5🔥11👍5🎉3
Ежедневные отключения света и рваный сон из-за ночных сирен сильно выбивает из ритма. Возможно, было бы немного терпимее, если бы сирены выли в холостую и не сопровождались звуками взрывов.

Но не всем везет наблюдать взрывы со стороны. Вчера ракета прилетела в полтавский Военный институт телекоммуникаций и информатизации. На текущий момент известно о гибели 52 человек и 271 раненых, но завалы все еще разбирают...

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

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

Видимо судьба. Сложись история по другому, позавчера я мог быть в числе пострадавшего преподавательского состава. Ведь я же в школе был медалистом-заучкой, а в университете шел на красный диплом. Очень хотел, но не попал на магистратуру - из-за отсутствия денег и распределения бюджетных мест среди детей сотрудников факультета. Потом некоторое время преподавал в учебном центре... Так что, видимо судьба.
👍2😭21🤡1
В это сложно поверить, но я снова во время листания ленты Facebook попал на рекламу бесплатного учебного потока от Google и снова подписался.

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

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

В прошлый раз за минимальные балы были носочки, а для бутылочки нужно постараться, сейчас поменяли местами - видимо люди просили заменить более "дорогие" награды на более "дешевые". Вторая бутылочка мне точно не нужна, но и носочки как-то не манят. Хотя зиму обещают холодную...
👍2🔥1
Я приятно удивлен, что не смотря на мои затянувшиеся паузы между заметками, мои читатели не отписываются. Более того, даже приходят новые 😅

Написание больших статей занимает много времени. Их чтение, вероятно, тоже требует далеко не две минуты. Поэтому будем "писать-сокращать", как наставляет Максим Ильяхов, гуру печатного слова! И буду пробовать новые форматы ✍️

Я настолько затянул составление заметки про IT-работников, что за это время во Франции успели арестовать Павла Дурова (напомню - это владелец Телеграмм). Казалось бы, какое это имеет ко мне отношение? Но Дуров, пойдя на частичное сотрудничество с французскими правоохранительными органами, отключил загрузку картинок в сервисе Telegra.PH для борьбы с педофилами. Т.е. чтобы вставлять в текст картинки мне теперь нужно искать другие хостинги или оставлять ссылки на первоисточники. Плохая практика. Именно так и появляются статьи с белыми квадратиками вместо иллюстраций 🤕

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

Тоже буду теперь выдавать разделы по мере готовности. Тем более, что в каналах Телеграмма пока картинки не запрещают. Буду как Диккенс 🤓
3💯2👌1
На этой неделе уже дважды слышал мнение, что смайлик "))" при переписке используют только старпёрды, а молодежь для выражения веселья пишет "ПХАХАХА".

Примерно два года назад слушал вебинар от эйчаров на тему самых популярных ошибок, которые делают русскоязычные при переписке с англоговорящими. Самой показательной ошибкой было использование непонятной для иностранцев эмодзы "))", в то время как нэтивы применяют полный вариант ":-)" или графический 🙂

Помните, как у Конан Дойля его сыщик Шерлок Холмс по составу грязи в следе преступника мог определить из какого он района Лондона? Но этот финт у него не сработал бы при необходимости вести расследование за пределами знакомого города!

Действительно, такие мелочи как эмодзы могут многое сказать о культурном слое, в котором формировался человек. Но нужно хорошее знание существующих "шибболетов" и какие среди них бывают комбинации и по каким причинам. Просто на основании смайликов вешать ярлыки на людей - недальновидно! (◕‿◕)
💯7😁42
Программисты шутят про свой рабочий день: обычно 25% времени уходит на размышление, потом 5% на написание кода и оставшиеся 70% на поиск ошибок в написанном. И это еще не считая часов на компиляцию и прохождение тестов! Другими словами, время на выполнение задач сложно предсказуемо.

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

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

Есть целых три варианта:
1️⃣ Платим одинаково - у них же одна должность и оба работали всю неделю.
2️⃣ Первому заплатим премию. Он не просто справился быстрее, а еще за оставшееся время успел сделать другую работу - т.е. по закрытым задачам его вклад в эффективность компании выше.
3️⃣ Второму заплатим премию. Он ведь занимался техническим долгом, с которым прежде никто не хотел связываться, и он наконец-то решил системную проблему, которая в будущем больше не будет мешать быстро делать мелкие задачи - т.е. его вклад в общую стабильность разрабатываемой системы выше.

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

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

Какая отличная задачка по менеджменту!

У кого-то есть идеи как ее решать?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1