10.9K subscribers
331 photos
17 videos
15 files
713 links
Архитектура | Программирование | Профессиональное развитие

Live канал - https://t.iss.one/soer_live

SOER CLUB - https://soer.pro или https://boosty.to/s0er

Бусты - https://t.iss.one/boost/softwareengineervlog

№ 5101661084
Download Telegram
Как решать литкод

Всем привет, на связи снова @devmargooo и сегодня мы поговорим с вами о задачках с литкода. В то время, когда многие говорят о том, стоит ли вообще программисту тратить свое ценное время на решение задачек, преступно мало, на мой скромный взгляд, говорят о том, а как же их все-таки решить, эти задачки? В мануалах с ютуба все просто: блоггер читает условие и дальше решение зреет в его голове само собой, но на практике у многих людей почему-то так не происходит, сколько бы они не сидели перед ноутбуком и не вглядывались в свеженаписанный function declaration.

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

В вашей функции на вход подаются число? Пускай это будет число 1. Строки? Возьмите строку из одного символа. Двоичные матрицы? Возьмите матрицу из одного элемента, максимально простого. И затем решите задачу для этого элемента. Как правило, такое решение не составляет труда, а написанный код не похож на свой финальный вариант. Далее возьмите еще один частный случай и решите задачу для него. Подумайте, можно ли объединить первые два случая в общее правило? Решите задачу для еще одного-двух случаев, и в этом момент вы уже начнете замечать закономерности, которые приведут вас к общему правилу.

Дальше берите на вход все новые и новые виды входных данных, для которых написанное правило не работает, и решайте задачу для них, до тех пор, пока для всех возможных видов данных ваша задача не будет решена.
👍130😁9🤔8🤡8👎43🔥2
Channel name was changed to «SOER: IT, AI, программирование»
Субботний стрим 17.02 10:00

Начинаю сбор вопросов на стрим, напоминаю, что у нас будет четыре секции:

- Зачем это надо? (ЗЭН)
- Разбор книги
- Сплетни нашего ютуба
- Донаты решают

В комментарии к этому посту скиньте вопросы на ЗЭН, они должны касаться АйТи.

Так же можно скинуть ссылки на свои репо, которые я могу посмотреть в прямом эфире и сказать мнение о коде и архитектуре, так же можно скинуть новость или ссылку на ютуб ролик, который можно обсудить в Сплетнях.
🔥9👍4👎1
Бизнес-правила и функциональные требования, в чем разница?


Чем выше поднимается архитектор по карьерной лестнице, тем больше он использует слово "бизнес" в своём лексиконе.

Есть такая замечательная книга "Разработка требований программному обеспечению" Карла Вигерса в ней очень много именно про бизнес-правила и бизнес-требования.

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

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

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

Функциональные требования связанны с бизнес-требованиями.

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

Таким образом, бизнес-правила это более общие относящиеся к бизнесу вещи, а требования - это уже желаемый результат, который связан с программной системой.
👍31👏6👎1😁1
Зачем нужны все эти требования нужны?

Часто программисты не осознают каким образом им ставятся задачи, откуда они берутся, почему эти задачи описаны именно так, а не иначе.

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

Это не так просто, как кажется.
Потому что архитектор сам должен понять: "А что от него требует заказчик? Как это должно работать? Как должно выглядеть?" Он должен понять какие в будущем будут векторы развития приложения.

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

Поэтому приходится разделять где бизнес, где его требования, где его правила.

Классифицируя это всё в документации, можно получить нормальный проект по которому уже конкретно раздать задачи для исполнения.

Поэтому и придумывают разные шаблоны для сбора требований, которые позволяют охватить разные аспекты задачи и систематизировать работу.
👍36🤔8👎1
This media is not supported in your browser
VIEW IN TELEGRAM
Нашёл для себя удобное приложение для построения дашей умного дома - HomeHabit

Простая интеграция с HomeAssistant и минималестичный дизайн - мне нравится.
👍31🔥9🤔3🤮2
Тут небольшая ошибочка, не бывает классных компаний, с хорошей ЗП и т.д., если коллеги - не соеры.
Как вы себе это представляете? Хороший продукт сам себя пишет, а вы с коллегами только о рыбалке и нюдсах общаетесь?
😁86🤔6💯4🤡3💩2
Участник Соер клуба сделал roadmap по архитектурным уровням. Подойдет для тех, кто не знает с чего начать изучать архитектуру.

#SoerClub
🔥192👍37🤡6🤝54👾3🥰2
Если голодному человеку предложить выбрать между удочкой и рыбой, то скорее всего он выберет "рыбу", потому что прямо сейчас он голоден.
Т.е. кто умеет заглядывать на шаг вперёд, скорее всего выберут удочку, потому что так они получат возможность сами решать где, когда и как ловить рыбу, и со временем сами будут предлагать другим поработать на них.

Есть ещё третья категория людей, которые не могут понять причём тут рыба и удочка на канале про архитектуру.

Вы к какой категории относитесь? Если к тем кто возьмут и рыбу, и удочку, то добро пожаловать в Соер клуб.
🤡96👍38😁36🔥32🤔2🌭1🤝1
Как же войти в Айти?

