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

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

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

Второе - можно стать тестровщиком. Для тестировщиков есть много вариантов курсов, можно посмотреть некоторые варианты в моем этом посте - https://t.me/it_human/320.

Так же можно посмотреть в сторону вёрстки сайтов.

Если же хотите "самое простое", но уже из области разработки - ниже всего порог входа у фронтендеров (по крайней мере, так говорят). Про фронтенд можете почитать в этом моём посте: https://t.me/it_human/586

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

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

Привет, я хотел бы узнать у вас стоит ли покупать какие-то платные курсы по типу 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