Не стоит равняться на своё окружение
По крайней мере в том случае, если это окружение не мотивирует вас развиваться.
Вон у Маши зарплата 20 тысяч, у Ирки - 15. Значит - все столько получают.
- Да, мой муж алкоголик, но зато хоть не дерется. А у кого лучше? Мой-то хоть работает - а у Ленки вообще весь день на диване лежит, только за водкой и выходит.
- Да, у меня не интересная работа, но разве кто-то любит свою работу? Хоть на выходных выходить не заставляют - а вот Васе приходится и по субботам часто смены брать - и то без доплаты, иначе сократят. Это у меня еще хорошая работа. На меня там хоть не орут - а вон у Кати начальница такая мегера - мозг чайной ложечкой выедает. Лучше сидеть на попе ровно
Вот примерно так многие и рассуждают.
Я это к чему? То, что в вашем окружении у всех дела не очень, не значит, что так же должно быть и у вас. Я за то, чтобы не отказывать себе в лучшей жизни - почему не найти себе профессию поинтереснее, работу более высокооплачиваемую, достойного партнера? Зачем довольствоваться малым и всю жизнь проводить в условной нищете? Почти всегда можно найти пути, как вкладываться в себя и развиваться.
По крайней мере в том случае, если это окружение не мотивирует вас развиваться.
Вон у Маши зарплата 20 тысяч, у Ирки - 15. Значит - все столько получают.
- Да, мой муж алкоголик, но зато хоть не дерется. А у кого лучше? Мой-то хоть работает - а у Ленки вообще весь день на диване лежит, только за водкой и выходит.
- Да, у меня не интересная работа, но разве кто-то любит свою работу? Хоть на выходных выходить не заставляют - а вот Васе приходится и по субботам часто смены брать - и то без доплаты, иначе сократят. Это у меня еще хорошая работа. На меня там хоть не орут - а вон у Кати начальница такая мегера - мозг чайной ложечкой выедает. Лучше сидеть на попе ровно
Вот примерно так многие и рассуждают.
Я это к чему? То, что в вашем окружении у всех дела не очень, не значит, что так же должно быть и у вас. Я за то, чтобы не отказывать себе в лучшей жизни - почему не найти себе профессию поинтереснее, работу более высокооплачиваемую, достойного партнера? Зачем довольствоваться малым и всю жизнь проводить в условной нищете? Почти всегда можно найти пути, как вкладываться в себя и развиваться.
❤1
Программирование - это не моё
Я до поры до времени и не подозревала, что программирование - это «моё». В семье все гуманитарии, в школе информатика была никакой - совершенно не зацепила. Училась я примерно ровно по разным предметам - относилась более или менее по-раздолбайски, но на четверки-пятерки вытягивала. Готовиться к техническим вузам в голову не приходило - на счет биофака еще были мысли, но лягушечек было жалко. Так что в итоге готовилась сдавать историю, а не матан.
Откуда тут взяться программированию?
Однажды подруга подкинула мне ссылку на курсеру. Это сейчас разных онлайн-курсов столько, что глаза разбегаются - а тогда они только начали появляться. У меня была тяга к самообразованию, и я стала проходить там всё подряд из любопытства - и курсы по генетике, и про постмодернизм в современном искусстве и что-то там про программирование для начинающих.
Самый первый такой курс по программированию был с элементарными задачками на javascript, прошла я его легко и быстро (там в общем-то и проходить было нечего). Но понимания, что я всерьез хочу идти в программирование тогда еще не возникло. Потом я проходила еще несколько курсов по IT - тоже так лениво, не спеша, если было слишком сложно - забрасывала.
Тогда я еще не была уверена, что мне это нравится - казалось, что закапываться в IT с головой, сидеть целыми днями, прорабатывать код, искать в нем ошибки - это очень скурпулезная работа, для усидчивых, потребует много усилий, самоотдачи и глубокого погружения - и не факт, что я на такое готова.
На тот момент моя должность формально называлась контент-менеджер и я зарабатывала 35 тысяч рублей - но и доллар тогда стоил 30. Однажды мне не спалось, я думала о своих карьерных планах и перспективах. Я встала с кровати - и пошла изучать сайт hh. Стала искать, сколько может зарабатывать контент-менеджер. Максимальная цена вакансии на hh была 50 тысяч, дальше всё - потолок, по крайней мере из того, что там было. А сколько зарабатывает Python-разработчик - подумала я? У меня за плечами уже была парочка необременительных онлайн-курсов по питону. Для питон-разработчиков минимальная зарплата была 60 тысяч, а для не новичков - уже 80, 100, 120 итд. И это было до 2014 года - нефть еще стоила 100, а доллар - 30 - так что те 100 тысяч рублей были совсем не той цифрой, что сейчас. Хмм… - подумала я. И с этого момента решила заняться программированием вплотную, серьезно и с полным погружением.
Заодно это был эксперимент - можно ли выучиться на новую профессию только с помощью онлайн-курсов? Спойлер: можно.
Кстати, по поводу того, как прийти в IT - гарвардский преподаватель курса CS50 - (computer science) - рассказывал, что когда-то давно он записался на этот курс просто так - случайно, из любопытсва. Его в то время интересовали история, литература, и тому подобные предметы. Но он решил попробовать что-то необычное - и вот теперь он уже сам преподает computer science. Так что изначальный бэкграунд - может быть совсем другим.
С другой стороны, я знаю людей, которые учились на программистов в ВУЗе, но поняли, что им не нравится эта профессия и ушли в другие сферы.
Не бойтесь пробовать новое. У вас всё получится!
Я до поры до времени и не подозревала, что программирование - это «моё». В семье все гуманитарии, в школе информатика была никакой - совершенно не зацепила. Училась я примерно ровно по разным предметам - относилась более или менее по-раздолбайски, но на четверки-пятерки вытягивала. Готовиться к техническим вузам в голову не приходило - на счет биофака еще были мысли, но лягушечек было жалко. Так что в итоге готовилась сдавать историю, а не матан.
Откуда тут взяться программированию?
Однажды подруга подкинула мне ссылку на курсеру. Это сейчас разных онлайн-курсов столько, что глаза разбегаются - а тогда они только начали появляться. У меня была тяга к самообразованию, и я стала проходить там всё подряд из любопытства - и курсы по генетике, и про постмодернизм в современном искусстве и что-то там про программирование для начинающих.
Самый первый такой курс по программированию был с элементарными задачками на javascript, прошла я его легко и быстро (там в общем-то и проходить было нечего). Но понимания, что я всерьез хочу идти в программирование тогда еще не возникло. Потом я проходила еще несколько курсов по IT - тоже так лениво, не спеша, если было слишком сложно - забрасывала.
Тогда я еще не была уверена, что мне это нравится - казалось, что закапываться в IT с головой, сидеть целыми днями, прорабатывать код, искать в нем ошибки - это очень скурпулезная работа, для усидчивых, потребует много усилий, самоотдачи и глубокого погружения - и не факт, что я на такое готова.
На тот момент моя должность формально называлась контент-менеджер и я зарабатывала 35 тысяч рублей - но и доллар тогда стоил 30. Однажды мне не спалось, я думала о своих карьерных планах и перспективах. Я встала с кровати - и пошла изучать сайт hh. Стала искать, сколько может зарабатывать контент-менеджер. Максимальная цена вакансии на hh была 50 тысяч, дальше всё - потолок, по крайней мере из того, что там было. А сколько зарабатывает Python-разработчик - подумала я? У меня за плечами уже была парочка необременительных онлайн-курсов по питону. Для питон-разработчиков минимальная зарплата была 60 тысяч, а для не новичков - уже 80, 100, 120 итд. И это было до 2014 года - нефть еще стоила 100, а доллар - 30 - так что те 100 тысяч рублей были совсем не той цифрой, что сейчас. Хмм… - подумала я. И с этого момента решила заняться программированием вплотную, серьезно и с полным погружением.
Заодно это был эксперимент - можно ли выучиться на новую профессию только с помощью онлайн-курсов? Спойлер: можно.
Кстати, по поводу того, как прийти в IT - гарвардский преподаватель курса CS50 - (computer science) - рассказывал, что когда-то давно он записался на этот курс просто так - случайно, из любопытсва. Его в то время интересовали история, литература, и тому подобные предметы. Но он решил попробовать что-то необычное - и вот теперь он уже сам преподает computer science. Так что изначальный бэкграунд - может быть совсем другим.
С другой стороны, я знаю людей, которые учились на программистов в ВУЗе, но поняли, что им не нравится эта профессия и ушли в другие сферы.
Не бойтесь пробовать новое. У вас всё получится!
👍3❤1
Можно ли учиться и работать одновременно?
Мой ответ, наверно, разочарует читателей. Но скорее нет, чем да. При условии, что работа full-time и требует внимания, концентрации и интеллектуальных усилий.
Для того, чтобы много и полноценно учиться гораздо лучше подойдёт part-time подработка или какая-то халтурка.
В моём случае это был странный стартап, где было совершенно нечем заняться - задачи появлялись от силы раз в месяц и то не каждый месяц. Зато там был интернет и бесплатная еда. И с какого-то момента я начала приходить на работу, чтобы учиться там кодить. Место идеальное - всё-таки не дом, где и холодильник отвлекает и всегда есть чем заняться. Мешал только шумный опенспейс, в частности, 2 девочки по соседству, которые весь день громко обсуждали косметику - и порой заглушали курсеру в наушниках.
2я «итерация» совмещения учебы с работой была, когда я уже год как устроилась работать программистом, и начинала скучать - нового и интересного становилось всё меньше, задачи стали скатываться в рутину, а я сама - покрываться мхом. Тогда-то я подумала, что мне не хватает какого-то официального диплома - а то люди догадаются, что я «не настоящий» программист. Тогда мне попалась годовая онлайн-программа из 12 курсов, по завершению которой давали диплом о профессиональной переподготовке - не второе высшее, но уже что-то.
И скажу я вам, это был очень непростой год. Всё, что было в этой учебной программе связано с программированием - не особенно обременяло, так как было более или менее знакомым. Но матан… Приходилось вставать через день в 5 утра, чтобы решать этот страшный матан. Через день - потому что нужно было всё-таки отсыпаться. В дни утреннего матана я была нервной и злой до чертиков. В дни досыпа - чувствовала себя гораздо счастливее.
Почему утром, а не вечером? Вечером тоже приходилось учиться, куда ж без этого. Но после рабочего дня производительность мозга уже совсем не та. И то, что утром можно сделать за полчаса, вечером потребовало бы несколько часов. Так что на вечер лучше оставлять задания попроще.
Проходить по 3 курса в месяц при full-time работе, где тоже нужно думать - это уже слишком много, хотя казалось бы. Не потому что материал сложный (не особо он сложный), а потому что там дедлайны на задания, зачёты, экзамены - и катастрофически не хватало времени, чтобы к ним успевать - всё приходилось делать галопом.
А вообще дедлайны - это хорошо. Без дедлайнов очень сложно что-либо довести до разумной стадии и когда-либо закончить. Тянуть и делать всё «в своем темпе» можно бесконечно, как и «доводить до совершенства».
Стоит ли говорить, что все хобби и развлечения на время летят в трубу? Чтение (не технической литературы), гитарка, тусовки (ладно, тусовки - это не про меня) - всё это можно смело отложить до лучших времен. Время - беспощадная сука. Времени никогда не хватает.
Не слишком обнадеживающе звучит? Но ведь успех в любой профессиональной деятельности требует усилий и времени. Лично мне понадобилось 2 года разных онлайн курсов, чтобы найти первую работу в качестве айтишника - и возможно, это можно было сделать и раньше (если бы не синдром самозванца). 2 года - это не так уж и много, если подумать. А дальше рельсы были уже смазаны.
Мой ответ, наверно, разочарует читателей. Но скорее нет, чем да. При условии, что работа full-time и требует внимания, концентрации и интеллектуальных усилий.
Для того, чтобы много и полноценно учиться гораздо лучше подойдёт part-time подработка или какая-то халтурка.
В моём случае это был странный стартап, где было совершенно нечем заняться - задачи появлялись от силы раз в месяц и то не каждый месяц. Зато там был интернет и бесплатная еда. И с какого-то момента я начала приходить на работу, чтобы учиться там кодить. Место идеальное - всё-таки не дом, где и холодильник отвлекает и всегда есть чем заняться. Мешал только шумный опенспейс, в частности, 2 девочки по соседству, которые весь день громко обсуждали косметику - и порой заглушали курсеру в наушниках.
2я «итерация» совмещения учебы с работой была, когда я уже год как устроилась работать программистом, и начинала скучать - нового и интересного становилось всё меньше, задачи стали скатываться в рутину, а я сама - покрываться мхом. Тогда-то я подумала, что мне не хватает какого-то официального диплома - а то люди догадаются, что я «не настоящий» программист. Тогда мне попалась годовая онлайн-программа из 12 курсов, по завершению которой давали диплом о профессиональной переподготовке - не второе высшее, но уже что-то.
И скажу я вам, это был очень непростой год. Всё, что было в этой учебной программе связано с программированием - не особенно обременяло, так как было более или менее знакомым. Но матан… Приходилось вставать через день в 5 утра, чтобы решать этот страшный матан. Через день - потому что нужно было всё-таки отсыпаться. В дни утреннего матана я была нервной и злой до чертиков. В дни досыпа - чувствовала себя гораздо счастливее.
Почему утром, а не вечером? Вечером тоже приходилось учиться, куда ж без этого. Но после рабочего дня производительность мозга уже совсем не та. И то, что утром можно сделать за полчаса, вечером потребовало бы несколько часов. Так что на вечер лучше оставлять задания попроще.
Проходить по 3 курса в месяц при full-time работе, где тоже нужно думать - это уже слишком много, хотя казалось бы. Не потому что материал сложный (не особо он сложный), а потому что там дедлайны на задания, зачёты, экзамены - и катастрофически не хватало времени, чтобы к ним успевать - всё приходилось делать галопом.
А вообще дедлайны - это хорошо. Без дедлайнов очень сложно что-либо довести до разумной стадии и когда-либо закончить. Тянуть и делать всё «в своем темпе» можно бесконечно, как и «доводить до совершенства».
Стоит ли говорить, что все хобби и развлечения на время летят в трубу? Чтение (не технической литературы), гитарка, тусовки (ладно, тусовки - это не про меня) - всё это можно смело отложить до лучших времен. Время - беспощадная сука. Времени никогда не хватает.
Не слишком обнадеживающе звучит? Но ведь успех в любой профессиональной деятельности требует усилий и времени. Лично мне понадобилось 2 года разных онлайн курсов, чтобы найти первую работу в качестве айтишника - и возможно, это можно было сделать и раньше (если бы не синдром самозванца). 2 года - это не так уж и много, если подумать. А дальше рельсы были уже смазаны.
- Сложно разные технологии в одно время читать. Может есть лайфхак как можно 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 (или более) языков программирования. Это проще, чем с иностранными языками.
Проблема может быть в нехватке времени/сил/ресурсов - но чтобы её преодолевать, лайфхаки достаточно стандартные - ложиться пораньше, хорошо высыпаться, обеспечить себе качественный отдых и период восстановления - делать зарядку, прогулки на свежем воздухе, спорт, заботиться о здоровье. В работе и учёбе полезно делать перерывы - то есть, когда чувствуете, что мозг «перегрелся», вы уткнулись в одну задачу и никак не можете сдвинуться с мертвой точки - тогда стоит все прервать, выйти на свежий воздух, прогуляться, сделать кофе-брейк итд итп. Часто бывает, что именно во время такого перерыва нужное решение и приходит в голову.
Что касается javascript - тут я могу дать вам «вредный» совет: для начала не стремитесь сильно углубляться в «чистый» javascript. Совет вредный, потому что вообще учение свет, неучение тьма, и глубокие знания всегда предпочтительнее поверхностных, итд итп. Но тем не менее, чистым или «ванильным» javascript сейчас пользуются мало - больше востребованы разные библиотеки и фреймворки: упомянутый вами jquery, angular, react, vue и прочая и прочая.
Я подчеркиваю - для начала - разберитесь с элементарными азами и основами синтаксиса javascript (синтаксис достаточно стандартный для си-подобных языков), потом - сразу переходите к jquery - это не сложно, по сути это просто библиотека, которая предоставляет удобный доступ к элементам HTML DOM. Для первых шагов и первых несложных действий этого будет достаточно - гугл в помощь, как говорится. Вообще, чтобы начать использовать новый язык/инструмент, и делать на нем простые вещи, его не обязательно знать.
Разумеется, такой подход не сделает вас хорошим специалистом. Так, что в дальнейшем, конечно - изучайте глубже. Вот например, в этой статье дают совершенно противоположные моим рекомендации - изучайте в первую очередь «чистый» javascript, а не фреймворки: https://www.cat-in-web.ru/vanilla-js/. И они правы. Так и нужно.
Я лишь о том, что не стоит бояться своего незнания и новых технологий - открывайте, пробуйте, делайте первые шаги.
Нужно ли мне знать английский язык?
Да, нужно. На каком уровне? - В совершенстве не обязательно. Но чем выше уровень, тем легче получать информацию.
Свободный английский позволит без проблем слушать любые курсы по IT на английском языке и не задумываться о том, есть ли к ним русские субтитры. То же касается докладов на конференциях от иностранных спикеров. И если речь идёт о видеозаписях - то хороший английский позволит их слушать даже на скорости 2х, без потери информации (время - дорогой ресурс, а темп речи у спикеров часто слишком медленный).
Но у меня есть хорошая новость - технический английский гораздо легче литературного. Набор терминов, которые нужно запомнить - относительно небольшой, и часто это интернациональные слова, которые по русски звучат почти так же (ну те же coding, number, compute). Технические тексты проще, чем художественная литература и проще, чем газетные статьи - в них нет такого объема лексики, метафор, архаизмов и фразеологических оборотов. А лекции и доклады слушать проще, чем смотреть сериалы в оригинале - в них нет сленга, разных отсылок и контекстно-зависимых шуток.
Самый базовый необходимый уровень английского языка - это умение читать и понимать технические тексты. Обычно эта формулировка встречается в вакансиях. Многие мои знакомые айтишники владеют английским именно на таком уровне - сказать ничего не могут, на слух понимают плохо, но могут прочитать текст и извлечь из него нужную информацию. Без этого никак, так как далеко не всю документацию кто-то заморочился перевести на русский язык.
Кроме того, гуглить, как правило, эффективнее на английском языке. На английком языке вы загуглите любой самый дурацкий вопрос, и найдёте десяток ответов и советов на stackoverflow. На русском языке - нагуглится какой-то форум, обитатели которого ответят вам «ты что, дебил? иди читай документацию». Я не знаю, почему так. ¯\_(ツ)_/¯
Книги по IT довольно медленно переводят на русский язык (и далеко не всегда переводят) - пока книгу переведут, отредактируют и опубликуют, информация в ней уже устареет - выйдет несколько новых версий инструмента, которому посвящена книга - технологии эволюционируют очень быстро.
И да, большая часть всей информации по IT написана на английском языке.
Да, нужно. На каком уровне? - В совершенстве не обязательно. Но чем выше уровень, тем легче получать информацию.
Свободный английский позволит без проблем слушать любые курсы по IT на английском языке и не задумываться о том, есть ли к ним русские субтитры. То же касается докладов на конференциях от иностранных спикеров. И если речь идёт о видеозаписях - то хороший английский позволит их слушать даже на скорости 2х, без потери информации (время - дорогой ресурс, а темп речи у спикеров часто слишком медленный).
Но у меня есть хорошая новость - технический английский гораздо легче литературного. Набор терминов, которые нужно запомнить - относительно небольшой, и часто это интернациональные слова, которые по русски звучат почти так же (ну те же coding, number, compute). Технические тексты проще, чем художественная литература и проще, чем газетные статьи - в них нет такого объема лексики, метафор, архаизмов и фразеологических оборотов. А лекции и доклады слушать проще, чем смотреть сериалы в оригинале - в них нет сленга, разных отсылок и контекстно-зависимых шуток.
Самый базовый необходимый уровень английского языка - это умение читать и понимать технические тексты. Обычно эта формулировка встречается в вакансиях. Многие мои знакомые айтишники владеют английским именно на таком уровне - сказать ничего не могут, на слух понимают плохо, но могут прочитать текст и извлечь из него нужную информацию. Без этого никак, так как далеко не всю документацию кто-то заморочился перевести на русский язык.
Кроме того, гуглить, как правило, эффективнее на английском языке. На английком языке вы загуглите любой самый дурацкий вопрос, и найдёте десяток ответов и советов на stackoverflow. На русском языке - нагуглится какой-то форум, обитатели которого ответят вам «ты что, дебил? иди читай документацию». Я не знаю, почему так. ¯\_(ツ)_/¯
Книги по IT довольно медленно переводят на русский язык (и далеко не всегда переводят) - пока книгу переведут, отредактируют и опубликуют, информация в ней уже устареет - выйдет несколько новых версий инструмента, которому посвящена книга - технологии эволюционируют очень быстро.
И да, большая часть всей информации по IT написана на английском языке.
Когда начинать работать по новой специальности?
Когда осваиваешь новую специальность, еще долгое время будет казаться, что знаешь недостаточно, и работать еще рано. С таким подходом очень легко впасть в крайность и превратиться в «вечного студента». Да нет, я еще знаю мало, надо еще подучиться, кому я нужен?
Обучение, скажем, тому же программированию можно сравнить с занятиями плаванием. Вы стоите на земле, инструктор показывает вам правильные движения, объясняет, как дышать, как синхронизировать вдохи и выдохи с движениями руками и ногами. Так вот учеба - это именно этот этап, когда в воду вы не заходите. И представьте абсурдность ситуации, когда человек много лет посещает бассейн, но никогда не касается воды - зато упорно отрабатывает движения в воздухе - брас идеально отточен, каждый пальчик на руке знает своё место.
А плавание в воде - это уже работа. Здесь пловец сталкивается совсем с другими задачами - здесь ему говорят - доплыви до противоположного бортика. Он пробует - и не может. Он никогда этого не делал. А что? А как?
Поэтому с участием в настоящих проектах лучше не затягивать. Я уже писала о том, что совмещать работу и учебу очень трудно. Поэтому, если учеба очень интенсивная и поглощает много ресурсов - тогда, конечно, идти на full-time работу будет сложно. Но можно найти какую-то альтернативу - например, найти стажировку или вписаться в open-source проект - наверняка сейчас можно найти варианты и для новичков. Идея в том, чтобы уметь решать не только учебные задачи, но и приобрести опыт промышленной разработки.
Я откровенно боялась объявлять себя в резюме разработчиком - было стыдно - ну я же ничего не умею, у меня лапки. Пинок под зад я получила, когда наш стартап развалился и я оказалась безработной.
К тому времени у меня было 2 года разных курсов на coursera и edx. На работе в стартапе я, задолбавшись от рутинных задач поняла, что у меня есть руки и Python и потихоньку автоматизировала, что могла. Мне нужно было смотреть видеопотоки с записями спортивных ивентов, и искать там определенные моменты по таймстемпам. И в какой-то момент я смекнула, что у VLC-плеера должен быть свой API - и, наверно, можно сделать питоном такой скрипт, который будет сам открывать мне видеозаписи по списку с нужного места. Да еще и можно добавить кнопочку next. И да - оказалось, что можно. Потом еще я написала пару скриптов для удобного сбора нужной инфы в excel-файл - что-то там накостылила из Python-а и базы данных SQLite - руками все это заполнять было очень мутроно и уныло. Это был мой единственный опыт решения реальных задач средствами программирования.
И вот я без работы, и понимаю, что дальше тянуть резину было глупо - надо было искать работу уже как айтишник. В итоге резюме я писала целый день, часов 10. Долго и мучтельно высасывала из пальца (точнее из описанного выше абзаца) хоть какой-то опыт разработки. К позднему вечеру мое первое резюме разработчика было готова, а у меня уже нехило так болела голова от напряжения. Выложила резюме в Интернете. Рано утром позвонила девушка-HR. «Вы еще ищете работу? У вас уже много предложений?». После парочки собеседований, в итоге я пошла работать по этому первому предложению. Так что можно сказать, поиск моей первой айтишной работы занял 1 день…
Когда осваиваешь новую специальность, еще долгое время будет казаться, что знаешь недостаточно, и работать еще рано. С таким подходом очень легко впасть в крайность и превратиться в «вечного студента». Да нет, я еще знаю мало, надо еще подучиться, кому я нужен?
Обучение, скажем, тому же программированию можно сравнить с занятиями плаванием. Вы стоите на земле, инструктор показывает вам правильные движения, объясняет, как дышать, как синхронизировать вдохи и выдохи с движениями руками и ногами. Так вот учеба - это именно этот этап, когда в воду вы не заходите. И представьте абсурдность ситуации, когда человек много лет посещает бассейн, но никогда не касается воды - зато упорно отрабатывает движения в воздухе - брас идеально отточен, каждый пальчик на руке знает своё место.
А плавание в воде - это уже работа. Здесь пловец сталкивается совсем с другими задачами - здесь ему говорят - доплыви до противоположного бортика. Он пробует - и не может. Он никогда этого не делал. А что? А как?
Поэтому с участием в настоящих проектах лучше не затягивать. Я уже писала о том, что совмещать работу и учебу очень трудно. Поэтому, если учеба очень интенсивная и поглощает много ресурсов - тогда, конечно, идти на full-time работу будет сложно. Но можно найти какую-то альтернативу - например, найти стажировку или вписаться в open-source проект - наверняка сейчас можно найти варианты и для новичков. Идея в том, чтобы уметь решать не только учебные задачи, но и приобрести опыт промышленной разработки.
Я откровенно боялась объявлять себя в резюме разработчиком - было стыдно - ну я же ничего не умею, у меня лапки. Пинок под зад я получила, когда наш стартап развалился и я оказалась безработной.
К тому времени у меня было 2 года разных курсов на coursera и edx. На работе в стартапе я, задолбавшись от рутинных задач поняла, что у меня есть руки и Python и потихоньку автоматизировала, что могла. Мне нужно было смотреть видеопотоки с записями спортивных ивентов, и искать там определенные моменты по таймстемпам. И в какой-то момент я смекнула, что у VLC-плеера должен быть свой API - и, наверно, можно сделать питоном такой скрипт, который будет сам открывать мне видеозаписи по списку с нужного места. Да еще и можно добавить кнопочку next. И да - оказалось, что можно. Потом еще я написала пару скриптов для удобного сбора нужной инфы в excel-файл - что-то там накостылила из Python-а и базы данных SQLite - руками все это заполнять было очень мутроно и уныло. Это был мой единственный опыт решения реальных задач средствами программирования.
И вот я без работы, и понимаю, что дальше тянуть резину было глупо - надо было искать работу уже как айтишник. В итоге резюме я писала целый день, часов 10. Долго и мучтельно высасывала из пальца (точнее из описанного выше абзаца) хоть какой-то опыт разработки. К позднему вечеру мое первое резюме разработчика было готова, а у меня уже нехило так болела голова от напряжения. Выложила резюме в Интернете. Рано утром позвонила девушка-HR. «Вы еще ищете работу? У вас уже много предложений?». После парочки собеседований, в итоге я пошла работать по этому первому предложению. Так что можно сказать, поиск моей первой айтишной работы занял 1 день…
Напоминаю, что если у вас есть вопросы, их можно задать в боте: @hum_it_bot
Почему вы пройдёте собеседование
Этот пост для робких IT-новичков, которые боятся провалить свои первые собеседования. Я расскажу вам, почему у вас есть все шансы пройти собеседование на свою стартовую позицию.
1) На рынке царит дефицит айтишников. Особенно хороших айтишников. Их действительно мало. Все, конечно, хотели бы взять самых опытных и крутых специалистов (да еще и платить им как junior-ам), но все знают, что таких на всех не хватит. Поэтому на подающего надежды новичка обязательно обратят внимание. Если не в этой компании, то в следующей. В силу этого дефицита не стесняйтесь откликаться на вакансии, где требуется, скажем, год опыта работы (а у вас его 0) - работодатель хочет найти человека с опытом в идеале. Но поиск тернист и труден, а кандидаты, строго соответствующие описанию вакансии, встречаются очень редко.
2) Вообще многие компании любят джуниоров именно из соображения, что им можно меньше платить. Для опытного разработчика это так себе новость, но для новичков - отличная возможность найти себе работу и приобрести первый опыт.
3) Вы адекватны? Значит, вас оценят. Я серьезно. Возможно, вы сами когда-либо проводили собеседования или нанимали сотрудников (неважно на какую должность) и замечали - как мало приходит банально адекватных людей? Навыки можно приобрести, а вот научиться адекватности, если её нет - едва ли. А резюме, где кандидат сильно оригинальничает и «чудит», многие работодатели после первой же странности не станут читать - в каждой компании уже есть свой «чудик», а то и несколько. Все ищут просто нормальных людей. Звучит парадоксально, но таких достаточно сложно найти. Так что если вы здраво и логично рассуждаете, умеете грамотно излагать свои мысли и корретно их аргументировать, доброжелательны и вежливы - вас заметят.
4) Вы умеете учиться и желаете осваивать новые технологии? Работодатель увидит в вас перспективного новичка и захочет взять «на вырост». Не смогли ответить на вопросы на собеседовании? - спросите интервьюера, что стоит почитать по теме, какие знания подтянуть. Покажите, что наличие нужных знаний у вас - это вопрос времени. Говорят, что знаний мало для вакансии? - договоритесь о встрече через полгода, когда подучите нужный материал.
И главное - не получилось сегодня, получится завтра или через месяц. Не взяли в одну компанию - возьмут в другую. Не везде требования одинаково жесткие - кому-то достаточно вашего настроя на развитие и базовых знаний.
Этот пост для робких IT-новичков, которые боятся провалить свои первые собеседования. Я расскажу вам, почему у вас есть все шансы пройти собеседование на свою стартовую позицию.
1) На рынке царит дефицит айтишников. Особенно хороших айтишников. Их действительно мало. Все, конечно, хотели бы взять самых опытных и крутых специалистов (да еще и платить им как junior-ам), но все знают, что таких на всех не хватит. Поэтому на подающего надежды новичка обязательно обратят внимание. Если не в этой компании, то в следующей. В силу этого дефицита не стесняйтесь откликаться на вакансии, где требуется, скажем, год опыта работы (а у вас его 0) - работодатель хочет найти человека с опытом в идеале. Но поиск тернист и труден, а кандидаты, строго соответствующие описанию вакансии, встречаются очень редко.
2) Вообще многие компании любят джуниоров именно из соображения, что им можно меньше платить. Для опытного разработчика это так себе новость, но для новичков - отличная возможность найти себе работу и приобрести первый опыт.
3) Вы адекватны? Значит, вас оценят. Я серьезно. Возможно, вы сами когда-либо проводили собеседования или нанимали сотрудников (неважно на какую должность) и замечали - как мало приходит банально адекватных людей? Навыки можно приобрести, а вот научиться адекватности, если её нет - едва ли. А резюме, где кандидат сильно оригинальничает и «чудит», многие работодатели после первой же странности не станут читать - в каждой компании уже есть свой «чудик», а то и несколько. Все ищут просто нормальных людей. Звучит парадоксально, но таких достаточно сложно найти. Так что если вы здраво и логично рассуждаете, умеете грамотно излагать свои мысли и корретно их аргументировать, доброжелательны и вежливы - вас заметят.
4) Вы умеете учиться и желаете осваивать новые технологии? Работодатель увидит в вас перспективного новичка и захочет взять «на вырост». Не смогли ответить на вопросы на собеседовании? - спросите интервьюера, что стоит почитать по теме, какие знания подтянуть. Покажите, что наличие нужных знаний у вас - это вопрос времени. Говорят, что знаний мало для вакансии? - договоритесь о встрече через полгода, когда подучите нужный материал.
И главное - не получилось сегодня, получится завтра или через месяц. Не взяли в одну компанию - возьмут в другую. Не везде требования одинаково жесткие - кому-то достаточно вашего настроя на развитие и базовых знаний.
Ура! Вас уже 256. Ждём следующего рекорда - 512 подписчиков.
Выучу 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 и не налегаете на матан - значит нужно копать не только в ЯП, но и в то, «как оно всё устроено» - хотя бы на уровне ликбеза - про операционные системы, сетевые протоколы, базы данных ит.п. Так как сталкиваться на работе придется именно с этими вещами, а не просто с питоном в вакууме (в текстовом редакторе).
Не так быстро, мой юный друг.
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 и не налегаете на матан - значит нужно копать не только в ЯП, но и в то, «как оно всё устроено» - хотя бы на уровне ликбеза - про операционные системы, сетевые протоколы, базы данных ит.п. Так как сталкиваться на работе придется именно с этими вещами, а не просто с питоном в вакууме (в текстовом редакторе).
За что я люблю IT
1) Здесь не выносят мозг. Люди, которые работали только в IT со мной не согласятся - но им просто не с чем сравнить. 🙂 Понятное дело, мозг выносят везде, где есть другие люди, но здесь - не так сильно. Никто не застрахован от того, что именно вам попадётся очень вредный и «токсичный» коллега, но концентрация таких в IT заметно меньше, чем, например, в продажах, да и много где еще. Сама по себе профессия подразумевает потребность спокойно подумать, а постоянные конфликты и разборки этому вряд ли помогут. Уровень стресса в этом плане гораздо ниже, чем в среднем, никаких тебе Лена! Ты как посмела клиенту сказать слово «наверное»? Уровень выноса мозга растёт вместе с вертикальным карьерным ростом - и да, если вы стали руководителем, значит придется больше контактировать с источниками конфликтов и претензий - то есть, с другими отделами и с высшим менеджментом, но такова цена.
2) Тут не задают глупых вопросов на собеседованиях. Ладно, задают, но меньше. Например, могут спросить «Нужно ли индексировать булево поле в таблице?» - без дополнительных уточнений вопрос бессмысленный. Но гораздо с меньшей вероятностью спросят, кем вы себя видите через 5 лет и какой у вас знак зодиака. Видимо, когда приходишь работать офисным клерком, собеседующие просто не знают, какие вопросы задать, поэтому спрашивают всякую дичь. Когда я начала ходить на собеседования на должность разработчика, то была удивлена, как изменился формат собеседований. Внезапно, никого не интересует моя личная жизнь. А чего у меня только не спрашивали раньше - «У вас есть парень? А планируете?» - «Что планирую? Парня?». «А когда собираетесь детей заводить?». Почему-то в IT не так заметно параноят на тему того, что я пришла к ним только для того, чтобы уйти в декрет.
3) Тут платят больше, чем во многих других сферах.
4) Тут ценят интеллект и знания. Как-то, на очередной подработке, я готовила презентацию, которую менеджеры собирались показывать клиенту, и думала о том, что с моей работой справится и 5-классник. И для этого надо было учиться 10 лет в школе и 5 в ВУЗе? А перед этим - сотни тысяч лет эволюции человеческого мозга - всё для того, чтобы делать какие-то тривиальные вещи? Тогда я поняла, что определенно хочу работать головой, а не языком («ООО Рога и Копыта, Елена, здравствуйте!») и не руками (например копипастить картинки для презентации). И вуа-ля, в IT работают именно головой, а не другими частями тела.
5) Тут кипит жизнь. Технологии развиваются с космическими скоростями. Многие работодатели оплачивают своим разработчикам участие в конференциях и митапах - всегда есть множество вариантов для обмена опытом и освежения своих знаний. В отличие от многих других областей, где может наблюдаться застой и стагнация - IT никогда не стоит на месте. И если ты начинаешь чувствовать, что сидишь в болоте - достаточно сменить место работы и найти более современную и высокотехнологичную компанию.
1) Здесь не выносят мозг. Люди, которые работали только в IT со мной не согласятся - но им просто не с чем сравнить. 🙂 Понятное дело, мозг выносят везде, где есть другие люди, но здесь - не так сильно. Никто не застрахован от того, что именно вам попадётся очень вредный и «токсичный» коллега, но концентрация таких в IT заметно меньше, чем, например, в продажах, да и много где еще. Сама по себе профессия подразумевает потребность спокойно подумать, а постоянные конфликты и разборки этому вряд ли помогут. Уровень стресса в этом плане гораздо ниже, чем в среднем, никаких тебе Лена! Ты как посмела клиенту сказать слово «наверное»? Уровень выноса мозга растёт вместе с вертикальным карьерным ростом - и да, если вы стали руководителем, значит придется больше контактировать с источниками конфликтов и претензий - то есть, с другими отделами и с высшим менеджментом, но такова цена.
2) Тут не задают глупых вопросов на собеседованиях. Ладно, задают, но меньше. Например, могут спросить «Нужно ли индексировать булево поле в таблице?» - без дополнительных уточнений вопрос бессмысленный. Но гораздо с меньшей вероятностью спросят, кем вы себя видите через 5 лет и какой у вас знак зодиака. Видимо, когда приходишь работать офисным клерком, собеседующие просто не знают, какие вопросы задать, поэтому спрашивают всякую дичь. Когда я начала ходить на собеседования на должность разработчика, то была удивлена, как изменился формат собеседований. Внезапно, никого не интересует моя личная жизнь. А чего у меня только не спрашивали раньше - «У вас есть парень? А планируете?» - «Что планирую? Парня?». «А когда собираетесь детей заводить?». Почему-то в IT не так заметно параноят на тему того, что я пришла к ним только для того, чтобы уйти в декрет.
3) Тут платят больше, чем во многих других сферах.
4) Тут ценят интеллект и знания. Как-то, на очередной подработке, я готовила презентацию, которую менеджеры собирались показывать клиенту, и думала о том, что с моей работой справится и 5-классник. И для этого надо было учиться 10 лет в школе и 5 в ВУЗе? А перед этим - сотни тысяч лет эволюции человеческого мозга - всё для того, чтобы делать какие-то тривиальные вещи? Тогда я поняла, что определенно хочу работать головой, а не языком («ООО Рога и Копыта, Елена, здравствуйте!») и не руками (например копипастить картинки для презентации). И вуа-ля, в IT работают именно головой, а не другими частями тела.
5) Тут кипит жизнь. Технологии развиваются с космическими скоростями. Многие работодатели оплачивают своим разработчикам участие в конференциях и митапах - всегда есть множество вариантов для обмена опытом и освежения своих знаний. В отличие от многих других областей, где может наблюдаться застой и стагнация - IT никогда не стоит на месте. И если ты начинаешь чувствовать, что сидишь в болоте - достаточно сменить место работы и найти более современную и высокотехнологичную компанию.
Учитесь задавать вопросы
И я, и мои коллеги часто сталкиваемся с такой особенностью молодых ребят (условно 20-летних) - как нежелание или неумение говорить, уточнять, задавать вопросы. Сложно сказать, в чем причина - то ли это что-то поколенческое, то ли так воздействует система образования, а, может быть, сказывается отсутствие опыта работы в коллективе.
Стандартная ситуация выглядит так: объясняешь человеку задачу, спрашиваешь, всё ли понятно? - Да, всё понятно. Человек уходит работать. И на первый взгляд всё хорошо.
Впоследствии же оказывается, что на самом деле ничего не было понятно, но человек постеснялся/побоялся или ему было просто западло в этом признаться. Он идёт «работать над задачей» - и надеется, что проблема как-то сама рассосётся, или же он в процессе работы поймёт, что именно надо делать. С вопросами и уточнениями он не подходит, сидит молча и либо просто что-то непродуктивно ковыряет и прокрастинирует, либо делает совсем не то, что от него требовалось.
Поэтому, друзья - задавать вопросы - это важнейший навык. До тех пор, пока у вас нет исчерпывающего понимания своей задачи - надо спрашивать снова и снова - и не бояться «задолбать» коллег своими уточнениями. Коллеги гораздо сильнее расстроятся, когда спустя две недели выяснится, что вы неправильно поняли задачу и всё это время прошло впустую, а они не получат результат, на который рассчитывали.
Еще хорошая практика - подытожить задачу и сформулировать её своими словами: «Правильно ли я понял(а), что мне нужно сделать то и то?» - чтобы уж точно синхронизироваться в понимании.
Главное - никогда не перекладывайте ответственность на того, кто задачу ставил - мол «мне не объяснили, мне не показали, я не знал, я сделал как мне сказали» - детство кончилось. Разобраться в задаче и понять, что нужно делать - это ваша прямая обязанность.
И я, и мои коллеги часто сталкиваемся с такой особенностью молодых ребят (условно 20-летних) - как нежелание или неумение говорить, уточнять, задавать вопросы. Сложно сказать, в чем причина - то ли это что-то поколенческое, то ли так воздействует система образования, а, может быть, сказывается отсутствие опыта работы в коллективе.
Стандартная ситуация выглядит так: объясняешь человеку задачу, спрашиваешь, всё ли понятно? - Да, всё понятно. Человек уходит работать. И на первый взгляд всё хорошо.
Впоследствии же оказывается, что на самом деле ничего не было понятно, но человек постеснялся/побоялся или ему было просто западло в этом признаться. Он идёт «работать над задачей» - и надеется, что проблема как-то сама рассосётся, или же он в процессе работы поймёт, что именно надо делать. С вопросами и уточнениями он не подходит, сидит молча и либо просто что-то непродуктивно ковыряет и прокрастинирует, либо делает совсем не то, что от него требовалось.
Поэтому, друзья - задавать вопросы - это важнейший навык. До тех пор, пока у вас нет исчерпывающего понимания своей задачи - надо спрашивать снова и снова - и не бояться «задолбать» коллег своими уточнениями. Коллеги гораздо сильнее расстроятся, когда спустя две недели выяснится, что вы неправильно поняли задачу и всё это время прошло впустую, а они не получат результат, на который рассчитывали.
Еще хорошая практика - подытожить задачу и сформулировать её своими словами: «Правильно ли я понял(а), что мне нужно сделать то и то?» - чтобы уж точно синхронизироваться в понимании.
Главное - никогда не перекладывайте ответственность на того, кто задачу ставил - мол «мне не объяснили, мне не показали, я не знал, я сделал как мне сказали» - детство кончилось. Разобраться в задаче и понять, что нужно делать - это ваша прямая обязанность.
Про мотивацию
Расскажу, что мотивировало учиться программированию меня.
Во-первых, азарт - это был эксперимент, можно ли на одних бесплатных онлайн-курсах въехать в IT. Тогда их было не так уж много, формат был непривычным и еще трудно было относиться к такой форме обучения серьезно. Некоторым моим родственникам казалось нонсенсом, что курсы вообще бывают бесплатными.
Зато сейчас курсов и онлайн и оффлайн столько, что аж глаза разбегаются. И я не уверена, что одни онлайн курсы - это самый эффективный и простой путь. Скорее имеет смысл провести анализ разных вариантов - почитать рекомендации и отзывы и выбрать то, что подойдет именно вам. Например, хороший вариант - курсы при IT-компаниях, в том числе очные. Свою «программу обучения» я формировала достаточно случайным образом - просто «загребала» все онлайн-курсы, которые были в наличии на тот момент и относились с IT, благо их было не так много. И, полагаю, что лучший вариант - не такой рандом, а когда более опытные специалисты состовляют для вас программу обучения и определяют, с чего начать, что изучать в каком порядке и в каком объеме.
Во-вторых, меня мотивировало моё незнание. Сталкиваясь с какими-то новыми для меня понятиями или технологиями, я думала «блин! да я же ничего про это не знаю! Какой тогда из меня айтишник? Срочно изучать!». Руководствуясь такими мыслями, я проходила курсы и читала книги на разные темы - об алгоритмах и структурах данных, о сетях, о Unix и Linux, про базы данных, разные языки программирования, веб-разработку, криптографию и еще всякое разное. В разработку под андроид я пробовала, но как-то не пошло. Не всё из того, что я тогда изучала, я помню до сих пор - когда какие-то знания не используются на практике, они, увы, улетучиваются. Но по большей части пригодилось очень многое из этого, как минимум в роли ликбеза.
В-третьих меня мотивировали, как ни странно, скука и безделье. Я уже упоминала, что в начале этого пути работала в неком стартапе, где не особо понимала, за что мне вообще платят зарплату. И большую часть «рабочих» дней мне там было абсолютно нечем заняться. А поглощать на работе днями и неделями развлекательный контент - достаточно уныло. Хотелось заняться чем-то продуктивным и полезным и не чувствовать, что всё время занимаешься какой-то херней. И курсы стали отличным вариантом.
А ещё мне хотелось стать нормальным специалистом, что-то уметь, в чем-то разбираться. Я испытывала неловкость от вопросов, кем я работаю - «ну, это сложно объяснить». Чувствовала себя не реализованной профессионально и бесполезной, «никем». И мне очень хотелось избавиться от этого ощущения.
Расскажу, что мотивировало учиться программированию меня.
Во-первых, азарт - это был эксперимент, можно ли на одних бесплатных онлайн-курсах въехать в IT. Тогда их было не так уж много, формат был непривычным и еще трудно было относиться к такой форме обучения серьезно. Некоторым моим родственникам казалось нонсенсом, что курсы вообще бывают бесплатными.
Зато сейчас курсов и онлайн и оффлайн столько, что аж глаза разбегаются. И я не уверена, что одни онлайн курсы - это самый эффективный и простой путь. Скорее имеет смысл провести анализ разных вариантов - почитать рекомендации и отзывы и выбрать то, что подойдет именно вам. Например, хороший вариант - курсы при IT-компаниях, в том числе очные. Свою «программу обучения» я формировала достаточно случайным образом - просто «загребала» все онлайн-курсы, которые были в наличии на тот момент и относились с IT, благо их было не так много. И, полагаю, что лучший вариант - не такой рандом, а когда более опытные специалисты состовляют для вас программу обучения и определяют, с чего начать, что изучать в каком порядке и в каком объеме.
Во-вторых, меня мотивировало моё незнание. Сталкиваясь с какими-то новыми для меня понятиями или технологиями, я думала «блин! да я же ничего про это не знаю! Какой тогда из меня айтишник? Срочно изучать!». Руководствуясь такими мыслями, я проходила курсы и читала книги на разные темы - об алгоритмах и структурах данных, о сетях, о Unix и Linux, про базы данных, разные языки программирования, веб-разработку, криптографию и еще всякое разное. В разработку под андроид я пробовала, но как-то не пошло. Не всё из того, что я тогда изучала, я помню до сих пор - когда какие-то знания не используются на практике, они, увы, улетучиваются. Но по большей части пригодилось очень многое из этого, как минимум в роли ликбеза.
В-третьих меня мотивировали, как ни странно, скука и безделье. Я уже упоминала, что в начале этого пути работала в неком стартапе, где не особо понимала, за что мне вообще платят зарплату. И большую часть «рабочих» дней мне там было абсолютно нечем заняться. А поглощать на работе днями и неделями развлекательный контент - достаточно уныло. Хотелось заняться чем-то продуктивным и полезным и не чувствовать, что всё время занимаешься какой-то херней. И курсы стали отличным вариантом.
А ещё мне хотелось стать нормальным специалистом, что-то уметь, в чем-то разбираться. Я испытывала неловкость от вопросов, кем я работаю - «ну, это сложно объяснить». Чувствовала себя не реализованной профессионально и бесполезной, «никем». И мне очень хотелось избавиться от этого ощущения.
👍2
Забудьте эти фразы
Итак, вы встали на путь IT. Пришло время убрать из употребления некоторые фразы.
- Я что-то нажала и у меня всё исчезло. Ой, кажется, я что-то сломал/а. Оно само. Не понимаю, что произошло.
Мы здесь верим в причинность, а не в «компьютерную магию». Что-то пошло не так? Не пытайтесь лихорадочно это исправить, тыкая во всё подряд наугад. Вы не доктор Хаус - сначала ставим диагноз, а потом думаем, как лечить.
- Попрошу соседа Ваню поставить мне винду.
Вы ведь догадываетесь, что поставить винду - это задача уровня любого школьника? Лучше попробуйте поставить себе Linux - если хотите, чтобы всё было просто почти как в винде - то Ubuntu какой-нибудь. И научитесь пользоваться терминалом. Вангую - пригодится.
- Это слишком сложно! Я этого не знаю. Мы этого не проходили. Я новенький. Я не умею. Я никогда этого не делал.
Открою вам страшный секрет - любой айтишник сталкивается если не каждый день, то вполне себе регулярно с чем-то таким, чего он никогда не делал и о чём не имеет никакого представления. Разница между айтишником и не-айтишником как раз в том и заключается, что первый, встретив что-то новое и незнакомое - берёт и разбирается в этом, гуглит, читает мануалы, документацию и исходный код, ищет ответы, пробует и экспериментирует. И в итоге докапывается до решения такой страшной и непонятной на первый взгляд задачи. А второй - сразу пугается и сдаётся с порога.
А подготовиться заранее (до трудоустройства) к работе со всеми незнакомыми технологиями - увы не получится. Ну вот не учат на курсах, как ставить PostgreSQL на CentOS определенной версии и какие там подводные камни. А работодателю как-то всё равно - учили вас этому или нет - он и слов-то таких не знает. Научиться и этому и десяткам других технических навыков можно только одним путём - делая их. А для этого нужно не так уж много - не бояться сталкиваться с ними в первый раз.
Итак, вы встали на путь IT. Пришло время убрать из употребления некоторые фразы.
- Я что-то нажала и у меня всё исчезло. Ой, кажется, я что-то сломал/а. Оно само. Не понимаю, что произошло.
Мы здесь верим в причинность, а не в «компьютерную магию». Что-то пошло не так? Не пытайтесь лихорадочно это исправить, тыкая во всё подряд наугад. Вы не доктор Хаус - сначала ставим диагноз, а потом думаем, как лечить.
- Попрошу соседа Ваню поставить мне винду.
Вы ведь догадываетесь, что поставить винду - это задача уровня любого школьника? Лучше попробуйте поставить себе Linux - если хотите, чтобы всё было просто почти как в винде - то Ubuntu какой-нибудь. И научитесь пользоваться терминалом. Вангую - пригодится.
- Это слишком сложно! Я этого не знаю. Мы этого не проходили. Я новенький. Я не умею. Я никогда этого не делал.
Открою вам страшный секрет - любой айтишник сталкивается если не каждый день, то вполне себе регулярно с чем-то таким, чего он никогда не делал и о чём не имеет никакого представления. Разница между айтишником и не-айтишником как раз в том и заключается, что первый, встретив что-то новое и незнакомое - берёт и разбирается в этом, гуглит, читает мануалы, документацию и исходный код, ищет ответы, пробует и экспериментирует. И в итоге докапывается до решения такой страшной и непонятной на первый взгляд задачи. А второй - сразу пугается и сдаётся с порога.
А подготовиться заранее (до трудоустройства) к работе со всеми незнакомыми технологиями - увы не получится. Ну вот не учат на курсах, как ставить PostgreSQL на CentOS определенной версии и какие там подводные камни. А работодателю как-то всё равно - учили вас этому или нет - он и слов-то таких не знает. Научиться и этому и десяткам других технических навыков можно только одним путём - делая их. А для этого нужно не так уж много - не бояться сталкиваться с ними в первый раз.
- Напишите, пожалуйста пост, как у вас появился линукс на машине? Кто первый раз вам её поставил? Как было работать? Вообще Опишите первое впечатление об этой Ос.
Я в целом такая же ленивая, как и большинство людей. :) И поначалу ставить linux как основную ОС на свой компьютер не спешила, пользовалась более привычной на тот момент виндой. Кстати, настраивать среду под разработку, например, на том же питоне на винде гораздо неудобнее и дольше, как и решать некоторые сопутствующие разработке проблемы - ну например, с виндовыми кодировками текста. Но поначалу кажется, что более привычное = более простое.
Многие курсы предлагают готовый образ ОС, чтобы использовать Linux со всеми нужными (для обучения) настройками в виртуальной машине - то есть запуская в отдельном окошке прямо из-под вашей винды (или другой ОС). Так, например, было в моём любимом курсе CS50 Introduction to Computer Science - там использовался дистрибутив Fedora. Это, насколько я помню, и был мой первый линукс - я его запускала в виртуальной машине - то ли с помощью VMWare, то ли VirtualBox. Какие впечатления от него были - точно не скажу. Сложностей с ним не было (разве что с настройками виртуальной машины и ошибками при запуске ОС). А в остальном - на курсах все объясняется, показывается и есть инструкции. Когда что-то получается - это всегда приятно.
Потом уже по книге (называлась она Unix. Программное окружение - старенькая, но классная) я изучала стандартные команды оболочки и Unix-утилиты. Пробовала их и экспериментировала тоже в виртуальной машине - вроде на этот раз скачала и поставила уже образ Ubuntu. Вот здесь уже могу поделиться впечатлениями от Linux - они были полный восторг. Bash - очень классная штука, и делать в нем можно так многое и так удобно (в том числе программировать прямо на нём). Винде такого и не снилось (не даром, говорят, в 10й винде в итоге добавили встроенную поддержку bash - но я не пробовала его использовать там).
А впервые я поставила Linux как основную ОC на свой старенький ноут, потому что там банально устарели драйвера для графики под винду (а новых для этой модели не выпускали), и обновить версию винды стало невозможным. А Ubuntu стала без проблем и на "ура". Убунту по сложности установки - это та же винда (то есть, сложности никакой нет). Находите в интернете инструкцию, скачиваете образ ОС и записываете на флешку. Потом по инструкции ставите ее на комп - большинство действий будет сводиться к тому, чтобы нажимать кнопку "Далее". Если хотите поставить ее как вторую ОС рядом с основной - тогда надо аккуратнее, чтобы не навредить первой ОС - но для всего есть инструкции, гугл знает всё. Главное - смотрите на дату инструкции, которую читаете. Если там стоит какой-нибудь 2013 год - ищите другую.
Я в целом такая же ленивая, как и большинство людей. :) И поначалу ставить linux как основную ОС на свой компьютер не спешила, пользовалась более привычной на тот момент виндой. Кстати, настраивать среду под разработку, например, на том же питоне на винде гораздо неудобнее и дольше, как и решать некоторые сопутствующие разработке проблемы - ну например, с виндовыми кодировками текста. Но поначалу кажется, что более привычное = более простое.
Многие курсы предлагают готовый образ ОС, чтобы использовать Linux со всеми нужными (для обучения) настройками в виртуальной машине - то есть запуская в отдельном окошке прямо из-под вашей винды (или другой ОС). Так, например, было в моём любимом курсе CS50 Introduction to Computer Science - там использовался дистрибутив Fedora. Это, насколько я помню, и был мой первый линукс - я его запускала в виртуальной машине - то ли с помощью VMWare, то ли VirtualBox. Какие впечатления от него были - точно не скажу. Сложностей с ним не было (разве что с настройками виртуальной машины и ошибками при запуске ОС). А в остальном - на курсах все объясняется, показывается и есть инструкции. Когда что-то получается - это всегда приятно.
Потом уже по книге (называлась она Unix. Программное окружение - старенькая, но классная) я изучала стандартные команды оболочки и Unix-утилиты. Пробовала их и экспериментировала тоже в виртуальной машине - вроде на этот раз скачала и поставила уже образ Ubuntu. Вот здесь уже могу поделиться впечатлениями от Linux - они были полный восторг. Bash - очень классная штука, и делать в нем можно так многое и так удобно (в том числе программировать прямо на нём). Винде такого и не снилось (не даром, говорят, в 10й винде в итоге добавили встроенную поддержку bash - но я не пробовала его использовать там).
А впервые я поставила Linux как основную ОC на свой старенький ноут, потому что там банально устарели драйвера для графики под винду (а новых для этой модели не выпускали), и обновить версию винды стало невозможным. А Ubuntu стала без проблем и на "ура". Убунту по сложности установки - это та же винда (то есть, сложности никакой нет). Находите в интернете инструкцию, скачиваете образ ОС и записываете на флешку. Потом по инструкции ставите ее на комп - большинство действий будет сводиться к тому, чтобы нажимать кнопку "Далее". Если хотите поставить ее как вторую ОС рядом с основной - тогда надо аккуратнее, чтобы не навредить первой ОС - но для всего есть инструкции, гугл знает всё. Главное - смотрите на дату инструкции, которую читаете. Если там стоит какой-нибудь 2013 год - ищите другую.
- У меня такой вопрос, про собеседование: если я хочу быть it-самоучкой, пока не могу пройти платные курсы. Как мне доказать свои знания?
Не можете позволить себе платные курсы - проходите бесплатные + читайте книги. Очевидно же, нет? :)
Обычно на онлайн-площадках вроде coursera, edx, stepik, udemy, сайтах Гарварда и MIIT (это только то, что пришло в голову по памяти, их гораздо больше) - есть бесплатный доступ к курсам. Отличается от платного варианта он тем, что по окончании не выдаётся сертификат, а кое-где недоступна, например, проверка домашних заданий.
Как доказать знания? Если я правильно вас поняла, вы исходите из предпосылки, что прохождение платных курсов - это уже само по себе доказательство квалификации. И что у них есть какое-то преимущество для работодателя перед бесплатными вариантами. Это не так.
Работодателю неинтересны эти все бумажки, да сертификаты. Их наличие - это бонус для резюме, но можно в резюме с тем же успехом просто перечислить названия бесплатных курсов, которые вы прошли. Даже диплом крутого ВУЗа никак не гарантирует, что у вас есть нужные знания.
Доказать знания можно только одним путём - сначала хорошо себя проявить на техническом собеседовании. А потом, после трудоустройства - в процессе работы.
Причем, на собеседовании не так важно, что вы не знаете точный ответ на какой-то вопрос - тут ценится умение мыслить в правильном направлении и искать решение.
Не можете позволить себе платные курсы - проходите бесплатные + читайте книги. Очевидно же, нет? :)
Обычно на онлайн-площадках вроде coursera, edx, stepik, udemy, сайтах Гарварда и MIIT (это только то, что пришло в голову по памяти, их гораздо больше) - есть бесплатный доступ к курсам. Отличается от платного варианта он тем, что по окончании не выдаётся сертификат, а кое-где недоступна, например, проверка домашних заданий.
Как доказать знания? Если я правильно вас поняла, вы исходите из предпосылки, что прохождение платных курсов - это уже само по себе доказательство квалификации. И что у них есть какое-то преимущество для работодателя перед бесплатными вариантами. Это не так.
Работодателю неинтересны эти все бумажки, да сертификаты. Их наличие - это бонус для резюме, но можно в резюме с тем же успехом просто перечислить названия бесплатных курсов, которые вы прошли. Даже диплом крутого ВУЗа никак не гарантирует, что у вас есть нужные знания.
Доказать знания можно только одним путём - сначала хорошо себя проявить на техническом собеседовании. А потом, после трудоустройства - в процессе работы.
Причем, на собеседовании не так важно, что вы не знаете точный ответ на какой-то вопрос - тут ценится умение мыслить в правильном направлении и искать решение.
- На тех собеседование надо ещё попасть. Как влияют платные или бесплатные курсы в резюме на то, позовут ли тебя на собеседование?
Чтобы попасть на собеседование, нужно составить резюме - указать желаемую должность, ваши навыки, описать опыт работы. Если релевантного опыта работы нет - то описать хоть что-то, например, как вы написали сайт для себя или для друзей, описать какой-нибудь проект, который выполняли в ходе лабы.
Упоминания курсов в резюме говорят о том, что вы способны к самообразованию и саморазвитию, и имеете интерес к освоению технологий. Платные или бесплатные курсы - не особо важно. Но если у каких-то конкретных курсов хорошая репутация (например, данный работодатель неоднократно брал на работу выпускников этих курсов и имеет позитивный опыт работы с ними) - то их упоминание станет более заметным плюсом в резюме при отборе кандидатов. Также могут хорошо «выстрелить» названия известных компаний - например, курсы или стажировка от Яндекса.
Лично у меня в первом айтишном резюме из релевантного образования были указаны только онлайн-курсы - правда, в большом количестве. И да, все бесплатные. Сертификаты к ним прилагались, но не думаю, что кто-то вообще переходил по этим ссылкам (обычно резюме кандидата читают секунд 6). Составляла резюме я часов 10, высасывала из пальца всё, что могла рассказать о своих навыках. На первое собеседование меня позвали сразу же, как только я его выложила в интернет.
Скепсис в отношении всего, что написано в резюме, и в отношении курсов в том числе у работодателя так же может присутствовать - упоминание курсов никак не гарантирует, что вы их прошли с полным погружением и почерпнули оттуда ценные навыки. Тут к диплому и вузовскому образованию может быть больше доверия - но всё очень индивидуально, зависит от личного воспрития конкретного собеседующего. И почти в любой компании есть самоучки.
Кстати, некоторые руководители вообще не читают резюме, так как не верят тому, что там написано - у хороших кандидатов бывают очень слабые резюме, а у плохих - идеально составленные. А оценивают кандидата уже в процессе беседы.
Чтобы попасть на собеседование, нужно составить резюме - указать желаемую должность, ваши навыки, описать опыт работы. Если релевантного опыта работы нет - то описать хоть что-то, например, как вы написали сайт для себя или для друзей, описать какой-нибудь проект, который выполняли в ходе лабы.
Упоминания курсов в резюме говорят о том, что вы способны к самообразованию и саморазвитию, и имеете интерес к освоению технологий. Платные или бесплатные курсы - не особо важно. Но если у каких-то конкретных курсов хорошая репутация (например, данный работодатель неоднократно брал на работу выпускников этих курсов и имеет позитивный опыт работы с ними) - то их упоминание станет более заметным плюсом в резюме при отборе кандидатов. Также могут хорошо «выстрелить» названия известных компаний - например, курсы или стажировка от Яндекса.
Лично у меня в первом айтишном резюме из релевантного образования были указаны только онлайн-курсы - правда, в большом количестве. И да, все бесплатные. Сертификаты к ним прилагались, но не думаю, что кто-то вообще переходил по этим ссылкам (обычно резюме кандидата читают секунд 6). Составляла резюме я часов 10, высасывала из пальца всё, что могла рассказать о своих навыках. На первое собеседование меня позвали сразу же, как только я его выложила в интернет.
Скепсис в отношении всего, что написано в резюме, и в отношении курсов в том числе у работодателя так же может присутствовать - упоминание курсов никак не гарантирует, что вы их прошли с полным погружением и почерпнули оттуда ценные навыки. Тут к диплому и вузовскому образованию может быть больше доверия - но всё очень индивидуально, зависит от личного воспрития конкретного собеседующего. И почти в любой компании есть самоучки.
Кстати, некоторые руководители вообще не читают резюме, так как не верят тому, что там написано - у хороших кандидатов бывают очень слабые резюме, а у плохих - идеально составленные. А оценивают кандидата уже в процессе беседы.
- В каких сферах программирования используется математика? Для меня просто математика, алгоритмы в реальности - это сбор информации в таблицы. Впоследствии анализ ее.
Вопрос непростой, так как я вряд ли смогу назвать все области, где нужна математика. Но некоторые попробую.
Ну, во-первых, алгоритмы. Алгоритмы и структуры данных нужны для эффективного программирования - чтобы оптимизировать вычисления с точки зрения использования памяти, загрузки процессоров и времени выполнения. Одну и ту же программу можно реализовать так, что она будет считать результат 200 тысяч лет, а можно так, что доли секунд - вопрос в выборе (не)эффективного алгоритма.
Но далеко не все разработчики сталкиваются с задачами, в которых нужно использовать сложные нетривиальные алгоритмы - обычно они нужны, когда пишешь что-то большое и с серьезными требованиями по скорости выполнения и где каждая лишняя доля секунды - критичная величина. Бывают более простые и высокоуровневые задачи, где котируется простота кода и скорость его написания, а то, что он будет работать чуть медленее - не так критично.
По поводу математики.
- Математика (в частности, статистика) нужна в data science - для анализа данных, для обучения моделей машинного обучения и построения нейросетей
- В криптографии (и модном нынче блокчейне)
- В системном программировании
- В программировании чего-то специфического, связанного с математическими вычислениями (например, компьютерной графики или траекторий движения для каких-нибудь роботов)
- В программировании для научных вычислений
Есть компании, куда без хорошего знания математики и алгоритмов, скорее всего, не возьмут - например, Яндекс.
Но далеко не все разработчики используют какие-то сложные математические знания в решении своих ежедневных задач. И, по правде сказать, я не сталкивалась с тем, чтобы на собеседованиях спрашивали про матан.
Вопрос непростой, так как я вряд ли смогу назвать все области, где нужна математика. Но некоторые попробую.
Ну, во-первых, алгоритмы. Алгоритмы и структуры данных нужны для эффективного программирования - чтобы оптимизировать вычисления с точки зрения использования памяти, загрузки процессоров и времени выполнения. Одну и ту же программу можно реализовать так, что она будет считать результат 200 тысяч лет, а можно так, что доли секунд - вопрос в выборе (не)эффективного алгоритма.
Но далеко не все разработчики сталкиваются с задачами, в которых нужно использовать сложные нетривиальные алгоритмы - обычно они нужны, когда пишешь что-то большое и с серьезными требованиями по скорости выполнения и где каждая лишняя доля секунды - критичная величина. Бывают более простые и высокоуровневые задачи, где котируется простота кода и скорость его написания, а то, что он будет работать чуть медленее - не так критично.
По поводу математики.
- Математика (в частности, статистика) нужна в data science - для анализа данных, для обучения моделей машинного обучения и построения нейросетей
- В криптографии (и модном нынче блокчейне)
- В системном программировании
- В программировании чего-то специфического, связанного с математическими вычислениями (например, компьютерной графики или траекторий движения для каких-нибудь роботов)
- В программировании для научных вычислений
Есть компании, куда без хорошего знания математики и алгоритмов, скорее всего, не возьмут - например, Яндекс.
Но далеко не все разработчики используют какие-то сложные математические знания в решении своих ежедневных задач. И, по правде сказать, я не сталкивалась с тем, чтобы на собеседованиях спрашивали про матан.
Мои первые собеседования
Здесь должна быть история про то, как я мытарилась по собеседованиям, безуспешно пытаясь всем доказать, что чего-то стою в программировании, несмотря на гуманитарное образование.
Однако ничего подобного не было.
На собеседование в первую компанию меня позвали как только я выложила резюме. После собеседований сделали оффер, и потом еще девушка-рекрутер звонила по три раза на день и спрашивала - приняла ли я решение, или нет. А сейчас? А теперь? А когда вы решите? Я успела сходить на собеседование в еще одну компанию, и потом приняла первый оффер.
На первом собеседовании спросили, люблю ли я задачки на сообразительность. Я ответила, что не люблю (это правда). После этого мне задали несколько таких задачек - что-то там про шахматную доску, про шары, которые кидают с высоты итд итп. С подсказками я более или менее продвинулась в решении этих загадок. А из заданий по существу - попросили решить задачку на питоне (сам интервьюер питона не знал), и по SQL (классика - join, задачку на группировку и having). Кстати, по SQL почему-то все любят давать задание на декартово произведение, несмотря на то, что я ни разу не видела, чтобы его кто-то использовал в проде. Сама работа была в небольшой компании, а разрабатывать мне предстояло парсеры-краулеры для веб-страниц. В целом ничего сложного, но на том этапе для меня это звучало как «ты будешь строить космические корабли». Я, правда, не подала вида, что звучит очень сложно и у меня лапки, и деловито согласилась (читала в Интернете, что так надо делать 🙂 ).
Во второй компании (уже крупной) меня собеседовали на должность разработчика автотестов. Это звучало проще, но желанием идти в тестировщики я не горела. (Но зато какой крутой у них офис!) Там меня хорошо погоняли по вопросам про Linux, я, к своему удивлению, ответила на все и решила их задачи на всяких grep/sed/awk/sort/uniq итд. Сами интервьюеры сказали, что после моего резюме они совсем не ожидали таких глубоких знаний. Да я и сама не ожидала, чего уж там. Дальше меня еще пособеседовали несколько людей должностью повыше - пока в итоге я не попала к какому-то совсем «крутому дяде», судя по пиитету hr-менеджера. Он решил, что им нужен человек, который сейчас же возьмет в свои руки руководство командой автотестировщиков и наладит там процессы - и это точно было не про меня. Так я попала в первую компанию, откуда получила оффер.
Здесь должна быть история про то, как я мытарилась по собеседованиям, безуспешно пытаясь всем доказать, что чего-то стою в программировании, несмотря на гуманитарное образование.
Однако ничего подобного не было.
На собеседование в первую компанию меня позвали как только я выложила резюме. После собеседований сделали оффер, и потом еще девушка-рекрутер звонила по три раза на день и спрашивала - приняла ли я решение, или нет. А сейчас? А теперь? А когда вы решите? Я успела сходить на собеседование в еще одну компанию, и потом приняла первый оффер.
На первом собеседовании спросили, люблю ли я задачки на сообразительность. Я ответила, что не люблю (это правда). После этого мне задали несколько таких задачек - что-то там про шахматную доску, про шары, которые кидают с высоты итд итп. С подсказками я более или менее продвинулась в решении этих загадок. А из заданий по существу - попросили решить задачку на питоне (сам интервьюер питона не знал), и по SQL (классика - join, задачку на группировку и having). Кстати, по SQL почему-то все любят давать задание на декартово произведение, несмотря на то, что я ни разу не видела, чтобы его кто-то использовал в проде. Сама работа была в небольшой компании, а разрабатывать мне предстояло парсеры-краулеры для веб-страниц. В целом ничего сложного, но на том этапе для меня это звучало как «ты будешь строить космические корабли». Я, правда, не подала вида, что звучит очень сложно и у меня лапки, и деловито согласилась (читала в Интернете, что так надо делать 🙂 ).
Во второй компании (уже крупной) меня собеседовали на должность разработчика автотестов. Это звучало проще, но желанием идти в тестировщики я не горела. (Но зато какой крутой у них офис!) Там меня хорошо погоняли по вопросам про Linux, я, к своему удивлению, ответила на все и решила их задачи на всяких grep/sed/awk/sort/uniq итд. Сами интервьюеры сказали, что после моего резюме они совсем не ожидали таких глубоких знаний. Да я и сама не ожидала, чего уж там. Дальше меня еще пособеседовали несколько людей должностью повыше - пока в итоге я не попала к какому-то совсем «крутому дяде», судя по пиитету hr-менеджера. Он решил, что им нужен человек, который сейчас же возьмет в свои руки руководство командой автотестировщиков и наладит там процессы - и это точно было не про меня. Так я попала в первую компанию, откуда получила оффер.
- Что не так с работой тестировщиком? Опиши подробнее твои взаимодействия с тестировщиками сейчас, по работе
С тестировщиками всё так. Кроме того, что мне хотелось в разработку, а не в тестирование.
Вообще тестировщики тестировщикам рознь. Бывают вакансии тестировщиков, куда берут без каких-либо исходных навыков или знаний. Работа таких тестеров состоит, грубо говоря, в том, чтобы вручную потыкать интерфейс приложения как будто ты пользователь. На серьезную оплату такой работы рассчитывать не приходится, а что касается роста - тут вопрос в том, насколько компания вкладывается в развитие такого специалиста, и стремится ли повышать его квалификацию (например, обучать инженерным навыкам и программированию). Некоторые компании исходят из идеалогии «программировать у нас должны уметь все». В таком случае эта вакансия - хороший старт, и сам работодатель поможет с обучением. Но возможна и обратная ситуация, когда эта работа - просто про тыканье в кнопки, и никакой рост не подразумевается.
Другое дело, если речь идет о квалифицированном инженере-тестировщике, знакомом с теорией тестирования, знающим как правильно организовать процесс контроля качества продукта, умеющий составлять тест-дизайны, продумывать тест-кейсы и разную прочую магию QA. Такие специалисты имеют как минимум базовые знания языков программирования, на которых написан продукт, могут читать и понимать код.
Не всем продуктам вообще необходимы ручные тестировщики, и часто ограничиваются автотестами - в этом случае тестировщики - это программисты, которые пишут код тестов. Вот на такую вакансию меня и звали, но, как по мне, писать только тесты - звучит несколько муторно. И да, это предвзятая точка зрения.
Развиваться как тестировщик имеет смысл в компаниях, где есть отдел QA и в нем ценят квалифицированных специалистов по тестированию и на это выделен соответсвующий бюджет. Так можно дорости, например, до директора QA - но, повторюсь, если это направление вообще развито в данной компании.
Что касается моего опыта взаимодействия с тестироовщиками. На предыдущем месте работы я относилась к отделу Ops - мы занимались помимо прочего деплоем продукта непосредственно в продакшен, мониторингом и поддержкой его работоспособности. По сути тестировщиками, как это ни печально (и как это часто бывает) в итоге становились конечные пользователи. И все жалобы на баги прилетали первым делом в наш отдел (или же мы сами натыкались на баги). И дальше - либо бистро-бистро на коленке фиксили сами «по горяченькому» - так как до разработчиков как до луны не докричишься - они эти баги бы починили к следующему релизу, который через полгода. Либо, если баг был нетривиальный и «чик-чик и в продакшен» сделать не получалось - всё-таки пытались достучаться до разработчиков. (Да, очень часто процессы в компаниях работают через пень-колоду).
Потом появился отдел тестирования - там сначала работал 1 человек, потом наняли еще 2х. Теперь перед релизом продукта код от разработчиков попадал к тестировщикам, и они там делали свою магию, находили баги и отправляли код на доработку. И только после одобрения тестеров продукт уже попадал к нам и от нас в прод. Но для нас изменилось мало что - багов, которые надо срочно-срочно исправлять прям на коленке не убавилось - этим по-прежнему занимались мы. В других же случаях - репортили баг в отдел QA, они там проверяли продукт еще раз и уже свой отчет направляли разрабам.
В моей нынешней компании я взаимодействую с тестировщиками - никак. У нас их просто нет (по крайней мере на тех продуктах, с которыми работаю я). За качество кода, за поиск багов, за тестирование приложения, а также за деплой и поддержку отвечает его непосредственный автор - разработчик. Сплошной DevOps, в общем. По слухам, тестировщики раньше у нас были, но потом было принято решение отказаться от них. У такого подхода есть свои преимущества - разработчики меньше «халявят» и ответственнее относятся к тестированию кода, так как нет искушения «скинуть» эту работу на тестировщиков, и отдавать им «сырой», плохо отлаженный код.
С тестировщиками всё так. Кроме того, что мне хотелось в разработку, а не в тестирование.
Вообще тестировщики тестировщикам рознь. Бывают вакансии тестировщиков, куда берут без каких-либо исходных навыков или знаний. Работа таких тестеров состоит, грубо говоря, в том, чтобы вручную потыкать интерфейс приложения как будто ты пользователь. На серьезную оплату такой работы рассчитывать не приходится, а что касается роста - тут вопрос в том, насколько компания вкладывается в развитие такого специалиста, и стремится ли повышать его квалификацию (например, обучать инженерным навыкам и программированию). Некоторые компании исходят из идеалогии «программировать у нас должны уметь все». В таком случае эта вакансия - хороший старт, и сам работодатель поможет с обучением. Но возможна и обратная ситуация, когда эта работа - просто про тыканье в кнопки, и никакой рост не подразумевается.
Другое дело, если речь идет о квалифицированном инженере-тестировщике, знакомом с теорией тестирования, знающим как правильно организовать процесс контроля качества продукта, умеющий составлять тест-дизайны, продумывать тест-кейсы и разную прочую магию QA. Такие специалисты имеют как минимум базовые знания языков программирования, на которых написан продукт, могут читать и понимать код.
Не всем продуктам вообще необходимы ручные тестировщики, и часто ограничиваются автотестами - в этом случае тестировщики - это программисты, которые пишут код тестов. Вот на такую вакансию меня и звали, но, как по мне, писать только тесты - звучит несколько муторно. И да, это предвзятая точка зрения.
Развиваться как тестировщик имеет смысл в компаниях, где есть отдел QA и в нем ценят квалифицированных специалистов по тестированию и на это выделен соответсвующий бюджет. Так можно дорости, например, до директора QA - но, повторюсь, если это направление вообще развито в данной компании.
Что касается моего опыта взаимодействия с тестироовщиками. На предыдущем месте работы я относилась к отделу Ops - мы занимались помимо прочего деплоем продукта непосредственно в продакшен, мониторингом и поддержкой его работоспособности. По сути тестировщиками, как это ни печально (и как это часто бывает) в итоге становились конечные пользователи. И все жалобы на баги прилетали первым делом в наш отдел (или же мы сами натыкались на баги). И дальше - либо бистро-бистро на коленке фиксили сами «по горяченькому» - так как до разработчиков как до луны не докричишься - они эти баги бы починили к следующему релизу, который через полгода. Либо, если баг был нетривиальный и «чик-чик и в продакшен» сделать не получалось - всё-таки пытались достучаться до разработчиков. (Да, очень часто процессы в компаниях работают через пень-колоду).
Потом появился отдел тестирования - там сначала работал 1 человек, потом наняли еще 2х. Теперь перед релизом продукта код от разработчиков попадал к тестировщикам, и они там делали свою магию, находили баги и отправляли код на доработку. И только после одобрения тестеров продукт уже попадал к нам и от нас в прод. Но для нас изменилось мало что - багов, которые надо срочно-срочно исправлять прям на коленке не убавилось - этим по-прежнему занимались мы. В других же случаях - репортили баг в отдел QA, они там проверяли продукт еще раз и уже свой отчет направляли разрабам.
В моей нынешней компании я взаимодействую с тестировщиками - никак. У нас их просто нет (по крайней мере на тех продуктах, с которыми работаю я). За качество кода, за поиск багов, за тестирование приложения, а также за деплой и поддержку отвечает его непосредственный автор - разработчик. Сплошной DevOps, в общем. По слухам, тестировщики раньше у нас были, но потом было принято решение отказаться от них. У такого подхода есть свои преимущества - разработчики меньше «халявят» и ответственнее относятся к тестированию кода, так как нет искушения «скинуть» эту работу на тестировщиков, и отдавать им «сырой», плохо отлаженный код.