Программирование для гуманитариев – Telegram
Программирование для гуманитариев
6.77K subscribers
66 photos
4 videos
219 links
Личный опыт того, как скипнуть в IT с гуманитарным образованием. Что для этого делать, чего стоит бояться (спойлер: ничего!) и чего ожидать. Рассею мифы о программировании и мире IT.
Бот для вопросов об IT: @hum_it_bot
Download Telegram
#вашивопросы

Здравствуйте! DevOps это сисадмин с элементами знаний программиста, или программист, который полностью может и заменить сисадмина? Или таковыми могут называть всех, кто знает и ту, и другую работу?

Я вижу началась путаница в терминах, всё ж таки «гибрид» программиста с админом - это скорее метафора.

Давайте разберёмся, что значит DevOps. Прежде всего, это не человек и не профессия, DevOps - это процесс, либо методика разработки и поставки готовых программ пользователю. Расшифровывается это слово как Development + Operations, development - это собственно разработка программ, а operations - эксплуатация, то есть сборка, поставка в продакшен, мониторинг за работоспособностью программ.

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

Что же такое DevOps? Девопс - это процесс или идеология или методика, как угодно, которая подразумевает объединение функционала Dev и Ops. Либо сближение и более тесное взаимодействие этих двух областей.

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

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

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

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

И как счас называют сисадминов, что за серверы отвечают? Есть же навен ещё у них свой старший? Наподобие тимлида у программистов

Админов, которые отвечают за сервера, называют администраторами серверов (неожиданно, правда?). А старших среди них называют старшими администраторами, тех, кто руководит командой - называют тимлидами, а самых старших - руководителями отделов. Есть еще технический директор, но это обычно руководитель уже над всем IT в компании, не только над админами. 🙂

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

Я изучаю Python, по видеокурс от Tceh (Может слышали про такой?) и по книжке Свейгарта "Автоматизация рутины". И чем больше я узнаю, тем больше понимаю, что ничего не понимаю и как много еще нужно выучить. И на некоторые темы приходится тратить столько времени, и концентрации что я уже начинаю подзабывать прошлые. Было ли у вас такое? И как вы с этим справлялись? Если постоянно возвращаться к старому, то прогресс в изучении минимальный. А к другим инструментам изучения у меня в данный момент нет доступа.(Работаю в море, интернета здесь хватает на телеграмм и максимум какие-то статьи найти.)

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

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

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

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

Или вот оттуда возьмите идеи для проектов.

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

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

Интересует такой вопрос: как пройти техническую часть собеседования, если даже на простых вопросах у меня возникает ступор? Как вообще запоминать такие огромные объемы информации, которые могут понадобиться для прохождения технической части собеседования?

Этот вопрос мне напоминает предыдущий от другого подписчика.

«Запоминать огромные объемы информации» для меня звучит как зубрежка без понимания сути. Я не сторонник «выучивания» материала - главное добиться понимания, умения рассказать своими словами, как что устроено. Когда читаете книгу или статью - старайтесь уловить суть и ответить для себя на вопрос - почему это информация важна и как её можно и нужно учитывать при написании кода (если вы программированием собираетесь заниматься).

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

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

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

Задать вопрос автору блога можно здесь: @hum_it_bot
​​Вебинар «Открытое алгоритмическое собеседование»

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

Проведёт собеседование Илья Акользин — автор курса «Алгоритмы для разработчиков» в Яндекс.Практикуме. Собеседоваться будет Илья Архипов — выпускник курса, разработчик DLP системы Falcongaze SecureTower.

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

12 мая в 19:30 (Мск)

👉 Подробности и регистрация
Из ваших вопросов у меня создаётся впечатление, что многие заходят как будто не с того конца.

Многие мои подписчики, когда просят совета, рассуждают примерно так: сделать первый шаг в IT - это что-то очень серьёзное, на это нужно долго решаться, минимум полгода выбирать курсы, читать отзывы, и думать, думать, думать - готов ли ты к таким крупным переменам в своей жизни, как бросить всё и идти учиться, менять профессию. Ну и, конечно, морально готовиться отдавать 100 тысяч рублей за какие-нибудь курсы.

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

