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

Шаг первый. Подготовка

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

Они представляют данное ремесло как что-то романтическое, динамичное – прямо какой-то постоянный экшн.

В фильмах этот процесс показывается совсем не таким, какой он есть на самом деле.

Более того, там вообще не отображается само написание кодов, нам показывают только события, которые вращаются вокруг этого.

Яркий пример тому – фильм «Социальная сеть», в котором вообще не показывали, как главные герои занимаются кодами.

Рис. 1. Кадры из фильма «Социальная сеть» (2010)

Также в фильмах показывают, что программистом может стать любой человек без знаний, опыта и даже без серого вещества в мозге. В данном случае можно вспомнить фильм «Кадры».

Рис. 2. Постер к фильму «Кадры» (2013)

Так что если вы просто пропитались духом всевозможных кинолент и хотите самостоятельно начать «кодить», программирование – это явно не для вас.

Вот вам правда о рассматриваемом ремесле – программирование это:

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

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

https://www.youtube.com/watch?v=nU0Fy5JXOtY

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

Бесплатные сайты для обучения в помощь новичкам:

  • ru.hexlet.io (8 бесплатных курсов по C и PHP, JavaScript и Bash).
  • htmlacademy.ru (18 бесплатных курсов для верстальщиков).
  • codecademy.com (популярные курсы по языкам, инструментам и проч.).
  • codeschool.com (более 60 курсов (13 – бесплатных) по HTML/CSS и JavaScript, Ruby и Python, iOS и Git, и пр.).
  • checkio.org (для изучения Python и JavaScript).
  • codingame.com (обучение через видео-игры, 23 языка программирования).
  • codecombat.com (изучение JavaScript, Python и пр.). Обучающая игра, доступная и для тех, кто пока еще не владеет английским языком.
  • codehunt.com (обучение поиску ошибок в коде).
  • codefights.com (обучающая платформа, через турниры на которой можно «загреметь» на собеседование в приличную IT-компанию).
  • bloc.io/ruby-warrior# (изучение Ruby, а также искусств/интеллекта).
  • theaigames.com (развитие навыков программирования – увлекательный игровой онлайн-тренажер для программиста).
  • codewars.com (сборник обучающих интерактивных задач для тех, кто обладает минимумом знаний).

Обычно на самостоятельное изучение основ программирования уходит от полугода до 12 месяцев.

Шаг третий. Изучение компиляторов

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

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

Рис. 4. Free Pascal

Как видим, выглядит он достаточно «старомодно», но программирование начинается именно с этого. Кстати, компилятор C++ выглядит практически так же.

Рис. 5. Turbo C++

Что касается Паскаля, то существует также GNU Pascal, Turbo/Borland Pascal, TMT Pascal и Virtual Pascal. А для С++ можно использовать Borland C++, Visual C++, Dev C++, GCC и Eclipse.

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

Вот список наиболее популярных на сегодняшний день компиляторов в зависимости от направлений деятельности:

  • Что касается Objective-C, то здесь практикуется работа на Xcode, который можно на сайте apple.com. Если вы решили заниматься разработкой мобильных приложений, обязательно прочитайте нашу статью о работе над программой на iOS. Она как раз предназначена для новичков.
  • Если говорить об Assembler и других языках, которые практикуются в робототехнике, то здесь сразу необходимо скачать MASM, если вы работаете на Windows. А вообще, в зависимости от выбранной вами сферы деятельности и компании, на которую вы устроитесь работать, компиляторы могут быть самыми разными. Некоторые фирмы пишут собственные решения для обработки кода. Поэтому, если вы выбрали робототехнику, лучше изучить соответствующие книги и делать все, как там говорится. Об этом мы еще поговорим.

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

Вот наиболее популярные из них:

Рис. 6. CodePad на планшете

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

Виртуальные машины будут работать под управлением ОС Ubuntu. На них вы можете хоть удалить системную папку, установить абсолютно любую программу и так далее.

Рис. 7. Koding.Com

А теперь приступим к написанию вашего первого шифра (кода). Сделать это можно даже без книг и длинных инструкций.

Как пройти интервью

И вот вас наконец пригласили на собеседование. Время блистать

О собеседованиях не написал только ленивый, поэтому остановлюсь только на самом важном

  • Знайте своё резюме.
  • Знайте о компании.
  • Практикуйтесь
  • Придите пораньше, будьте вежливыми и уверенными в себе.
  • Задавайте вопросы.
  • Следите за ходом интервью.

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