Нет... Как же трудно войти в айти, в 2024

Нет, даже не так... Как же трудно слушать о том, что все хотят в айти войти...

И даже не так... Правильно все сказала Татьяна - АйТиДива - https://youtu.be/57pRyj_M8Vo?si=m7adxMbG_n1n4GIX красиво, задорно и без цензуры.
🤡45👍32👎2🥴1
Лучше всего на вопрос "Что такое Соер клуб?" ответит манифест клуба:

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

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

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

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

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

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

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

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

#соер
👍7510🤡10🔥5😁1🤔1💩1👨‍💻1
Задали вопрос про реализацию архитектурных принципов, изложенных в диаграмме, которую недавно публиковал.

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

Сейчас сформирована команда из 8 участников, которые прошли все отборы Naris (более чем 250 человек прошло через все этапы, но осталось только 8)

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

Вижу потребность в том, чтобы показывать с практической стороны вопросы архитектуры, поэтому будут видео на эту тему на канале.
👍34👎1
Миф: соеры только работают и у них нет личной жизни

Я предъявлюя высокие требования к профессиональным качествам не только по отношению к окружающим, но и по отношению к себе.

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

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

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

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

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

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

Люблю хорошие рестораны и постоянно пробую кухню разных народов.

Люблю читать. Могу увлечься интересным произведением и просидеть за ним всю ночь.

Много времени провожу с семьей. Открываю для себя повторно школьную программу. (Кто знает чем мочкавитая от стержневой корневой системы отличается?).

Люблю посмотреть фильм на домашнем кинотеатре.

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

Помните, активность мозга напрямую связана с активностью тела!

#миф #соер
👍99🔥1310🤡6❤‍🔥1😍1🗿1
Как известно у человека три защитных реакции: бей, беги, замри.

Это пример ситуации "бей".

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

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

Не повторяйте моих ошибок
😁45💯15👍6👏2🗿2👎1
Миф: соеры имеют низкие софт-скилы

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

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

Навыки коммуникации
Коммуникация - это один из самых сложных для оценки вопросов. У меня этот навык развит очень хорошо, потому что с одной стороны я успешно организую сообщества, люди стремятся со мной общаться, высоко оценивают качество моего общения. Я могу объяснять как сложно (пример мой блог), так и просто (пример, я вел кружок компьютерной грамотности, когда был студентом, и по итогу получал высокие оценки за "понятность объяснения".

Работа в команде
Я умею работать в команде. Это видно и по моим рабочим задачам (невозможно делать корпоративные задачи, не работая в команде), по участию в NarisApp (у нас сложилась хорошая команда, с отличными горизонтальными коммуникациями).

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

Решение проблем
За счет умения разделять задачи на составные части (декомпозиция), выделять главное, анализировать и находить "аномалии" я умею хорошо решать комплексные проблемы (т.е. такие проблемы у которых более одной причины)

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

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

Тайм-менеджмент
Управление временем - это моя сильная черта, у меня есть регулярные ивенты, которые я выполняю не отклоняясь от сроков, и правильно расставляя приоритеты.

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

Навыки работы с клиентами
У меня нет навыка "негативного" сотрудничества (никогда не работал с проблемными клиентами), я не занимался продажами и т.д. Поэтому адекватно оценить такой навык я не могу.

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

Организационные навыки
Так же высоко развитый навык, легко определить по предыдущим пунктам.

Ведение переговоров
Регулярно участвовал в переговорах на уровне высшего руководства (например, ДИТ ЦБ), имею опыт ношения "галстука" и владею "канцелярским языком". В силу эмпатии могу скорректировать стиль общения. Считаю, что навык развит.

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

Работа с отзывами
Уже писал что стараюсь учесть конструктивную критику. Но игнорирую эмоциональные вбросы.

Принятие решений
Высокий уровень самостоятельности, умею принять и нести ответственность за решение. Не ломаюсь и не перегораю.

Уверенность в себе
Высокая, местами выше чем следует. Оценить хорошо это или плохо не могу.

#миф #соер
👍41🤡3👏2
Культурное соответствие
Хорошо считываю культурный код, понимаю не только общекультурные нормы, но и индивидуальные культурные особенности социальных групп. Работаю только с теми группами в социуме чьи культурные ценности разделяю.

Честность
Разделяю понятие "Социально приемлемой лжи", т.е. не говорю больным раком, что они скоро умрут, не говорю детям, что Деда Мороза не существует. Не разделяю этически неприемлемую ложь, от чего регулярно хватаю хейт.

Аналитические навыки
Высокие. Очевидно из моей публичной деятельности.


Навыки презентатора
Высокие. Умею хорошо представить технический проект, доказать эффективность и экономику решения.



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

Получается, что софт-скилы у меня высокие.

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

#миф #соер
👍30🤡3🏆2🔥1
NarisApp через boosty

Стать разработчиком или наблюдателем теперь можно через boosty. Раньше участие в проекте требовало обязательного написания кода, теперь к закрытому чату проекта можно получить доступ по платной подписке. Все кто подключатся получат возможность находиться в чате проекта, просматривать исходный код проекта и если захотят, то принимать участие в проекте.
🔥18👍54😁2👎1