А чтобы понять, что это такое, и надо ли оно вам - нужно сделать первый шаг. Не ждать, не думать, не сомневаться, не взвешивать какие-то «за» и «против» и даже не читать статьи на Хабре - всё это по сути прокрастинация, и она вас никуда не сдвинет. Что же такое первый шаг? Да хоть книжку какую-нибудь купить и прочитать, и попробовать повторить примеры из неё. Интересует администрирование - почитайте про линукс, например (интересует программирование - тоже про линукс почитайте). Или курс какой-нибудь бесплатный пройдите - они есть в Интернете, если искать не только на топ-5 рекламируемых платформах.

Попробуйте, поэкспериментируйте, проработайте примеры и учебные упражнения. Если речь идёт о программировании - напишите какую-нибудь маленькую простую программу (ну, скажем, игру «виселица» или «крестики-нолики» - консольную). И вот тогда, в процессе, уже ответьте себе на вопрос - вам интересно? Хотели бы лучше в этом разбираться? Хотели бы больше времени посвящать обучению? Хотели бы в будущем устроиться на работу, где будете заниматься такой работой?

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

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

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

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

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

Где они используются? Ну во-первых, они встроены в современные текстовые редакторы для написания кода и таким образом можно найти и заменять в тексте что угодно на что-то-то другое по вашему шаблону. Они используются для тех же целей во многих Unix-утилитах - например, grep или sed. Их поддерживают большинство современных языков программирования, и регулярные выражения можно использовать в вашем коде.

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

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

. (точка) - означает любой символ (букву, знак пунктуации, пробел или перенос строки). Например, регулярное выражение «к.т» найдёт в тексте слова «кот», «кит», «кiт», «к8т».

\n - означает новую строку

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

Также есть символы, указывающие, сколько раз в шаблоне может повторяться какой-либо символ (или набор символов).

* (звёздочка) - означает «сколько угодно повторений символа, стоящего перед ней». Сколько угодно, включая ноль. Например, возьмём регулярное выражение «кот!*». Оно означает, что мы ищем строку «кот» + какое угодно число восклицательных знаков после неё. Нам подойдут такие случаи, как «кот» (ноль знаков !), «кот!», «кот!!!!» и так далее.

+ (плюс) - похож на звёздочку, он означает сколько угодно повторений символа, но не менее 1 раза. «кот!+» - уже не найдёт строку «кот», так как в ней нет восклицательного знака.

? - означает, что какой-то символ встречается либо 0, либо 1 раз. Например, «https?::» - найдёт нам в тексте и «http::» и «https::».

Специальные символы можно комбинировать. Например, «к[ои]+т» - означает, один или более символов, указанных в скобках. Этот шаблон найдёт слова «кот», «кооот», «кит», «киоооит».

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

Главное - никогда не пытайтесь парсить html с помощью регулярных выражений.
Вот пример поиска совпадений в тексте с помощью регулярных выражений в текстовом редакторе Visual Studio Code
Чему не научат на курсах

Знаете, что меня удивляет?

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

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

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

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

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

Мои подписчики любят метафоры, поэтому приведу вам такой пример.

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

Другой ученик - послушал как учитель рассказывает о генетике и экспериментах Менделя по скрещиванию сортов гороха и думает - «Интересно! Я хочу глубже разобраться в этой теме». Дома он погуглил ещё об экспериментах Менделя, почитал кое-какие статьи (да хотя бы википедию), пошел в магазин и купил несколько сортов гороха, чтобы повторить эксперимент. Ну в общем, вы поняли идею, да?

Какой из двух учеников станет успешным ̶п̶р̶о̶г̶р̶а̶м̶м̶и̶с̶т̶о̶м̶ биологом, а какой будет говорить: «ой, у нас в школе такая слабая биология была, я вообще ничего не понял! И учитель абы как объяснял, ужасное у нас образование!».
Гуглить нужно на английском языке

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

