Как найти работу программисту самоучке

Как программисты-самоучки в реальности получают работу

Время на прочтение
4 мин

Количество просмотров 175K

Вопрос с Quora:

Как программисты-самоучки в реальности получают работу?

Мне 17 лет и я занимаюсь программированием с 14-ти. Основной упор на Java, я получил 5 баллов по предмету AP Computer Science. Я довольно хорошо разбираюсь в Java (синтаксис, основные классы, GUI/JFrame и т.д.) и неплохо знаком с HTML5 и CSS3. Кажется, мне не хватает многих знаний, чтобы реально претендовать на работу в индустрии (например, как работают СУБД и какую из них следует использовать), и мне интересно, как другие программисты изучают такие вещи. Я планирую пойти в колледж по специальности «Разработка программного обеспечения», но меня начинает расстраивать мысль, что колледж — необходимое условие, чтобы получить работу. Есть ли какие-то курсы, которые я пропустил, хотя должен был изучить их, или что-то другое, чего я не сделал?

Мой ответ:

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

У программиста-самоучки много общего с тем, кто самостоятельно научился игре на гитаре. Не знаю, играл ли ты когда-нибудь на гитаре, так что объясню, как происходит обучение.

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

Далее происходит одно из двух. Или человек находит самоучитель игре на гитаре в каком-то виде, ИЛИ он идёт на YouTube и начинает пробовать играть свои любимые песни. Как правило, второй вариант эффективнее.

Теперь, когда юный гитарист замотивирован сыграть конкретную песню, он будет смотреть видео, распечатывать табы, аккорды и так далее — он будет сидеть и пытаться сам воссоздать песню, руководствуясь видеороликами и доступными табами.

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

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

В конце концов игра на гитаре станет «естественной», а изучение новой песни — обычным и безболезненным делом. «Язык» гитары для него станет чем-то естественным, вроде человеческой речи.

Всё это происходит в течение тысяч часов практики. Даже если практиковаться несколько часов в день, процесс занимает годы.

Так какое это имеет отношение к программистам-самоучкам?

Ну, что действительно делает из самоучки программиста — так это то, что он создаёт разные штуки. И много всяких штук. Чтобы стать отличным программистом с востребованными навыками, ты должен создавать вещи и писать код.

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

Не то чтобы они не знают свой предмет, просто главное в преподавании — это исследовать предмет и понимать теорию, а не писать код и приносить пользу клиенту.

Чувствуешь разницу?

Самые лучшие программисты, с которыми я когда-либо работал, стали такими, потому что писали реальный код. Практически постоянно.

Например, сегодня каждый веб-разработчик (и его брат) используют WordPress. Задолго до WordPress я написал для себя 3 или 5 разных систем управления контентом на PHP и MySQL. Я делал игры. Писал мобильные приложения. Фреймворки. SAAS-приложения.

Никто не платил мне за это. Всё это я делал для удовольствия или для обучения, или из любопытства.

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

Да, я мог посещать курсы по этим предметам. Но гораздо больше можно узнать, если самому создавать вещи, делать ошибки и по-настоящему «чувствовать» всё это, а не узнавать из книги или лекции.

Так что могу дать совет, с помощью которого ты получишь огромное преимущество над теми, кто такого почти не делает…

Решай проблему, которую способен решить. Создавай программы, которые делают такие классные вещи, какие ты сам или другие хотели бы увидеть в программе. Пиши код каждый божий день. По вечерам, в выходные, каждый день. Даже если только 15 минут, нормально.

В конце концов у тебя получится что-то работающее и довольно приличное.

Затем начинай снова. Сделай что-нибудь ещё. Продолжай писать и писать, и писать, и писать. Вложи в свой скилл тысячи часов, бросая себе вызов на создание новых проектов.

По мере написания кода сохраняй работу в маленькое портфолио на своём сайте. Каждый раз по окончании проекта сообщай о нём на Hacker News или Reddit, или ещё где-то. В блоге.

Тебе 17… К 20-ти годам ты легко можешь вложить более 2000 часов в разработку своего навыка, в портфолио будет 10-20 проектов и ты выучишь многие уроки, которые учащиеся на курсах никогда не выучат.

Что ещё важнее, ты сможешь ясно продемонстрировать свою способность писать код, решать проблемы и выпускать что-то рабочее в этот мир. Это большая ценность. Именно то, что ищут компании.

Как только найдёшь работу, продолжай программировать в свободное время и продвигать свои проекты. Ты будешь расти быстрее, чем сверстники, потому что они приходят домой и смотрят телевизор, не обучаются, не растут и не создают НИЧЕГО. Они получают зарплату и идут домой.

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

Так что вылезай из скорлупы и создай что-нибудь. Пиши код!

Программист самоучка

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

