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

Привет, я хотел бы узнать у вас стоит ли покупать какие-то платные курсы по типу SkillFactory... И есть от них толк сильный?

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

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

Если сформулировать вопрос "можно ли обойтись без платных курсов и стать программистом"? - То тоже можно. Знаю примеры, как люди учились сами по книгам. Сама я училась по бесплатным курсам. Но тут опять-таки вопрос личной мотивированности и трудолюбия. Кого-то наличие расписания, преподавателей, зачётов дисциплинирует и помогает организоваться. А проверка заданий и консультации с менторами полезны всем.

Если сомневаетесь - начните с бесплатного курса, скажем CS50 (мой любимый) - проект edx, кажется, Россию заблокировал, но есть варианты в русском переводе - https://t.me/it_human/275.

На тему этого вопроса, о платных и бесплатных/дешевых курсах я писала уже тонну постов с размышлениями:
- https://t.me/it_human/180
- https://t.me/it_human/236
- https://t.me/it_human/179
- https://t.me/it_human/366
И многие другие.

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

Здравствуйте!
До февраля буквально отовсюду слышала, как хорошо войти в IT,что можно получить относительно быстро перспективную профессию и тп. При этом как самый быстрый вариант упоминалась профессия тестировщика.
Что изменилось за последние 4 месяца? С одной стороны, говорят, много айтишников уехало и нехватка. С другой стороны- наверное, и часть проектов сворачивается. И еще слышала мнение, что по-прежнему высок спрос на миддл-специалистов и выше, а вот потребность в джуниор существенно просела. Притом же те, кто сейчас отучится, джуниорами и будут. И удаленно джуниорам тоже не вариант.
Что-то можете подсказать в свете последних событий? Стоит ли учиться сейчас и чему?

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

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

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

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

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

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

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

Задать вопрос автору блога можно здесь: @hum_it_bot
Вот опять сегодня пишут как будто с запросом "а уговорите меня идти в IT, мне не очень хочется и масса сомнений, но говорят там клёво".

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

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

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

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

Хотелось бы узнать, что изменилось в сфере IT после начала «спецоперации» и введения санкций, то есть нет ли ограничений в области применения продуктов, которые принадлежат зарубежным компаниям, например Git (насколько я знаю, что это продукт зарубежный), и возможно как то поменялись взаимоотношения с зарубежными коллегами, если приходилось сотрудничать по части проектов. Если, предположим, It в нашей стране окажется отрезанным от европейских и американских рынков как это может отразится на отрасли и возможно ли такой исход.

Смотрите, далеко не все продукты "принадлежат" каким-либо компаниям. К таким продуктам относятся проприетарные продукты - это значит, что все права на ПО, и в том числе на исходный код принадлежат какой-нибудь корпорации - к примеру, Microsoft или Oracle. И в случае с такими компаниями есть риски их полного ухода с нашего рынка или как минимум, некоторого объема санкционных ограничений.

Что же касается git - он, как и к примеру многие дистрибутивы Linux - это продукт с открытым кодом (open source). Написал git тот же человек, что придумал сам Linux - Линус Торвальд. Распространяется git по лицензии GNU General Public License - эта лицензия означает, что любой пользователь имеет право копировать программу, распространять, изучать её исходный код и даже менять его под свои нужды. Как видите, такая лицензия не предусматривает никаких ограничений и санкций. Это же касается и всего Open Source - а его в мире много.

Тем не менее, у open source-продуктов тоже есть свои риски. В теории любой человек может внести любое изменение в open-source проект или библиотеку для языка программирования. По этой причине в марте было много случаев, когда в опенсорс-проекты (особенно в библиотеки под javascript) просачивался вредоносный код, направленный против российских пользователей - в виде своеобразной мести. В каких-то случаях в библиотеках вместо станадртных графических элементов появились украинские флаги или агитационные тексты (в итоге кто-то обновляет код сайта, и на сайте появляется на самом видном месте украинский флаг и агитки - а сайт может принадлежит какому-то важному ведомству, и, конечно, такое там никаким чиновникам не понравится). Видела случаи, когда разработчиками какого-либо проекта являлись украинцы, и они закрывали доступность такого проекта в России (по крайней мере, без VPN).

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

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

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

Так что пока ситуация на уровне - сложности есть, и будут в дальнейшем, но о полном коллапсе пока речи не идёт, в целом продолжаем работать.

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

