Вопрос про рекламу
Не нашел правил ресурса, поэтому вопрос в посте.
Я могу тут рекламировать свои бесплатные ютуб-курсы по программированию?
Не нашел правил ресурса, поэтому вопрос в посте.
Я могу тут рекламировать свои бесплатные ютуб-курсы по программированию?
Сегодня в 14.00 по московскому времени проведу стрим с Артёмом Яшиным (канал Onigiri). Поговорим про искусственный интеллект. Присоединяйтесь!
Ну и кстати, записывайтесь ко мне на бесплатную диагностику. Я уже давно преподаю программирование, за 30-60 минут могу понять про человека в этом плане многое. Ко мне на диагностику приходят
взрослые, которые подумывают о знакомстве с программированием
взрослые, которые изучают программирование и перестали что-либо понимать, упёрлись в потолок,
дети, которые хотят познакомиться с программированием
дети, которые где-то изучают программирование, но родителям хотелось бы сторонней экспертизы по тому, чему они научились
Энтузиаст создал внутри Excel рабочий 16-битный процессор с тактовой частотой 3 Гц, 128 КБ ОЗУ, 16-цветным дисплеем с разрешением 128x128 пикселей.
Автор не использовал сторонние плагины, только стандартные функции excel. Самое впечатляющие создание собственного языка - ассемблера Excel-ASM16. Значит с excel можно работать как с настоящим процессором, а это позволяет моделировать работу пк.
Ждем уровня развития техники, когда на нем смогут запустят excel.
#без_пяти_минут_как_актуально
Новый инструмент для генерации кода на основе искусственного интеллекта, AlphaCodium , вдохновлённый разработками Google DeepMind AlphaCode (и недавно запущенным AlphaCode 2 на базе Gemini), теперь превзошёл их, вызвав бурное обсуждение в Twitter на этой неделе.
"Мы на шаг ближе к тому, чтобы ИИ начал генерировать код лучше, чем люди!" - написал Сантьяго Вальдаррама. "Результаты демонстрируют, что AlphaCodium - это лучший подход к генерации кода, который мы видели. Он опережает AlphaCode от DeepMind и их новый AlphaCode2, не требуя дополнительной настройки модели!"
Андрей Карпати, бывший директор по искусственному интеллекту в Tesla и сотрудник OpenAI, акцентировал внимание на методе "инженерии потока" в рамках нового инструмента для оптимизации генерации кода. Он описал этот подход как эволюцию от базовой модели "вопрос-ответ" к более продвинутой парадигме "потока", где ответы разрабатываются и уточняются посредством итеративного процесса.
Для улучшения работы моделей больших языковых моделей (LLMs) в задачах, связанных с кодированием, "инженерия потока" AlphaCode расширяет технологию цепочек мыслей, включая элементы архитектуры GAN (разработанной Яном Гудфеллоу в 2014 году), включающие модель, генерирующую код, и противоборствующую модель, обеспечивающую целостность кода через тестирование, размышления и соответствие спецификациям.
Процесс начинается с ввода данных и включает ряд предварительных шагов, где AlphaCodium размышляет над задачей и в итоге приходит к первому решению в виде кода. Затем генерируются дополнительные тесты, которые помогают уточнить решение, и достигается окончательное, действительно работающее решение.
Миссия компании , согласно её веб-сайту, - "помочь разработчикам создавать быстрее и без ошибок". AlphaCodium был протестирован на наборе данных CodeContests, содержащем около 10,000 задач по программированию. Его производительность на этом бенчмарке показала улучшение точности GPT-4 с 19 до 44%. "Этот результат - не просто числовое улучшение; это прорыв в возможностях LLMs в генерации кода, устанавливающий новый стандарт в этой области", - заявили в CodiumAI.
CodiumAI, основанная в 2022 году и привлекшая $10.6 миллионов в марте 2023 года, поделилась репозиторием AlphaCodium на GitHub и сопутствующим исследованием "Генерация кода с AlphaCodium: от инженерии запросов к инженерии потока"
Всем здравствуйте. Нужна помощь. Суть задания заключается в том, что нужно создать матрицу С из А и В по условию. Но у меня получается пока ерунда какая-то. Вот, собственно, код
Program Matrix;
var
A:array[1..3,1..3] of real;
i,j:integer;
B:array[1..3,1..3] of real;
k,l:integer;
C:array[1..3,1..3] of real;
x,y:integer;
BEGIN
Writeln('Введите элемента матрицы А:');
for i:=1 to 3 do
for j:=1 to 3 do
Read(A[i,j]);
Writeln('Введите элемента матрицы B:');
for i:=1 to 3 do
for j:=1 to 3 do
Read(B[i,j]);
for i:=1 to 3 do
for j:=1 to 3 do
begin
if a[i,j]+2<b[i,j] then
c[a,j]:=a[i,j]+b[i,j]
else
c[i,j]:=a[i,j]-1/b[i,j];
end;
Writeln('Матрица C:');
for i:=1 to 3 do
begin
for j:=1 to 3 do
Write(C[i,j]:4:2,' ');
Writeln;
end;
END.
Буду признателен за помощь.
Привет тебе человек (или мяу, если ты кот)!
Давайте знакомиться) Меня зовут Макс Атыгаев. Я занимаюсь программированием всю сознательную жизнь) с юности и до сих пор)
Я пробовал Android разработку и даже выпустил пару приложений в Google Play, но потом понял что мир бекенда мне нравится больше.
Где-то в 2016 я открыл для себя Telegram и полюбил разработку ботов) Самый любимый проект - пересылка между групповым чатом в вк и групповым чатом в телеграм. То есть словно соединить два чата на разных сервисах в один)
Сейчас работаю в российской компании, в свободное от работы время веду канал на YouTube, RuTube, Telegram. В 2019 году начал консультировать и обучать людей программированию на Java.
Если у вас есть какие-нибудь вопросы к действующему разработчику то смело пишите) обсудим в комментах или сделаю отдельный пост)
Привет, с вами самый неспешный преподаватель программирования Вячеслав Романьков.
Во-первых, пока по подпрограммам (функциям) всё, три видео:
https://youtube.com/playlist?list=PLmn7h9eyDeMMCBonuyVVD8Llg...
Стримы по основам ООП в Python «для тупых» уже есть видео, продолжим наши стримы-вебинары по этой теме в этот четверг, 20:15 по московскому времени, а пока вот уже записанное:
https://youtube.com/playlist?list=PLmn7h9eyDeMPDX-7Sq7SCp7kT...
Кстати, предлагаю всем бесплатную диагностику по программированию — как взрослым, так и детям:
- люди, кто вообще с программированием не имел дела
- люди, кто думают, что программирование не для них
- люди, которые уже обучаются какое-то время, но упёрлись в потолок и хотят понять, из-за чего
- дети, которые не знакомы с программированием
- дети, которые «гуманитарии», «творческие люди» и программирование не для них — покажу, что для таких людей уже тоже есть полезные программируемые технологии
- дети, которые где-то учатся, и родители хотели бы стороннюю экспертизу — «А они там вообще чему-то учатся?»
- и т.д. и т.п.
Длится онлайн, 30-60 минут. Какие-то вещи нужно рассказать и подготовить заранее. Кому интересно, пишите.
На волне этого верну тему обучения программированию детей, довольно интересные открытия и наблюдения накопились.
Планирую курс «JavaScript „как для тупых“», так же основы, но понятно, на пальцах и с практическими примерами доступными. Будет он для тех, кто уже HTML и CSS изучил более-менее, но никак не может понять, как с помощью JavaScript управлять данными в HTML. Будет ещё более поверхностным, но «движок заведётся», что-то уже в голове уляжется и кое-что сможете делать.
По Python уже многое в формате «Для тупых» рассказано, допубликую пару материалов, думаю выпустить курс для тех, кто уже отзанимался, о типичных пробелах в знаниях, умениях и навыках уже продолжающих обучение. Будет о том, как их проверить и исправить. Курс основной, с домашними заданиями и т.д. — не знаю пока, застрял на заданиях к одной из тем, тема важная, не хочется выпускать то, что по моему мнению не очень, хочется вау-задания с решениями дать.
На этом пока всё, до связи. Оптимистично верю, что раньше, чем ещё через три месяца :-)
К чему обычно приводит такая практика и почему ситуация не меняется с годами?
Несмотря на многолетние предупреждения и настойчивые рекомендации экспертов, многие разработчики по-прежнему не могут избежать включения конфиденциальных данных в свой открытый код.
Проблема возникает из-за незрелых практик кодирования, когда разработчики встраивают ключи шифрования, токены безопасности, пароли и другие учётные данные непосредственно в исходный код, чтобы упростить разработку и облегчить программам доступ к базам данных или облачным сервисам. Тем не менее, такой подход делает программные продукты уязвимыми для внешних атак.
Так, ещё в далёком 2013 году одним из независимых исследователей безопасности было обнаружено, что обычный поиск в Интернете выявляет десятки учётных записей с открытыми данными. Один из таких уязвимых аккаунтов давал привилегированный доступ к репозиториям Chromium.org, где хранится исходный код одноимённого открытого браузера.
А в 2015 году компания Uber на собственном горьком опыте убедилась, насколько разрушительной может быть эта практика. Один или несколько разработчиков сервиса Ride в то время внедрили в исходный код проекта уникальный ключ безопасности, а затем без задней мысли опубликовали этот код на общедоступной странице GitHub. Когда хакеры обнаружили, что в коде содержится ключ, они скопировали его и использовали для доступа к внутренней базе данных Uber. Злоумышленникам тогда удалось похитить множество конфиденциальной информации, принадлежащей 50 тысячам водителей Uber.
На этой неделе исследователи из компании GitGuardian сообщили о нахождении почти 4000 уникальных секретов в 450 тысячах проектах, отправленных в PyPI, официальный репозиторий кода для языка программирования Python. В их числе были ключи к API Azure Active Directory, учётные данные GitHub OAuth, ключи Dropbox, учётные данные SSH и многие другие. Отмечается, что количество таких утечек лишь растёт с течением времени.
Исследование показывает, что утечки происходят в различных типах файлов, включая основные «.py»-файлы, файлы README и тестовые папки. Специалисты GitGuardian протестировали утечки и обнаружили, что 768 из них остаются активными, что дополнительно увеличивает риски.
Для безопасного доступа к базам данных и облачным ресурсам теперь существуют различные механизмы, такие как файлы «.env», хранимые в частных средах, вне открытых репозиториев кода, а также инструменты, такие как AWS Secrets Manager, Google Cloud’s Secret Manager или Azure Key Vault. Разработчики также могут использовать разнообразные сканеры для проверки кода на случайно включенные учётные данные перед его публикацией.
Исследование GitGuardian ограничивается PyPI, одним из многих открытых репозиториев, но нет оснований полагать, что проблема не распространена и в других репозиториях.
А ты программируешь себе сидишь
Сегодня возобновил стримы, последний цикл(всего один) по словарям в Python, он завершающий в цикле «стримы по спискам в Python». Вот он — и если что-то непонятно и хочется более подробного разбора, то пишите:
Вот оба цикла стримов
Цикл стримов «Для тупых» по циклам
https://youtube.com/playlist?list=PLmn7h9eyDeMNT1cF1tC_BbiRD...
Цикл стримов «Для тупых» по спискам(+ один по словарям)
https://youtube.com/playlist?list=PLmn7h9eyDeMNT1cF1tC_BbiRD...
Живу в Америке. Ребенок в школе записался на уроки программирования. Пришел на собрание этого класса по поводу начал занятий. Огляделся. 30 человек в классе. Один азиат и мой из России, остальные индусы. Почувствовал себя нац. меньшинством.
На всех других предметах этнический состав гораздо разнообразнее.
Видеонаблюдение, наблюдения.
Здарова народ. Решил немного поделиться мыслями про видеонаблюдение. Не являюсь профи и вообще специалистом. Просто 7 лет живу в частном доме
и ради интереса балуюсь установкой камер наблюдения на участке. Не то чтобы они нужны, но очень интересно :)
Перепробовал огромное количество NVR систем, разные камеры, от дешевых до дорогих, в итоге пришел к тому что оставил камеры только одного бренда.
В моем случае это Hikvision. Удобно когда все настройки устроены по одной схеме.
Теперь к сути поста: Всегда хотелось, чтобы писались только важные события, но если вы имели дело с камерами то знаете что встроенные системы детекции движения всегда глючат в каких либо условиях.
Или это снег, или это тень от деревьев или пауки плетут паутину под теплыми лучами IR подсветки. Всего этого хотелось избежать. Вариант один - детекция объектов на основе нейронок.
В очередной приступ перфекционизма, когда увидел что за сутки записано несколько лишних гигабайт - лезу в интернет в поисках решения проблем.
Оказывается уже давно существует классный проект Codeproject AI, то что доктор прописал. Поиск на изображении объектов/номеров авто/даже face detection присутствует.
Дело за малым, прикрутить это всё к своим камерам. Первый, и самый логичный способ - это найти уже готовую систему работающую с этим API. И такие находятся
1)Agent DVR, бывший iSpy написанный на .NET одна из самых мощных и бесплатных систем видеонаблюдения, с одним маленьким но сука жирным минусом. Она жрет столько ресурсов, сколько ещё не придумали. Проц (6900hx)
полностью забит под 100% и с трудом справляется даже с 3-4 камерами, а у меня их 8.. Нафиг, выкидывам
2) Blue Stack, очень популярная на западе система , стоит не дорого. Готов был купить, но нам чуркам не продают. Поэтому были посланы. Хотя потестировал крякнутую. 8 Камер с детекцией тоже не вытягивают.
Были ещё варианты разной степени готовности и сырости, например Fregate , но хотелось чего то лёгкого воздушного особенного (как в анекдоте про водку.)
Ну что же, вызов брошен, решил сделать что-то своеё. Расчехлил вижуал студио. Забрёл на github в поисках отдельных компонент того что мне нужно.
Первое - это считать RTSP потоки с камер.
Находим замечательную либу https://github.com/BogdanovKirill/RtspClientSharp
От, возможно нашего соотечественника Богданова Кирилла, если ты тут - респект и уважуха :)
Эта библиотека позволяет вытащить потоки и получить отдельные кадры из видео.
Дальше мы эти кадры засылаем на ранее упомянутый Codeproject AI.
Он нам присылает данные о том что на изображении имеется. Люди, котики, лисы, авто итд.
Получаем данные и решаем что писать в файл что нет. Если на кадрах интересующие нас объекты - мы сохраняем картинки , которые потом, в конце дня с помощью ещё одной замечательной либы ffmpeg сохраняем отдельным суммарным видео за сутки.
Пример:
Вроде всё класно всё хорошо, но хочется большего. Например получать в телеге информацию о том что соседский котик подкрался незаметно. Или узнать когда машина с определенным номером проезжает мимо.
Цепляем ещё одну замечательную либу с телеграм ботом и получаем сразу оповещения в телефоне.
Получилось не совсем то что я хотел. Мой NVR продолжает писать видео по любому чиху параллельно. Но в основном всё что мне интересно я получаю в телегу. Где могу и видео последнее посмотреть и быстро получить изображение с камеры. Система у меня крутится на винде, на небольшом миниPC minisforum 6900hx, общая наргузка на систему (NVR плюс моя утилита) не первышает 20% Если кому интересен такой вариант - готов поделиться.
Далее, тем кто дочитал конкретика:
Софтина:
Писана для себя, поэтому с вероятностью 50% заработает у вас, но готов допилить дострогать.
Что нужно установить дополнительно:
Codeproject AI:
Download windows installer.
Можете ставитьна любую машиниу, хоть на винду хоть на линукс,докер итд.. Главное чтобы был включен Object Detection (YOLOv5 .NET)
Далее качаете FFMPEG
должна стоять на той же машине. В конфиге надо прописать путь к bin папке
Затем телега..
Идете в телегу к @botfather регестрируете своего бота, получаете ключ и вписываете его в конфиг
Затем гуглите как узнать свой ID в телеге , и вписываете его тоже в конфиг приложения. В конфиге есть два списка
- один это кому присылать постоянно уведомления, второй это кто просто может запрашивать видео и изображения с камер.
Далее заполняете конфиг, вбиваете данные RTSP каналов (вбивайте каналы в высоком качестве, прога сама жмет при запросе к AI)
Всё должно заработать, ну с вероятностью 50% :)
ЗЫ: За стиль изложения прошу простить, пишу в пьяном угаре, 2 месяца сидел в бане в пикабу, да и лето кончается, шашлык сам себя не выпьет :)
Всем привет. Мой предыдущий пост, как мне кажется, получил огромный отклик. Его добавили в сохраненное только на Пикабу более 5000 человек, более 1500 репостов в ВК и более 750 комментариев, которые разворачивались в дискуссии. А также на меня подписалось около 300 человек. Тема, как выяснилось, оказалась актуальной, и интересной людям.
Я обещал ответить на вопросы, дать комментарии и поделиться ссылками и материалами, которые помогли именно мне. Обещал – отвечаю и делюсь :)
Ещё раз хочу подчеркнуть, всё что будет ниже - является сугубо моим личным мнением и опытом. Это не будет являться гайдом «как войти в айти с двух ног за 3 месяца». Моё мнение + возможно, рекомендации. Я могу быть где-то не прав, буду рад если более опытные коллеги меня поправят.
Курсы
Весь мой негатив в сторону курсов был направлен на распиаренные и разрекламированные курсы на всем известных площадках. Те самые, которые пестрят лозунгами «Легче всего попасть в IT через тестирование, мозгов не надо, 10 месяцев и мы тебя устроим на работу». Есть определенный процент людей, которые успешно заканчивают такие курсы и находят работу, повторюсь, среди моих друзей и знакомых таких людей нет.
В самом начале пути я почти купил курс на ЯП за ~75к на системного аналитика. Но ознакомившись с программой курса я понял, что 70% из предлагаемого я уже знаю и делал, остальные 30% смогу добить в бесплатных источниках. Около двух месяцев мне настырно названивали и пытались впарить (другого слова не подобрал) этот курс. Агрессивный маркетинг только усилил мою негативную позицию.
Я ничего не имею против платных и полезных курсов, и мне не жалко заплатить за повышение своей квалификации, часть таких курсов также оплачивает мой работодатель. Но они не имеют ничего общего с ЯП, ГБ и прочими. Рекламировать платные узконаправленные курсы не вижу смысла, когда они вам понадобятся – вас или на работе отправят учиться или вы уже сами будете знать чему и где вы хотите подучиться.
Образование.
Высшее образование (ВО) по моему мнению не является обязательным фактором при устройстве на работу, за исключением, наверное, сферы информационной безопасности, госконтор, и личного желания отдельных личностей видеть кандидатов с ВО. Бизнесу нужно чтобы твои знания превращались в его деньги. Если ты сможешь сделать это без корочки – работодателя не будет волновать её наличие. Я знаю людей, которые с зарплатами от 200 до 400 работают в IT-блоках крупных банков и не имеют высшего образования.
Про качество образования можно много рассуждать, но все мои знакомые кто заканчивал профильные ВУЗы отмечали лишь то, что полученные знания им не пригодились. Всему, чему нужно было научиться – они научились на работе. У кого-то уже был диплом, кто-то специально пошел получать ВО для того, чтобы иметь возможность уехать на ПМЖ в другую страну.
Про то что ВО бесполезно, я не говорю. Некоторые работодатели более лояльно относятся к кандидатам с ВО. В Университетах мы учимся учиться и выполнять бестолковые задачи в сжатые сроки. Но поступать в ВУЗ и учиться там 5 лет только для того, чтобы сменить сферу деятельности на IT – сомнительная затея.
Материалы, книги, курсы и полезные ссылки
Теперь же, по просьбам подписавшихся на меня людей делюсь тем, что помогло именно мне. Это не реклама, не гайд, это мой личный опыт.
Для того чтобы погрузиться в мир единичек и ноликов, было бы очень полезно понять почему именно 1, почему именно 0, и как оно всё работает. В этом помогает разобраться книга Чарльза Петцольда «Код: Тайный язык информатики». Купил бумажное издание, прочитал 2 раза. Мне очень нравится. https://www.litres.ru/book/charlz-petcold/kod-taynyy-yazyk-informatiki-48447357/
Стоит обратить внимание на канал Kontur Academy. Половину курсов на канале я точно просмотрел. Есть как базовые вещи, так и продвинутые @konturacademy1485/
По сетям мне понравился курс Андрея Созыкина. На канале также каждый сможет найти для себя что-то полезное @AndreySozykin/playlists
Перечень ссылок на общие темы хотелось бы закончить одной из самых полезных для меня ссылок. Букварь по дизайну систем - https://github.com/donnemartin/system-design-primer . Там и про сети, и про балансировку, и про микросервисную архитектуру и еще про много чего полезного.
Я не владею английским на достаточно хорошем уровне, который позволял бы мне читать всю техническую документацию и статьи без переводчика, поэтому пользуюсь расширением для Chrome “DeepL”.
Программирование
Для начала нужно для себя понять, чем вам хотелось бы заниматься. Писать мобильные приложения? Игры? Делать сайты? От этого будет зависеть выбор первого языка. Я начал со Swift. Даже купил б/у макбук для этих целей.
Swift. Книга Василия Усова «SWIFT. Основы разработки приложений под iOS, iPad OS, MacOS» - https://www.litres.ru/book/vasiliy-usov/swift-osnovy-razrabotki-prilozheniy-pod-ios-ipados-i-macos-pd-24426226/
HTML, CSS, JavaScript. Мне понравился канал Богдана Станчука. Почему-то именно он вызвал у меня доверие. Прошел видеокурсы HTML – 3 часа, JS – 11 часов. Есть информация и про Git и про Docker и 10 часовой курс по Python. Да и в целом достаточно большая концентрация полезностей на одном канале @Bogdan_Stashchuk
Python. Прошел курс https://stepik.org/course/58852/promo .
Советы, которые мне давали опытные разработчики примерно были одинаковыми:
Практики должно быть больше, чем теории, не нужно пытаться всё сразу выучить
Стараться постепенно изучать и само программирование. ООП, алгоритмы и т.д.
Пет-проект обязателен. Не нужно писать калькулятор в качестве пет-проекта. Ваш проект должен быть полезным. Если это приложение для мобилок – напишите то, чем будете пользоваться сами или порекомендуете друзьям. Планировщик заданий, менеджер паролей, может быть даже интернет-магазин. По мере обучения вы будете дорабатывать и улучшать свой проект. Я до пет-проекта так и не дошел.
Тестирование
Чтобы поступить на курс по тестированию (о нём в конце) мне хватило книги Романа Савина «Тестирование ДОТ КОМ». Кто-то считает эту книгу достаточно сомнительной, но мне хватило. Плюс смотрел канал Лёши Маршала, там есть отдельный плейлист «Тестировщик с нуля» @leshamarshal/playlists . В целом, на ютубе достаточно много такого контента, не думаю, что когда вам будут рассказывать о базовых вещах информация будет кардинально различаться. Выбирайте того, кого вам будет непротивно слушать.
Одним из лучших бесплатных курсов для QA я считаю The 100-Year QA-Textbook https://mentorpiece.education/textbook/ Узнал о нём примерно через год после того как нашёл работу, прошел большую часть для интереса и расширения кругозора. Есть версия на русском, но она неполная, дополняется по мере перевода. Это полностью структурированная информация начиная с базы (сети, sql, linux, HTTP, REST, API) заканчивая техниками тест-дизайна и работой с Docker. Создатели этой книги где-то даже говорили, что «всю эту информацию можно брать и продавать на своих курсах, только указывайте автора». Не исключено, что на курсах за 100+ тысяч вы будете учиться именно по этой книге.
Аналитика
Так как я рассматривал только системную аналитику – книга Карла Виггерса и Джой Битти «Разработка требования к программному обеспечению» https://www.chitai-gorod.ru/product/razrabotka-trebovaniy-k-programmnomu-obespecheniyu-2427772
Просто были сохранены в закладках эти ссылки про BPMN и UML. Поиск информации на эти темы не должен у вас вызвать трудности.
Техническое писательство
Не сильно много информации в интернете на эту тему, выделить могу только Семёна Факторовича. Канал на ютуб @documentatio/streams
Платные курсы я пока не проходил, но планирую https://documentat.io/courses/advanced-techwriting/
Бесплатные курсы
Я сам заканчивал курс QA: https://team.cft.ru/start/school
Вам на выбор: JAVA, ML, Support, QA, Android, ИБ, Аналитика, автотестирование и другие курсы.
Лучших студентов принимают на работу. Перечень доступных городов ограничен, и зависит от направления. Но вы же можете в анкете указать город, который подходит?)
10 из 40 учеников нашли работу. Причем половина из них – в других компаниях и городах. Лично знаю нескольких разработчиков, закончивших эти курсы и получивших работу в других компаниях. И это было абсолютно бесплатно и супер полезно.
Знаю существуют подобные бесплатные школы и от ВК, и от OZON, и в Альфа-Банке что-то есть. Но я ничего про них не знаю, поэтому и рассказывать не буду.
Простыня текста, по-моему, получилась еще длиннее, чем в прошлый раз, что-то наверняка упустил, о чем-то забыл рассказать, а что-то рассказал, но криво. Мог бы еще поделиться положительным опытом в создании резюме, если это будет кому-то интересно. Если вы хотите, чтобы именно я ответил вам в комментариях, пожалуйста тегайте через @. В прошлый раз я заблудился в сотнях комментариев и, к сожалению, не всем смог ответить :(
Добавлю от себя кой-чего, как человека, находящемся на среднем звене "пищевой цепочки", но с этим имеющего богатый опыт работы с новичками, как совсем юными, так и уже в виде состоявшихся на прошлых местах дядек (даже бывшие военные были).
Самое главное, но не самое первое, что должен сделать для себя падаван, - это изучить академисческую теорию. Да, сука, без нее ника и никуда, если вы, конечно же, хотите что-то там зарабатывать:
Если вы идете менеджеры, то тут общая литература - менеджмент проектов (но и разработку бы хорошо изучить хотя бы на уровне "чайника", дабы не возникало вопросов в стиле "Хули 4 дня на изменгение цвета кнопки?!".
Если идете в аналитики, то тут хорошо автор предыдущего поста описал, но аналитика бывает двух вариантов:
Аналитика данных - тут, да, БД учить, OLAP/OLTP, СУБД и тд. Хорошо бы еще теорию данных в целом подучить.
Аналитика проектов - это следующий этап развития PO/PM:
Бизнес-аналитка - вы думаете, как сделать систему лучше.
Системный анализ - вы думаете, как заставить системы лучше взаимодействовать.
Если идете в QA, то:
Есть ручное тестирование - с этого нужно начинать, т.к. это позволит въехать в область впринципе: кейзы, сценарии, уровни тестирования и тд.
Автотестирование - это уже разработка, ибо нужно писать код для автотестов разного уровня: функциональные, интеграционные, приемочные, и тд.
Есть еще целая сфера DevOps:
DBA - это специализация на конкретных БД, причем, не только на ее администрировании, но и на использовании, поэтому нужно не только знать саму СУБД, но и теории данных, SQL/noSQL нотации конкретной СУБД, механизмы отказоустойчивости и масштабирования.
Просто DevOps, которые раньше назывались "админами": тут нужно знать теории сетей и операционных систем, знать современные технологии базирования проектов: контейнеры, оркестраторы, CI/CD системы (для них, кстати, тоже нужен хотя бы один язык, часто: Питон или Ruby).
Т.н. "сетевики": персонал, специализирующийся на работе с сетями передачи данных. Тут, имхо, вряд ли можно попасть "после 30-ти".
Разработка. Тут нужно начинать с изучения компилируемых и интерпретируемых языков, их разницы. Почему-то сейчас считается, что "войти в Питон" или "войти во фронт" за полгода реально. Реально, на позицию стажера. А где вы видели позиции стажера? Я видел один раз в жизни. Поэтому нужно выбирать специализацию в ней развиваться, затарившись тонной литературы, начиная с теории данных, заканчивая, например, в случае C/C++ теорией компиляторов.
Бекенд. Это "прослойка" между системами хранения данных и фронтами (мобильным приложение, сайтом или другим бекендом). Тут - оболие всего и вся: РНР, Питон, Go, Rust, Ruby и тд. В обоих видах языков свои плюсы и минусы. Суть бека состоит в том, что нужно знать часто минимум два языка. Например: PHP + Go, Python + Rust и тд. Т.е. связка интерпретируемого и компилируемого языка.
Прикладная разработка. Тут выбор меньше: C/C++, .Net, может, что-то еще. Хотя современные приложения могут быть написаны и на Питоне.
ERP-разработка: 1С, SAP, Axapta и тд. Обычно в такие сферы приходят случайно. Никто в здравом уме "после 30-ти" не сунется в ту же SAP или 1С.
Game Dev. Тут все понятно: берете навыки, полученные ранее, в C++, например, и изучаете какой-нибудь Unreal Engine 4/5. Сложно, долго, но можно приятно устроиться. К сожалению, в Game Dev не зайти просто на знании языка, ибо нужны специализированные знания.
Embeded-разработка. Тут выбор еще меньше: в основном, только C/C++. Очень узкая, но очень хорошо оплачиваемая сфера. Более не скажу ничего.
AI-системы. Тут просто. Есть Питон с Keras/PyTorch, построенные на TensorFlow, и есть всякие интерпретации в других языках для использования. Тут - кроме разработки нужна еще, как минимум, линейная алгебра. НО! Это очень перспективная сфера, куда можно и "после 40" зайти.
SRE. Отдельная каста супер высокооплачиваемых инженеров. Попасть "после 30" и тд - невозможно, ибо нужен огромный опыт и знания во всех областях сразу.
Так вот, самое главное - нужно учить теорию. Параллельно ли, изначально ли - неважно. Без теории 3/4 перечисленного выше - просто закрыто будет. Остальная четверть ограничится уровнем стажера. Теория написания кода, теория данных, теория информации, теория сетей, комплияторов, тестирования, анализа данных, теория баз данных - огромная сфера знаний.
Готовы ли вы тратить тонную времени? Вам решать. Причем, нужно сразу понимать, что, даже изучите вы, например, пытясь "войти в разработку" книги "банды четырех", не гарантирует вам ни-че-го просто потому, что тем же "'эйчарам" нужны конкретные навыки использования конкретных инструментов, а все остальное - это остальное (это отдельная огромная тема противостояния "эйчаров" и специалистов).
Идеальный способ "вхождения в айти" - это найти ментора. Не курсы, не школы и тд, а конкретного человека, который будет помогать и направлять вас на этом ебучем дремучем пути к льготной ипотеке.
P.S. На моем личном опыте есть печальная статистика: чем страше человек есть, пытаясь "войти", тем хуже из него спец при прочих равных. К сожалению, это так.
В посте про "наставление" накидали кучу годноты + в телегу.
По всему этому я пройдусь, буду иногда постить об успехах.
Некоторые глянул мельком. Поэтому если там есть продукт-плейсмент - отпишите и я удалю. На первый взгляд очень даже хорошо. Искал с нуля т.к. лучше повторить, чем вспоминать и ошибиться.
Первое я уже успел попробовать (находил сам), прохожу в текущий момент.
Stepik - python для начинающих
Далее пойдут те, до которых я еще не дошел:
Лучшие бесплатные курсы по DevOps [2023]
Командная строка для разработчиков – cli-for-dev
Отдельно ютуб:
Python Kivy (разработка для мобильных устройств)
Python
Длинный нудный курс по Системному администрированию (азы)
Администрирование Windows Server
Ультра-позитивный Олег о python
Если что-то хотите предложить - пишите в комментарии.
UPD: даже в начале написал, что я не в курсе ни о какой рекламе на тех ресурсах. И первый же начал разводить вонь о том, что я продажный и сайт вообще мой. Ууух я конечно злой гений.
Предлагайте ваши варианты, что сами пробовали. Обязательно попробую.
UPD2: я без понятия почему "это" вылетело в горячие. Не бейте блин тапком.
Пришла пора поговорить за бекенд, а именно, за всеми старый "любимый" РНР и иже с ним (почему "иже с ним"?, потому что сейчас часто этот язык идет в паре с Golang).
Был недалече период необходимости прохождения собеседований. Были несколько интересных случаев, правда, конторы вряд ли известные широкой аудитории, поэтому называть не буду. Штатная разработка мне давно не интересна, поэтому я искал нечто выше, типа архитектора, techlead, либо, на край, teamlead. З/п разная, но я искал 400+ (да, "Знающие" скажут, что это мало для таких позиций - я в курсе).
Т.к. я не буду называть конторы, то выскажу лишь собирательные аспекты, которые для себя выявил.
Небольшие конторы, до 100 человек. Их проблема - они часто не знают точно, кто им нужен, и легко вместо вас, опытного и подготовленного человека могут взять просто того, кто интервьюверу внешне больше понравился. У меня было несколько отказов с формулировкой "Взяли по рекомендации".
Мне еще ниразу не попадались с их стороны серьезно подготовленные в техническом плане люди. Вас легко могут спросить, чем int8 от int32 отличается.
Средние конторы, до 1000 человек. Вот, тут бывают самые интересные собеседования. Тут и компетенция интервьювером бывает самой разной. Кто-то вас может гонять по типам данных и "что выведет скрипт?", а так же сдобрив это кодингом в стиле "отрефакторите код", кто-то может попросить вас проработать абстрактную архитектуру чего-то, поспрашивать про способы ускорения и оптимизации приложений (репликации, шардинг, балансинг, кеширование и тд). Не редко просят оптимизировать таблицу и запросы к ней.
Один раз я наткнулся на очень сильного интервьювера. Мы обсуждали не просто тонкости интепретатора, но и различные возмжные последствия от его нюансов, а так же способы диагностики и устранения неполадок сервисов и приложений в "боевом режиме". Различные другие аспекты языка, типа "настоящей" параллелизации выполнения приложения.
Большие конторы. Тут основная, имхо, проблема в том, что они четко знают (действительно знают), как собеседоваать junior-разрабов, но часто совершенно не понимают, как это делать с более серьезными позициями. Я считаю, что это выходит из-за сильной корреляции ответственности между сотрудниками: в таких конторах крайне редко бывают сотрудники с экспертизой, а чаще те, кто пришел и сидит на одном месте в одной области.
Обычно у них первый этап - это алгоритмы, и не стандартные, а те, которые выдуманы интервьювером, либо около него. Почти всегда задачи максимально абстрактные и содержат слова "бесконечное кольцо", "огромный файл", "бесконечная очередь" и тд. В 100% меня спрашивали про то, как считать сложность алгоритмов, и какая сложность будет у того или иного.
Я считаю это проблемой потому, что на практике не бывает ничего "бесконечного", особенно на позиции артихектора или techlead: у любой задачи есть в 100% случаем граничные условия, от которых зависит решение (в любой, даже np-полной задаче, решение меняется в зависимости от количества элементов). Года 3 назад я еще пытался доносить это до интервьюверов, но теперь просто кидаю ссылку на профиль leetcode, если начинается "алгоритмистика" - сильно время экономит.
Не редко бывают совершенно тупые задачи в стиле "сджойнить стопицот таблиц и наложить рекурсию в одном запросе" - опять же, протсо на знание ради знаний, что не практике вы никогда не примените.
Еще почему-то меня часто спрашивали под "подкапотное" устройство http/http2 протоколов, модель OSI (sic!) и чем UPD лучше/хуже TCP. Пару раз были вопросы про OLTP/OLAP механизмы, и чем одно лучше/хуже другого.
Честно говоря, я ниразу не проходил первый этап из-за своей неприязни к подобному (что человек может нагуглить за 1 минуту), поэтому что там дальше, я не знаю :) Может, что-то действительно стоящее и интересное.
Если подвести итог, то, имхо, маленькие и большие конторы на подобные позиции не особо интересуют ваши практические технические скилы, больше - как вы себя подадите (первый этап в больших конторах - это не про скилы).
И чутка про забугорные конторы. В них часто потенциально невысокий уровень экспертизы интервьювера усугубляется наличием потенциальных индусов и всяких AWS/Azure сервисов, которые сильно разгружают (не в финансовом плане, конечно же) конторы. Так что знание этих сервисов даже, если вы идете на простую разработку, обязательны. Каждая вторая контора обязательно даст вам тестовое задание, и не потому, что "вас таких за забором дофига", а просто так.
Английский - естественно. Часто говорят про минимум В2, но на практике нужен С1, не меньше: если вам говорят, что собеседование будет на аглицком, это значит, что там будет либо native, либо fluent speaker.
Будет огромным плюсом, если вы познакомитесь с компанией заранее и проработаете свою мотивацию не в стиле "свалить из РФ".
Вообще, при собеседовании в забугорные конторы крайне важны soft skills. На столько важны, что вы обязаны научиться улыбаться, если еще не умеете. Я сейчас говорю про конторы, где HR сидит в каком-нибудь Кипре или Испании, а не те, что нанимают аутсорс рекрутеров в РФ.
Почему-то до сих пор часто конторы из заграницы уверены, что даже на лидирующие позиции достаточно 4000-4500$/мес gross, если вы из РФ. С учетом того, сколько придется на налоги и комиссии отдать, это очень мало.
Что сподвигло меня сделать это курс по Ворду? Ведь я вместо этого мог бы сыграть в 3-4 шахматных турнирах с тщательной предварительной подготовкой. Или, вообще, плюнуть на все и уехать на дачу, копать червей для рыбалки... Дело не в том, какие дороги мы выбираем. Дело в том, что такое в нас самих заставляет нас выбрать ту или иную дорогу... Когда-то давным-давно, лет 5 тому назад, один наш программист сделал для бухгалтерии функционал, который периодически рассылал сотрудникам предупреждения о разных событиях, типа неожиданных премий и т.п. Функционал основан на шаблонах Ворда и по неизвестной причине перестал работать. Надо ремонтировать! А это оказалось не так просто, как показалось сначала.
Вызывает меня как-то зам главного бухгалтера (милая приятная женщина) и говорит трагическим голосом.
- Все пропало!
- Клиент уезжает, гипс снимают? - уточнил я.
Выяснилось следующее.
Когда-то давным-давно, лет 5 тому назад, один наш программист сделал для бухгалтерии функционал, который периодически рассылал сотрудникам предупреждения о разных событиях, типа неожиданных премий и т.п.
Примерно вот такого содержания.
"Сообщение о премии".
...
Уважаемый Иванов Иван Иванович! По итогам работы за квартал вам будет выплачена дополнительная премия в размере 30 тысяч рублей. Спасибо за отличную работу.
...
Программист, сделавший этот функционал, давно уволился, никто эту программу не поддерживал, да и потребности в этом вроде как не было. Бухгалтера нажимали нужные кнопки и все работало.
Ничто не предвещало, но все-таки это случилось. Программа перестала работать. Почему, непонятно. Документации, конечно, никакой не было. Бухгалтера начали все это делать вручную. Работа простая. Нужно сделать около сотни похожих файлов Ворда и разослать сотрудникам, попавшим на эту премию.
Один раз бухгалтера это сделали, но это им сильно не понравилось. Они хорошо помнили те славные времена, когда процесс проходил за несколько минут без всяких ошибок. Теперь они ковырялись с этими файлами больше недели, да еще сделали одну нелепую ошибку. Одному сотруднику приписали лишний ноль, т.е. 400 тысяч вместо 40. Сотрудник сначала сильно обрадовался, заранее потратил кучу денег, залез в кредит. А потом еще более сильно огорчился, когда получил реальные деньги, а не просто сообщение.
Бухгалтера поняли, что программу надо чинить и обратились к нам.
Зачем вообще нужны эти извещения? Ведь все равно получатель премии узнает о ней по факту прихода денег на карту.
Ответ простой. Это старая добрая корпоративная традиция, и не нам, разработчикам и бухгалтерам, ее ломать. Народу нравится! И этим все сказано.
Короче, взялся я за дело и через некоторое время с удивлением понял, что Ворда я не знаю, и никакие курсы, справки, сайты в Интернете мне не помогали. Вроде все просто. Есть переменная, вот она, живая, но почему-то не работает. Почему, непонятно.
Позвал на помощь товарищей по работе, устроили мозговой штурм. Залезли в жуткие вордовские дебри и с огромным трудом поймали за хвост истину.
Выяснилось следующие.
В Ворде есть переменные "старого" типа, а есть "нового" типа. Программист широко использовал и те и другие. Но они совсем разные, эти переменные. И косяки у них тоже разные. У "новых" переменных есть такая жесткая особенность, нельзя их исправлять прямо в тексте. Визуально такие исправления вроде как срабатывают, но по факту это не так. Внутри все стало работать неправильно. А чтобы увидеть дефект и исправить, надо разархивировать файл docx (а это обычный zip архив, в котором несколько файлов xml) и там уже править дефектный xml. Это уже задача не для новичков!
Или, что проще, просто с нуля аккуратно переделать файл docx непосредственно в Ворде.
Так или иначе, после того, как проблема была понята и осмысленна, решить ее было уже просто.
После того как я убедился, что этот функционал успешно работает, (я сам получил сообщение о премии), я решил сделать небольшой курс по Ворду.
Хотелось, чтобы если кто-то еще столкнется с подобными проблемами, то смог бы быстро их решить.
У меня уже был успешный опыт создания подобных курсов, например: курс по Экселю.
Почему бы не сделать еще один?
Тут я уже двигался по проторенной дорожке: текстовый курс с картинками, тщательное тестирование, путем многократного выполнения нужных действий курсанта по заданному плану, видео материалы.
Я решил подробно расписать все эти особенности, "ловушки" Ворда, чтобы сделать работу с этой программой максимально комфортной.
В итоге получилось: один длинный текст с картинками, а к нему еще примыкают 3 видео.
Идея такая. Кто-то больше любит читать тексты (как я, например), кто-то больше любит, чтобы ему показывали в видео формате.
Вот в таком виде, во всех форматах курс подойдет всем, никто не останется без нужных знаний.
Вот краткие описания основных составных частей курса.
Часть 1 - Подготовка. Запуск.
Что такое Word и кому он нужен. Запуск. Наш первый файл "Hello, Word" или "Привет, Ворд". Разметка страницы. Шрифты, настройка. Вставка картинки. Гиперссылка.
Часть 2 - Переменные "старые" и "новые". Макрос VBA.
Переменные "старого типа" и переменные "нового типа". Наш первый макрос в Ворде. Ключевые моменты макроса. Устанавливаем значения переменных.
Часть 3 - Автоматизация.
Как создать 99999 однотипных документов Ворда для приглашений на праздник клиентов и/или сотрудников, расписок работников о согласии на что-то, резюме искателя работы с указанием разных работодателей и т.п. Заключение. Лайфхаки. Ссылки. Пожелания. Развлечения.
Если есть у вас интерес быстро усвоить Word (или альтернативный редактор текстов), то добро пожаловать сюда:
Microsoft Word. Майкрософт Ворд. Курс для новичков.
Там все материалы в интуитивно понятной форме. Не требуется никакой регистрации и прочего. Просто сразу получаете нужную информацию и выполняете на практике нужные действия. Информация представлена как в виде текстов с картинками, так и в формате видео с озвучкой голосом на русском языке.
Успехов!
Полная авторская версия истории "Как я сделал курс по Ворду для новичков" здесь:
#############
### Конец ###
#############