Почему именно на английском? Большая часть информации по IT в Интернете написана на английском языке. Используя английский язык, скорее всего, вы найдёте ответы на 100% ваших вопросов. На том же Stackoverflow уже наверняка кто-нибудь задавал точно такой же вопрос - особенно это касается вопросов от начинающих разработчиков. И задачу, которую вы сейчас решаете, скорее всего, уже решили тысячи людей по всему миру и об этом где-то написали.

Русскоязычных источников же не так много. Да, возможно, вам попадётся полезная статья на Хабре, но Хабр не такой большой, как весь англоязычный Интернет. Сейчас стали появляться сайты с машинным переводом англоязычных источников на русский язык - например есть русскоязычная версия stackoverflow. Но перевод там настолько плохой, что я, например, часто даже не понимаю, что там написано. Кроме того, пользователи русскоязычных форумов для айтишников, почему-то в среднем менее дружелюбны, чем на аналогичных зарубежных платформах. На stackoverflow есть масса «глупых» вопросов от новичков с вежливыми и полезными ответами от более опытных коллег. В русскоязычных же форумов часто встречаются любители хамить или унижать новичков за «глупые вопросы».

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


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

Я сама некоторое время преподавала английский язык и подрабатывала репетитором, и обычно с первого общения с учеником было понятно, справится он с этой задачей или в итоге всё забросит.

Чтобы выучить иностранный язык - нужна чёткая цель, ответ на вопрос «зачем я его изучаю?».
Ответы, которые не работают: «для себя», «для саморазвития», «чтобы общаться в поездках».

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

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

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

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

Тут - мой пост с подборкой ресурсов для изучения английского языка.
Друзья! У меня сейчас слегка творческий кризис - кажется, что я уже рассказала, всё, что могла по теме начала карьеры в IT на этом канале в предыдущих постах.

Поэтому напоминаю, что у меня есть бот для ваших вопросов @hum_it_bot - в нём вы можете спросить обо всём, что касается первых шагов в IT - обучении, трудоустройстве, проблемах, с которыми сталкиваются новички и Junior-специалисты.

На самые интересные вопросы я отвечаю постами в канале, как вы помните. А на совсем простые - в личку. В общем, пишите.
#вашивопросы

Я хочу работать над vr/ar software, какой стэк технологий необходим для этого, с чего начать?

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

Тогда в любом случае первое, что вам понадобится - это введение в Computer Science и программирование (например, тот же курс CS50).

Дальше предстоит выбрать, какой язык вы хотите использовать в работе. По статистике, в VR технологиях чаще всего исползуется либо C#, либо C++. Если хотите идти более лёгким путём, изучайте C#. С++ - посложнее, но и мощнее. Также, если верить статьям в интернете, в область VR/AR стремительно врывается JavaScript, так что теоретически и он может оказаться не лишним.

Если вам интересует разработка игр c VR - то тут если вы выбрали C#, то нужно будет осваивать игровую платформу Unity, а если C++ - то Unreal Engine.

Также вам потребуется выучить SDK (software development kit) для VR и AR устройств - то есть библиотеки и инструменты, необходимые для разработки под конкретный девайс. Изучать нужно то, что пригодится для девайса, с которым вы собираетесь работать. В интернете пишут, что самые популярные устройства - это HTC Vive и Oculis Rift.

Если вы планируете сами создавать 3D-модели, а не использовать готовые - то тогда нужно будет освоить собственно 3D-моделирование и софт, который для этого используют (Blender, Autodesk Maya и др).

Пригодится и знание UX/UI-дизайна.

Это очень сокращенная выжимка, подробнее читайте в статьях:
- https://www.perforce.com/blog/vcs/virtual-reality-software-development
- https://www.globaltechcouncil.org/virtual-reality/skills-needed-to-become-a-virtual-reality-developer/
- https://hackernoon.com/9-must-have-skills-to-become-an-arvr-developer-with-course-recommendations-e15s317e
- https://blog.pusher.com/how-you-can-become-an-ar-vr-developer/

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

Как можно проверить ит компанию для трудоустройства? Сайты специальные и тп