Я филолог. Закончила обучение в Томском государственном университете-тестировщик ПО. 1,5 мес обучения захватили меня по полной программе! Хочу очень продолжать дальше следовать по этому пути. Вопрос: в каком направлении дальше целесообразно двигаться? Учиться? Какие лучше курсы тогда? Если пробовать трудоустраиваться - нужны ли тестировщика без опыта, только что закончившие обучение (всего 1,5 мес, но плотненько).

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

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

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

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

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

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

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

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

Доброго времени суток. Активно изучаю Python и смежные области (git, docket, linux, ci/cd, etc.) на протяжении года, что помогло мне устроиться в it сфере и быстро продвинуться по карьерной лестнице. Но пока что не в должности разработчика. В моей компании требуются разработчики на Go и мне бы хотелось сменить амплуа. Возможно ли эффективно изучать оба языка одновременно и не потерять при этом в качестве обучения?

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

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

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

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

На самом деле разные языки программирования - это похожие инструменты, и опытный разработчик мыслит не на уровне "как написать программу на питоне/go/java", а на уровне "как правильно программировать и писать программы" - не важно, на каком языке.

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

Так что ответ - да, изучайте Go, почему бы и нет.

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

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

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

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

Причем, эти языки гораздо проще, чем те языки, на которых мы общаемся в жизни - например, русский или английский. Языки программирования созданы для написания простых, логичных и однозначных инструкций - в отличие, от естественных языков, в которых много всего размытого, абстрактного и двусмысленного. На языке программирования можно сказать компьютеру: "Сложи два числа и сохрани их в этой переменной" или "Если результат будет больше 100, выведи предупреждение 'превышен лимит'". "Если у пользователя количество денег равно нулю, выведи ошибку: "Недостаточно денег, пополните счет". И так далее - простые приказы и инструкции, часто с уточнениями - при каких условиях какие инструкции выполнять. Причем, эволюция идет в сторону упрощения этих языков инструкций, они становятся всё более высокоуровневыми, простыми и понятными для людей, и далёкими от "языков компьютера" - например, ассемблеров, и, тем более, машинного кода - то есть набора нулей и единиц, которые компьютер превращает в электрический сигнал.

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

Вы когда начинали и чуть дальше, ЯП PHP вы знали на уровне: подключить БД, соединиться с сервером для сохранения логина и пароля или намного глубже, так как для Веб-разработки требуется больше знаний чем я перечислил?
И правда ли что даже сейчас JS не безопасен для сервера до сих пор легенда или все-таки в компаниях без PHP обходятся?
Просто я несколько сайтов прочитав, понял PHP более безопасный , чем другие ЯП работающие с сервером (искл. мб. ASP NET Core)

Я никогда специально не изучала PHP. Всё мое знакомство с ним: как-то написала на нем небольшой сайтик - было такое задание в одном из курсов, которые я проходила (в принципе, имея опыт работы с другими языками, часто с помощью гугла несложно сделать то же самое и на незнакомом для тебя языке). Так же на одной бывшей работе приходилось слегка копаться в коде одного второстепенного проекта на PHP. В остальном, ни на одном моем месте работы PHP как основной язык бэкенда никогда не использовался. Был Python, C#, Go а PHP - никогда.

На счет JavaScript: я его чаще встречала в качестве языка для фронтенда. Да, есть серверный node JS, но чтобы на нём был сделан бэкенд, я никогда не видела на практике. Видела только, как фронтовую часть сайта запускают в качестве отдельного приложения, как раз на node.js, но бэкенд, с которого она получала данные всё равно был на Python, Go или Java. Так что без PHP в компаниях прекрасно обходятся. Без Javascript - обычно нет, всё же для фронтенда нужная вещь.

А что касается (не)безопасности Javascript - тут ведь дело вообще не в конкретном языке программирования. Веб-сайты и приложения работают в Интернете, а в Интернете в принципе опасно, и кто-нибудь в любой момент может захотеть взломать ваш сайт. Чтобы такого не происходило, нужно разрабатывать сайты с учетом рекомендаций по кибербезопасности. Например (это классика), не давать взломщикам возможность использовать SQL injection attack - это когда пользователь сайта имеет возможность написать свой (вредоносный) SQL и отправить его на сервер, а сервер возьмёт и выполнит этот SQL - и, к примеру, удалит все данные из базы данных. Многие сайты в Интернете подвержены этой атаке - например, если формы для сохранения логина/пароля итд сделаны не безопасным способом, и данные оттуда подставляются прямо в SQL на стороне сервера, без всякой проверки и экранирования.

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

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

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

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

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

