Как стать программистом и найти первую работу
Содержание:
- Как начать зарабатывать программистом
- На пути к профессии программиста
- «Джанго» — это танцы?
- Преимущества и недостатки самостоятельного обучения (в домашних условиях)
- Что почитать?
- Перспективы профессии программиста
- Плюсы и минусы профессии
- С чего начать?
- Кто такие программисты и чем они занимаются
- Как искать работу?
- Какой язык программирования выбрать?
- Выбираем язык программирования
- Как освоить профессию программиста специалисту из другой сферы
- Изучение алгоритмов
- Стажировка и старт карьеры
- Шаг 5. Создайте командный проект
Как начать зарабатывать программистом
Многие представляют работу программиста-фрилансера так:
Или так:
На самом деле это выглядит примерно так:
Если вы готовы к работе программиста и ищете способ зарабатывать — добро пожаловать на фриланс! Фриланс-биржи позволят вам найти простые заказы (возможно почти бесплатно на первых порах) — чтобы получить практику. Как правило, работа в ИТ-компании может быть прибыльнее, если вы просто ищете работу программиста.
Уже после пункта 2 — освоив HTML, CSS и jQuery — можно идти на фриланс биржи и брать несложные заказы, нарабатывая профиль.
Знаете английский? https://www.upwork.com/
Совсем нет, даже со словарем? http://freelance.ru/
К тому времени, когда вы сможете самостоятельно делать сайты, вам будет проще найти клиентов — будут отзывы и опыт.
На пути к профессии программиста
Стоит сразу оговориться, что путь этот очень разный для студентов и уже состоявшихся специалистов. И я бы хотел рассказать отдельно про каждый случай:
- Если вы только заканчиваете школу, то очевидно, самым правильным было бы поступить на профильный факультет любого ВУЗа. Даже если ВУЗ не будет самым топовым учебным заведением страны, в течение учёбы вам так или иначе придётся изучить теорию и получить практику программирования, которой будет вполне достаточно (если действительно учиться), чтобы впоследствии пройти собеседование в IT компании и там набраться опыта. Уйма книг и онлайн курсов, доступных в интернете, позволят получить высокий уровень знаний в независимости от названия ВУЗа или красноты диплома.
- Если вы уже студент непрофильного ВУЗа или факультета, то вам придётся свыкнуться с тем, что нужно будет «попотеть» вдвойне. Но стать сильным программистом всё также возможно, так как времени у вас достаточно.
- В случае, если у вас за плечами несколько лет учёбы и работы не по профилю, студенческая жизнь позади, но вы всё же решились сменить профессию, то я не советую брать за основу путь студентов — ваш путь, совершенно иной, однако не менее перспективный.
«Джанго» — это танцы?
Если на все эти вопросы у вас нет ответа (даже приблизительного), вам нужен курс, немалая часть которого посвящена азам вычислительной науки, объяснению типов данных, алгоритмов и обучению синтаксису языка программирования. Пройти такой можно, например, в SkillFactory. Первые 4 месяца вебинаров как раз и посвящены основам. Затем вы сможете перейти к написанию простеньких программ.
В дальнейшем за 9 месяцев вы узнаете, как использовать Python/Django, базы данных и СУБД, javascript и верстку, как поднять веб-сервер и развернуть на домене созданный сайт. Это как раз то, что нужно для фронтенд и бэкенд уровня.
Последний этап курса — поиск и устранение ошибок в написанном коде, автоматическое тестирование приложения с помощью фреймворков, проектирование интерфейсов, передача навыков по решению проблем, возникающих перед фулстек-разработчиком в самом начале выполнения заказа.
Помимо лекций компетентных специалистов на курсе «fullstack-разработчик на Python» вы сможете выполнять домашние задания, решать задачи разного уровня сложности, а также вам будут доступны тренажеры для программирования. В конце курса предстоит пройти тестовое собеседование, что поможет при дальнейшем трудоустройстве.
Преимущества и недостатки самостоятельного обучения (в домашних условиях)
Вы знаете как стать программистом, понимаете, что для этого необходимо учиться и тратить делу огромное количество своего времени. При этом вы решили делать все самостоятельно, без университетов и вспомогательных компаний. Это очень похвально и всегда окупает ожидания, если работать в этом направлении. Но при этом такой выбор является очень сложным.
Сегодня есть огромное количество информации в интернете, есть возможность использовать производительное оборудование для программирования, есть возможность практиковать свои навыки. Подробные инструкции в интернете позволяют вам начать путь к профессиональному программированию, специальные биржи даже предоставят вам работу за определенную плату.
Преимущества самостоятельного обучения:
1. Огромное количество практических знаний.
2. Возможность зарабатывать начинающим программированием.
3. Настрой на перспективу и более ответственное обучение.
4. Дешевый способ стать программистом.
Недостатки самостоятельной учебы:
1. Очень сложно стать профессионалом за короткое время.
2. Трудности в обучении, так как некому подсказать.
3. Большое количество времени уходит на поиск информации и ее анализ.
Что почитать?
Онлайн-медиа — здесь обсуждаются нишевые события и более узкие темы.
- Google Developers — надежный первоисточник, из которого можно узнавать актуальные новости о продуктах компании.
- I Programmer — портал для программистов. Новости обо всех направлениях от UX до робототехники и всех языках программирования.
- Smashing Magazine — статьи о веб-дизайне: разбор кода, свежие кейсы, советы по трудоустройству и общению с клиентами.
- Хабр — универсальный русскоязычный ресурс, где можно найти гайды, обсуждения, код-ревью и кейсы от разработчиков разных компаний от IT-гигантов до небольших digital-агентств.
- Вастрик — авторский инди-блог про IT и выживание в мире технологий. Тексты про машинное обучение, блокчейн, VR, вычислительную фотографию, машинный перевод и многое другое.
- For Web — блог в Twitter с полезными материалами для фронтендеров: свежие статьи, доклады и инструменты от сибирского разработчика Андрея Романова.
Искать решение своей проблемы и задавать вопросы стоит на англоязычных форумах, как специализированных, так и не очень. Есть два популярных варианта:
- Reddit — популярный форум на все темы подряд, на котором часто сидят опытные разработчики, выкладывают свои кейсы и комментируют другие публикации. Найти их можно по тегу «programming».
- Stack Overflow — закрытый клуб для программистов без рецептов и котиков. Здесь можно запросить у опытных коллег code review, комментировать публикации и давать им оценку.
- CyberForum — форум программистов, системных администраторов, где помогают в решении задач по программированию.
- Game Dev — форум, на котором разбирают создание игр и все, что с ним связано.
Перспективы профессии программиста
В любом случае, в дальнейшем вас ждёт долгий и увлекательный путь по карьере, который сам по себе тоже бывает совершенно разным. Официально, науке Computer Science чуть больше 50 лет, так что она достаточно нова, и в ней есть, куда расти и развиваться ещё многие годы. Будучи неопытным разработчиком, я отовсюду слышал фразы вроде «Всё уже написано, нечего программировать». Поверьте, это сущая глупость.
При этом, за счёт всеобъемлющего проникновения во все области жизни, IT-сфера чрезвычайно широка и позволяет добиться совершенно разных целей: высоких зарплат, научных степеней в разных областях, интересных задач и нескучной работы, возможности настраивать маятник баланса жизни и работы (work-life balance) в ту или иную сторону.
Я не считаю стыдным желать высокой зарплаты или признания в области, но кратчайший путь к этим двум целям совершенно разный и требует очень разного подхода к своей карьере, о котором я могу рассказать в следующей статье.
А чтобы добиться сразу нескольких целей, кратчайшего пути, пожалуй, не знает никто. В общем, хоть большинству это и кажется банальным, но обязательно в первую очередь нужно внимательно относиться к своим истинным целям и желаниям, чтобы не потратить время зря.
Спросите себя зачем вы хотите стать программистом. Честный ответ позволит вам найти наиболее быстрый путь к мечте.
Антон Ярков — Senior Software Developer and Chief of development staff. Инженер-программист и руководитель команды из 100 разработчиков в компании Access Softek Inc., занимающейся разработкой банковских продуктов для рынка США. Последние 8 лет играет ключевые роли в приятии инженерных и управленческих решений, работая над высоконагруженными и инновационными приложениями. 10+ лет опыта в разработке в стартапах и enterprise. LinkedIn.
Плюсы и минусы профессии
Что привлекает людей в профессии программиста, заставляет выбирать профильные специальности в вузах, менять профессию и уходить в IT? Перечислю основные достоинства:
- Высокий заработок. Средняя зарплата опытного программиста редко бывает ниже 100 тысяч рублей. Новичок в профессии может стартовать с 30-40 тысяч в зависимости от компании и города. Те специалисты, которые развиваются в профессии не один год и высоко ценятся руководством, могут зарабатывать 200-300 тысяч рублей и выше.
- Востребованность. За счет цифровизации всех сфер общественной жизни спрос на разработчиков растет с каждым годом. Сегодня в IT-специалистах нуждается даже сельское хозяйство.
- Возможность работать удаленно по свободному графику. Специалисты в области IT приносят своим работодателям огромные деньги, а потому за комфортом разработчиков тщательно следят. У них удобные современные офисы, многие компании считаются с хронотипами сотрудников (совами и жаворонками), позволяя работать в удобное время суток, а то и вовсе из дома. В 2020 году, когда началась пандемия и миллионы людей остались без зарплаты, айтишников просто распустили по домам, и они спокойно продолжали работать в том же режиме.
- Карьерный рост, в том числе за рубежом. Для сферы программирования нет никаких географических ограничений. Вы можете сидеть у себя в квартире в провинциальной глубинке и работать на крутую забугорную компанию. А с хорошим знанием английского можно легко переехать в Европу – специфика работы будет та же. Чего нельзя сказать, например, о юристах или врачах. Даже если у них будет безупречный английский, им придется заново проходить обучение, получать квалификацию, изучать местное законодательство, оформлять кучу документов и т.д.
- Интересные задачи, общение с единомышленниками. Во-первых, работа разработчика очень творческая – он пишет код, отлаживает его, тестирует, переписывает и видит свой результат – рабочую программу, которая выполняет какие-то свои цели. Есть программисты, которые пишут игры, есть те, что создают «мозги» роботам. Во-вторых, программист – это командный сотрудник, которому приходится знакомиться и общаться со множеством людей.
- Можно легко уйти в смежные области. Внутри IT-сферы есть много других направлений помимо разработки, которые при желании можно освоить – дизайн, аналитика, маркетинг, менеджмент, архитектура ПО и др.
Но даже у такой заманчивой профессии есть свои минусы:
- Сидячий образ жизни.
- Сильная нагрузка на зрение.
- Быстрое устаревание знаний. В программировании нет такого, что вы все выучили и можете спокойно работать. Разработчик вынужден постоянно учиться, повышать свою квалификацию, следить за стремительно развивающейся отраслью, иначе его ценность как профессионала начнет очень быстро падать.
С чего начать?
Выучить программирование в домашних условиях довольно сложно, однако такой выбор обязательно со временем окупится. В свободном доступе есть множество пособий и книг для освоения нового. Стоит понимать, что существует много языков программирования, и каждый создан для определенного круга задач. Есть и другая информация, которую придется изучать.
Для облегчения можно начать обучение программированию с курсов. Так, человек с практическим опытом сможет помочь определить вектор обучения. Более того, это отличный способ для сокращения временных затрат. Уроки и задания от профессионалов позволят быстро сориентироваться в большом количестве информации.
Преимущества самостоятельного освоения профессии:
- большое количество практики, которая обязательно понадобится в ходе изучения языков и библиотек;
- возможность быстро начать зарабатывать, применяя новые навыки;
- более ответственный подход и настрой;
- минимальные финансовые траты или их полное отсутствие.
Стоит отметить, что стать профессионалом за короткий период времени не получится. Советов спрашивать не у кого, поэтому в обучении придется сталкиваться со многими сложностями. Поиск информации и ее анализ занимает больше времени, чем само обучение. Но в любом случае стоит определиться с родом деятельности в самом начале.
Часто новички начинают с освоения сложных и престижных языков. Первое время интерес сильный, но большая нагрузка приводит к его потере.
При выборе первого языка стоит ориентироваться на такие критерии:
- возможность будущего трудоустройства;
- низкий уровень вхождения;
- направление деятельности.
Уровень вхождения предполагает ту сложность языка, которая не заставит отказаться от его изучения.
При этом важно четко понимать, подходит ли язык программирования для решения тех задач, что вызывают интерес. Так, для написания сайтов и игр нужно получить разные знания и навыки
Разобраться в HTML и CSS
В самом начале пути стоит получить базовые навыки. HTML является языком гипертекстовой разметки. С его помощью создается веб-страница. Изучение довольно простое, ведь язык состоит из понятных тегов. CSS позволяет оформить ранее созданный элемент так, чтобы он был визуально красивым.
Найти подходящую литературу в свободном доступе легко, но в оригинале она на английском языке.
Освоение HTML и CSS дает возможность работать верстальщиком. При желании стоит остановиться на этом этапе, уделить ему чуть больше времени.
Познакомиться с jQuery
Библиотека JavaScript имеет простой и понятный синтаксис. Есть довольно много литературы, которая поможет в обучении. Набор функций jQuery существует уже давно и позволяет улучшить страницу уже после использования HTML и CSS. С помощью этой библиотеки можно:
- убрать различия в отображениях документа, которые существуют между браузерами;
- абстрагировать интерфейс;
- исправить большую часть проблем, которые могут возникнуть при просмотре страницы.
Эта информация нужна всем, кто решил направиться в веб-разработку. В других случаях достаточно просто ознакомиться с библиотекой, понять принцип действия и двигаться дальше.
Освоить серверный язык программирования
Тут будущему специалисту предстоит делать выбор. Серверные языки нужны для того, чтобы описать возможные сценарии взаимодействия пользователя с приложением или сайтом. Перед обучением стоит тщательно продумать стратегию. Языков этого вида довольно много: PHP, Ruby, Java, C, Python и другие. Обычно в проекте используется тот, на котором есть больше специалистов.
Самым распространенным серверным языком программирования является PHP. Стоимость работы с его использованием невысока, ведь порог вхождения в нишу будет низким.
Кто такие программисты и чем они занимаются
В начале хочу дать небольшую информацию о том, кто такие программисты и что они собственно делают, чтобы вы знали что вас ждет.
Если вкратце, то программист — это специалист, который разрабатывает компьютерные программы. Все наше цифровое окружение, а именно мобильные приложения, веб-сайты, игры и прочие IT продукты, это программы, которые создаются программистами.
Грубо говоря, компьютер понимает только 1 и 0 и чтобы он выполнял нужную нам задачу нам, надо описать его в понятный для компьютера язык. И делается это с помощью языков программирования, где мы собственно и прописываем эти правила.
Задача программиста — это создать модель работы программы и на основе определенных алгоритмов, технологий и языков программирования воссоздать его.
Программисты классифицируются по разным направлениям. Например в мобильной разработке, веб-приложений, машинного обучения, анализа данных и т.д. Соответственно различные направления требуют знания различных технологий и инструментов в разработке.
Как искать работу?
Первое с чего стоит начать- составление резюме. Даже на том, как оно составлено, можно многое сказать о его владельце. Если резюме хаотичное без какой-либо структуры, то, вероятно, то же самое можно будет сказать и о структуре исходного кода, который его автор будет разрабатывать.Скопированная информация из интернета в один из разделов резюме, например о личных и профессиональных качествах, говорит о том, что кандидат может и приврать. Отсутствие достижений в работе и учебе, больше говорит о том, что человеку работа нужна ради денег. Чтобы не создавать такого впечатления при составлении резюме пользуйтесь услугами профессионалов, или дайте его на вычитку знакомым рекрутерам.
Чего не нужно делать в резюме и на собеседовании, так это врать и приукрашивать факты, это профессионалами считается на раз-два, а о вас останется негативное впечатление. Если у вас уже есть какие-то работы и достижения, то стоит их отдельно перечислить в резюме.
Начните с рассылки резюме по тем вакансиям, которые соответствуют вашему опыту, например, если вы изучали java script, то откликайтесь на все, где он указан в требованиях, отправляйте резюме туда, где потенциально возможно потребуется специалист с вашим опытом работы, даже если сейчас там нет открытых вакансий. На поиск работы может уйти несколько месяцев. Обычно после отклика на вакансию работодатели откликаются через пару дней, далее в течение недели проходят собеседования и пробные задания, еще месяц может уйти на размышления работодателей. Как правило, прямые отказы работодатели не дают, просто «забывают» о вас. О том, как подготовиться и пройти собеседования я уже писал, почитать можно вот тут.
Какой язык программирования выбрать?
Это зависит от того, чем вы хотите заниматься:
Для тех, кто никогда не имел дела с кодом, лучше всего подходит Python. Его используют и в Data Science и машинном обучении, для создания скриптов в 3D-редакторах и, разумеется, в веб-разработке.
Google использует Python для ранжирования поисковой выдачи, также на нем работают YouTube, Dropbox и Reddit. Еще на этом языке написан фреймворк Django — универсальный инструмент для веб-разработчиков, который отвечает за создание внешнего интерфейса и работу на сервере.
Курс
Fullstack-разработчик на Python с нуля
Научитесь программировать на Python и Javascript и получите востребованную профессию за 15 месяцев. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
Если вы хотите идти в веб-разработку — определитесь, что вам больше интересно: backend или frontend. Вот, что нужно освоить для каждой специальности:
Frontend
HTML и CSS — это языки разметки, с помощью которых элементы сайта в браузере встают на нужные места.
Javascript — язык, который добавляет сайту динамику: анимацию нажатия кнопок, движение карточек продуктов, отправку уведомления.
Python — универсальный язык, который подходит для frontend-разработки, а также backend и других интересных задач.
Кроме этого, понадобится базовое знание основ веб-технологий. Например, нужно знать, как работает протокол http или зачем необходимо шифрование данных.
Научиться всему этому можно здесь.
Backend
Go — язык для backend с простым синтаксисом. Подходит для крупных проектов и высоконагруженных приложений, таких как YouTube или Ozon.
PHP — простой в освоении язык, подходит только для backend, но специалисты советуют обратить внимание на более современные инструменты. Java — универсальный язык, который используется уже более 20 лет
Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом
Java — универсальный язык, который используется уже более 20 лет. Код, написанный на Java, работает одинаково на разных устройствах, что является его базовым преимуществом.
Научиться этому можно здесь.
Начинающим разработчикам мобильных приложений стоит определиться, с какой операционной системой они будут работать, потому что код для iOS и Android пишется на разных языках.
iOS
Objective-C — язык программирования Apple, который используется в первую очередь для MacOS. Приложения для iOS раньше тоже писали на нем, но теперь мобильные разработчики используют в основном Swift.
Swift — понятный и логичный язык, который отражает главные качества iOS — функциональность и производительность.
Освоить навыки можно здесь.
Android
Java — кроссплатформенный язык для создания мобильных и серверных приложений. На нем также можно писать backend для сайтов.
Kotlin — язык, альтернативный Java, большую часть нового кода сейчас стараются писать именно на нем. Но Java стоит знать для того, чтобы ориентироваться в уже написанном коде, а благодаря совместимости языков код на Kotlin и Java можно миксовать в одном проекте.
Освоить профессию можно здесь.
Курс
Android-разработчик с нуля
Вы освоите программирование и главные навыки мобильного разработчика, подготовитесь к трудоустройству и уже после первых 8 месяцев обучения сможете начать работать по новой специальности. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
В геймдеве выбор языка зависит от уровня проектов и платформ, с которыми вы хотите работать:
C++ — потребуется, если вы планируете создавать крупные AAA-проекты с фотореалистичной графикой для PlayStation и Xbox. В этом случае обойтись простыми в изучении базовыми языками точно не получится. Подробная статья о С++.
C# (Си-шарп) — язык для движка Unity, разработанный компанией Microsoft. Он особенно популярен в России и считается более простым в освоении, чем C++. Изначально на нем создавались проекты эксклюзивно для ПК, но сейчас код, написанный на C#, можно портировать на Android, iOS, Xbox и другие платформы.
Курс
Разработчик игр с нуля
Научитесь создавать игры на самом востребованном движке Unity и станьте востребованными специалистом. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
Выбираем язык программирования
Специализацию и язык следует выбирать исходя из своих предпочтений. Профессиональная деятельность должна приносить удовольствие, а не приводить к эмоциональному выгоранию. Чтобы сделать выбор, следует подробнее узнать о языке, сложности, длительности освоения, сферах его применения
Важно учитывать востребованность данной работы. Это можно проверить на рынке вакансий
Важные языки:
- HTML — язык разметки, использующийся для структурирования контента. Состоит из набора команд (тегов). Полезен даже тем, кто не планирует создавать онлайн-ресурсы. То, как соискатель знает разметку, проверяется при трудоустройстве, особенно при найме junior. Справочные пособия сокращают срок освоения языка до 2−7 дней.
- CSS. HTML нужен для разметки документа, а CSS — для его оформления. Благодаря ему настраивается цвет, размер, тип шрифта, ширина полей, положение отдельных блоков и другие параметры внешнего вида сервиса.
- JavaScript (JS) тесно связан с предыдущими пунктами. Это базовый язык, делающий сайт динамическим. Даже системные программисты когда-то сталкиваются с JS. С его помощью можно добавить анимацию 2D, 3D графики, интерактивные карты, управлять медиаконтентом.
Python — высокоуровневый язык, использующийся в различных сферах. Его изучение можно начинать еще в школе. Он имеет обширную базу библиотек, что позволяет писать программы за короткие сроки. Дополнительно можно освоить другой язык из back-end — PHP, Ruby.
Затем следует перейти на Java. На начальных этапах осваивать его сложно. Он помогает адаптироваться к низкоуровневым языкам, имеет больше проработанных инструментов. Создан на основе синтаксиса C, использующегося в серьезных разработках (ОС, микроконтроллеры, системное ПО).
Как освоить профессию программиста специалисту из другой сферы
Однако, всё несколько не так с опытными специалистами из других сфер, желающими сменить профессию. И дело в не отсутствии потенциала, как раз наоборот, а в том, что потенциально вы можете скомбинировать свой накопленный опыт с профессией программиста, и это откроет вам огромные возможности.
О важности комбинации двух профессий уже много говорят, и такие специалисты очень ценны. Но важно сделать всё грамотно
Шаг первый состоит в том, чтобы определиться, чем именно вас привлекает сфера программирования и в каком «стеке» технологий вы могли бы реализовать себя наиболее эффективно. В самом начале пути вы можете ещё не знать, что окажется вашей настоящей «пассией», поэтому стоит ответить на эти простые вопросы:
- Я хочу создавать мобильные приложения?
- Я хочу создавать классные красивые сайты?
- Я хочу создавать бизнес-приложения (банкинг, инструменты расчётов или статистики, и т.д.)?
- Я хочу программировать роботов, игры, базы данных, компиляторы, сложные приложения или искусственный интеллект?
Шаг второй состоит в изучении существующих на рынке компаний и технологий, которые они используют:
- Составьте список компаний, которые занимаются интересующей вас областью или предметом.
- Посмотрите описания вакансий на предмет технологий, которые они требуют от кандидатов. Обычно это язык, фреймворк и набор сопутствующих инструментов.
Например:
- C#, .NET, SQL, Git
- Java, Spring, SQL, Git
- JavaScript, ReactJS, и т.д.
- Kotlin, Android, и т.д.
- ObjC, Swift, iOS, и т.д.
Выделите наиболее часто пересекающийся список из всех вакансий и компаний, и сузьте список до состояния, в котором будет ровно Один язык программирования и Один основной фреймворк.
Как малоопытный специалист за разумное время вы сможете изучить не так много и не так глубоко, но этого может быть уже достаточно для поступления на работу.
Шаг третий состоит в выборе одной или нескольких ближайших целей для написания более-менее реального приложения в процессе обучения
Цель может быть и большой (создание игры), и малой (создание простейшего сайта), и полезной (автоматизация процесса) и не очень (ИИ, рекомендующий цвет мороженого).
Важно, чтобы вы закончили один или несколько таких проектов, попутно изучив язык программирования и фреймворк. Важно так же, чтобы цель вас мотивировала двигаться и не бросать
Далее, вам нужно сконцентрироваться на языке и фреймворке, взяв несколько наиболее часто рекомендуемых книг и воспользовавшись техникой параллельного чтения. Как правило, для быстрого старта полезно пройти несколько онлайн курсов (опять же, есть множество платформ, таких как stepik.org и udemy.com).
Далее, начинайте рассылать резюме в компании, и откликаться на предложения на LinkedIn. Удача может улыбнуться не сразу, но спрос на специалистов так высок, что я могу практически гарантировать, что вы устроитесь на работу в IT компанию.
Изучение алгоритмов
В программировании все основано на алгоритмах, делающих поставленную задачу проще. С их помощью проблема дробится на подцели, что помогает найти способ решения за более короткий срок. Программист не может работать, не зная команд, не умея их правильно составлять.
Приступать к освоению дисциплины нужно, изучив хотя бы один язык. В сети находится обширная база текстовых, видеоматериалов по теме, предлагаются вебинары, тренинги. Литература для самообразования:
- Р. Лафоре «Структуры данных и алгоритмы Java» (2011).
- А. Бхаргава «Иллюстрированное пособие для программистов и любопытствующих» (2019).
- Т. Кормен «Алгоритмы: вводный курс» (2016).
Стажировка и старт карьеры
Сейчас стали доступны стажировка и работа удаленно в компаниях из других городов, стран и даже частей света. Но, считаю, начинающему специалисту, особенно на первых порах, требуется много внимания и личного общения со старшим коллегами, которые бы отвечали на вопросы, поправляли, не давали свернуть с правильного пути и застрять над задачей надолго. Поэтому стоит ознакомиться с компаниями в своём городе, проводящими обучение и стажировку. В случае успешного обучения, такие компании предлагают своим бывшим студентам рабочие места – это хороший вариант начать карьеру.
Иногда можно встретить компании, нанимающие студентов, неопытных специалистов для выполнения рутинной простой (в сравнении с другой) работы. Часто, это аутсорс-конторы, выполняющие несложные задания для третьих лиц. Для программиста без опыта даже такой опыт будет полезен. Окунуться в рабочую среду, увидеть изнутри как создаются продукты – это всё очень полезно. Да и первая запись в резюме дорогого стоит
Отмечу одно, важно не задерживаться в таких местах надолго, если опыт растет, а задачи и зарплата нет. Нужно двигаться дальше, мониторить рынок вакансий и сравнивать свои текущие скилы с их денежной оценкой в своей и других компаниях
Это помогает не только найти более высокооплачиваемую работу, а еще понять и найти свои слабые места, найти направления, в которых стоит подкачаться, чтобы претендовать на что-то большее. Многие компании нанимают новичков с тем, чтобы вырастить из них хороших специалистов и взаимовыгодно сотрудничать долгое время. Поэтому если чувствуете, что готовы попробовать новые задачи, пообщайтесь со своим руководителем, возможно он для вас уже что-то приготовил, либо расскажет по каким причинам новые задачи вам пока не по зубам.
В этом году стала популярна ещё одна возможность – устроиться в крупную известную компанию на удаленную работу без опыта. Возможно, придется подучить что-то специально необходимое для конкретного места работы, чтобы попасть на него.
Шаг 5. Создайте командный проект
Один из самых трудных шагов — создание командного проекта. На этом этапе начинающий программист узнает о системах контроля версий, получит навыки коммуникации с товарищами по команде, а также столкнется с трудностями, которые возникают при работе в IT компаниях.
Найти команду можно на хакатонах. Хакатон — это соревнование для программистов, на котором участники разрабатывают программы за отведенное время. Некоторые популярные идеи начинали свой путь с хакатонов, такие как: игра «Superhot», приложение «Ease Taxi» или сайт под названием «Zaarly». Найти хакатоны с понравившейся темой, а также зарегистрироваться на посещение мероприятия можно на сайте «Хакатоны.рф».
При создании командного проекта не нужно устраиваться на работу в крупную компанию. Вы можете работать над проектом из дома, связываясь с друзьями через Zoom или Discord. Для эффективной работы в команде вам пригодится изучение следующих книг:
- «Git для профессионального программиста.», С. Чакон, Б. Штрауб
- «В работу с головой. Паттерны успеха от IT-специалиста.» К. Ньюпорт
- «Программист – фанатик.», Ч. Фаулер