Итак, условия задачи:

  1. Джуниор не имеет профильного диплома. Максимум, что есть в активе из образования – «корочки» профильных курсов.
  2. Опыт работы отсутствует вообще либо минимальный: стажировки, небольшой срок работы в каких-то малоизвестных компаниях, возможно, даже не совсем по профессии: тестировщиком, сисадмином и т.д.

Рынок IT переполнен подобными соискателями, а потому к поиску работы нужно готовиться всерьез и настраиваться на многочисленные собеседования, тестирования и, в том числе, отказы. И самое главное здесь – позитивный настрой и терпение.

Страхи и отказы: что с этим делать

Нужно смириться с тем, что будут и отказы

Никто не обещал, что вам будет легко. Просто это нужно принять и не бояться двигаться вопреки сложностям. Отправляйте резюме и запросы по максимуму вакансий, никто не знает, где именно вам повезет. И даже если вы ждете ответа от 10 компаний, не стоит останавливаться в поиске. В конце концов, если вдруг вам скажут «да» в нескольких фирмах одновременно, тем лучше! У вас будет выбор. А отказать тем, кто вам стал не интересен, вы имеете полное право.

Важно: На рынке труда выбирают не только вас, но и вы!

К слову, с проблемами отказов и затянувшихся сроков поиска первой работы сталкиваются абсолютно все. Независимо от специальности и наличия профильного образования. Сразу вас возьмут, разве что, по знакомству. И то не обязательно ☺

Основные страхи, которые нужно преодолеть:

  • Отказали по итогам собеседования? Ничего страшного, скорей всего, просто нашли кого-то вашего уровня, но уже с нужным опытом. Никаких самокопаний и размышлений на тему «я никому не нужен»! Просто движемся дальше.
    Помните: с теми же сложностями сталкиваются новички в любой сфере – с дипломом и без него. Это не вы чем-то плохи, а просто – объективная реальность. Вам тоже обязательно повезет.
  • Выполнили тест и нет отклика? Читаем выше: может быть, вам просто не повезло в этот раз. С другой стороны, вы получили практический опыт. При этом стоит проанализировать свой результат и поискать ошибки. А вдруг вы и правда чего-то не знаете? Лишний повод подтянуть знания.
  • Вы шлете резюме в компанию мечты, но вам даже не отвечают? Мечты должны сбываться. Не бойтесь посылать запросы повторно. Работайте над резюме. Постарайтесь выйти на специалистов в нужном вам отделе, минуя HR. Как угодно – через форумы и социальные сети, с предложением решения какой-то задачи или просто включите «наглость» и напишите на email. Помните – можно все, что не запрещено. И вполне может быть, что вас заметят. Но без фанатизма – все хорошо в меру.

И самое главное: оценивайте себя объективно, насколько это возможно. И разумно соотносите свои возможности и запросы.

В каждой профессии имеется своя карьерная лестница. Начинать придется с небольших окладов и, зачастую, скучной работы рядового кодера. Просто потому что вы – джуниор. Вы будете принимать участие в решении практических задач, наберетесь знаний и опыта. В конце концов, получите столь желанную для карьеры строчку в резюме – «работал в такой-то компании с … и до…». И если у вас не появится суперинтересного предложения в период первой работы, желательно там продержаться хотя бы год. Даже если будет скучно. Это большой плюс на будущее.

А теперь перейдем к тому, что стоит иметь в числе преимуществ и как себя правильно подать.

Что ждут от джуниора самоучки?

Hello world

В большинстве случаев интерес к программистам без диплома и солидного опыта проявляют работодатели-программисты, которые занимаются поиском сотрудников без помощи «кадровиков». Причина очевидна – HR специалисты не могут оценить ваши знания и навыки. Они ориентируются на опыт работы, дипломы, курсы и т.д.  Впрочем, и тут есть исключения. Но лучше строить свою стратегию поиска, исходя из того, что вас будут оценивать опытные коллеги.