Вы имеете в виду, проверить, что компания - не мошенники? Можно погуглить отзывы от сотрудников данной компании, а также поискать всю открытую информацию, доступную по ней. Потом, если будете туда трудоустраиваться - будьте внимательны к тому, что вам предлагают - будет ли зарплата «белой» и всё ли по ТК? Потому что, сами понимаете, чёрная и серая схемы оплаты труда работают «на честном слове», в случае чего по закону работодатель вам ничего и не должен.

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

Хотел бы узнать, как обстоят дела с фрилансом в мире IT. Как можно найти первых заказчиков? Где их находить и сколько времени надо потратить, чтобы начать брать большие заказы?

Я считаю, проще всего и надежнее первое место работы всё же искать в качестве штатного сотрудника - поработаете 1-2 года, освоитесь, и при желании можно будет переключаться на свои проекты.

Реально ли выйти на фриланс без этих шагов? Ну если очень хочется - можно и попробовать, почему нет? Но вам придётся сформировать какое-то портфолио из готовых проектов, чтобы можно было обосновать свой профессионализм и находить клиентов. А искать заказчиков можно на различных биржах для фрилансеров, например, kwork. Также ведите профиль в linkedin, там можно будет в будущем искать заказчиков. Спрашивайте знакомых-друзей, может кому-то нужен внештатных специалист для их бизнеса или на работе.

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

9 лет работаю в сфере сервиса. 7 из них руководителем крупного подразделения сервиса. Упёрся в потолок и хочу поменять сферу деятельности. Был глубоко удивлён, что мои управленческие и коммуникационные навыки не заинтересовали ни одну компанию, куда откликался на их резюме. Что делать? Может быть есть площадки, где можно потренироваться на проектах, наработать опыт, который заинтересует работодателей?

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

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

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

Также никому не повредит MBA, даже если речь идёт не об IT. Опыт и навыки - это хорошо, но рынок иногда требует, чтобы мы не останавливались на достигнутом, а продолжали искать пути для повышения квалификации.

Что касается других не технических и около-менеджерских профессий в сфере IT - можно рассмотреть какие-нибудь курсы по project-менеджменту или product-менеджменту - cмотря что вам ближе. Тут - мой пост с подборкой продуктовых и менеджерских курсов на популярных платформах. Полагаю, там должны быть включены в программу какие-то учебные проекты, на которых можно потренироваться.

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

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

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


Мне 19 и я на третьем курсе вуза.
А вот на каком уровне знаний стоит пытаться устраиваться куда-либо джуном?

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

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

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


У многих в вакансиях указаны какие-то фреймворки как обязательные, а я о них максимум только слышала.
И если так под каждую вакансию учить фреймоворк (например, вроде бы всё подходит, но оп, привет Котлину, которого я ещё не знаю, начинаю смотреть другие, — оп, привет Симфони в заявке на поиск бекенд-разраба, джуна, смотрю ещё, и оп, привет Ларавел, которого я не знаю, зато знаю всё остальное из вакансии.


А пока я это всё учу, уже что-то новое появляется и вакансии становятся ещё более заумными и требовательнее, ДАЖЕ на джунов.

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

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

Просто, суть в том, что глядя на вакансии я понимаю, что мой уровень не дотягивает даже до них, но каким чудом тогда люди слабее меня устраиваются по ним?


И на каком этапе знаний стоит уже пытаться проходить собеседования и всё такое? Обязательно ли знать всё, что требуют в вакансиях хотя бы на джунов или там действительно ищут каких-то сверхлюдей?

Ответ будет в следующем посте.
Отвечаю на вопросы из предыдущего поста.

У автора вопроса ярко выраженный перфекционизм. Это, с одной стороны, очень хорошо, но есть и оборотная сторона. При таком подходе можно превратиться в вечного студента и всю жизнь «доучиваться», так как ты всегда считаешь, что «не готов» и «не достаточно хорош». У вас вечно будет синдром самозванца, даже когда вы найдёте работу - вот увидите).

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

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

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

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

Гонка «на скорость» и попытка усвоить как можно больше и быстрее в вашем случае не нужны вообще. Это в любом случае станет скачкой «по верхам». Стэк формируется, опять-таки, в процессе работы, в процессе набивания шишек и граблей. Чтобы разбираться в том же PostgreSQL, к примеру, нужно год и дольше ковыряться с ним на работе, сражаясь со всевозможными неполадками - вот тогда знание приходит. А «на лету» этому никак не научишься.

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

