10.9K subscribers
340 photos
17 videos
15 files
715 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
Почему-то люди рассматривают топовые вузы через призму "а чему они меня научат такому, чего мне понадобится на работе?". Куча типовых статей о том, что вы будете делать рутину, а не менять мир. Но ведь прелесть ВУЗа не в этом.

Вот короткий список бонусов, который я получил в ВУЗе:
1. Неформальное общение с преподами, которые реально очень крутые

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

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

3. Возможность участия в программах для студентов (стажировки, лицензии, материалы и другие вещи, которые открываются если ты студент).

4. Предложения от компаний
К нам на кафедру приходили представители бизнеса и звали работать к себе, предлагали стажировки и многие мои сокурсники нашли работу именно так.

Знания которые дали в ВУЗе мне тоже пригодились, но это действительно очень индивидуальная история, ведь "красить кнопки" можно и без ВУЗа, но вот люди, с которыми я познакомился, гораздо важнее. Причем это системная история, каждый перечисленный пункт по отдельности не так важен, как та синергия которая получается вместе.
🔥45👍183🤡3🤔1
Уже сталкивались с требованием подтвердить опыт при устройстве на работу (электронные трудовые, показать договор гпх и т.д.)?
Anonymous Poll
11%
Да
79%
Ещё нет
10%
Дропаю такие компании
🤡3022😱11
Forwarded from Vladislav Adamets
💩 Мы хотим техничку, а не вот эту лабуду про вакансии/деньги/ и прочую мишуру связанную с менеджментом 🤡
👍69🔥84👎3💯22❤‍🔥1🌚1👾11
Forwarded from Дмитрий
а когда будут технические темы? а то сейчас зашел на ютюб канал соера и последнее техническое видео было ГОД назад. Я тут срачи пришел слушать или расти в хард скиллах? Если вы так за них топите, где контент? где обучающие видео? Жалко картинку нельзя прикрепить
❤‍🔥32👍15🔥6😢2👎1
Ребята, я с радостью сделаю технические темы, главное пишите что вам интересно, а не просто общие фразы, чтобы по реакциям я мог понять за что голосует большинство.
Видео я действительно не снимаю, у меня сейчас в основном стримы, поэтому смотрите на вкладке "трансляции"
👍346💩3🤔1🤩1
Пятничный техток для соеров в 19:00

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

* Запись будет на канале

SOER | PRO | Boosty
👍27🔥6
Forwarded from Digital Ниндзя
Кстати, подумал, что почти все из гейт-кип тим очень любят государство, очень надеятся на него во всех вопросах. Это роднит их со скуфами. В чём прикол мема «Альтушка с госуслуг». Альтушка для скуфа — символ молодости, он грезит о юности, и альтушка должна приблизить его к этой самой юности. В возрасте у скуфа ворох проблем: жена, дети. Но скуф — этатист и паттерналист, он верит в государство и поддерживает его всеми силами. И государство поможет скуфу, в том числе, почувствовать себя молодым, выдав альтушку на госуслугах.
🤡71👍15🤮7😁4🤣2🤯1💯111
Я такой дичи от Саши Ильина не ожидал. Признаю, ошибся насчёт него, думал нормальный парень, оказалось у него тоже какие-то "гейт-кип", "скуфы'.
Жаль
🤡66🤣26👍5💯5🖕53😢1🫡1
Live stream started
Live stream finished (1 hour)
Проектирование
S0ER
Запись пятничного техтока по проектированию
👍37🥱2🤡1
Меня пригласили на полемику с лучшими скуфологами и альтуиологами мира, где люди с максимально развитыми софтскилами в интеллектуальной беседе рассказывают как злые снобы-айтишники закрыли двери в рай в АйТи...

Пожалуй, откажусь, для меня слишком высокий уровень дискуссии
😁45🤡38👍12👌31🗿1
Тесты
S0ER
Запись техтока по тестированию
👍30🔥1
Про технический контент

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

✏️Что я нашел:
- самореклама, много саморекламы

- истории как с мидла залететь на сеньора

- мемасы о том какие все вокруг неправильные, уставшие, смешные, глупые и т.д.

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

- токсичные посты о том как все плохо и подробное мнение автора на этот счет

- скринщоты коммертаиев с кучей матов и оскорблений, и ответы на комментарии в этом же стили

- базовые howto видео и статьи о том что такое SOLID, gof, grasp и т.д.

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


❤️ Чего я хотел бы найти:

- посты о том как люди пишут код, с мини отчетамии о том что получается, что нет

- анализ новостей, трендов с мнением автора (без воды)

- примеры реальных кейсов по проектированию и разработке (с решением)

- статистика и анализ по исследованию кодовых баз

- автоматизации и улучшения процессов разработки с цифрами