На что обращают особое внимание:

  1. Знание языков программирования. Никто не ожидает, что начинающий программист будет знать множество разных языков. Более того, если в резюме вы укажете такой обширный список, велика вероятность, что о вас подумают – «знает ничего обо всем». Выбирайте специализацию с умом. И указывайте только такие языки, где вы реально можете что-то показать.
    Просто представьте, что на собеседовании вас попросили набросать код в C#, а вы его указали просто потому, что читали учебник. Все. Собеседование провалилось. А если вы перечислите только такие языки, где вы и правда готовы демонстрировать знания, вероятность положительного решения заметно возрастет.
  2. Портфолио. В процессе обучения вы, скорей всего, что-то писали. Пусть и для себя. Не стесняйтесь показать свои решения. В том числе с открытым кодом. Чем больше будет подобных работ – тем лучше.
    Работодатель-программист сможет оценить ваш уровень знаний и умение находить оригинальные варианты решения задач.
  3. Тестирование. Часто при поиске сотрудников-джуниоров в качестве первого этапа запускают тест. Это нормальная практика, позволяющая отсеять тех, кто тест вообще не напишет, а также напишет безграмотно.
    Обязательно пишите тесты, вам практика только на пользу, а работодатель сможет оценить ваши плюсы на основе чтения кода.
  4. Резюме. Не поленитесь изучить основные правила и подходы к его составлению. Во-первых, нужно показать умение составлять документы в соответствии со стандартами. Во-вторых, к составлению резюме есть много подходов, позволяющих показать плюсы и скрыть минусы. Пользуйтесь примерами от опытных коллег и советами HR специалистов в интернете.
    Нужно понимать: ваше резюме будет читать изначально, скорей всего, секретарь или рядовой сотрудник-кадровик. И даже если оно попадет сразу на стол к руководителю-программисту, все равно будет просмотрено «по диагонали». Потому очень важно составлять этот документ так, чтобы информация о ваших плюсах была на самом виду.

Собеседование: как себя вести

Уверенность на собеседовании

Ура! Вас позвали на собеседование. Обычная реакция новичка в профессии – страх и неуверенность в себе. Что ж, если вы будете «заикаться» и путаться в азах профессии из-за нервной реакции, скорей всего, об этой работе можно забыть.

А потому берем себя в руки. Вспоминаем об основном правиле рынка труда: выбирают не только вас, но и вы тоже. Как вариант, может помочь мысль: «На такую должность и оклад найти специалиста лучше у них не выйдет, это я к ним снисхожу». Даже если это совсем не так, именно такое ощущение внутри помогает.

Работодатели – такие же люди. Они также чувствуют психологический настрой соискателя. И если вы покажете уверенность в себе, то отношение будет на порядок лучше. Само собой, самоуважение – это ни разу не хамство. Даже если вам безумно страшно, не скатывайтесь на этот уровень. Как и на уровень «ну, пожалуйста, возьмите меня».

Идеальный соискатель, пусть и джуниор, будет корректно и грамотно отвечать на вопросы. При этом не побоится задать свои – о зарплате, соцпакете, испытательном сроке и даже о том, какой кофе ожидает его в офисе. Это нормально – знать, что вас ждет. И отказаться, если что-то не нравится.

Если работодатель видит, что вы – спокойны и заинтересованы не просто получить любую работу, но задаете вопросы о своих интересах, это дополнительный плюс. У работодателя складывается ощущение: «видимо, у человека есть и другие варианты, значит, он того стоит».

Поговорим о резюме

Как писать резюме

Для любого соискателя это важнейший документ. Здесь мы не будем подробно описывать правила деловой документации. Но повторим, что очень важно их соблюдать. Какой вариант вы будете выбирать – зависит от ваших знаний, опыта, других особенностей. Постарайтесь показать свои плюсы почти что в первых строчках. Сразу после анкетных данных.

Особенности составления документа для программистов:

  1. Отправляйте работодателям резюме, где в первых строках будет указаны нужные им знания (языки программирования, фреймворки и прочее).
  2. Если вы знаете несколько разных направлений, составьте по каждому их них отдельное резюме. И отправляйте с учетом специализации.
    Например, для веб-студии – в резюме будет php, html, JavaScript и т.д. А для должности системного администратора лучше рассказать подробнее о глубоком знании операционных систем, умении настраивать сервера, локальную сеть и пр.
  3. Не бойтесь писать об отсутствии опыта работы. В идеале вместо этого можно указать ссылки на портфолио и на какую-то проектную работу, где вы принимали участие в любом качестве (тестировщик, кодер) – и не забудьте честно указать, что вы там делали. Честность – важный фактор. Учтите, что к разработчикам проектов могут обратиться.

Фриланс и работа в компании

Фриланс

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

Плюсы фриланса:

  • Минимальный порог вхождения. Особенно на биржах Рунета. Вы можете принять участие в интересном проекте фактически «с нуля». Правда, и оплата будет минимальной.
    Здесь важнее всего – опыт на будущее плюс мотивация «копейки» на сейчас, что тоже немаловажно. Не просто для себя делать что-то, а за деньги, пусть и небольшие.
  • Возможность накопить достойное портфолио. На биржах фриланса никому не интересен ваш диплом. А вот выполненные проекты и отзывы – очень важны. И после первых проектов вас начнут брать в работу над все более сложными и дорогими решениями.
  • Свобода выбора и графика работы. Вы всегда знаете заранее, над чем будете работать. И можете выбрать, хотите принимать участие в этом проекте или нет. А работать можете из дома или откуда угодно, в том числе, как говорят, «в трусах», т.е. без дресс-кода и надоедливого начальника «над душой».

Минусы фриланса:

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

Но все же, почему мы и решили об этом вспомнить, начало трудовой деятельности на фрилансе – реальный выход для многих джуниоров. Особенно для самоучек.

