Как начинающим программистам найти первые проекты и выйти на новые рынки
Сегодня low-code для проектов интересен не только предпринимателям, желающим сэкономить на сайте, но и крупным компаниям. В этой статье попробуем разобраться, как эффективнее осваивать программирование, где искать проекты для портфолио и находить первых заказчиков программистам, только начинающим свой путь в профессии.
Владислав Данильченко
Как и где эффективнее учиться
Сейчас есть все возможности для того, чтобы полностью изучить профессию разработчика сайтов и ПО самостоятельно. В интернете достаточно бесплатных обучающих материалов: ролики на YouTube, книги в открытом доступе, мини-курсы от платформ для разработки (Tilda, Webflow, WordPress). Одним словом, чтобы составить общее представление о программировании, изучить на базовом уровне html и css, можно пользоваться общедоступными источниками.
Но теория без практики в программировании совершенно бесполезна. Отрабатывать базовые навыки можно тоже бесплатно, например, есть много тренажеров по фронтенду на сайте HTML Academy. Для изучения основного языка браузеров javascript можно пользоваться ресурсом Learn.javascript.ru.
Для написания кода можно использовать как офлайн текстовые редакторы (Notepad++, Visual Studio Code, Atom, PyCharm и другие), так и онлайн-редакторы: CodePen, Plunker, CodeSandbox — так называемые «песочницы» для начинающих разработчиков. В «песочницах» удобно делать совместные проекты, просить помощи у более опытных разработчиков. Онлайн-редакторы позволяют сразу увидеть и структуру кода, и его отрисовку в браузере. Код из онлайн-редакторов быстро интегрируется, например, на платформу Stack Overflow — здесь программисты обмениваются опытом, задают вопросы коллегам, находят готовые решения и фрагменты кода.
Чтобы сократить время обучения и структурировать информацию, полученную из открытых источников, можно записаться на курсы, но советую это делать тогда, когда есть база и нужно углубиться в какое-то конкретное направление (например, WebGL — 3D графика для браузера; разработка мобильных приложений; frontend — внешний вид и верстка; backend — архитектура сайта изнутри и базы данных).
В целом работа программиста — это 70 % ресерча (поиск уже готовых решений, исследование инструментов, библиотек, фреймворков) и 30 % «придумывание» авторского решения. Поэтому главный навык программиста — гуглить решение задач.
Где набраться опыта для портфолио
Главные вопросы для начинающего программиста: где наработать опыт, который так нужен работодателям, и как грамотно составить портфолио?
Мой любимый совет: повторите 3-5 страниц сайта Apple. У этой компании достаточно много уникальных элементов и технологических решений, пытаясь повторить которые вы непременно изучите очень много приемов.
Далее можно попробовать «посадить» сайт на какую-либо CMS-систему (Webflow, WordPress, Bitrix и др.). В процессе выполнения у джуна будут возникать сотни вопросов. Даже с таким небольшим сайтом можно пробовать устроиться работать в компанию и уже там, на большом количестве проектов, набраться опыта.
Живой пример: парень из Германии Moritz Petersen, после каждой презентации IPhone воссоздавал оригинальную страницу компании Apple и делал ее доступной для копирования в Webflow. Сейчас у него много клиентов на разработку. А начинал он с того, что досконально разбирал и копировал опыт компании-флагмана.
Также можно устроиться на стажировку (бесплатную практику на пару месяцев) в крупную компанию: стажеры регулярно требуются в Яндекс, VK. Если у вас хорошо с английским, можно поискать на LinkedIn стажировки в иностранных компаниях. Другой вариант — стажировка в стартапе (компании, которая еще не раскрутилась на рынке). Для начинающих специалистов это хороший опыт прокачивания разных навыков, поскольку в стартапах часто приходится решать множество разноплановых задач.
Еще хороший вариант наработки опыта: придумать и воплотить в жизнь свой проект. Это может быть сайт, лендинг или мобильное приложение с определенной тематикой. Возможно, проект пригодится не только для портфолио (зависит от идеи), есть вероятность, что им заинтересуются инвесторы, и личный pet-проект начинающего разработчика либо учебный проект превратится в бизнес. Так начинался Facebook* — как локальная университетская соцсеть.
Где же собирать портфолио, которое вы будете показывать работодателям? Это можно делать в своем профиле на Stack Overflow либо на Webflow, если вы практикуете low-cоde разработку с минимумом кода.
Где искать первые проекты и клиентов
Фриланс-биржи, профильные группы в соцсетях, профессиональные сообщества вроде LinkedIn и Stack Overflow — все это источники поиска первых заказчиков или проектов.
Но для начала я бы посоветовал устроиться в студию или диджитал-агентство. Джуну почти нереально взять заказ на бирже на старте, при этом высоки шансы его завалить. Если вы только что закрыли книжку «HTML для чайников», то путь по сути один — агентство. Начинающему фронтендеру нужно пройти через 15-20 проектов, чтобы понять основы и эффективные принципы построения сайта. Это я уже не говорю о том, что, работая в агентстве, можно обрасти новыми связями и найти наставника в лице руководителя.
Для поиска иностранных заказчиков я бы посоветовал вступать в профильные сообщества для разработчиков из разных стран, специализирующихся именно на вашем направлении деятельности: активные группы в Facebook*, в Telegram. В таких группах часто выкладывают не только проектную работу, но и вакансии на фултайм.
Преимущества low-code разработки
Low-code — тренд в сайтостроении, который позволяет сделать качественный проект быстро, с минимальным использованием кода. Мне нравится low-code тем, что я соприкасаюсь со всеми сторонами проекта, UX/UI дизайном, анимацией и выстраиваю работу интерфейсов. Это такой баланс между визуальной составляющей и кодом.
Главное преимущество low-code в том, что результат виден гораздо быстрее, чем в «классической» разработке, когда нужно написать тонну кода, чтобы увидеть какие-либо визуальные изменения в проекте. Не говоря уже о том, что порог входа гораздо ниже и время от старта изучения до получения первых денег сокращается в разы.
Например, сервис Webflow, которым пользуются многие low-code разработчики, изначально создавался с прицелом на верстальщиков и дизайнеров. Мало того, что для его освоения не требуется владение специальными навыками, еще и технически сервис выдает качественный код с быстрой эффективной работой. После создания на Webflow сайт можно опубликовать на внутренней площадке портфолио, где вас могут найти сами заказчики и студии. На платформе есть форум, где опытные пользователи бесплатно дают советы.
Заказов действительно много, и с каждым годом их все больше. Low-code для своих проектов выбирают не только начинающие предприниматели, желающие сэкономить на сайте, но и крупные компании.
Выводы
Начать освоение профессии программиста и разработчика цифровых продуктов можно по открытым источникам, а углубить и систематизировать знания — уже на платных курсах. После ознакомления с азами и общими принципами важно выбрать специализацию, ведь направлений в программировании очень много: frontend, backend, с написанием кода на определенных языках программирования либо low-code разработка в среде специально созданных для этого платформ.
Учебные проекты можно использовать для своего портфолио. Начинающим программистам полезно копировать известные проекты, так проще набить руку и отработать актуальные приемы сайтостроения.
Владислав Данильченко, независимый low-code разработчик
* Организация Meta, а также ее продукты Instagram и Facebook признаны экстремистскими и запрещены на территории РФ
Какую программу написать: лучшие варианты для новичков
Почему? Изучение программирования – увлекательное занятие, но прогресс получения новых знаний может остановиться, если пренебрегать практикой и штудировать только теорию.
Что делать? Чтобы научиться программировать, нужно щупать код руками. При этом важно, какую программу написать, чтобы отработать практические навыки. Выбирайте ту сферу, которая наиболее близка вам, интересна, пересекается с практическими задачами.
В статье рассказывается:
- Почему нужно пробовать писать первые программы
- 5 первых проектов для новичков в программировании
- 5 программ для начинающих программистов на C++
- 3 полезные программы для начинающих на Python
Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains
Почему нужно пробовать писать первые программы
Написание первой программы — сложная задача, на выполнение которой нужно потратить много времени и сил. Однако стоит понимать, что благодаря этому вы получите полезные знания и навыки. Зачем нужно пробовать создавать программное обеспечение (ПО) с нуля:
- Успешный проект будет являться подтверждением вашей компетентности. Эту информацию можно отразить в резюме.
- В процессе разработки программы вы сможете внедрить инновации. Эта практическая деятельность очень приближена к той работе, которую выполняют профессиональные программисты.
- Если вы научитесь писать ПО с нуля, то сможете участвовать в различных хакатонах и соревнованиях. Например, GSoC (Google Summer of Code), SIH (Smart India Hackathon), MLH (Major League Hacking) и т. д.В процессе создания собственных проектов вы получите необходимый опыт для победы на таких мероприятиях.
Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!
Скачивайте и используйте уже сегодня:
Павел Симонов
Исполнительный директор Geekbrains
Топ-30 самых востребованных и высокооплачиваемых профессий 2023
Поможет разобраться в актуальной ситуации на рынке труда
Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка
Только проверенные нейросети с доступом из России и свободным использованием
ТОП-100 площадок для поиска работы от GeekBrains
Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽
Получить подборку бесплатно
Уже скачали 24259
- Добавив успешный проект в своё резюме, вы сможете начать работать на фрилансе.
5 первых проектов для новичков в программировании
Поняв, зачем нужно создавать проекты, нужно ответить на главный вопрос: «Какую программу написать, если я новичок в программировании?» Рассмотрим несколько интересных вариантов:
Данный проект подразумевает разработку удобного интерфейса. Программа поможет пользователям планировать день и выставлять приоритетность для различных задач. Благодаря To-Do List люди могут повысить свою эффективность. Это особенно важно для тех, кто не умеет правильно распределять время. В программе имеется несколько основных операций CRUD (Create, Reset, Update, Delete и т. д.).
Для работы с To-Do List вам необходимо владеть HTML, CSS, JavaScript . Кроме того, нужно хотя бы немного разбираться в BootStrap. Без использования основных принципов этих языков программирования вам будет сложно решать возникающие проблемы.
Обратная связь — важнейший инструмент. Отзыв от клиентов, целевой аудитории (ЦА) или их мнение о конкретном домене может дать компании ценную информацию. Если вы являетесь новичком в программировании, то данный проект будет одним из самых простых способов отточить свои навыки и разобраться с интересным техническим стеком. A Survey Form помогает компаниям получать обратную связь от своей ЦА. Чтобы реализовать этот проект, вам нужно знать HTML, CSS. Нелишним будет изучить Javascript.
Данная программа позволяет ограничить число слов в текстовых работах. Это необходимо для оптимизации статей. Кроме того, с помощью Word Counter пользователь может узнать количество слов, строк, абзацев или символов прямо в процессе набора текста. Для реализации проекта вам нужно уметь работать с HTML, CSS и современными фреймворками JavaScript (это позволит создать удобный пользовательский интерфейс).
- Генератор случайных чисел
Данная программа присваивает произвольное значение пользовательским запросам. Человек задаёт определённый диапазон (например, от 1 до 100), в рамках которого будет сгенерировано случайное число.
Это один из самых простых проектов для новичков. Чтобы его реализовать, вам нужно изучить Python. Этот язык применяется для серверной части программы. HTML и CSS потребуются для внешнего интерфейса. Чтобы пользовательский интерфейс стал более привлекательным, можно использовать Javascript.
Судоку — это крайне популярная игра. Пользователь видит на экране матрицу 9×9, которая содержит в себе девять матриц 3×3. Задача заключается следующем: необходимо заполнить свободные клетки цифрами от 1 до 9 таким образом, чтобы в каждой строке, в каждом столбце и в каждом малом квадрате 3х3 каждая цифра встречалась лишь один раз.
При решении задач судоку применяются алгоритмы возврата. Чтобы получить один из возможных ответов, необходимо выполнить одно важное условие: никакие две строки или два столбца не могут содержать повторяющиеся элементы. Для реализации этого проекта потребуются знания HTML, CSS, JavaScript. Вам также нужно научиться работать с алгоритмами поиска с возвратом DSA.
5 программ для начинающих программистов на C++
Какую интересную программу можно написать на C++? Этим вопросом задаются многие начинающие. Уровень сложности вашего проекта будет зависеть от освоенных знаний и навыков.
В первую очередь установите IDE и Visual Studio (бесплатная версия есть на сайте Microsoft). Не лишним будет загрузить Code::Blocks. Данную среду разработки можно скачать с официального веб-сайта компании.
Система входа и регистрации
Очень лёгкий проект для любого новичка. С его помощью вы освоите файловые системы на C++. Программа должна будет регистрировать пользователя посредством запроса имени пользователя и пароля. Затем система сформирует пользовательский файл, где будет собрана его учётная информация. Если человек введёт неверные данные, то высветится ошибка.
Идеи проектов для начинающих программистов. Часть 1
Перевод первой части статьи «Starter Project Ideas for Developers».
Представляем вам список проектов для начинающих разработчиков. Хотя конечно, этими проектами вполне могут заняться и опытные программисты, осваивающие новый для себя язык.
Каждая идея в нашем списке будет сопровождаться подробным описанием, примерами и советами. Отталкиваясь от всего этого, вы сможете создать свой собственный, уникальный проект.
Примеры в статье будут ориентированы больше на JavaScript-разработчиков, но сами идеи вполне пригодны для любого языка программирования.
Засучиваем рукава
Изучаем основы программирования с фокусом на создание, чтение, модификацию и удаление данных (CRUD).
Генератор имен
Придумывать имена сложно. Кажется, что в наше время все варианты username уже использованы. Почему бы не сделать так, чтобы вместо нас имена генерировал компьютер? Идея такого генератора очень проста. Вам потребуются лишь базовые знания языка программирования.
Для начала, следует определиться с тем, какого рода имена вы хотите генерировать (username, имена фантастических героев, персонажей книг или обычные имена). Также нужно придумать, из каких частей будут составляться эти имена.
// Types of names examples: [honorific/title] [name] of [location] Duke William of Cornwall President Wilson of Canada [name] of [location] Solaire of Astora [name] the [object noun] [title noun] Kyle the Chicken Slayer [name] the [adjective] [username or some combination of words][1-4 numbers] SomeName1234 ChickenBob28 // etc, you get the idea
После того как придумаете, что за имена будет генерировать ваша программа, нужно обдумать, как вы будете хранить данные (имена собственные, имена существительные и прилагательные, титулы и т. п.). Все это можно прописать жестко и хранить в файловой системе, используя CSV или текстовый файл. Можно извлекать из API. Можно хранить в базе данных. Если вы начинающий программист, изучите, какие структуры данных поддерживает ваш язык (объекты, списки, массивы, hashmap) и поэкспериментируйте с ними.
Финальный шаг — рандомный выбор ключевых слов из ваших данных, комбинирование их каким-то заранее прописанным образом и вывод результата. Причем выводить результат можно в консоли, в браузере, в графическом интерфейсе или вообще записывать в текстовый файл.
В чем смысл такого проекта
Это более продвинутый проект, чем hello world, но попроще или равный по сложности списку задач. То есть, это хороший проект для начинающих.
Занимаясь этим проектом, вы будете осваивать:
- основы языка программирования;
- простые структуры данных;
- чтение данных и рандомный выбор их частей;
- вывод данных.
Как можно усложнить проект
- Генерируйте выбранные случайным образом названия объектов и выводите на экран изображения этих объектов. Это может быть полезным инструментом для людей, связанных с искусством.
- Генерируйте имена персонажей игр или названия объектов с приложением их мини-историй.
- Генерируйте темы для писателей.
- Добавьте возможность ввода данных пользователем. Это может быть список слов, из которых будет делаться выборка, или имя пользователя, которое будет использоваться в качестве основы для производных имен.
Примеры:
- Name Generator — генерирует названия блюд, блогов, имена пользователей, просто имена людей и т. д.
- Fantasy Name Generator — фэнтезийные имена для игр и пр.
- Random Things — выводит изображения случайных объектов.
(От редакции. Как часто вам случалось в соцсетях читать комментарии типа «лучше бы ямы залатали», «лучше бы дороги отремонтировали», «лучше бы на детей внимание обратили»? Можно создать специальный «лучшебыгенератор», случайным образом выдающий «лучше бы» предложение. Реализация — веб-страница. Применение — отвечать советчикам в комментариях, давая ссылку на страницу. Пример можно посмотреть здесь).
Список кодов символов
Список эмодзи или других специальных символов для копипаста. Общую идею можно реализовать в совершенно разных приложениях. Например, это может быть справочник, а может — приложение, которое будет конвертировать в код введенный пользователем текст.
В чем смысл такого проекта
Этот проект — хорошая отправная точка, если вы хотите научиться принимать пользовательские данные, обрабатывать их и выводить результат.
Занимаясь этим проектом, вы будете осваивать:
- работу с текстом и кодами символов;
- пользовательский input;
- текстовый output.
Как можно усложнить проект
- Генерируйте рандомный список эмодзи.
- Реализуйте шифратор и конвертируйте с его помощью текст в эмодзи.
- Реализуйте эту идею в виде десктопного или веб-приложения.
Примеры:
- Mojibar — приложение-справочник по эмодзи.
- Text to ASCII — конвертирует текст в код ASCII.
Конвертер текста и чисел
Конвертирует числа в двоичную или любую другую систему счисления, а текст видоизменяет (шифрует, переворачивает и т. п.).
В чем смысл такого проекта
Вы не только создадите полезный инструмент, но и научитесь работать с числами и текстом.
Занимаясь этим проектом, вы будете осваивать:
- input, output;
- работу с текстом и числами.
Как можно усложнить проект
- Разрешите пользователю загружать или выбирать текстовый файл, который затем будет конвертироваться и выводиться в виде нового файла.
- Реализуйте собственный шифратор (не забудьте добавить методы для дешифровки!).
- Используйте GUI или веб-интерфейс с полем для ввода текста и полем, где будет показываться видоизмененный текст. Конвертируйте input по мере ввода.
Примеры:
- Шифр Цезаря — простая техника шифрования со сдвигом букв алфавита.
- Текст в двоичный код.
- Перевод десятичных чисел в шестнадцатеричные.
- Переворачивание текста
Список задач и альтернативные полнофункциональные приложения
Наконец, список задач — идея, за которой вы все сюда и пришли. Шутка:) Но список задач, пожалуй, действительно один из самых распространенных видов проектов, так что без него наша статья была бы неполной. Впрочем, мы все же постараемся добавить несколько интересных альтернатив.
В чем смысл такого проекта
Создание списка задач — отличный способ изучить работу с данными (CRUD), какой-то язык или фреймворк.
Например, вы изучаете JavaScript. Вы можете построить список задач для применения в браузере, используя DOM браузера и LocalStorage APIs. Затем вы создаете API списка задач в бэкенде, используя NodeJS, чтобы изучить, как работает REST API. Наконец, вы обращаетесь к десктопу и создаете еще один список задач, используя Electron — чтобы изучить работу десктопных приложений.
Еще один вариант прокачать свои навыки, связанные с CRUD, — использовать разные языки программирования. Вот вы создали все варианты списков задач на JavaScript. А теперь создайте какой-нибудь из них на C#, Java или Haskell и посмотрите, насколько будут отличаться процесс и результаты. Это поможет вам получить хорошее представление о языках.
Занимаясь этим проектом, вы:
- изучите создание, чтение, модификацию и удаление данных (а это основа любого приложения);
- получите хорошее представление о языке или каком-то инструменте.
Как можно усложнить проект
- Геймифицировать.
- Интегрировать с другими приложениями.
- Построить приложение на разных платформах (мобильное, десктопное, веб-приложение).
- Добавить напоминания в виде электронных писем или SMS.
Альтернативные варианты приложений для отработки навыков CRUD
- трекер упражнений;
- журнал;
- блог, форум (вроде Reddit);
- приложение для онлайн-банкинга (создание аккаунта, обновление счета и т. п.);
- текстовый редактор;
- приложение для планирования (календарь, kanban-доска);
- трекер привычек.
Примеры:
- Flowdash
- Todoist
- Habitica — геймифицированный список задач и трекер привычек.
Секундомер и таймер
Таймер может быть как простым, так и довольно сложным и интересным.
В чем смысл такого проекта
Это полезное приложение, которое вы в конечном итоге сможете использовать (или заново реализовать) в каком-то другом проекте.
Занимаясь этим проектом, вы будете осваивать:
- работу с датами и временем;
- особенности написания кода для постановки приложения на паузу и возобновления его работы;
- отображение и постоянное обновление значений.
Как можно усложнить проект
- Создайте какой-то специфический таймер, например, для применения «приема помидора».
- Проигрывайте музыку или отсылайте уведомление при включении таймера.
- Сделайте так, чтобы ваш таймер работал на разных платформах (десктопная, мобильная и веб-версии).
- Интегрируйте таймер в другое приложение.
Примеры:
- TomatoTimer — Pomodoro-таймер
- LiveSplit — таймер для скоростного прохождения игры
- Timecamp — приложение для отслеживания времени
В следующей части статьи мы рассмотрим идеи более сложных приложений. Больше никаких списков задач!
Программирование для начинающих
Программирование для начинающих базируется на учебных планах и руководствах для новичков. В этом разделе содержатся материалы по основам программирования.
Подписаться
Подписаться
24 нояб 2023 24 нояб 2023 в 13:25
Собираем портфолио программиста с помощью no-code и low-code
Рассказали, что такое no-code и low-code, зачем нужны программы без программирования и какую выгоду из этого можно извлечь.
15 нояб 2023 15 нояб 2023 в 11:50
Стоит ли идти в fullstack-разработчики в 2023 году
Разбираемся в нюансах профессии fullstack-разработчика: что нужно уметь, сколько можно зарабатывать, какие плюсы и минусы есть у этой работы.