Подробнее можно почитать в разделе: ‎«Всё, что нужно знать программисту для собеседования».

Выберете направление

«программистом может стать каждый, надо лишь приложить достаточно усилий»

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

Особо популярна сегодня разработка мобильных приложений — на HeadHunter можно найти больше 4000 вакансий «разработчик под Android», но средняя зарплата примерно на 33 % ниже, чем у специалиста в области Data Science — 80 000 рублей против 120 000.

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

  • Прикладные специалисты. Задачи: разработка программного обеспечения для игр, редакторов, бух/программ, мессенджеров и др.; разработка ПО для систем аудио/видеонаблюдения, сигнализации и проч.; адаптация программ под чьи-либо конкретные нужды.
  • Системные специалисты. Задачи: разработка операционных систем, создание интерфейсов к базам данных, управление вычислительной системой, работа с сетями, контроль над работой созданных систем, и др. Эти специалисты зарабатывают больше всех других в своей области, благодаря редкости и специфичности профессии.
  • Web-специалисты. Задачи: работа с Интернетом, создание сайтов и веб-страниц, разработка веб-интерфейсов.

Рекомендации

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

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

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

Все специалисты сходятся во мнении, что это худшее начало погружения в профессию

При этом важно, чтобы первый язык позволял решать задачи в выбранной сфере деятельности

Дополнительные навыки делающие конкурентоспособным на рынке труда

Какие навыки помогут быстрее завоевать рынок престижных вакансий?

  • Умение работать в команде для IT-специалиста — 50% успеха его становления на любом поле (разные архитектуры сетей, языки программирования).
  • Усидчивость, упорство, неумение сдаваться.
  • Аналитический склад ума + критическое мышление позволят отмести априори неисполнимые задачи. Умение экономить время заказчика — самый важный плюс профессионала.
  • Аргоритмизированный подход (системность характера) поможет добиться успеха быстрее.
  • Особенность профессии — работа в условном отрыве от социума — определяет некоторые привычки программиста, которые в будущем могут снизить его эффективность. Потому навыки позитивного общения и умение презентовать свои идеи, привычка быть в курсе популярных алгоритмов, сервисов тоже являются полезными навыками.

Изучение иностранных языков

Duolingo

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

Эта интернет-платформа предлагает изучить английский язык в легкой игровой форме. Этим способом пользуются уже 16 миллионов пользователей в мире. Lingualeo абсолютно бесплатен и имеет 22 базовых курса, 9 видеоуроков и различные тестирования уровня знаний. Курс включает в себя массу интерактивных тренировок, 250 тысяч аудиокниг и песен с субтитрами.

Engvid

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

16polyglot

Автор этого сайта, Дмитрий Петров, разработал методику, позволяющую изучить любой иностранный язык с нуля. Полиглот обещает, что за 16 часов пользователь сможет изучить французский, немецкий и даже китайский язык. Один урок занимает примерно 40 минут, изучение курса состоит из 16 уроков. Стоит отметить, что все уроки загружены бесплатно на сайт YouTube.

Ororo.tv

Этот портал предлагает изучать английский с удовольствием, а именно, за просмотром фильмов и сериалов. Трансляция видео сопровождается субтитрами — нужно лишь навести на слово и всплывет перевод. Также можно выбрать режим с несколькими субтитрами и разными языками. Ororo.tv содержит развлекательные, познавательные и научные видеозаписи.

Busuu

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

Memrise

Еще одна платформа для изучения языков предлагает обучение в игровой форме. Более 200 курсов для разного уровня владения языками созданы выдающимися лингвистами. Удобное приложение и сайт предлагают изучить десять языков совершенно бесплатно. Этой платформой пользуются уже 26 миллионов человек в мире.

BBC Learning English

Для тех, кто владеет английским языком на среднем уровне, можно переходить на обучение с помощью англоязычных видеозаписей. Телеканал BBC создал интересный YouTube-канал для легкого обучения. Ежедневно на BBC Learning English публикуются новые ролики с носителями языка. У канала почти миллион подписчиков!

English with Jennifer

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

Babbel

Этот сайт подходит для тех, чей английский уже на высоком уровне. Англоязычный портал предлагает изучение 14 языков, в том числе и русский! Здесь есть индивидуальный подбор схемы обучения и выбор удобного времени изучения в день. Babbel состоит из уроков, разработанных экспертами для реальных разговорных навыков.

Шаг 4. Получите образование

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

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

