TGINSIGHT CHAT
Программирование для гуманитариев
@it_human
КарьераЛичный опыт того, как скипнуть в IT с гуманитарным образованием. Что для этого делать, чего стоит бояться (спойлер: ничего!) и чего ожидать. Рассею мифы о программировании и мире IT. Бот для вопросов об IT: @hum_it_bot
Последние посты
Стр. 48 из 54 · 646 постов
#вашивопросы Добрый день! Расскажите пожалуйста, с вашей точки зрения, как сейчас, во время кризиса чувствует себя IT-индустрия разработки ПО (в частности аутсорсинг и разработка корпоративного ПО и сайтов), происходит ли где-то спад или оптимизация расходов (на персонал).? Экономический спад вообще мало кому идёт на пользу. Но всё зависит от конкретной области. Например, с туризмом сейчас всё плохо - и, следовательно, айтишники, которые работали на туроператоров, не могли не пострадать. Малый и средний бизнес, который тоже сильно пострадал, вынужден оптимизировать расходы (а то и вовсе сворачиваться) - соответственно, под раздачу попадают и все штатные айтишники, и аутсорсеры и фрилансеры - так как банально становится меньше заказов. Более или менее справляется бизнес, который можно вести онлайн (но он тоже может страдать, так как денег становится меньше, как и спроса на разные услуги, не являющиеся жизненно необходимыми). Поэтому айтишникам сейчас «повезло» ровно настолько, насколько их работодатель (или заказчики) способны держаться на плаву. Кто-то получает сверхурочные часы и неоплачиваемые переработки. Кого-то переводят на неполную занятость, чтобы платить меньше зарплату. И, скорее всего, есть и сокращения, и перевод в неоплачиваемые отпуска а - а это значит, предложений на рынке вакансий среди айтишников становится больше и конкуренция может расти. Предполагаю, что всё более или менее неплохо у IT-гигантов вроде Яндекса (пока им хватает бюджета). У служб доставки и интернет-магазинов продуктов сейчас небывалый спрос - вероятно, там у айтишников работы более чем хватает (что не обязательно означает оплату сверхурочных часов или выплату премий). Наверно, пока всё нормально у непрерывно работающих организаций и особенно госкорпораций - банков, разных сервисов электронного правительства и госуслуг, организаций, отвечающих за доступность средств связи - Интернета, мобильных операторов и так далее. Лично у меня пока что ничего особо не изменилось, кроме перехода на удаленку - но сложно сказать, во что всё это выльется к концу года, так как бюджет не резиновый даже у крупного бизнеса, а потребительский спрос падает (если речь не о продуктах первой необходимости и медицинских масках). Можно сказать с некоторой натяжкой, что айтишники пострадали меньше, чем многие другие сферы, как минимум, потому что многие из нас могут работать удаленно, нужен только Интернет. Но в целом катаклизмы в экономике затрагивают всех, и пока неясно, насколько всё это затянется и насколько существенен будет спад экономики. Бот для ваших вопросов: @hum_it_bot
Hashtags
#вашивопросы Здравствуйте. Как Вы могли бы прокомментировать утверждения: 1. "Учить стоит лишь то, чему можешь представить хоть какое-то применение. Изучать линал, графы и тонкости работы с памятью бессмысленно без хоть какого-то понимания, где это всё пригождается" 2. "Умение читать и понимать код на порядок ценнее умения его писать" 3. "Первым делом гугли документацию, а потом уже стековерфлоу" 4. "Нет плохих паттернов/языков/стилей/стеков/библиотек/каркасов. Есть бизнес-задачи, и от них зависит, какие инструменты и решения подойдут лучше всего" 5. "WASM - сила, native - могила. \0/ Противостояние нативных и веб решений в конце концов перерастет в их слияние» 1. Тут есть такой тонкий момент. Помимо оттачивания практических навыков есть еще «сайд-эффект»: это развитие вашего мозга, увеличение его пластичности и построение новых нейронных связей. Измерить и оценить такие изменения не всегда получится, но любое обучение новым для нас областям делает наше мышление более гибким, более способным к обучению. Сам по себе мозг постепенно, уже лет с 20-25 теряет свою пластичность и «консервируется». А, обучаясь, мы заставляем мозг дольше оставаться молодым. Кроме того, математика сама по себе выстраивает мышление (по крайней мере, так говорят). Это, конечно, не значит, что все должны с энтузиазмом бросаться в неприкладные области и активно изучать, например, древнеарамейский язык (если нет такого желания). Но и не стоит обесценивать теоретические знания. Что касается приведенных вами примеров - линейную алгебру я осваивала с болью и, кажется, 90% забыла сразу же после экзаменов. Конкретно в моих задачах её знание не требуется. Но есть области программирования, где используются вектора и матрицы, есть вообще квантовая информатика, где всё основано на линале. Так что говорить о её бесполезности я бы не стала. Графы - на мой взгляд, вполне себе прикладная вещь - это широко используемые структуры данных - взять хотя бы топологию сетей, или изображение какого-нибудь пользовательского сценария. Работа с памятью - она тоже везде, она постоянно происходит «под капотом», что бы мы ни делали - и хорошо бы знать как минимум, что память существует (я встречала джуниоров, которые этого не знали). Что касается вопроса - о том, нужно ли понимать, где все эти теоретические знания используются - конечно, нужно. Когда людей обучают чему-то на вид сугубо теоретическому и не объясняют, зачем это нужно, учащиеся теряют мотивацию и интерес. 2. Формулировка спорная, сложно до нее не докопаться. Возьмем, например, человека, который умеет читать и понимать код, но не умеет его писать. Сможет ли он работать программистом? Думаю, авторы высказывания имели в виду, что код нужно уметь не только писать, но и читать - тогда да, соглашусь. 3. В идеальном мире всё верно, но в реальном разве много кто так делает? 🙂 4. Ну… плохой стиль и антипаттерны всё же существуют. Если есть такие бизнес-задачи, которые нужно решать прямо говнокодом - это как-то очень странно. А что касается разных инструментов, языков и библиотек - да, применение их зависит от задач и целей. 5. ¯\_(ツ)_/¯ Присылайте ваши вопросы в бота: @hum_it_bot
Hashtags
#вашивопросы Здравствуйте) Я работаю в ИТ, но у меня довольно своеобразные задачи: немного сео, немного нейросетей и отдельные задачи по оптимизации сбора контента. Вроде бы выбор есть. Но непонятно, в какой области лучше развиваться с учётом того, что на данный момент есть знания по верхам и навыки по конкретным, очень специфическим задачам. Сама не могу определиться, все в той или иной мере интересно. Посоветуйте, пожалуйста, как подобный бэкграунд можно использовать? И в каком направлении он будет наиболее полезен? Пока что рассматриваю варианты, где можно обойтись самостоятельным изучением. Понимаю, что без него с моим уровнем невозможно идти куда-то дальше. Вы, наверно имели в виду SEO, потому что CEO - это исполнительный директор. Из ваших слов сложно понять, какой именно у вас бэкграунд. Вы разрабатываете нейросети? Если нет, то какого плана задачи по нейросетям выполняете? Сбор контента - это что именно? Парсинг текста с веб-страниц? Обработка текста? Что-то ещё? Какими средствами вы всё это выполнете? Из этого описания не до конца ясно, владеете ли вы языками программирования, но, предположим, что владеете на каком-то уровне. Тогда из текущих задач вырисовывается - либо развитие как Data Scientist - с упором на изучение математики, машинного обучения и нейросетей. Либо - разработка - значит углубление в языки программирования и Computer Science. И есть еще вариант - продолжать заниматься SEO.
Hashtags
Опубликован 9 апр.
Опубликован 9 апр.
Забыла вчера упомянуть еще один must-have для разработчиков: 8 ) Система контроля версий: чаще всего это git. Не обязательно знать все возможности гита, их очень много - главное - это несколько базовых команд. Реже встречается mercurial или другие.
Опубликован 8 апр.
Что нужно изучить, чтобы стать разработчиком? Ниже - мой субъективный чек-лист для бэкенд-разработчика. Рассматривать его стоит как условный гайдлайн, а не как жесткий список требований - в зависимости от вашей предполагаемой специализации требования будут различаться. Например, не все пишут софт под Linux, есть еще .Net и экосреда Microsoft - если вас тянет в разработку под Windows, ̶п̶о̶д̶у̶м̶а̶й̶т̶е̶ ̶д̶в̶а̶ж̶д̶ы̶ то Linux уже не является таким жестким must-have. 1) OS Linux. Нужно уметь работать с командной оболочкой (например, bash) и основными Unix-утилитами. 2) Ваш основной язык программирования, с которым планируете работать. Также - стандартные либы и модули к нему, а также распространенные дополнительные либы. Для Python это будет, к примеру, datetime, os, sys, json, requests, collections. Также - основные инструменты для настройки окружения - pip и pyenv в случае с Python. И еще - часто используемые фреймворки, в случае с питоном это, в первую очередь - Django + django rest framework. С помощью всего этого нужно научиться делать свои домашние проекты - простенькие сайты и скрипты. 3) Другие языки программирования, хотя бы на уровне основ. Особенно я приветствую знакомство с одним из языков с си-подобным синтаксисом (C, С++, Java) и со строгой типизацией. Не то чтобы это прямо маст-хэв для того же питон-разработчика, но чем богаче бэкграунд, тем лучше. Как минимум, читать код в процессе работы придется на разных языках, не только на вашем «родном». 4) Базы данных. Знать, что такое реляционные БД хотя бы на уровне ликбеза. Выучить язык SQL. В «бою» также понадобится знать особенности и фишечки конкретной субд (PostgreSQL, Mysql, SQL Server, Oracle) - но тут зависит от того, какая из них используется конкретно вашим будущим работодателем. Скорее всего, 60% из всего, что нужно знать про конкретную СУБД вы выучите уже в процессе работы. Также нужно освоить инструменты для работы с БД в вашем языке программирования (например, в питоне psycopg2 для работы с PostgreSQL или SQLAlchemy - для любых субд). 5) Основы Computer Science. Хотя бы на уровне ликбеза общие сведения об устройстве операционных систем, файловых систем, памяти и CPU. Слова «стек», «хип», «процессы», «потоки» не должны звучать для вас как иностранные. 6) Сеть и сетевые протоколы. Опять-таки, как минимум - на уровне ликбеза. Не обязательно в мельчайших подробностях. Что такое TCP/IP, HTTP, ICMP, DNS. Как в общих чертах работает этот ваш Интернет? Что происходит, когда мы набираем в браузере какой-нибудь домен, например, гугловый? Что такое nat? Как настроить iptables. 7) Конкретные технологии и инструменты - разные работодатели используют разный набор. По моему опыту, всё это в основном осваивается прямо на работе уже в процессе решения «боевых» задач. Но, разумеется, можно облегчить себе жизнь и опробовать что-то из этого дома в спокойном темпе и без стресса. Просто перечислю некоторые из них: - Docker - контейнеры с линуксом внутри. Очень многие программы и приложения (в том числе сайты, которыми вы все пользуетесь) в современном мире работает внутри докер-контейнеров. Когда освоите Linux, с докером тоже быстро разберетесь. - RabbitMQ - брокер для работы с очередями - NoSQL базы данных - Redis, MongoDb итд - Инструменты для ci-cd (continuous integration - continuous delivery) - например, gitlab, jenkins итд. - Облачные платформы и инструменты для работы с ними - например, AWS Amazon или Google Cloud - Kubernetes - место, где «живут» приложения в докер-контейнерах Если вы считаете, что я забыла упомянуть что-то важное, вы знаете, где меня найти: @hum_it_bot. Вопросы и уточнения туда же.
#вашивопросы Здравствуйте, дайте пожалуйста совет. Хочу изучить языки программирования питон, жава и жаваскрипт. Но, не могу себе позволить ходить на курсы. Они у нас дорого стоят. Где найти основы программирования? Что читать? Где найти нужные материалы? В Интернете есть и бесплатные курсы. Также на онлайн-платформах бывают бесплатные опции для прослушивания платных курсов - например, доступ к видео-урокам бесплатный, а доступ к домашним заданиям и тестам - только при оплате. Книги, думаю, тоже можно найти в свободном доступе. Ищите и найдёте. Тут мои посты с ответами на похожие вопросы: https://t.me/it_human/61 Пытаюсь понять, какие курсы выбрать: Python или дизайн. Я просто не могу понять, где бы я была бы, скажем так, сильна. Подойдёт ли дизайн человеку, который не умеет рисовать? Про дизайн я ничего не знаю - это скорее вопрос к дизайнеру. От себя могу только сказать - попробуйте по чуть-чуть то и то и посмотрите, к чему больше душа лежит. Стоит ли начать свое обучение в it с нуля, при помощи какого нибудь онлайн университета, которых развелось на просторах сети достаточное количество. При том что обучение там не самое и дешёвое. Да, почему бы и нет? Я училась только на онлайн-курсах, причем бесплатных. А что касается инвестирования серьезной суммы денег в обучение - тут нужно ориентироваться на отзывы о конкретных курсах, чтобы затраты окупились. Я бы рекомендовала курсы при крупных IT-компаниях, которые обещают помочь с трудоустройством по их окончании. Здравствуйте! Как обстоят дела с релокацией в Европу для Qa? Глубоко в этой теме не разбираюсь, но могу сказать, что встречала тестировщиков, которые уехали в европейские страны и продолжили там карьеру. Вопросы об обучении и карьере в сфере IT можно задать в бота: @hum_it_bot
Hashtags
Опубликован 3 апр.
О чем спросят на собеседовании в конкретную компанию - сильно зависит от прихотей собеседующих. Кто-то намеренно дает очень простые задания, самую базу, действуя из убеждения, что человек и не должен уметь решать на коленке хитрые нетривиальные задачи. Кто-то наоборот очень любит «подловить» и даёт задания «на подумать» - мы с коллегами как-то дня три бились над такой задачей про мудрецов. Кто-то проверяет знания алгоритмов, кто-то считает, что это не показатель. Но независимо от подхода работодателя, к любому типу собеседования можно подготовиться заранее. Если вы уже освоили азы какого-нибудь языка программирования, можете писать небольшие программки и читать код - то ловите канал с интересными задачками и на алгоритмы, и просто на смекалку - с разбором решений, вплоть до написанного кода - будет чем заняться на карантине. В задачах я не встретила «страшной» математики или чего-то сверхсложного, задания подойдут и новичкам, и более опытным людям. Решив десяток-другой подобных задач, мозг натренируется и уже никакой хитрый работодатель со своими задачами про шары и шахматные доски не поставит вас в тупик. Кроме задач на канале много материала, посвященного изучению алгоритмов и структур данных - статьи, тесты, гайды, разборы. Найдется контент для любого уровня - и для новичков, и для тех, кто себя к таким не относит. Как минимум, освоить простые алгоритмы сортировки - это маст-хэв для разработчика, вероятнее всего, на собеседовании дадут задание именно на них.
#вашивопросы Всем привет! Продолжаю разгребать вопросы в боте. Вопросы часто бывают похожими, и в таких случаях повторяться не буду - отвечу один раз. Добрый день, Лена!) Начала читать Ваш канал, так как задалась целью разобраться в программировании, оно всегда для меня было словно темный лес) подскажите, пожалуйста, с чего лучше начать изучение человеку, который не обладает никакой базой программирования, от слова совсем) Если цель пока что ознакомительная - попробовать, посмотреть, что это такое - то тогда подойдёт любой короткий (скажем, на 1 месяц) онлайн-курс по программированию или computer science для начинающих - часто в основе таких курсов лежит несложный, но интересный проект - например, написать простенькую игру. Поискать такие курсы можно на онлайн-платформах - коих сейчас великое множество, что-нибудь вроде Coursera, Edx, Stepic, Udemy итд итп, или просто по гуглу. Ключевые слова - для начинающих. В описании к таким курсам должно быть написано, что не требуется никаких предшествующих знаний или подготовки. Понравится - можно будет «ввязаться» во что-то более сложное и длительное. Можно начать и с какой-нибудь книги - но курсы более интерактивны и увлекательны, так что проходить их интереснее, но тут каждому своё. Если же цель - с головой погрузиться в IT и выходить на трудоустройство - то я бы рекомендовала в первую очередь курсы при крупных IT-компаниях (тот же mail например) - c гарантией трудоустройства. Там вам будет и программа из самых востребованных предметов, и задания, и на выходе - предложения о работе. Как понять, что ты и твой мозг подходите к программированию? Только попробовав? Но учебные курсы они все специально сделаны, чтобы было интересно:) Проходил тесты, но их объективность тоже под вопросом. А проучится год- полтора и понять, что это не твоё не хочется) На эту тему у меня уже был пост, вот он. Я считаю главный критерий - это то, что вас увлекает процесс написания программ. И вы испытываете радость от результатат - вот оно, ваше детище - программа, и она работает! И гордость за то, что ей кто-то пользуется (особенно если эти кто-то - это полстраны). Это как, ну не знаю - играть на гитаре. Получится у того, кому это нравится, а не у того, кто себя заставляет насильно. Привет! У меня вопрос; а какие вообще направления в айти существуют? Мелькают перед глазами фронт, бэк, фуллстек, да и все. Наверняка же что-то кроме них есть? Вы назвали по сути виды разработчиков веб-приложений. Фуллстек - это даже не отдельное направление, а гибрид из бэка и фронта в одном человеке. А вообще в it есть не только программисты. Есть еще, к примеру, data-scientists, тестировщики, инженеры DevOps, системные администраторы, администраторы баз данных, специалисты по информационной безопасности, pen-тестировщики. Есть еще менее технические профессии - компьютерные лингвисты, верстальщики, проджект-менеджеры и аналитики, UX-дизайнеры и UI-дизайнеры. Сами программисты, если уж зашла о них речь бывают разные и разрабатывают разные продукты - веб-сайты, мобильные приложения, поисковые системы, программы для ПК, карты, игры, базы данных, целые операционные системы и системные продукты, криптографические штуки и модный нынче блокчейн, языки программирования, интерпретаторы и комплияторы для них, математические модели, компьютерную графику и VR, и что угодно ещё. Это очень обширный на самом деле вопрос, и вы найдёте много ответов даже в первых 5 результатах поисковой выдачи Гугла.
Hashtags
Опубликован 30 мар.
Опубликован 27 мар.
Привет всем вновь присоединившимся! Вкратце, что происходит на этом канале: его главную цель я вижу в том, чтобы рассеять страх перед сферой IT: мол «это не мое», «у меня не получится», «это слишком сложно», «у меня гуманитарные мозги». Очень может быть, всё окажется не так уж сложно и неподъёмно, и вы найдёте себя там. Я убеждена, что есть много людей, которые могли бы заниматься тем же программированием - причем, делать это с удовольствием и интересом, но им просто не приходит в голову, что «так можно было» - несмотря на отсутствие опыта, на отсутствие технического образования и на предшествующее отсутствие интереса к этой сфере. У меня всё было точно так же. И оказалось, что всё это не препятствия. В современном мире учиться и менять профессию - это более чем нормально. Есть даже тренд на lifelong learning и смену профессии каждые 5 лет, хотя для постсоветского общества еще привычно жить в парадигме - 1 раз получил специальность, и работай по ней всю жизнь. У канала есть бот @hum_it_bot, куда вы можете присылать свои вопросы о том, что волнует вас как начинающего (или потенциального) айтишника - какие есть страхи и сомнения, что непонятно. Я отвечаю на них в постах на этом канале (вопросов поступает много - поэтому не сразу). Реагировать на негатив в личку и спорить у меня нет времени. Этот канал - не учебный курс, хотя на вопросы по программированию я тоже отвечаю. Это скорее группа поддержки и советы для начинающих.
Опубликован 25 мар.
Про деньги Меня недавно упрекнули в том, что я не называю свою зарплату, когда это такая животрепещущая тема. Что ж, вплоть до копейки мне всё ещё некомфортно её называть, но субъективной обзор рынка зарплат в Москве сделаю, и расскажу, с каких цифр начинала. Был 2014 год, доллар только что скакнул от 30 рублей до 60 и выше, рынок пребывал в шоке, а стартап, на который я тогда работала чем-то вроде редактора, развалился. К слову, в зарплаты программистов там начинались от 80-100к, и это тогда было очень хорошо по рынку (доллар-то стоил 30 рублей). Оказавшись без работы, я впервые попробовала устроиться разработчиком. Опыта работы у меня не было совсем, резюме пришлось мучительно высасывать из пальца. Главная задача была - доказать рынку, что я чего-то стою - без технического высшего образования и без опыта, на одних онлайн-курсах и 25ти лет от роду. Впрочем, работу оказалось найти несложно и недолго - но и за скромную зарплату. Устроилась я тогда в небольшую компанию (штат около 50 человек) за 60 тыр в месяц. Это было больше, чем я получала до этого, так что для меня было уже неплохо. Каждый год к зарплате прибавляли по 10к, что не слишком впечатляло, ибо инфляция. Были эпизодические небольшие премии и 13я зарплата. Но акционеры той компании были не слишком щедры и по моим ощущениям, зарплата росла гораздо медленнее, чем моя рыночная стоимость как разработчика. Через полотора года работы я чуть не сбежала к другому работодателю, так как там предлагали чуть ли не в 2 раза больше денег. Остановило меня только то, что там были «черные» зарплаты. Чтобы пробить «потолок» в 100 тысяч в месяц в той компании нужно было уже кем-то руководить. По этой причине я согласилась стать тим-лидом, несмотря на то, что у меня душа больше лежит к техническим задачам, а менеджерская нагрузка - это другие скиллы и требования. Проблема моего первого работодателя в IT в том, что там не хотели выделять достаточный бюджет на опытных разработчиков - поэтому штат людей с опытом постепенно «размывался» и заполнялся джунами. А «сеньоры» утекали, оставалось несколько человек, которые там работали уже лет 10 «по старой дружбе». Когда меня припёрло к стенке ипотекой и ремонтом, деньги сразу поднялись на первое место в списке приоритетов. А предложения рекрутеров в личных сообщениях линкедина всегда ждут своего часа. Так что я написала одному из них. И параллельно поговорила с начальником о зарплате - мол она не соответствует рынку. Выдвинула свои условия. Работодатель предложил свои, которые, разумеется, были хуже. Я подтолкнула начальника обкашлять вопрос с руководством - но там, понятное дело, не согласились. Так я ушла в крупную компанию, увеличив доход в полтора раза, не считая премий. Что касается ситуации в среднем по рынку - всё зависит от работодателя. Больше всего платят в некоторых стартапах - зарплаты для опытных разработчиков там в 2-3-4 раза выше среднерыночных. Расплата за это - нестабильность. Стартап может развалиться в любой момент и ничего не заплатить. И зарплаты там часто «черные», что не понравится ипотечникам. Другая крайность - это очень странные вакансии на hh. Где в графе «требования» написано, что человек должен уметь вообще всё, чуть ли не космическим кораблем управлять. А зарплата предлагается меньше, чем у уборщицы в «пятёрочке». Еще в 2015 году я наблюдала вакансию для джуна-стажера Python за 15тыр. За полный рабочий день, пятидневку. Вакансия висела, кажется, год. Сложно сказать, на кого рассчитывают такие компании. Многие хотят урвать разработчика поскилластее да подешевле. Такие компании особенно любят недавно приехавших в Москву ребят - которые еще не совсем освоились в расценках и считают маленькую по московским меркам зарплату хорошей. Какова условно «нормальная» цена разработчика в Москве? - Я считаю, что не меньше, чем 120к - это если у человека есть, скажем, 2 года опыта работы. А лучше больше. Но всё очень по-разному. Зависит и от компании, и от языка и стека технологий. Ходят байки, что есть места, где 120-150 - это нормальная зарплата джуна java-разработчика. Джуна, Карл!