Причины такие:

  1. Возможность получить практический опыт и наработать портфолио.
  2. На международных фриланс-биржах много HR-хантеров от мировых лидеров индустрии. Если вы покажете себя классным специалистом, они к вам сами обратятся с очень достойными продолжениями.

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

И напоследок. Не забывайте о курсах от лидеров отрасли. Часто после курсов, например, в Яндекс или Google лучшим ученикам приходят предложения о работе. А если даже не повезет, у вас будет практический опыт и знания от лучших программистов индустрии, а также диплом курсов, который станет дополнительным плюсом в глазах работодателей.

Приветствую, уважаемый читатель!

Я о своей работе писал очень мало, хотя моему каналу вот уже 7 месяцев. И мне кажется, вам будет интересно знать всю подноготную о моей профессии, ибо столько мифов ходит! Просто ужас! Сейчас я вам расскажу о самом “прекрасном” приключении – поиск работы программисту без опыта!

Это рубрика “История от автора”! Читайте до конца!

"7 кругов ада!": Легко ли найти работу программисту без опыта. Личный пример

Работу я начал искать сразу, как только получил диплом бакалавра. Это было 4 года назад. Во время поступления в универ каждая кафедра к себе завлекает абитуриентов (выпустившихся школьников) словами:

Вы станете востребованным специалистом! Зарплата у вас будет высокая, а работа интересная!

Школьники ведутся, как повелся и я. В итоге, 4 года отучился и вот он – долгожданный диплом. А дальше я с улыбкой на лице, я же стал востребованным сразу, стал искать работу.

Заходил на авито, на hh.ru, компаний море. И я думал:

Вот сейчас буду выбирать! Тут близко к дому, но зарплата не очень, а тут крупная компания, зарплата отличная, расположение недалеко. Просто сказка!

Как же я ошибался. После первых 5 собеседований я стал понимать, что я никто, я вообще не востребован, никому не нужен, и звать меня “никак”. Тут шутки про работу в Макдоналдсе мне уже не казались шутками!

Про собеседования у программистов

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

"7 кругов ада!": Легко ли найти работу программисту без опыта. Личный пример

Собеседование у программистов выглядит следующим образом:

  1. Проходишь собеседование на дурака с менеджером по персоналу. Самые базовые вопросы.
  2. Дают задачку на логику и математические способности (тут все с подвохом).
  3. Потом тебе говорят, что перезвонят в течение трех дней. Ты надеешься, что тебя уже взяли. Но звонка все нет и нет.
  4. Если позвонили, готовься к новым испытаниям, тебе дадут скорее всего сложное задание.
  5. Выполнил? Отлично! Теперь давай с руководителем отдела, куда ты претендуешь, пообщаешься!
  6. Потом тебе нужно будет пройти ассессмент (групповое собеседование). Там ты должен показать себя самцом, лидером среди остальных претендентов на должность.
  7. Если все успешно, то ты заступаешь на вакансию “стажер“! У тебя будет зарплата максимум 20000 рублей (планка по Нижнему Новгороду). Если не успешно, то это твой опыт, удачи в дальнейшем поиске работы.

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

В итоге я нашел работу мечты, спустя 2-3 месяца поисков, я согласился на копеечные 15000 рублей, через 3 месяца зарплата выросла. Дальше-больше.

"7 кругов ада!": Легко ли найти работу программисту без опыта. Личный пример

Хочу сказать такую вещь, если вы учитесь на программиста, то учитесь самостоятельно дома больше, чем в универе. В университетах преподают мужики и женщины, которым 50 и более лет. Технологии старые, теория старая! А наша сфера развивается настолько быстро, что нужно успевать самостоятельно. В универе не дадут тебе этих знаний.

А еще не нужно думать, что с дипломом ты красавец и твой стандарт 50000 рублей. Придется страдать стажером первое время. И только по истечении испытательного срока, если не уволят, сможешь получать 25.

Программисты востребованы, вакансий куча! Но найти работу очень и очень сложно, если у тебя нет никакого опыта!

Если хотите узнать что-то еще, то пишите свои вопросы в комментариях!

Было интересно? Ставьте палец вверх, подписывайтесь на мой блог! Спасибо за внимание, вы читали канал Умный User!

Может ли программист-самоучка найти хорошую работу?

Мне 15 лет. Особой склонности к программированию я не чувствую, но есть желание попробовать выучить языки программирования. Я уже присмотрел себе первый язык для изучения – Python.
Говорят, что это самый простой язык программирования. Если я все же потяну Python – попытаюсь выучить Котлин. А после Java и другие языки.
Если я выучу и смогу использовать на практике языки программирования – смогу ли я работать как самоучка?
Я понимаю, что в этом случае я должен быть в программировании как рыба в воде.

