QA-инженером
Привет всем Пикабушникам, кто знает, QA-инженером вообще сложно работать или вообще есть смысл или нет ?
Привет всем Пикабушникам, кто знает, QA-инженером вообще сложно работать или вообще есть смысл или нет ?
Всем привет. Мой предыдущий пост, как мне кажется, получил огромный отклик. Его добавили в сохраненное только на Пикабу более 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. Половину курсов на канале я точно просмотрел. Есть как базовые вещи, так и продвинутые https://www.youtube.com/@konturacademy1485/
По сетям мне понравился курс Андрея Созыкина. На канале также каждый сможет найти для себя что-то полезное https://www.youtube.com/@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. Да и в целом достаточно большая концентрация полезностей на одном канале https://www.youtube.com/@Bogdan_Stashchuk
Python. Прошел курс https://stepik.org/course/58852/promo .
Советы, которые мне давали опытные разработчики примерно были одинаковыми:
Практики должно быть больше, чем теории, не нужно пытаться всё сразу выучить
Стараться постепенно изучать и само программирование. ООП, алгоритмы и т.д.
Пет-проект обязателен. Не нужно писать калькулятор в качестве пет-проекта. Ваш проект должен быть полезным. Если это приложение для мобилок – напишите то, чем будете пользоваться сами или порекомендуете друзьям. Планировщик заданий, менеджер паролей, может быть даже интернет-магазин. По мере обучения вы будете дорабатывать и улучшать свой проект. Я до пет-проекта так и не дошел.
Тестирование
Чтобы поступить на курс по тестированию (о нём в конце) мне хватило книги Романа Савина «Тестирование ДОТ КОМ». Кто-то считает эту книгу достаточно сомнительной, но мне хватило. Плюс смотрел канал Лёши Маршала, там есть отдельный плейлист «Тестировщик с нуля» https://www.youtube.com/@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. Поиск информации на эти темы не должен у вас вызвать трудности.
Техническое писательство
Не сильно много информации в интернете на эту тему, выделить могу только Семёна Факторовича. Канал на ютуб https://www.youtube.com/@documentatio/streams
Платные курсы я пока не проходил, но планирую https://documentat.io/courses/advanced-techwriting/
Бесплатные курсы
Я сам заканчивал курс QA: https://team.cft.ru/start/school
Вам на выбор: JAVA, ML, Support, QA, Android, ИБ, Аналитика, автотестирование и другие курсы.
Лучших студентов принимают на работу. Перечень доступных городов ограничен, и зависит от направления. Но вы же можете в анкете указать город, который подходит?)
10 из 40 учеников нашли работу. Причем половина из них – в других компаниях и городах. Лично знаю нескольких разработчиков, закончивших эти курсы и получивших работу в других компаниях. И это было абсолютно бесплатно и супер полезно.
Знаю существуют подобные бесплатные школы и от ВК, и от OZON, и в Альфа-Банке что-то есть. Но я ничего про них не знаю, поэтому и рассказывать не буду.
Простыня текста, по-моему, получилась еще длиннее, чем в прошлый раз, что-то наверняка упустил, о чем-то забыл рассказать, а что-то рассказал, но криво. Мог бы еще поделиться положительным опытом в создании резюме, если это будет кому-то интересно. Если вы хотите, чтобы именно я ответил вам в комментариях, пожалуйста тегайте через @. В прошлый раз я заблудился в сотнях комментариев и, к сожалению, не всем смог ответить :(
Статья из forbes от 08 августа 2022
Сейчас практически все имеющиеся вакансии нацелены как минимум на «мидл»-специалистов, говорит в беседе с Forbes выпускник «Школы 21» Сергей Пахунков: Джуны, а уж тем более стажеры, и раньше особо не пользовались популярностью, а теперь и подавно. В свете событий мировых все делают ставку на максимально быстрый результат, времени на обучение попросту нет». Его наблюдения подтверждает Владимирская. По ее словам, ситуация с junior-специалистами в IT тяжелая уже около года, а в последние месяцы она только усугубилась. «Сейчас джуны никому не нужны. Это самые дорогие кадры: они постоянно ошибаются, их надо учить, это требует вовлечения высокоуровневых специалистов, — рассуждает Владимирская. — В результате в производстве [джун] не стоит компании 60 000 рублей, а обходится во все 300 000 рублей».
Сложнее всего с трудоустройством в IT сейчас приходится джунам без профильного образования, окончившим онлайн-курсы длительностью несколько месяцев, говорят собеседники Forbes. В этом случае на сокращение числа вакансий и рост конкуренции накладывается нежелание некоторых работодателей работать конкретно с выпускниками таких курсов. Уровень таких специалистов пока довольно слабый в сравнении с кандидатами с высшим техническим образованием, считает заместитель директора департамента по работе с персоналом компании по кибербезопасности «РТК-Солар» Людмила Макарова. Она признается, что «РТК-Солар» вовсе не рассматривает прием на работу выпускников IT-курсов. «Они получают поверхностные и несистемные знания, поэтому готовности рассматривать их на позиции junior-специалистов сейчас нет», — объясняет Макарова.
Я заметил, что люди, у которых зреет мысль "а вот неплохо бы уйти в ИТ", зачастую, даже не знают, что именно скрывается за этой аббревиатурой. Их представление что-то вроде "я буду сидеть за компом, что-то там делать и мне будут платить много денег".
На самом деле, информационные технологии - это огромная экосистема, где есть масса очень важных и трудно закрываемых вакансий, не связанных с программированием.
Хороший пример - технический писатель из родительского поста. Вы, быть может, удивитесь, но чувак, способный написать и согласовать техусловия на какой-нибудь программно-аппаратный комплекс будет иметь денег на уровне топовых разработчиков этого комплекса.
Точно также быстро схантят чувака, который умеет писать циклограммы, чтобы не получался треш и угар, как в том посте Выдыхай, ангар, выдыхай!
Ощущение, что автор втайне желает, чтобы в айти не вошёл никто :) Конечно, читай теорию вместо того, чтобы приобретать навыки, которые помогут тебе устроиться, решать задачи, подтягивая алгоритмы, часто эти же задачи будут на собеседовании, делать свой пет-проект, чтобы было что интересного показать на репозитории. Теория нужна в общих чертах и чем больше знаешь в рамках джуна - тем более по остаточному принципу. Она придет сама-собой в рамках практики, когда ты будешь гуглить проблему, при этом будет куда более осознанной.
Читатель, если хочешь в айти - не слушай эти откровенно вредные советы. Все что ты приобретешь - погрузишься в дебри теории, которая для тебя ещё мало что значит, погрязнешь в ней, и в конце-концов решишь, что все слишком сложно и не для тебя, так толком и не попробовав чему-то научиться.
Добавлю от себя кой-чего, как человека, находящемся на среднем звене "пищевой цепочки", но с этим имеющего богатый опыт работы с новичками, как совсем юными, так и уже в виде состоявшихся на прошлых местах дядек (даже бывшие военные были).
Самое главное, но не самое первое, что должен сделать для себя падаван, - это изучить академисческую теорию. Да, сука, без нее ника и никуда, если вы, конечно же, хотите что-то там зарабатывать:
Если вы идете менеджеры, то тут общая литература - менеджмент проектов (но и разработку бы хорошо изучить хотя бы на уровне "чайника", дабы не возникало вопросов в стиле "Хули 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. На моем личном опыте есть печальная статистика: чем страше человек есть, пытаясь "войти", тем хуже из него спец при прочих равных. К сожалению, это так.
В посте не будет никакой рекламы говнокурсов, никаких телеграмм каналов и прочей нечисти. Исключительно моя история и моё мнение. Мой опыт в IT - 2 года, образование - высшее, но очень далеко от IT, возраст - 30+.
90% из того что мне подкидывала лента пикабу - это успешные истории программистов, которые пытаются всех научить как войти в айти прорекламировать какие-либо курсы, немножко QA-инженеров (все думают что это тестировщики, но, на самом деле это разные профессии), да и пожалуй всё.
Во всякой рекламе говнокурсов нам рассказывают что помимо программистов и тестировщиков в IT также есть:
много разных аналитиков: системные, продуктовые, бизнес, дата, BI;
Project Manager (PM, проджект менеджер);
Product Owner (PO, владелец продукта).
И все что нужно сделать, это заплатить 100к+ денег и через 10 месяцев у тебя будет работа - ложь, пиздёжь и провокация. Курсы нужны для того, чтобы нелюди, создавшие эти курсы, стали богаче. 8 из 10 знакомых мне HR-ов говорят: "Если у соискателя в резюме есть всем известные курсы - резюме автоматически отклоняется".
Самое ценное чему вас могут научить платные курсы - это понимание того, что вы просрали 10 месяцев и 100к+ денег вникуда. А любой опыт, даже негативный, по моему мнению, это хорошо.
Ни один работодатель не возьмёт аналитка (любого) после курсов. Известная истина - Отсутствие аналитика в команде лучше, чем хуёвый аналитик. А что уж говорить про PM и про PO.
Так вот, к началу моей истории. Сижу я, значит, на своей прошлой работе и упираюсь в потолок зарплаты (около 90к). Чтобы её повысить, нужно встать в очередь и дождаться пока кто-то умрёт, других вариантов нет, на этой работе с зарплатой выше чем у меня люди сами не увольняются. Работа связана и с финансами, и с анализом рынка, и с закупками, и с неебическим количеством внутренних и не очень документов, ранее я даже выполнял роль системного аналитика (когда даже не знал кто это такой и чем он занимается). Среди моих друзей есть немало тех, кто в IT уже давно (аналитики, разработчики, тестировщики), кто-то после университета попал, кто-то работает уже 10+ лет.
Почему же я вообще захотел в IT? Как бы это банально не звучало - но не ради высоких зарплат. Будучи хорошим специалистом можно зарабатывать немаленькие деньги практически в любой отрасли (наверное даже и в моей, но я, видимо, недостаточно хороший специалист :)). Что я увидел на примере моих друзей? Рецепт успеха очень простой. В IT твои знания = деньги. Всё. Больше знаешь -> Больше приносишь пользы бизнесу -> Больше зарабатываешь.
Я пробовал изучать программирование (я ведь даже 2 курса колледжа учился на программиста, но меня отчилслили) на языках Swift, Python, C#. Не моё, пошел в JavaScript (думал что Frontend это круто и мне зайдет) - не зашло. По советам программистов начал изучать не сами языки (это всего-лишь инструменты), а само программирование. И окончательно понял что программистом мне не быть. Не нравится.
Тестирование. Начал изучение с прочтения книги "Тестирование Дот Ком" Романа Савина. Продолжил просмотром тонны учебных и не очень материалов на ютубе. Продолжил пытать друзей-тестировщиков, в основном пополнил свой мозг базовыми знаниями о видах и методах тестирования. Поступил на бесплатные курсы длительностью 3 или 4 месяца, после которых лучших выпускников брали на работу. 10 учеников из 40 получили оффер, я тоже был в их числе, но на тот момент мне уже удалось сменить профессию. Однако мне также удалось понять что мне не нравится тестировать и хорошего тестировщика из меня не выйдет.
Аналитика. Погружение в аналитику началось с прочтения книги "Разработка требований к программному обеспечению" (Карл Виггерс, Джой Битти). Очень понравилось, начинал понимать что это именно то, чем я хочу заниматься. Попутно, опять же, просмотр тонны видео на ютубе, изучение SQL на базовом уровне (Книга "Изучаем SQL", А. Бьюли + практические задачи, опять же на бесплатных сайтах).
Прошло около полугода самостоятельного обучения. Я научился на ютубе отделять полезный материал от развлекательного. Посмотрел множество бесплатных и качественных курсов от реальных преподавателей про сети (Стек OSI, TCP/IP, HTTP), криптографию (хеширование, шифрование), сертификаты, аутентификацию (basic, JWT), авторизацию (ABAC, RBAC) и еще ряд других полезных материалов. Но вечно учиться нельзя и я решился на смену работы. Составил продающее резюме (про составление которого тоже пришлось отсмотреть немало материала) и пошел откликаться на вакансии. Выяснилось, что полученных знаний, смежного опыта работы и софт-скиллов оказалось достаточно чтобы получить предложение о работе Техническим писателем (техпис) в одном из банков. Это был мой первый оффер в IT на 120к на удалёнке.
Вот тут для меня было открытием, что есть еще какие-то технические писатели в IT. Слабо представлял чем же мне предстоит заниматься и снова пошел искать информацию и бесплатные курсы. Нашёл, понял что техписы тоже бывают разные. Но всех их объединяет один навык - создание понятной и полезной документации (как технической так и пользовательской). Так сложилось что занимаюсь я описанием только технической документации (в основном Архитектура систем и интеграций). Мне пригодились абсолютно все знания что я получил ранее, но, само собой, были и пробелы. Познал принципы построения микросервисной архитектуры, основы работы в linux, работу балансировщиков нагрузки, брокеров сообщений и другие полезные, и не очень вещи.
К чему вообще вся эта простыня текста. Моё видение "войти в айти после 30" такое:
Никаких разрекламированных платных говнокурсов;
Захочешь - войдешь;
Учиться нужно только той профессии, которая действительно нравится и приносит удовольствие;
Учится нужно всегда;
Вся необходимая для старта информация есть в интернете в бесплатном доступе.
Другие мои друзья и родственники, глядя как растёт моя зарплата и успешная успешность (сарказм) тоже захотели в IT. Никто не смог ответить почему именно IT и чем именно они хотят заниматься. Я честно пытался всем помочь, рассказывая всё что знаю, делясь книгами и полезными ссылками. Из 7 человек за год никто ничему не научился и не пошел менять работу. Конец.
Ничего не продаю, ничего не рекламирую. Зачем я всё это написал - не знаю, просто хотелось поделиться своим видением. Если вдруг ко мне будут вопросы - постараюсь ответить :)
P.S. Я не на работе, и вылизывать текст на правильность запятых и орфографию - нет желания. Если вы нашли ошибки, можете позлорадствовать что где-то работает плохой технический писатель :)