В МГ, МГТУ им. Н.Э.Баумана и МФТИ есть бесплатные курсы от Mail.ru Group (Технотрек, Техносфера и Технопарк). Поступив на них, можно стать профессионалом и устроиться в компанию мечты.

На этом этапе изучить алгоритмов и структур данных. Воспользуйтесь следующим списком книг:

  • «Алгоритмы. Руководство по разработке», С. Скиена
  • «Алгоритмы» С. Дасгупта, Х. Пападимитриу, У. Вазирани
  • «Алгоритмы. Введение в разработку и анализ», А. Левитин

Чем отличаются уровни программиста

Формальная градация отличается в разных компаниях, но в сфере IT все же принято разделять программистов на следующие уровни:

  • Интерн — работа для начинающего программиста без опыта. Интерн отличается молодостью, огоньком в глазах, наличием свободного времени и огромным желанием учиться. Требуются базовые знания языка и умение доказать свои навыки в процессе собеседования.
  • Junior — младший программист, основное качества — стремление к выполнению задач. Junior тратит часы на написание элементарного для более опытных коллег кода, часто с ними консультируется и благодаря этому совершенствует свои знания. Задача Junior — продвижение вперед, к следующему уровню.
  • Middle — программист среднего уровня. Он может обходиться без какой-либо помощи и способен самостоятельно выполнять достаточно сложные технические задачи.
  • Senior — опытный разработчик, который выполняет сложные задачи быстро и эффективно. Его отличительная черта — поиск и реализация оптимального подхода. Он потратит меньше времени и напишет меньше строк кода, но создаст практически оптимальное решение, к тому же в процессе работы проконсультирует трех разных Junior по разным вопросам.
  • Team Lead — менеджер, управленец, координатор, начальник. Его задача — организация работы отдела программистов. Он распределяет задания между исполнителями, проводит ревью кода, заботится об обеспечении рабочей обстановки, проводит стендапы с командой, решает архитектурные вопросы.
  • Архитектор — высшая профессиональная градация. Его задача — детальный анализ бизнеса клиента, определение оптимальной стратегии удовлетворения его потребности. Работа архитектора в IT весьма схожа с деятельностью его коллеги в более широком понимании. Выражение «архитектор построил дом» весьма условное, так как непосредственным строительством занимаются дизайнеры, прорабы, штукатуры, маляры, разнорабочие, он же решает более глобальные вопросы.

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

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

Самостоятельная работа

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

С помощью наставника

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

На курсах или в университете

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

Плюсы и минусы работы программистом

Плюсы работы программистом:

  • Высокая заработная плата. Средняя зарплата программиста в Москве по данным Trud.com — более 86 тысяч рублей. В регионах ситуация не намного хуже, так как айтишники ценятся везде. Опытные программисты могут зарабатывать 100 тысяч, 150, 200 тысяч рублей в месяц и больше!
  • Свободный график. Часто работодателю требуется не сам факт пребывания программиста в офисе, а выполнение им определенного объема работы. Поэтому многим айтишникам предлагается более-менее свободный график: они могут выбирать время посещения офиса, брать выходные, приходить после обеда, работать вечером вместо утра.
  • Условия работы. Обычно работодатель обеспечивает очень комфортное рабочее место: мощные компьютеры и качественные мониторы, которые снижают нагрузку на глаза. Крупные московские и питерские IT-компании в последнее время массово закупают для своих сотрудников эргономичные стулья Herman Miller (аналог Lamborghini в сфере автомобилестроения), стоимость которых — от 100 тысяч рублей за единицу. Также устанавливают столы с регулируемой высотой столешницы, обеспечивают бесплатное питание, в том числе: фрукты, соки, чай, кофе и печенье. Программисты, играющие в настольный теннис в разгар рабочего дня, — вполне привычное явление в успешной IT-компании.
  • Возможность удаленной работы программиста. Практически любой айтишник может найти удаленную работу, которая будет приносить ему не меньше денег, чем заработок в офисе. Это касается как фриланса (выполнение большого количества мелких заказов), так и удаленного сотрудничества с одним работодателем.
  • Перспективы – это главное. Многие известные IT-компании, среди них и легендарная Microsoft, заявляют о нехватке программистов. Ожидается, что число незанятых вакансий к 2024 году составит около 1 миллиона. Работа программистом на дому и в офисе с каждым годом становится все более популярной.