Задать вопрос автору блога можно здесь: @hum_it_bot
Как попасть в IT-индустрию без программирования?

Программирования многие боятся - всё же, чтобы его освоить, понадобятся определённые усилия.
Но можно ли начать карьеру в IT с меньшими энергозатратами, есть пути попроще?

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

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

Обучение этой профессии предлагает школа Skillfactory в рамках курса «Тестировщик ПО». Тут вам ждут занятия в симуляторе, обучение азам Python для автоматизации тестов, Selenium и работа с багтрекерами для поиска ошибок в коде. Упор делается на практические занятия, приближенные к реальным задачам.

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

Подробности и регистрация на курс — https://clc.am/UuZS5Q
#вашивопросы

Какие адекватные требования к react джуну разработчику? Интересует стек технологий, которые надо знать

Я сама больше по части бэкенда, и фронтенд-разработчиков не собеседовала ни разу. Чтобы понять, какой вам нужен стэк - откройте тот же хэдхантер, и ищите вакансии по ключевым словам Junior и React - посмотрите, какие требования в вакансиях чаще всего встречаются, и ориентируйтесь на них. Также в гугле посмотрите статьи на эту тему от разработчиков-фронтэндеров.

Как вы думаете, реально ли устроиться стажером на удаленную работу, как для первой работы программистом Python, зная основы алгоритмов и синтаксис?

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

Программировать не умею. Но есть интерес создать игру, или приложение для телефона. Есть ли какие то инструменты, чтобы это можно было сделать с минимумом знаний в программировании?
Или это гиблое дело и игра не стоит свеч?


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

Подобные же решения есть и для создания мобильных приложений - читайте тут.

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

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

Задать вопрос автору блога можно здесь: @hum_it_bot
#вашивопросы

Как стать qa engineer?

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

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

Насколько реально получить профессию в IT сфере и найти работу в дальнейшем в 38 лет?

Об этом я, конечно, уже писала много раз. И ответ всё тот же - реально ли? Зависит от вас. В первую очередь вопрос в том, хватит ли у вас желания, мотивации, интереса к предметной области, да и банально времени, чтобы переучиться на специалиста в области IT. Причем, важна мотивация стать именно хорошим специалистом и глубоко погрузиться в область. Если вы расцениваете это как некую халтурку - тогда нет, не получится. А если вы готовы всерьез работать над своими знаниями и скиллами - тогда да, тут решают в первую очередь скиллы.

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


Задать вопрос автору блога можно здесь: @hum_it_bot
​​Кто уже успел познакомиться с Lunix (или любой другой Unix-подобной операционной системой), тот, наверно уже сталкивался с тем, что у стандартных утилит и консольных программ очень много различных флагов и параметров, которые сложно запомнить.

Например, краткая инструкция по использованию утилиты grep выглядит так:

grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]


Некоторые утилиты (не все) принимают параметр --help, и выдают краткую подсказку по использованию (например, выше - вывод команды grep --help.

Более подробную инструкцию с расшифровкой всех аргументов и параметров можно получить, обратившись к встроенному мануалу командой man:

man grep

Так же никто не запрещает гуглить.

А еще я не так давно наткнулась на сайт, который расшифровывает каждый флаг и каждый параметр для распространенных утилит под Unix: https://explainshell.com

Например, вводите туда готовую команду:
find -type file -d 1 -name *.txt ~/

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

#вашивопросы

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

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

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

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

Реально ли устроиться без образования психолога или социолога? Я склоняюсь к мысли, что в наше время реально всё. Но в таком случае вам придётся получить недостающие знания самостоятельно. Тем более само по себе наличие «вышки» по психологии еще не означает, что человек прям как свои пять пальцев освоил всю методологию, которая пригодится для такой работы.

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

Но, как я уже сказала выше, эти 2 роли могут сливаться в одну, и если смотреть вакансии, там часто пишут UX аналитик/исследователь в описании одной и той же вакансии.

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

Задать вопрос автору блога можно здесь: @hum_it_bot