Вообще сисадмин - понятие растяжимое. Бывают админы, скажем, так, начального уровня, их еще называют "эникейщиками" от выражения "press any key". Такие ребята нужны в помощь простым пользователям, чтобы помочь выполнить простейшие задачи по настройке компа - например, Windows поставить для бухгалтера, принтер подключить и так далее. Такие вещи, разумеется, умеет делать и любой разработчик.

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

А что пригодится? Во-первых, мы пишем программы, которые взаимодействуют с какой-либо операционной системой. Поэтому уметь работать с ОС - необходимо. Чаще всего, хоть и не всегда, речь идет о Linux - так что изучите как минимум основные Unix-утилиты и научитесь писать bash-скрипты. Хотя бы легкое введение в архитектуру ОС будет очень полезно. Также разработчики часто работают по методологии DevOps - это значит надо уметь не просто написать какой-то код и передать его другим людям, которые потом что-то с этим кодом будут делать сами. Это значит, надо уметь упаковать свой код так, чтобы получилась работающая сборка, и запустить эту сборку на сервере, чтобы она там работала в автоматическом режиме. Сам процесс деплоя чаще всего тоже автоматизируют, если речь идет не о какой-то совсем небольшой компании, где всё делают на коленке. Поэтому как освоите linux - заодно изучите, что такое Docker и как с ним работать. Посмотрите, что такое systemd, как настраивать iptables (хотя бы фаервол), ansible еще может пригодиться для развертывания разных конфигов. А когда запустите свою программу - нужно еще и мониторить, что с ней всё в порядке, и в случае чего оперативно чинить, а также чтобы она весь сервер не сломала - например, не сожрала всю память или не заполнила своими данными всё доступное дисковое пространство. Для мониторинга за серверами и за отдельными приложениями используют определенный набор инструментов, ключевые слова - zabbix, grafana и не только.

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

Бот для ваших вопросов: @hum_it_bot
Программирование для гуманитариев
#вашивопросы Здравствуйте. Можете пояснить, обязательно ли разработчику например в бэкенде или специалисту по датасаенс, иметь технический бэкграунд, обладать навыками сисадмина? И посоветуйте, пожалуйста, ресурсы, где можно почитать/посмотреть/приобрести…
Теперь к вопросу о том, как освоить навыки работы с ОС, необходимые для хорошего разработчика-бэкендера.

Рассказываю на примере Linux, так как у разработчиков под Windows своя отдельная кухня.

Во-первых - ознакомьтесь, собственно с ОС Linux. Можно посмотреть курсы по введению в Linux, например, на платформе Stepik. Она российская, поэтому с ней не будет проблем с санкциями. Так же можно поизучать по книгам, к примеру есть хорошая старая (но не устаревающая) книга про утилиты Unix - называется Unix. Командное окружение. Наверняка есть и другие хорошие и более современные книги, но я в их океане не особо ориентируюсь, поэтому тут ничего конкретного советовать не буду - можете поискать, ориентируясь на отзывы.

Дальше - вот, положим, вы бэкенд-разработчик. Это значит, вы разрабатываете приложения для работы на стороне сервера, в частности, серверную часть веб-сайтов. Значит вам нужно привыкать запускать ПО на стороне сервера. Для этого берёте, к примеру VirtualBox, и запускаете на нём виртуальную машину с каким-нибудь дистрибутивом Linux, скажем Ubuntu - это самое распространенное. Эта виртуальная машина - и есть ваш сервер. На ней вам нужно будет развернуть свой веб-сайт (или приложение). Для этого надо будет поставить и настроить веб-сервер (apache, nginx, gunicorn, uwsgi итд). Девелоперский сервер, который бывает встроен для нужд разработки в разные фреймворки, например, в Django - не используйте. Он удобен для разработки, но тут цель - настроить всё как на настоящем сервере в продакшене. Конечная цель - добиться, чтобы ваш сайт заработал (в случае виртуалки на localhost). Возможно, также придется пробросить порты с виртуалки на хостовую машину (то есть на ваш ПК или ноутбук), чтобы можно было прямо в браузере вашего ноута открывать нужный адрес (вероятно, это будет localhost, он же 127.0.0.1 с нужным портом), и попадать на сайт, который запущен в виртуалке.

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

И еще почитайте про сети, например, книгу TCP/IP.

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

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

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

Добавлю лишь - из бесплатного поставьте себе приложеньку Duolingo, если у вас еще ее нет. Я её называю "долбилка" - там много упражнений на бесконечное повторение одного и того же - помогает запомнить без усилий всё, что само запоминаться не хочет. Ну и всё обучение построено через геймификацию, в итоге приложеньку можно рассматривать как мобильную игру, на которую можно отвлечься на 5 минут в день, но с пользой. В принципе, разумная замена всяким мобильным залипательным играм, и особого волевого усилия не понадобится, чтобы "заставить" себя учиться.
IT не для всех?

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

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

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

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

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

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

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

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