Чтобы мне зарядиться хорошей энергией и начать писать посты из второй группы, посоветуйте в комментартях каналы где есть такой контент.
52🔥13👍7🤡3💯111
У меня была попытка два года назад делать видео с аналитикой кодовых баз.
Я делал анализ репозитория NPM думаю, что интересно было бы возобновить подобную активность.

Что скажете?
👍131🔥35🤡3
Что такое "профессионализм"

Разрабы часто испытывают чувство неуверенности в своих знаниях и страдают от синдрома самозванца.

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

1) разворачиваешь репо и запускаешь код;

2) читаешь код и разбираешься, что он делает;

3) модифицируешь код, добавляя новую фичу или исправляя баг.

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

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

Отсюда вопрос к дорогому читателю- когда вы последний раз пробовали работать с чужим кодом? Что это было и какие результаты получили?

SOER | PRO | Boosty
👍59🤔643🤡1
Go вошел в топ 10 языков программирования

Согласно рейтингу TIOBE, который оценивает интерес к языкам программирования по количеству поисковых запросов, еще год назад Go был за пределами десятки, а сейчас занимает 7-ое место. За год ему удалось подняться на 6 позиций (с 13 на 7 место).

Когда языки программированию так быстро набирают обороты, всегда хочется задать вопрос: Почему?

Стандартный ответ: быстрый, простой, стабильный, изначально заточенный на параллелизм.

Правдивый ответ: грамотный маркетинг и многолетние денежные вливания от Google

Ситуация ровно такая же как в свое время с Java - есть мощная компания, которая имеет огромное влияние на рынок, есть свои требования, предъявляемые к разработчикам, есть большая часть собственного ПО (в том числе OpenSource), следовательно есть возможность создавать спрос на новый ЯП.

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

Заметный рост популярности языка Go начался после 2016 года, это связано с тем, что язык "оброс" нужными библиотеками и фреймворками.

В современном мире все языки заметно двигаются за счет Веба. В период с 2012 по 2016 для Go были созданы такие фреймворки как Gin, Beego, Iris и другие, которые отлично подходят для веб разработки.

Так же Go стал популярен благодаря активному использованию в микросервисах (go-kit, go-micro и т.д.)

Резюмируя выше сказанное - язык перспективный, не заставляет программиста излишне страдать при написании программ, имеет сильную поддержку в мире, новые компании активно внедряют решения на Go в свой стек.

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

SOER | PRO | Boosty
👍4753🤔22
Кирилл Мокевнин выдал интересный пост про Осознанную Меркантильность. Интересно потому что на мой взгляд Хекслет долгое время была одной из лучших школ, которые я видел на рынке.

Потом, года три назад, Кирилл в подкасте у Мы обречены начал говорить о том, что в плане бизнеса либо "качество", либо "массовость". После чего приоритеты Хекслета явно начали меняться в сторону массовости.

И вот внезапный интерес к накрутке опыта. Значит ли это, что теперь Хекслет будет предлагать своим ученикам составлять "правильные" резюме? Что думаете?
🤡31🤔11😐21👍1👀1
На гитхаб набирает обороты решение, которое использует схему генерации кода, описанную мной ещё в 2017 году.

Суть следующая:
1. Тесты выступают в роли дескриминатора, т.е. пока тесты не пройдут, сгенирированный код не будет принят;
2. ИИ генерирует код пока не будут пройдены тесты.

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

По идее следующий шаг - это dsl для тестов, который будет приближен к естественным языкам.
👍64😁17🤡8🔥532👎21🤔1
Решение проблемы избыточных состояний через конечные автоматы

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

const [error, setError] = useState<string | undefined>(); // в форме есть ошибки
const [loading, setLoading] = useState<boolean>(false); // форма загружается на сервер
const [isSuccessful, setIsSuccessful] = useState<boolean>(false); // форма успешно отправлена


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

1. в состоянии загрузки
2. в состоянии ошибки
3. в состоянии успеха
4. в состоянии готовности к редактированию.

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

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

type FormState = {
state: 'loading';
} | {
state: 'error';
message: string;
} | {
state: 'ready';
} | {
state: 'successful';
}

type FormAction = {
type: 'set_loading'
} | {
type: 'set_error',
payload: {
error_message: string;
}
} | {
type: 'set_ready',
} | {
type: 'set_successful'
}

const initialState: FormState = { state: 'ready' };

const formReducer = (state: FormState, action: FormAction):FormState => {
// ...
}


Созданные formReducer и initialState мы можем использовать в нашем компоненте через useReducer. Таким образом, мы получили удобное декларативное описание возможных состояний нашей системы, а также совокупность переходов из одного состояния в другое.
👍108146🤔3🤡2👎1🔥1😢1💩1💯1