TGINSIGHT CHAT
Программирование для гуманитариев
@it_human
КарьераЛичный опыт того, как скипнуть в IT с гуманитарным образованием. Что для этого делать, чего стоит бояться (спойлер: ничего!) и чего ожидать. Рассею мифы о программировании и мире IT. Бот для вопросов об IT: @hum_it_bot
Последние посты
Стр. 53 из 54 · 646 постов
Опубликован 22 авг.
Учитесь задавать вопросы И я, и мои коллеги часто сталкиваемся с такой особенностью молодых ребят (условно 20-летних) - как нежелание или неумение говорить, уточнять, задавать вопросы. Сложно сказать, в чем причина - то ли это что-то поколенческое, то ли так воздействует система образования, а, может быть, сказывается отсутствие опыта работы в коллективе. Стандартная ситуация выглядит так: объясняешь человеку задачу, спрашиваешь, всё ли понятно? - Да, всё понятно. Человек уходит работать. И на первый взгляд всё хорошо. Впоследствии же оказывается, что на самом деле ничего не было понятно, но человек постеснялся/побоялся или ему было просто западло в этом признаться. Он идёт «работать над задачей» - и надеется, что проблема как-то сама рассосётся, или же он в процессе работы поймёт, что именно надо делать. С вопросами и уточнениями он не подходит, сидит молча и либо просто что-то непродуктивно ковыряет и прокрастинирует, либо делает совсем не то, что от него требовалось. Поэтому, друзья - задавать вопросы - это важнейший навык. До тех пор, пока у вас нет исчерпывающего понимания своей задачи - надо спрашивать снова и снова - и не бояться «задолбать» коллег своими уточнениями. Коллеги гораздо сильнее расстроятся, когда спустя две недели выяснится, что вы неправильно поняли задачу и всё это время прошло впустую, а они не получат результат, на который рассчитывали. Еще хорошая практика - подытожить задачу и сформулировать её своими словами: «Правильно ли я понял(а), что мне нужно сделать то и то?» - чтобы уж точно синхронизироваться в понимании. Главное - никогда не перекладывайте ответственность на того, кто задачу ставил - мол «мне не объяснили, мне не показали, я не знал, я сделал как мне сказали» - детство кончилось. Разобраться в задаче и понять, что нужно делать - это ваша прямая обязанность.
Опубликован 20 авг.
За что я люблю IT 1) Здесь не выносят мозг. Люди, которые работали только в IT со мной не согласятся - но им просто не с чем сравнить. 🙂 Понятное дело, мозг выносят везде, где есть другие люди, но здесь - не так сильно. Никто не застрахован от того, что именно вам попадётся очень вредный и «токсичный» коллега, но концентрация таких в IT заметно меньше, чем, например, в продажах, да и много где еще. Сама по себе профессия подразумевает потребность спокойно подумать, а постоянные конфликты и разборки этому вряд ли помогут. Уровень стресса в этом плане гораздо ниже, чем в среднем, никаких тебе Лена! Ты как посмела клиенту сказать слово «наверное»? Уровень выноса мозга растёт вместе с вертикальным карьерным ростом - и да, если вы стали руководителем, значит придется больше контактировать с источниками конфликтов и претензий - то есть, с другими отделами и с высшим менеджментом, но такова цена. 2) Тут не задают глупых вопросов на собеседованиях. Ладно, задают, но меньше. Например, могут спросить «Нужно ли индексировать булево поле в таблице?» - без дополнительных уточнений вопрос бессмысленный. Но гораздо с меньшей вероятностью спросят, кем вы себя видите через 5 лет и какой у вас знак зодиака. Видимо, когда приходишь работать офисным клерком, собеседующие просто не знают, какие вопросы задать, поэтому спрашивают всякую дичь. Когда я начала ходить на собеседования на должность разработчика, то была удивлена, как изменился формат собеседований. Внезапно, никого не интересует моя личная жизнь. А чего у меня только не спрашивали раньше - «У вас есть парень? А планируете?» - «Что планирую? Парня?». «А когда собираетесь детей заводить?». Почему-то в IT не так заметно параноят на тему того, что я пришла к ним только для того, чтобы уйти в декрет. 3) Тут платят больше, чем во многих других сферах. 4) Тут ценят интеллект и знания. Как-то, на очередной подработке, я готовила презентацию, которую менеджеры собирались показывать клиенту, и думала о том, что с моей работой справится и 5-классник. И для этого надо было учиться 10 лет в школе и 5 в ВУЗе? А перед этим - сотни тысяч лет эволюции человеческого мозга - всё для того, чтобы делать какие-то тривиальные вещи? Тогда я поняла, что определенно хочу работать головой, а не языком («ООО Рога и Копыта, Елена, здравствуйте!») и не руками (например копипастить картинки для презентации). И вуа-ля, в IT работают именно головой, а не другими частями тела. 5) Тут кипит жизнь. Технологии развиваются с космическими скоростями. Многие работодатели оплачивают своим разработчикам участие в конференциях и митапах - всегда есть множество вариантов для обмена опытом и освежения своих знаний. В отличие от многих других областей, где может наблюдаться застой и стагнация - IT никогда не стоит на месте. И если ты начинаешь чувствовать, что сидишь в болоте - достаточно сменить место работы и найти более современную и высокотехнологичную компанию.
Опубликован 15 авг.
Выучу Python и пойду работать программистом Не так быстро, мой юный друг. Python - в целом неплохой вариант - он несложный, востребован на рынке, используется много где. Но я старовер. И пусть в меня кто-то кинет тапками, но, по-моему, начинать программировать лучше с языка C. Почему? Потому что пересесть на автоматическую коробку передач, если умеешь ездить на механике - получится с первой попытки. А наоборот - куда сложнее. «А если я хочу всегда ездить на автомате?» - А, скорее всего, не выйдет. Работодателю будет всё равно, какие языки программирования ты (не)знаешь - и обязательно окажется, что в проекте есть 10% кода на каком-нибудь java и человек, который это писал - год назад как эмигрировал в Штаты. И угадай, кого попросят внести изменения в этот код? Правильно, программиста. То есть тебя. Изучать только Python - это даже не автоматическая коробка передач. Это как руль и педаль, которыми ты учишься управлять, но не думаешь при этом, что существуют такие вещи как колеса, асфальт и уличное движение. А Си поможет взглянуть на чуть более низкоуровневый мир - на работу с памятью, арифметику указателей и многое другое. Сам Python (точнее, самая распространенная реализация интерпретатора - CPython) тоже написан на C. После Си будет легче подступиться к C++ или java (а также десятку других языков с си-подобным синтаксисом). А к питону - и подавно, потому что после Си Питон покажется феерически простым языком. Моя первая любовь и главный фаворит в мире IT-курсов - это гарвардский CS50's Introduction to Computer Science (можно найти на платформе edx.org). Это с одной стороны курс для начинающих, он не требует никакой исходной подготовки. Но при этом, там копают достаточно глубоко и материал разумной сложности. Там есть записи трансляций с настоящих лекций в Гарварде, есть семинары с ассистенами преподавателей, много разных дополнительных видео, задачки на самостоятельную разработку. И там как раз всё начинается с Си. И да - времени на него придётся выделить прилично, это не про 1 час раз в неделю. Зато это отличный старт для дальнейшего погружения в мир IT, он даст некоторый бэкграунд сразу в разных направлениях. Кстати о Computer Science. Знать один Python и почти ничего не представлять о том, что «под капотом» - могут только дата-саентисты, и я до сих пор удивляюсь, как у них это получается (ну, по крайней мере, я таких часто встречаю). Так что если вы не про data science и не налегаете на матан - значит нужно копать не только в ЯП, но и в то, «как оно всё устроено» - хотя бы на уровне ликбеза - про операционные системы, сетевые протоколы, базы данных ит.п. Так как сталкиваться на работе придется именно с этими вещами, а не просто с питоном в вакууме (в текстовом редакторе).
Опубликован 15 авг.
Ура! Вас уже 256. Ждём следующего рекорда - 512 подписчиков.
Опубликован 12 авг.
Почему вы пройдёте собеседование Этот пост для робких IT-новичков, которые боятся провалить свои первые собеседования. Я расскажу вам, почему у вас есть все шансы пройти собеседование на свою стартовую позицию. 1) На рынке царит дефицит айтишников. Особенно хороших айтишников. Их действительно мало. Все, конечно, хотели бы взять самых опытных и крутых специалистов (да еще и платить им как junior-ам), но все знают, что таких на всех не хватит. Поэтому на подающего надежды новичка обязательно обратят внимание. Если не в этой компании, то в следующей. В силу этого дефицита не стесняйтесь откликаться на вакансии, где требуется, скажем, год опыта работы (а у вас его 0) - работодатель хочет найти человека с опытом в идеале. Но поиск тернист и труден, а кандидаты, строго соответствующие описанию вакансии, встречаются очень редко. 2) Вообще многие компании любят джуниоров именно из соображения, что им можно меньше платить. Для опытного разработчика это так себе новость, но для новичков - отличная возможность найти себе работу и приобрести первый опыт. 3) Вы адекватны? Значит, вас оценят. Я серьезно. Возможно, вы сами когда-либо проводили собеседования или нанимали сотрудников (неважно на какую должность) и замечали - как мало приходит банально адекватных людей? Навыки можно приобрести, а вот научиться адекватности, если её нет - едва ли. А резюме, где кандидат сильно оригинальничает и «чудит», многие работодатели после первой же странности не станут читать - в каждой компании уже есть свой «чудик», а то и несколько. Все ищут просто нормальных людей. Звучит парадоксально, но таких достаточно сложно найти. Так что если вы здраво и логично рассуждаете, умеете грамотно излагать свои мысли и корретно их аргументировать, доброжелательны и вежливы - вас заметят. 4) Вы умеете учиться и желаете осваивать новые технологии? Работодатель увидит в вас перспективного новичка и захочет взять «на вырост». Не смогли ответить на вопросы на собеседовании? - спросите интервьюера, что стоит почитать по теме, какие знания подтянуть. Покажите, что наличие нужных знаний у вас - это вопрос времени. Говорят, что знаний мало для вакансии? - договоритесь о встрече через полгода, когда подучите нужный материал. И главное - не получилось сегодня, получится завтра или через месяц. Не взяли в одну компанию - возьмут в другую. Не везде требования одинаково жесткие - кому-то достаточно вашего настроя на развитие и базовых знаний.
Опубликован 12 авг.
Напоминаю, что если у вас есть вопросы, их можно задать в боте: @hum_it_bot
Опубликован 11 авг.
Опубликован 10 авг.
Когда начинать работать по новой специальности? Когда осваиваешь новую специальность, еще долгое время будет казаться, что знаешь недостаточно, и работать еще рано. С таким подходом очень легко впасть в крайность и превратиться в «вечного студента». Да нет, я еще знаю мало, надо еще подучиться, кому я нужен? Обучение, скажем, тому же программированию можно сравнить с занятиями плаванием. Вы стоите на земле, инструктор показывает вам правильные движения, объясняет, как дышать, как синхронизировать вдохи и выдохи с движениями руками и ногами. Так вот учеба - это именно этот этап, когда в воду вы не заходите. И представьте абсурдность ситуации, когда человек много лет посещает бассейн, но никогда не касается воды - зато упорно отрабатывает движения в воздухе - брас идеально отточен, каждый пальчик на руке знает своё место. А плавание в воде - это уже работа. Здесь пловец сталкивается совсем с другими задачами - здесь ему говорят - доплыви до противоположного бортика. Он пробует - и не может. Он никогда этого не делал. А что? А как? Поэтому с участием в настоящих проектах лучше не затягивать. Я уже писала о том, что совмещать работу и учебу очень трудно. Поэтому, если учеба очень интенсивная и поглощает много ресурсов - тогда, конечно, идти на full-time работу будет сложно. Но можно найти какую-то альтернативу - например, найти стажировку или вписаться в open-source проект - наверняка сейчас можно найти варианты и для новичков. Идея в том, чтобы уметь решать не только учебные задачи, но и приобрести опыт промышленной разработки. Я откровенно боялась объявлять себя в резюме разработчиком - было стыдно - ну я же ничего не умею, у меня лапки. Пинок под зад я получила, когда наш стартап развалился и я оказалась безработной. К тому времени у меня было 2 года разных курсов на coursera и edx. На работе в стартапе я, задолбавшись от рутинных задач поняла, что у меня есть руки и Python и потихоньку автоматизировала, что могла. Мне нужно было смотреть видеопотоки с записями спортивных ивентов, и искать там определенные моменты по таймстемпам. И в какой-то момент я смекнула, что у VLC-плеера должен быть свой API - и, наверно, можно сделать питоном такой скрипт, который будет сам открывать мне видеозаписи по списку с нужного места. Да еще и можно добавить кнопочку next. И да - оказалось, что можно. Потом еще я написала пару скриптов для удобного сбора нужной инфы в excel-файл - что-то там накостылила из Python-а и базы данных SQLite - руками все это заполнять было очень мутроно и уныло. Это был мой единственный опыт решения реальных задач средствами программирования. И вот я без работы, и понимаю, что дальше тянуть резину было глупо - надо было искать работу уже как айтишник. В итоге резюме я писала целый день, часов 10. Долго и мучтельно высасывала из пальца (точнее из описанного выше абзаца) хоть какой-то опыт разработки. К позднему вечеру мое первое резюме разработчика было готова, а у меня уже нехило так болела голова от напряжения. Выложила резюме в Интернете. Рано утром позвонила девушка-HR. «Вы еще ищете работу? У вас уже много предложений?». После парочки собеседований, в итоге я пошла работать по этому первому предложению. Так что можно сказать, поиск моей первой айтишной работы занял 1 день…
Опубликован 5 авг.
Нужно ли мне знать английский язык? Да, нужно. На каком уровне? - В совершенстве не обязательно. Но чем выше уровень, тем легче получать информацию. Свободный английский позволит без проблем слушать любые курсы по IT на английском языке и не задумываться о том, есть ли к ним русские субтитры. То же касается докладов на конференциях от иностранных спикеров. И если речь идёт о видеозаписях - то хороший английский позволит их слушать даже на скорости 2х, без потери информации (время - дорогой ресурс, а темп речи у спикеров часто слишком медленный). Но у меня есть хорошая новость - технический английский гораздо легче литературного. Набор терминов, которые нужно запомнить - относительно небольшой, и часто это интернациональные слова, которые по русски звучат почти так же (ну те же coding, number, compute). Технические тексты проще, чем художественная литература и проще, чем газетные статьи - в них нет такого объема лексики, метафор, архаизмов и фразеологических оборотов. А лекции и доклады слушать проще, чем смотреть сериалы в оригинале - в них нет сленга, разных отсылок и контекстно-зависимых шуток. Самый базовый необходимый уровень английского языка - это умение читать и понимать технические тексты. Обычно эта формулировка встречается в вакансиях. Многие мои знакомые айтишники владеют английским именно на таком уровне - сказать ничего не могут, на слух понимают плохо, но могут прочитать текст и извлечь из него нужную информацию. Без этого никак, так как далеко не всю документацию кто-то заморочился перевести на русский язык. Кроме того, гуглить, как правило, эффективнее на английском языке. На английком языке вы загуглите любой самый дурацкий вопрос, и найдёте десяток ответов и советов на stackoverflow. На русском языке - нагуглится какой-то форум, обитатели которого ответят вам «ты что, дебил? иди читай документацию». Я не знаю, почему так. ¯\_(ツ)_/¯ Книги по IT довольно медленно переводят на русский язык (и далеко не всегда переводят) - пока книгу переведут, отредактируют и опубликуют, информация в ней уже устареет - выйдет несколько новых версий инструмента, которому посвящена книга - технологии эволюционируют очень быстро. И да, большая часть всей информации по IT написана на английском языке.
Опубликован 3 авг.
- Сложно разные технологии в одно время читать. Может есть лайфхак как можно 2 языка учить? Основной у меня Ruby, но нужен JS/jQuery ещё. Если честно, я не вижу особой проблемы в том, чтобы изучать одновременно 2 (или более) языков программирования. Это проще, чем с иностранными языками. Проблема может быть в нехватке времени/сил/ресурсов - но чтобы её преодолевать, лайфхаки достаточно стандартные - ложиться пораньше, хорошо высыпаться, обеспечить себе качественный отдых и период восстановления - делать зарядку, прогулки на свежем воздухе, спорт, заботиться о здоровье. В работе и учёбе полезно делать перерывы - то есть, когда чувствуете, что мозг «перегрелся», вы уткнулись в одну задачу и никак не можете сдвинуться с мертвой точки - тогда стоит все прервать, выйти на свежий воздух, прогуляться, сделать кофе-брейк итд итп. Часто бывает, что именно во время такого перерыва нужное решение и приходит в голову. Что касается javascript - тут я могу дать вам «вредный» совет: для начала не стремитесь сильно углубляться в «чистый» javascript. Совет вредный, потому что вообще учение свет, неучение тьма, и глубокие знания всегда предпочтительнее поверхностных, итд итп. Но тем не менее, чистым или «ванильным» javascript сейчас пользуются мало - больше востребованы разные библиотеки и фреймворки: упомянутый вами jquery, angular, react, vue и прочая и прочая. Я подчеркиваю - для начала - разберитесь с элементарными азами и основами синтаксиса javascript (синтаксис достаточно стандартный для си-подобных языков), потом - сразу переходите к jquery - это не сложно, по сути это просто библиотека, которая предоставляет удобный доступ к элементам HTML DOM. Для первых шагов и первых несложных действий этого будет достаточно - гугл в помощь, как говорится. Вообще, чтобы начать использовать новый язык/инструмент, и делать на нем простые вещи, его не обязательно знать. Разумеется, такой подход не сделает вас хорошим специалистом. Так, что в дальнейшем, конечно - изучайте глубже. Вот например, в этой статье дают совершенно противоположные моим рекомендации - изучайте в первую очередь «чистый» javascript, а не фреймворки: https://www.cat-in-web.ru/vanilla-js/. И они правы. Так и нужно. Я лишь о том, что не стоит бояться своего незнания и новых технологий - открывайте, пробуйте, делайте первые шаги.
Опубликован 2 авг.
Можно ли учиться и работать одновременно? Мой ответ, наверно, разочарует читателей. Но скорее нет, чем да. При условии, что работа full-time и требует внимания, концентрации и интеллектуальных усилий. Для того, чтобы много и полноценно учиться гораздо лучше подойдёт part-time подработка или какая-то халтурка. В моём случае это был странный стартап, где было совершенно нечем заняться - задачи появлялись от силы раз в месяц и то не каждый месяц. Зато там был интернет и бесплатная еда. И с какого-то момента я начала приходить на работу, чтобы учиться там кодить. Место идеальное - всё-таки не дом, где и холодильник отвлекает и всегда есть чем заняться. Мешал только шумный опенспейс, в частности, 2 девочки по соседству, которые весь день громко обсуждали косметику - и порой заглушали курсеру в наушниках. 2я «итерация» совмещения учебы с работой была, когда я уже год как устроилась работать программистом, и начинала скучать - нового и интересного становилось всё меньше, задачи стали скатываться в рутину, а я сама - покрываться мхом. Тогда-то я подумала, что мне не хватает какого-то официального диплома - а то люди догадаются, что я «не настоящий» программист. Тогда мне попалась годовая онлайн-программа из 12 курсов, по завершению которой давали диплом о профессиональной переподготовке - не второе высшее, но уже что-то. И скажу я вам, это был очень непростой год. Всё, что было в этой учебной программе связано с программированием - не особенно обременяло, так как было более или менее знакомым. Но матан… Приходилось вставать через день в 5 утра, чтобы решать этот страшный матан. Через день - потому что нужно было всё-таки отсыпаться. В дни утреннего матана я была нервной и злой до чертиков. В дни досыпа - чувствовала себя гораздо счастливее. Почему утром, а не вечером? Вечером тоже приходилось учиться, куда ж без этого. Но после рабочего дня производительность мозга уже совсем не та. И то, что утром можно сделать за полчаса, вечером потребовало бы несколько часов. Так что на вечер лучше оставлять задания попроще. Проходить по 3 курса в месяц при full-time работе, где тоже нужно думать - это уже слишком много, хотя казалось бы. Не потому что материал сложный (не особо он сложный), а потому что там дедлайны на задания, зачёты, экзамены - и катастрофически не хватало времени, чтобы к ним успевать - всё приходилось делать галопом. А вообще дедлайны - это хорошо. Без дедлайнов очень сложно что-либо довести до разумной стадии и когда-либо закончить. Тянуть и делать всё «в своем темпе» можно бесконечно, как и «доводить до совершенства». Стоит ли говорить, что все хобби и развлечения на время летят в трубу? Чтение (не технической литературы), гитарка, тусовки (ладно, тусовки - это не про меня) - всё это можно смело отложить до лучших времен. Время - беспощадная сука. Времени никогда не хватает. Не слишком обнадеживающе звучит? Но ведь успех в любой профессиональной деятельности требует усилий и времени. Лично мне понадобилось 2 года разных онлайн курсов, чтобы найти первую работу в качестве айтишника - и возможно, это можно было сделать и раньше (если бы не синдром самозванца). 2 года - это не так уж и много, если подумать. А дальше рельсы были уже смазаны.
Опубликован 26 июл.
Программирование - это не моё Я до поры до времени и не подозревала, что программирование - это «моё». В семье все гуманитарии, в школе информатика была никакой - совершенно не зацепила. Училась я примерно ровно по разным предметам - относилась более или менее по-раздолбайски, но на четверки-пятерки вытягивала. Готовиться к техническим вузам в голову не приходило - на счет биофака еще были мысли, но лягушечек было жалко. Так что в итоге готовилась сдавать историю, а не матан. Откуда тут взяться программированию? Однажды подруга подкинула мне ссылку на курсеру. Это сейчас разных онлайн-курсов столько, что глаза разбегаются - а тогда они только начали появляться. У меня была тяга к самообразованию, и я стала проходить там всё подряд из любопытства - и курсы по генетике, и про постмодернизм в современном искусстве и что-то там про программирование для начинающих. Самый первый такой курс по программированию был с элементарными задачками на javascript, прошла я его легко и быстро (там в общем-то и проходить было нечего). Но понимания, что я всерьез хочу идти в программирование тогда еще не возникло. Потом я проходила еще несколько курсов по IT - тоже так лениво, не спеша, если было слишком сложно - забрасывала. Тогда я еще не была уверена, что мне это нравится - казалось, что закапываться в IT с головой, сидеть целыми днями, прорабатывать код, искать в нем ошибки - это очень скурпулезная работа, для усидчивых, потребует много усилий, самоотдачи и глубокого погружения - и не факт, что я на такое готова. На тот момент моя должность формально называлась контент-менеджер и я зарабатывала 35 тысяч рублей - но и доллар тогда стоил 30. Однажды мне не спалось, я думала о своих карьерных планах и перспективах. Я встала с кровати - и пошла изучать сайт hh. Стала искать, сколько может зарабатывать контент-менеджер. Максимальная цена вакансии на hh была 50 тысяч, дальше всё - потолок, по крайней мере из того, что там было. А сколько зарабатывает Python-разработчик - подумала я? У меня за плечами уже была парочка необременительных онлайн-курсов по питону. Для питон-разработчиков минимальная зарплата была 60 тысяч, а для не новичков - уже 80, 100, 120 итд. И это было до 2014 года - нефть еще стоила 100, а доллар - 30 - так что те 100 тысяч рублей были совсем не той цифрой, что сейчас. Хмм… - подумала я. И с этого момента решила заняться программированием вплотную, серьезно и с полным погружением. Заодно это был эксперимент - можно ли выучиться на новую профессию только с помощью онлайн-курсов? Спойлер: можно. Кстати, по поводу того, как прийти в IT - гарвардский преподаватель курса CS50 - (computer science) - рассказывал, что когда-то давно он записался на этот курс просто так - случайно, из любопытсва. Его в то время интересовали история, литература, и тому подобные предметы. Но он решил попробовать что-то необычное - и вот теперь он уже сам преподает computer science. Так что изначальный бэкграунд - может быть совсем другим. С другой стороны, я знаю людей, которые учились на программистов в ВУЗе, но поняли, что им не нравится эта профессия и ушли в другие сферы. Не бойтесь пробовать новое. У вас всё получится!