ПрограммированиеКарьера+5

Мне 15 лет. Особой склонности к программированию я не чувствую, но есть желание попробовать выучить языки программирования. Я уже присмотрел себе первый язык для изучения – Python.
Говорят, что это самый простой язык программирования. Если я все же потяну Python – попытаюсь выучить Котлин. А после Java и другие языки.
Если я выучу и смогу использовать на практике языки программирования – смогу ли я работать как самоучка?
Я понимаю, что в этом случае я должен быть в программировании как рыба в воде.

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

Я обращу внимание на вот это место:

Особой склонности к программированию я не чувствую,

Задайте себе вопрос: “буду ли я заниматься разработкой ПО всю жизнь, каждую неделю, на заказ или по собственным идеям”?

Если ответ “нет”, не приходите в нашу профессию, пожалуйста. Люди, которым всё равно, наносят индустрии вред. Такие здесь не нужны, а большие зарплаты платят и в других областях.

8,5 K

Здравствуйте, Марк!

Я отправила вам на почту письмо касательно новогодних подарков от Кью. Пожалуйста, проверьте… Читать дальше

Комментировать ответ…Комментировать…

Работа – в сфере IT.
Увлечения – книги, финансы, иностранные языки, здоровье.
  · 19 окт 2021  ·

Илья,
с профильным образованием или хотя бы дипломом курсов найти работу будет легче. Но можно попробовать, почему бы и нет. План у вас неплохой.
Вот что бы я сделала на вашем месте уже сейчас.
1. Заведите аккаунт на GitlabGithub и ведите в нем активность. Выкладывайте свои учебные проекты, пробуйте силы в open source проектах, подписывайтесь на интересующие вас.
2…
Читать далее

715

Комментировать ответ…Комментировать…

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

Я сначала сомневалась, что у него получится, Но вместе мы смогли устроить его на работу всего за месяц. У него нет дипломов или корочек об обучение, ему 49 лет, что тоже любят… Читать далее

253

Что значит “значть язык программирования?” Выучить синтаксис – две недели. А дальше? Важно знать не сколько язык… Читать дальше

Комментировать ответ…Комментировать…

Да, может. Среди вменяемых работодателей довольно мало таких, которые требуют от соискателя профильного образования. Как и где соискатель научился программировать не так важно, если он может пройти собеседование.
Для самоучки важно наработать некоторый опыт программирования в ходе решения прикладных задач. Имея такой опыт можно браться за более и более сложные проекты…
Читать далее

190

Комментировать ответ…Комментировать…

html-верстальщик, математик-программист, инженер-обогатитель  · 19 окт 2021

Да. Поиск работы – это тоже работа. Сделаете ее хорошо – будет хорошая работа.
Под «хорошо» подразумевается, что вы, как минимум, поработали над портфолио, у вас есть, что показать и что об этом рассказать.

163

Комментировать ответ…Комментировать…

Диванный философ, по совместительству инженер  · 10 янв 2022

Найти хорошую работу можно. Но за пределами крупных компаний. У нас немало таких работает например. И на прошлой моей работе тоже.

По поводу твоих планов на изучение языков. Я бы поменял местами сначала Java, а потом Kotlin. Поскольку Java более классическая, по ней больше хорошей литературы и вообще информации. А зная одно добавить другое проблемы не составит.

152

Комментировать ответ…Комментировать…