Здравствуйте, вы делаете гимнастику на глаза? если да то как? И ваши знакомые/друзья и т.д. в ИТ делают гимнастику?
П.С. просто интересно я один парюсь насчёт зрения или нет :)

Гимнастику для глаз я не делаю, и, честно говоря, не знаю лично ни одного человека, кто бы её делал.

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

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

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

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

А вот посты на основе ваших вопросов из бота буду выпускать и дальше, так что присылайте. Каждому, кто прислал вопрос - респект.
#вашивопросы

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

В планах возможный переезд, возможно в США. Думал пойти на автоматизацию тестирования на Java. Зная Java, можно перейти в Salesforce или Android разработку.

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

Ну смотрите - в первом абзаце, где вы описываете свои скиллы, ощущается, что вам стоило бы рассмотреть менеджерские вакансии - например, product manager или project manager. Сюда же можно добавить и бизнес-аналитику как вариант. Какое отношение к бизнес-аналитике имеет Python и при чем тут он вообще, я не поняла. Вероятно, некоторые бизнес-аналитики для каких-то своих задач используют python, но это вообще не совсем про эту профессию. (Или вы путаете с анализом данных?). Если у вас всё так хорошо с менеджерскими скиллами и пониманием бизнес-процессов, то почему не пойти в одну из этих профессий?

Дальше вы спрашиваете как будто про тестирование, но как будто ваша цель - стать не тестировщиком, а разработчиком на Java. Вот тут вы определитесь, чего хотите - в тестирование или в разработку? Разработка требует более глубокого изучения программирования, и если вы хотите этим заниматься профессионально, лучше сразу учиться разработке, а не пытаться пробиться через тестировщики. Это моё личное мнение, тут могут быть и иные. Конечно, если вы поработаете тестировщиком, это даст вам некоторую фору - вы будете знать, как устроен цикл разработки в IT, понимать, у кого какая роль в этом процессе, и как оно выглядит изнутри. Но программирование всё равно придется специально изучать, так же как и погружаться глубже в Computer Science, и на это всё нужно время (много времени) - так не лучше ли этим заняться сразу? Если вы думаете, что сможете просто в процессе работы "сообразить", как программировать на Java, и, к примеру освоить мобильную разработку (тут кстати еще бы Kotlin неплохо бы изучить) - то нет, не сможете, этому надо будет учиться отдельно.

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

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

Привет! Посмотрел последние 20+ записей по тегу "тестирование" в поиске, но ответа на свой вопрос не нашёл.
Нормально ли выбрать QA как профессию для входа в IT, чтобы через несколько лет работы и параллельного обучения уйти в разработчики?
Например если тестирование и Quality Assurance в целом интересны и поддаются изучению, но не уверен, что сможешь так же быстро выучиться на разработчика, а работать надо "уже вчера".

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

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

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

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

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

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

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

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

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

Бот для ваших вопросов: @hum_it_bot
#вашивопросы

Как не приуныть при поиске работы НЕджуну? В IT 5 лет, начинала с ручного тестирования, потом перешла в автоматизацию, последние пару лет занималась development in test (Java), и все это в одной компании. А сейчас компания уходит с рынка РФ, и я чувствую себя идиоткой на собеседованиях, хоть их пока и было еще совсем мало, буквально три штуки.

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

После скольких вообще проваленных собесов можно считать себя неудачником? 😅

Смотрите, мой бывший начальник рассказывал, что он одно время искал работу (будучи опытным), и его нигде не брали. Сходил на 10 или больше собеседований, и всё нет и нет. В итоге всё же нашел работу, кажется, пришлось немного снизить зарплатные ожидания. Ну и потом довольно быстро вырос до серьёзных руководящих постов. Так что не унывайте.

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

А в этом посте я описывала два типа мышления - growth mindset и fixed mindset. Почитайте.
Если коротко, то ставить себе диагноз, вроде "я тупой" - это значит расценивать себя как постоянную, не меняющуюся материю, и это не способствует успеху. Если говорить себе "я умный" или "я достаточно крутой специалист" - это кстати то же самое - стагнация, а не развитие. Куда полезнее говорить "я пока не усвоил этот навык, но работаю над этим" - так вы себя расцениваете как процесс и движетесь вперёд.

Бот для ваших вопросов: @hum_it_bot