Минусы работы программистом

  • Низкая социальная активность. Несмотря на то, что программисты часто работают в большой компании, они ограничены в общении. В основном они получают инструкции в виде тикетов и конкретных задач, по которым нужно выполнять работу. Программирование требует усидчивости и готовности к многочасовой деятельности, иногда и вовсе рутинной, а это в свою очередь не предполагает активного общения с коллегами. В первую очередь, этот отрицательный момент касается дистанционной работы программистом.
  • Сидячий малоподвижный образ жизни — о его вреде написано и сказано много. Поэтому факт остается фактом: профессиональные заболевания программистов включают проблемы с сердечно-сосудистой системой, остеохондроз, падение зрения, туннельный синдром.
  • Необходимость постоянно обучаться. Программист — не повар, который может выучить 10 рецептов классических блюд и всю жизнь их готовить в среднестатистической столовой, ему постоянно требуется совершенствовать свои навыки и приобретать новые знания. Порог входа для работы в IT-индустрии постоянно повышается. Еще 10 лет назад верстальщик должен быть знать HTML и CSS, сейчас же без понимания JavaScript и каких-либо фреймворков вроде ReactJS и Vue, его резюме просто не воспримут всерьез. Старые подходы стремительно теряют популярность, и как грибы после дождя возникают новые языки программирования, а с ними и сотни технологий и фреймворков.
  • Стандартная практика — 8-часовой рабочий день — уходит в прошлое. Работа программиста — это выполнение определенного объема работы. Плюс — с этим можно справиться за 2-3 часа, минус — иногда решение той или иной задачи требует дополнительной работы дома.

Выбор языка программирования

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

Давайте так. Мы будем описывать разные ситуации. Читайте каждый пункт по очереди. Если поймете, что этот пункт не про вас, переходите к следующему. И так пока не получите свой ответ.

  1. Хочу что-то предельно простое, может даже не самое практичное. Ваш язык: Ruby.
  2. Я хочу начать кодить для себя, из любопытства или в рамках самосовершенствования. У меня нет на примете проекта, который мне бы хотелось реализовать. Посоветуйте мне лучший способ начать. Ваш язык: Python.
  3. Я хочу начать кодить для себя, из любопытства или в рамках самосовершенствования. У меня нет на примете проекта, но я хотел бы выучить такой язык, чтобы после него было легко переключиться на любой другой (даже если изначально изучение первого языка будет трудным). Ваш язык: С++.
  4. Я хочу кодить для себя, и у меня на примете есть проект. Он связан с сайтами. Хочу выучить самый простой язык из тех, что позволит мне создавать сайты в интернете. Ваш язык: JavaScript.
  5. Я хочу кодить для себя, и у меня на примете есть проект. Он связан с сайтами, но в будущем я хотел бы работать не только с ними. Ваш язык: Python.
  6. Хочу стать программистом для себя, и есть идея проекта, связанного с приложениями на Android. Ваш язык: Java
  7. Хочу стать программистом для себя, и есть идея проекта, связанного с приложениями на iOS Ваш язык: Objective-C
  8. Хочу стать программистом для себя, и есть идея проекта, связанного с компьютерными играми или сложными программами в 3D. Ваш язык: C++
  9. Я иду в программирование ради денег, и хочу получить хорошую работу. Компания не имеет особого значения. Ваш язык: Java или Python.
  10. Я хочу устроиться на работу в компанию и работать с веб-интерфейами. Ваш язык: JavaScript.
  11. Хочу устроиться в компанию и работать с сайтами. Готов потрудиться чуть больше, но охватить при этом более широкий спектр знаний. Ваш язык: PHP.
  12. В будущем я хочу устроиться в крупную корпорацию вроде Google или Facebook. Ваш язык: Python.
  13. В будущем я хочу устроиться работать в Apple. Ваш язык: Objective-C.
  14. В будущем я хочу устроиться работать в Microsoft. Ваш язык: C#.

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

Продолжение обучения

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

Изучайте различные библиотеки

Библиотеки JavaScript как правило делают жизнь разработчика намного проще. Одна из самых популярных библиотек — это jQuery. Она помогает с манипулированием DOM, функциями объектов, массивов и многим другим.

Изучение jQuery — отличное начало для знакомства с работой с библиотеками JavaScript. Есть множество курсов и учебных пособий по jQuery, но мне нравятся уроки freeCodeCamp.

Завершите уроки HTML и CSS

Вернитесь к изучению HTML и CSS на freeCodeCamp и завершите остальные уроки: Applied Visual Design, Applied Accessibility, и CSS Grid.

Улучшите свой CSS (необязательно)

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

Узнайте, как работает JavaScript

Умение использовать JavaScript — это замечательно, но понимание того, как он работает, позволит вам писать код лучше.