Senior fullstack developer (c#, Java, php, js).  · 19 окт 2021  ·

Если коротко, то: да, может.
Если более развёрнуто, то могу просто дать пару советов:
1. Когда начнёте изучать. Если через какое-то время так и не почувствуете тягу к происходящему, то лучше попробовать что-то другое. Тут вопрос не в том, что не сможете, а в том, что эта работа творческая (хоть и инженерная) и без любви будете простым ремесленником. Коих и так полно и…
Читать далее

199

Комментировать ответ…Комментировать…

О сообществе

Недавно мы с Алексеем Паршуковым, Unit Lead в SkyEng, ex-CTO DocDoc, проводили вебинар «Быстрый старт в Программировании с нуля» и обсудили различия в изучении языков программирования, суть профессии программиста, как устроиться на работу и какие бывают работодатели. Посмотреть вебинар вы можете по ссылке, а статью по нему прочитать прямо сейчас 🙂

Что такое работа программистом?

У профессии программиста есть очевидные плюсы, о которых всем известно:

  • Хорошие зарплаты

От 100 т.р. по регионам России, 250-300 т.р в Москве, за рубежом от 10 тысяч долларов.;

  • Гибкий график

Разработчик — это преимущественно удаленная работа;

  • Востребованность на международном рынке

Это одна из самых простых профессий для иммиграции.

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

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

И еще один недостаток, о котором мало кто говорит, — достаточно сильная дискриминация по возрасту. Если вы студент, то найти работу будет достаточно просто. Если вам 30-40 лет, то вам рады в любой технологической компании. Если вам чуть за 40, то уже будет сложнее. Но если вам за 50, то вы, скорее всего, работу нигде не найдете. Об этом стоит помнить, такое существует.

Как понять, подходит ли вам работа программистом?

Здесь не так важно, какое у вас образование, закончили ли вы институт по профессии. Главное, чтобы у вас была сильно развита усидчивость. Почему это так важно?

Представьте, что вам ставят задачу как разработчику, например, перенести в мобильном приложении кнопку с левой стороны экрана в правую, чтобы было удобно нажимать на нее большим пальцем. Вы садитесь и начинаете делать эту задачу. У вас уйдет немного времени на то, чтобы разобраться в приложении: где оно лежит, как оно собирается. Еще немного уйдет на то, чтобы изучить код, который программирует и выводит эту кнопку на экран. Совсем мало времени уйдет на то, чтобы внести изменения в этот код и сказать компилятору или мобильному телефону: “Пожалуйста, отобрази эту кнопку не слева, а справа”.

Но дальше этот код, скорее всего, не заработает. И следующие несколько попыток он не заработает. Нужно будет прочитать тонну документации, чтобы разобраться, как работает отображение кнопок в Android или iOS. Придется попробовать 10 разных способов: найти какие-то воркэраунды, подпереть это все костылями, написать разработчику, посмотреть исходные коды Android и через 4-5 дней, в лучшем случае, а то и позже эта кнопка отобразится так, как вам нужно.

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

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

Какие бывают работодатели?

Фриланс

Как правило, это небольшие задания за небольшие деньги. Их можно достаточно быстро сделать. Они размещаются на биржах фриланса. Основная биржа в России — freelance.ru. Основная международная — upwork.com.

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

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

Студии/Интеграторы/Аутсорсеры

Это достаточно разные компании, деятельность которых сильно различается. Есть как маленькие, так и большие игроки, но, как правило, у них общие плюсы и минусы.

Из плюсов:

  • Большой поток совершенно разных проектов

Вы не засыпаете в какой-то рутине какого-либо конкретного проекта. Это разные проекты, они постоянно меняются, у вас есть возможность постоянно учиться чему-то новому;

  • У большинства этих компаний выстроены достаточно четкие процессы

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

  • Высокий уровень

У них можно хорошо научиться разрабатывать программное обеспечение.

Из минусов:

  • Не все компании классные

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

  • Мало свободы

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

Для того, чтобы попасть в эти компании, нужно знать прикладные языки программирования. Например, PHP, Python, Java, Javascript.

Это хорошее место для начала карьеры.

Стартапы/Небольшие компании

Таких компаний сотни. Каждый день открывается десяток новых, но девять из них обязательно закроется.

Есть масса преимуществ, почему стоит попробовать работать в стартапе:

  • Это очень драйвово и весело;
  • Проще всего заработать действительно большие деньги.

На ранних этапах, зачастую, учредитель активно делится своими акциями, особенно, если стартап взлетит и будет быстро расти, то вы очень скоро станете миллионером;

  • В проектах нет Legacy, нет старого кода, от которого хочется плакать
  • Большое количество свободы

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

Но есть и минусы:

  • 9 из 10 компаний закрываются

Многие из них закроются ещё в течение первого года, так и не запустив продукт;

  • Слабая возможность обучения

Как правило, в эти компании приходят не самые лучшие специалисты, не всегда там будет чему научиться;

  • Непредсказуемость

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

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

Банки/Энтерпрайз

Плюсы:

  • Стабильность;
  • Хорошая зарплата;
  • Низкий уровень ответственности

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

Минусы:

  • Очень низкая скорость работы

Вы можете год или два пилить фичу, так ее и не выпустив, потому что за это время она потеряет свою актуальность. Зарплату, конечно залпатят, но эта штука очень демотивирует;

  • Специфический опыт

Как правило, это какой-то свой банковский софт. В основном, это старый код, в котором не очень приятно и не очень интересно работать;

  • Сменить сферу деятельности здесь будет довольно сложно

В первую очередь, потому что вы потеряете в зарплате. В Сбербанке они всегда выше, чем в Яндексе.

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

Продуктовые компании

Плюсы:

  • Актуальные технологии;
  • Отлаженные процессы;
  • Команда профессионалов;
  • Высокий уровень стабильности.

Минусы:

  • Сложно заработать действительно большие деньги;
  • Сложно устроиться на работу;
  • Огромное количество инструментов, с которыми придется разбираться.

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

Как выбрать язык?

Зависит от того, чем вы хотите заниматься и в какую компанию хотите пойти.

PHP, например, очень популярный язык. Он используется в куче российских и зарубежных компаний, в том же Facebook. Но нет никакого смысла учить PHP, чтобы устроиться в Twitter, потому что он там не используется. Если вы хотите в Яндекс, надо учить Python или Java. Переучиваться с PHP на Java очень непростой процесс.

Лучше всего сразу определить для себя 2-3 компании, в которых вы бы хотели работать. Узнать, какие они используют языки программирования и изучать их. Либо, отталкиваться от понравившегося языка и затем искать компании, которые его используют.

Какие бывают разработчики?

Backend

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

Типичные языки: PHP или Python, а так же менее распространенный Ruby.

Frontend

Это то, что вы видите, когда заходите на сайт. Это кусок из верстки. Верстка, как правило, делается на языке разметки HTML, который говорит, как контент отображается на странице, каким цветом он будет показываться. Javascript отвечает за то, как эта страничка будет себя вести, как она будет анимирована, куда отправится форма, какая ошибка будет выведена клиенту, если телефон введен неверно. Эти знания нужны почти каждому программисту. Практически не бывает таких областей, где вам не придется сталкиваться с версткой. Этот язык очень хорош для старта, потому что куда бы вы ни переметнулись, он будет везде востребован.

Fullstack

Это разработчик, который умеет делать и фронтенд, и бэкенд. Он один может напилить и на стороне сервера, и на стороне клиента, заставить все это вместе работать, заставить работать проект без какой-либо помощи. Это высший пилотаж. Такие разработчики, обычно, зарабатывают в полтора раза больше.

Мобильная разработка

По сути, это тот же фронтенд, но здесь используются другие языки. Здесь нет смысла вникать в языки программирования, которые использовались 5 лет назад, такие как Objective-C и Java. Сейчас используются Swift и Kotlin. Все новые приложения пишутся именно на этих языках, а старые под них переписываются.

GameDev

Это отдельная сфера. Здесь, как правило, используется C++ и специальные библиотеки, такие как Unity и т.п. Разработчик, который умеет делать мобильное приложение на Kotlin, не сможет написать игру, потому что используется совершенно другой стек, совершенно другие технологии.

Desktop

Это то, что нативно запускается у вас на компьютере. Например, браузер, Word и т.д. Чаще всего используется C++, С#. Мощные приложения пишут на C++. Иногда десктопные приложения пишут на Delphi, потому что это намного проще и дешевле.

Это самый популярный продукт в России. Он используется, так или иначе, в любой российской компании. Его главный минус в том, что кроме России он нигде не используется. Он очень узкий, из 1С очень сложно уйти, но вакансий очень много и они неплохо оплачиваются.

DevOps

Это системные инженеры, которые настраивают компьютеры. Сейчас компьютеров нужно много, продукты сложные. Facebook, например, использует десятки тысяч серверов и для того, чтобы их было проще администрировать, чтобы код быстрее закатывался с компьютеров разработчиков в продуктивную среду и быстрее докатывался пользователям, нужны инженеры, которые умеют это дело преобразовывать, автоматизировать, автоматически вводить в строй десятки тысяч серверов. Они делают это при помощи программных инструментов. Самый востребованный язык в этой сфере Python и Bash. Изучение питона любым системным администратором поднимет его зарплату минимум в полтора-два раза.

AI/ML/BigData/Криптовалюты

Чаще всего разработчики этих сфер используют все те же самые языки. ML и анализ данных это в основном Python и иногда чуть-чуть Java. Криптовалюты используют C++. Здесь особенность в том, что требуется хорошее знание математики и глубокое знание прикладных инструментов. Обычный разработчик на питоне вряд ли сможет за неделю переквалифицироваться в разработчика ИИ, так как потребуется более глубокое погружение.

Как не нужно выбирать язык и направление?

  • Не ориентироваться на зарплаты

Согласно исследованиям опубликованным на Habr, самым высокооплачиваемым языком является Eclipse. Это довольно модный, молодежный, позитивный и современный язык. Но что случится, если вы сегодня начнете его учить? Сейчас на hh.ru всего 11 опубликованных вакансий. И даже если вы зайдете на место с высокой зарплатой, это не значит, что через несколько лет он будет все также актуален. В таком случае можно оказаться невостребованным, а переключение с одного языка на другой — достаточно сложная история;

  • Не стоит выбирать модные, экзотичные, ограниченные или вымирающие языки

На экзотичные языки (Scala, Eclipse) очень мало вакансий и, как правило, они все для опытных разработчиков. Устаревшие языки обычно дают в институте/школе, например, Pascal. У них нет никакого прикладного применения, они не востребованы на рынке. Как и не стоит начинать с 1С из-за его ограниченности.

  • Не стоит начинать со сложных языков

Не лучшим решением будет начать с С/С++. В интернете есть даже такой мем: изучить С++ за 40 дней. Это сложный в освоении язык. Необходимо потратить много времени, чтобы у вас начало что-то получаться и вас стали ценить на рынке. Если вы собираетесь идти в геймдев, то альтернативы никакой нет, придется учить С++. Но, например, в Яндекс можно попасть Java и Python разработчиком.

Хорошие языки для старта

  • HTML/JavaScript

Они просты в освоении. На них проще всего почувствовать нравится ли и подходит ли вам программирование. Знания этих языков будут полезны вам в любой выбранной далее области;

  • PHP/Python

Тоже просты в освоении. Очень много вакансий с позицией junior. И с течением времени, вы сможете использовать эти знания при переходе на более крутые позиции. Можно сделать карьеру разработчика от junior до senior за 2-3 года, достигнув высоких показателей по зарплате;

  • Java/C#

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

С чего проще начать?

  1. Сделайте свою HTML-страничку.

  2. Попробуйте подключить 1-2 строчки JavaScript, поймите что такое циклы, условия.

  3. Прочитайте книгу по любому языку программирования для чайников. В свое время была очень популярна книга “PHP для чайников”. С нее многие начинали и искали свою первую работу после прочтения.

  4. Пройдите курсы. Курсы полезны с точки зрения практического опыта.

  5. В идеале, пройдите стажировку. Она даст вам много полезного практического опыта, после чего можно будет найти работу в каком-то другом месте, даже если вас не трудоустроят по месту прохождения стажировки. Минусами стажировки может стать fill-time занятость и низкая оплата труда или даже стажировка без оплаты.

  6. Устройтесь на работу мечты. Скорее всего, с первого раза у вас это не получится. Первая работа, обычно, дурацкая. Но через полгода-год можно уже пробовать свои силы в той компании, которая вам нравится. Или запустите собственный проект.

Как не нужно делать?

  • Не стоит идти в смежные профессии: тестирование или тех. поддержка

Если вы уже в этой сфере, то, конечно, стоит пробовать свои силы в разработке, но если вы юрист или только закончили ВУЗ и не знаете, как строить карьеру, то не нужно выбирать такой сложный и долгий путь. Сразу изучайте программирование, прикладные инструменты и ищите работу программиста. Вполне возможно осуществить это в сжатые сроки;

  • Не нужно устраиваться в IT-компанию на другую должность

Например, работа курьером в Яндексе никак не поможет вам устроиться туда же программистом;

  • Не надо упарываться трудоустройством в топовую компанию

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

Нюансы работы разработчиком

  • Первое место работы не будет долгим

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

  • Есть смысл переезжать в Москву и далее на запад

Даже если вы попали на удаленную работу, целесообразно двигаться в направлении развития. Так вы будете расти намного быстрее. И самое главное, это напрямую влияет на зарплату. Разница между зарплатой в регионах и в Москве будет около 50%, и гораздо больше в штатах, если вы туда переедете;

  • Не стоит выбирать узкую специализацию

На рынке программисты с широким спектром навыков намного более востребованы, нежели узкие специалисты;

  • Развивайте софт скилы

Это даст вам возможность эффективно коммуницировать в компании, понимать друг друга. Чем больше вы растете профессионально, тем меньше будет требоваться знание непосредственно программирования, нежели знание того, как эффективно добиваться результатов в команде;

  • Понимайте свою мотивацию

Вам будет проще расти и выбирать ту компанию, которая придется по душе, если вы будете хорошо понимать свою мотивацию. Это, в первую очередь, может сделать вас счастливыми.

Как подготовиться к собеседованию?

Неважно, что вы знаете. Если вы пройдете 20 собеседований, то на 21-е вас возьмут. Независимо от того, программист ли вы, есть ли у вас практические знания или вы никогда этим не занимались.

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

Что спрашивают у джунов на собеседовании?

  • Тестовое задание

Практически все компании будут просить вас сделать тестовое, его обязательно нужно будет сделать;

  • Примеры кодов

Лучше заранее сделать какое-нибудь задание на фрилансе или какой-нибудь pet-project, поработать над ним хорошенько, сделать так, чтобы он выглядел красиво;

  • Подготовить ответы на вопросы о вашем опыте и кем вы видите себя через 5 лет

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

Стоит изучить азы на следующие темы:

  • Объектно-ориентированное программирование;
  • Базы данных. Не обязательно учить огромный двухтомник по оптимизации SQL, но как делать SQL запросы в базовом виде стоит знать;
  • Паттерны проектирования;
  • Система управления версиями (Git)
  • Базовые возможности языка. Например, как подключаются пакеты PHP.

С этими базовыми знаниями можно решать какие-то практические задачи. Эти вопросы были актуальны и 5 лет назад, актуальны сейчас и будут актуальны в ближайшем будущем.

Хотите узнать ещё больше о работе программистом?

Записывайтесь на наш шестимесячный онлайн-курс «Профессия: Программист» 👉 Узнать подробности!

Добавить комментарий