Чтобы глубже понять JavaScript, рекомендую серию книг «Вы не знаете JS». Первые две книги помогут разобраться в основах JavaScript и заложить хороший фундамент. Их можно прочитать онлайн бесплатно или купить в печатном виде.

Создавайте проекты

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

Проекты должны улучшать ваши навыки, поэтому, если они слишком простые или сложные, остановитесь и начните проект на приемлемом уровне.

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

Как получить первую работу

Попробуйте устроиться на работу в IT-компанию прежде, чем научились программировать. Это даёт большое преимущество: вы работаете с опытными разработчиками и получаете деньги за практику. На работе вы откроете для себя деловую сторону жизни разработчика. Ведь нет смысла делать продукт, который никому не нужен, а общению с клиентами тоже нужно учиться.

В поисках работы

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

Легче всего попасть в веб-разработку. Даже если вы не планируете заниматься этим в будущем, огромное количество вещей из веб-разработки вы сможете потом использовать в желаемой сфере. Вот примерный список требований для вакансии Junior Front End Web Developer:

Требования, которые встречаются чаще всего:

  • Знание фронтенда: HTML, CSS и JavaScript;
  • Способность создавать адаптивные сайты;
  • Портфолио, демонстрирующее ваш опыт и навыки;
  • Понимание контроля версий.

Дополнительные навыки:

  • Библиотеки Javascript: jQuery, AJAX, Bootstrap;
  • Знание отладки.

Пробный период: программирование мое или не мое?

С чего начать? Некоторые профессии можно освоить быстро. Программирование не из их числа. Даже если вам хочется освоить это быстро, так не получится. Чтобы стать программистом, вам придется учиться как минимум несколько месяцев. В том числе, самостоятельно. С чего начать: мы советуем сначала попробовать понять, подходит вам профессия программиста или нет. Для этого можно использовать самые простые технологии из мира разработки и программирования, которые можно быстро освоить: HTML и CSS.

HTML и CSS — это еще не полноценные языки программирования. Скорее, это набор специальных команд. Они «показывают» браузеру, как должны выглядеть объекты на странице.

Объясняем:

Вот как выглядит обычный текст, если его открыть в браузере:

Вот как выглядит тот же самый текст, если его немного причесать при помощи HTML:

В данном примере мы использовали несколько тегов:

< h1> — тег, который обозначает заголовок страницы.< b> — тег, который делает шрифт жирным.

Вот так выглядит эта страница, если открыть ее в блокноте, чтобы посмотреть, какие мы использовали теги:

Прежде чем стать начинающим программистом, попробуйте начать свое самостоятельное погружение в программирование с изучения HTML и CSS. По этим инструментам в интернете много бесплатных курсов. Освоить их сможет каждый. HTML и CSS можно изучить за несколько дней. Это поможет вам ответить на вопрос: «Подходит ли мне программирование?».

Что нужно знать, чтобы устроиться на работу джуниор-программистом

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

Откройте HeadHunter и посмотрите 7-10 junior вакансий в вашем городе по своему направлению. Выпишите требования из каждой из них, удалите повторы. Бинго, перед вами усредненный лист требований к джуниор-программисту в вашем направлении.

Мы сделали срез по самым популярным направлениям в Москве:

  • Что нужно знать, чтобы стать frontend junior программистом: Опыт работы с VueJS, Vuex, HTML5, CSS3, взаимодействие с бэкендом по Rest-Api, базовые навыки работы с Git, понимание основных принципов HTTP/REST/JSON, опыт работы с React,js
  • Что нужно знать, чтобы стать backend junior программистом: JavaScript, понимание ООП, базовые знания JVM, опыт работы с Git, оптимизация и отладка запросов в MySQL, знание Node.js, опыт работы с облачными сервисами
  • Что нужно знать, чтобы стать junior iOS программистом: Swift, базовое понимание ООП, базовое понимание MVC, опыт разработки клиент-серверных приложений, знание Git, Знание HTTP/S, REST API, JSON
  • Что нужно знать, чтобы стать junior Android программистом: Java, Android, Kotlin, понимаешь особенности разработки клиент-серверных приложений, Базовые знания Git, Gradle/Maven; Базовые знания HTTP/S, REST API, XML, JSON; Базовые знания Google Play Services (GCM, GM, GA, FIREBASE)

Стать программистом в 40 лет — это реально 🙂

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

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

Решил разобраться самостоятельно, что же такое веб-разработка и как оно — программирование — сейчас работает.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий