Это перевод статьи, опубликованной на сайте medium.com. В ней разработчик из Нидерландов Daan советует разные проекты, которые помогут в свободное время прокачать профессиональные навыки: от работы c 3D до создания биткойн-трекера.
Фото с сайта Unsplash. Автор: Christopher Gower
Сайд-проекты могут значительно расширить диапазон ваших навыков разработчика и подготовят вас к дальнейшим сложным вызовам. Вероятно, это самый быстрый способ повысить свой профессиональный уровень, так как у вас есть возможность выбрать проект, которым вы хотите заниматься, в отличие от вашей основной работы.
На пути к становлению крутым разработчиком нет шорткатов. Вам в любом случае придется провести множество часов за клавиатурой. Так почему бы не сделать это, работая над интересным сайд-проектом?
Однако большинство разработчиков не могут решить, чем же им следует заняться. Они, как правило, тратят слишком много времени на раздумья и в результате ни к чему не приходят. Я избавлю вас от необходимости выбирать, каким будет ваше следующее сногсшибательное приложение. Начните с чего-то простого и небольшого.
В этой статье я перечислил семь интересных проектов, которые при этом бросят вам вызов.
Отличный сайд-проект, который я могу порекомендовать любому, — личная база знаний. Этот вариант особенно хорош, если вы относительно неопытный разработчик. Что в нем такого замечательного? Вы можете менять функциональность проекта и, соответственно, его сложность.
В качестве легкого старта можно реализовать функцию хранения записей в форматированном виде. Если вы хотите немного усложнить свою базу, то встройте, например, фичу, которая позволит добавлять ссылки на обучающие материалы и публикации в блогах. Если и это для вас слишком просто, то попытайтесь создать базовый API для обработки текстового содержания.
Предположим, вам также захочется добавить функцию хранения файлов PDF в вашу базу знаний, так как они являются ценным источником информации. Если вы действительно готовы к дополнительному объему работы, то для индексации таких файлов вы можете встроить поисковый движок вроде Elasticsearch или Algolia. При индексации названия и автора появится возможность внедрить функцию поиска. Также если добавить теги, то поиск станет еще проще.
Опять-таки работа с подобным сайд-проектом не имеет границ, благодаря чему он подойдет для всех разработчиков. Наиболее очевидный способ реализации такой базы — создать ее в виде веб-приложения.
Почему это полезно?
Фото с сайта Babylon.js
Что может быть круче, чем немного поиграться с 3D? Если вы никогда ничего не программировали в 3D, я крайне рекомендую попробовать, ведь это обязательно подарит море удовольствия. Самое классное — вам не нужно начинать с нуля.
Взгляните на D3 или Babylon, которые представляют собой проекты WebGL. Я сам немного баловался с Babylon, так как мне его рекомендовали. Babylon имеет интерактивную площадку, где можно экспериментировать с API и учиться на ходу. Для запуска вам ничего не потребуется, ведь IDE работает онлайн, точно так же, как и CodePen.
Почему это полезно?
Фото с сайта Unsplash. Автор: Harrison Broadbent
С помощью одноплатного компьютера Raspberry Pi можно сделать множество интересных вещей. Один из способов его применения — создание трекера для биткойна. Мне действительно нравится использовать Raspberry Pi в сайд-проектах, так как в нем скомбинированы и программное обеспечение, и оборудование.
Цель этого проекта — узнать текущую стоимость биткойна, что можно сделать через API, и вывести ее на дисплей. Так что помимо Raspberry Pi понадобится еще несколько вещей: светодиодный матричный дисплей, светодиоды и блок питания.
В качестве дополнения вы можете встроить изменение цвета стоимости биткойна. Например, если она повышается, цифры становятся зелеными, а если снижается, то красными.
Почему это полезно?
Конструирование игры Pong — отличный способ посмотреть, как разрабатываются игры с самых азов. Если до этого у вас не было никакого предварительного опыта создания игр, то Pong прекрасно подойдет для начала, так как она довольно простая. Вы познакомитесь с концептами вроде движения объектов и выявления столкновений. Из примечательного — можете сделать как одиночный, так и многопользовательский режим.
Если вы хотите создать приложение, советую использовать язык Swift для этого проекта. Если же хотите работать с помощью HTML5, то можно отдать предпочтение фреймворку JavaScript, например React или Vue.
Почему это полезно?
Окно моего чата, открытое в двух вкладках браузера
В наши дни коммуникация в реальном времени становится все более значимой для разработчиков. Растет как частота использования, так и востребованность соответствующих инструментов, поэтому опыт работы с ними будет полезен.
Есть десятки сайд-проектов, которые полностью основаны на коммуникации через протокол WebSocket, — вы можете взять любой из них. Я сам разработал чат, чтобы узнать чуть больше о работе сокетов.
Создание чата — идеальный способ начать знакомство с WebSockets. Что касается подбора технологий, то выбор огромен. Один из рабочих вариантов — программная платформа Node.js.
Почему это полезно?
Решение лабиринта — это отличный вариант для тех, кто хочет узнать, как строить алгоритмы. Цель — сконструировать лабиринт и запустить туда бота, который должен пройти его от старта до финиша.
Позиции в лабиринте будут либо открыты, либо заблокированы препятствием. Вы можете усложнить проект, генерируя случайные лабиринты. Еще одна по-настоящему отличная фича, которую можно встроить, — создание лабиринта на основе картинки. Это может быть простое растровое изображение из белых и черных пикселей, в котором последние выступают, например, в роли стены.
Фото с сайта ResearchGate
Почему это полезно?
Фото с сайта Unsplash. Автор: Tierra Mallorca
Boston Housing Dataset — хорошая возможность познакомиться с машинным обучением. Это популярный массив данных, который используется в литературе, посвященной распознаванию образов. Источником данных для этого массива послужила индустрия недвижимости в Бостоне, сам он был создан в 1993 году.
Речь здесь идет о регрессионном анализе. Это довольно небольшой массив данных, который содержит 506 строк и 14 колонок. Он отлично подходит новичкам, так как вы можете пробовать любые методы, не опасаясь перегрузить свой компьютер.
Цель проекта — спрогнозировать медианное значение домов, занимаемых собственниками.
Теперь, когда мы закончили со списком интересных сайд-проектов, пришло время приступить к самой работе. Для начала выберите проект и постарайтесь не бросать его. Прыгайте за клавиатуру и начинайте наслаждаться процессом разработки и изучения новых вещей.
Happy coding!
Фото с сайта Unsplash. Автор: Christopher Gower
Сайд-проекты могут значительно расширить диапазон ваших навыков разработчика и подготовят вас к дальнейшим сложным вызовам. Вероятно, это самый быстрый способ повысить свой профессиональный уровень, так как у вас есть возможность выбрать проект, которым вы хотите заниматься, в отличие от вашей основной работы.
На пути к становлению крутым разработчиком нет шорткатов. Вам в любом случае придется провести множество часов за клавиатурой. Так почему бы не сделать это, работая над интересным сайд-проектом?
Однако большинство разработчиков не могут решить, чем же им следует заняться. Они, как правило, тратят слишком много времени на раздумья и в результате ни к чему не приходят. Я избавлю вас от необходимости выбирать, каким будет ваше следующее сногсшибательное приложение. Начните с чего-то простого и небольшого.
В этой статье я перечислил семь интересных проектов, которые при этом бросят вам вызов.
Проект 1: личная база знаний
Отличный сайд-проект, который я могу порекомендовать любому, — личная база знаний. Этот вариант особенно хорош, если вы относительно неопытный разработчик. Что в нем такого замечательного? Вы можете менять функциональность проекта и, соответственно, его сложность.
В качестве легкого старта можно реализовать функцию хранения записей в форматированном виде. Если вы хотите немного усложнить свою базу, то встройте, например, фичу, которая позволит добавлять ссылки на обучающие материалы и публикации в блогах. Если и это для вас слишком просто, то попытайтесь создать базовый API для обработки текстового содержания.
Предположим, вам также захочется добавить функцию хранения файлов PDF в вашу базу знаний, так как они являются ценным источником информации. Если вы действительно готовы к дополнительному объему работы, то для индексации таких файлов вы можете встроить поисковый движок вроде Elasticsearch или Algolia. При индексации названия и автора появится возможность внедрить функцию поиска. Также если добавить теги, то поиск станет еще проще.
Опять-таки работа с подобным сайд-проектом не имеет границ, благодаря чему он подойдет для всех разработчиков. Наиболее очевидный способ реализации такой базы — создать ее в виде веб-приложения.
Почему это полезно?
- Вы узнаете основы веб-разработки (HTML5 и CSS).
- Научитесь взаимодействовать с базой данных.
- Поймете, как хранить файлы вроде PDF.
- Узнаете, как работать с поисковиком и внедрять поиск для индексированных данных.
Проект 2: поработайте в 3D
Фото с сайта Babylon.js
Что может быть круче, чем немного поиграться с 3D? Если вы никогда ничего не программировали в 3D, я крайне рекомендую попробовать, ведь это обязательно подарит море удовольствия. Самое классное — вам не нужно начинать с нуля.
Взгляните на D3 или Babylon, которые представляют собой проекты WebGL. Я сам немного баловался с Babylon, так как мне его рекомендовали. Babylon имеет интерактивную площадку, где можно экспериментировать с API и учиться на ходу. Для запуска вам ничего не потребуется, ведь IDE работает онлайн, точно так же, как и CodePen.
Почему это полезно?
- Вы поймете, как работает 3D.
- Узнаете о векторах, камерах и сценах.
- Научитесь создавать огромное количество крутого контента!
Проект 3: трекер для биткойна на основе Raspberry Pi
Фото с сайта Unsplash. Автор: Harrison Broadbent
С помощью одноплатного компьютера Raspberry Pi можно сделать множество интересных вещей. Один из способов его применения — создание трекера для биткойна. Мне действительно нравится использовать Raspberry Pi в сайд-проектах, так как в нем скомбинированы и программное обеспечение, и оборудование.
Цель этого проекта — узнать текущую стоимость биткойна, что можно сделать через API, и вывести ее на дисплей. Так что помимо Raspberry Pi понадобится еще несколько вещей: светодиодный матричный дисплей, светодиоды и блок питания.
В качестве дополнения вы можете встроить изменение цвета стоимости биткойна. Например, если она повышается, цифры становятся зелеными, а если снижается, то красными.
Почему это полезно?
- Вы познакомитесь с основами использования Raspberry Pi.
- Научитесь работать с API.
- Больше узнаете про взаимодействие программного обеспечения и оборудования.
Проект 4: Pong
Конструирование игры Pong — отличный способ посмотреть, как разрабатываются игры с самых азов. Если до этого у вас не было никакого предварительного опыта создания игр, то Pong прекрасно подойдет для начала, так как она довольно простая. Вы познакомитесь с концептами вроде движения объектов и выявления столкновений. Из примечательного — можете сделать как одиночный, так и многопользовательский режим.
Если вы хотите создать приложение, советую использовать язык Swift для этого проекта. Если же хотите работать с помощью HTML5, то можно отдать предпочтение фреймворку JavaScript, например React или Vue.
Почему это полезно?
- Вы узнаете, как работать с Canvas.
- Изучите движение объектов и выявление столкновений.
- Поймете, как отслеживать нажатие клавиш.
- Можете дополнительно встроить функцию использования компьютера в качестве противника.
Проект 5: WebSockets
Окно моего чата, открытое в двух вкладках браузера
В наши дни коммуникация в реальном времени становится все более значимой для разработчиков. Растет как частота использования, так и востребованность соответствующих инструментов, поэтому опыт работы с ними будет полезен.
Есть десятки сайд-проектов, которые полностью основаны на коммуникации через протокол WebSocket, — вы можете взять любой из них. Я сам разработал чат, чтобы узнать чуть больше о работе сокетов.
Создание чата — идеальный способ начать знакомство с WebSockets. Что касается подбора технологий, то выбор огромен. Один из рабочих вариантов — программная платформа Node.js.
Почему это полезно?
- Самым ценным уроком этого проекта станет понимание механизма работы сокетов.
Проект 6: решение лабиринта
Решение лабиринта — это отличный вариант для тех, кто хочет узнать, как строить алгоритмы. Цель — сконструировать лабиринт и запустить туда бота, который должен пройти его от старта до финиша.
Позиции в лабиринте будут либо открыты, либо заблокированы препятствием. Вы можете усложнить проект, генерируя случайные лабиринты. Еще одна по-настоящему отличная фича, которую можно встроить, — создание лабиринта на основе картинки. Это может быть простое растровое изображение из белых и черных пикселей, в котором последние выступают, например, в роли стены.
Фото с сайта ResearchGate
Почему это полезно?
- Вы познакомитесь со стратегией решения лабиринта и попробуете ее в деле.
- Поработаете с API.
- При желании можете дополнительно встроить множество алгоритмов для прохождения лабиринта.
Проект 7: Boston Housing Dataset
Фото с сайта Unsplash. Автор: Tierra Mallorca
Boston Housing Dataset — хорошая возможность познакомиться с машинным обучением. Это популярный массив данных, который используется в литературе, посвященной распознаванию образов. Источником данных для этого массива послужила индустрия недвижимости в Бостоне, сам он был создан в 1993 году.
Речь здесь идет о регрессионном анализе. Это довольно небольшой массив данных, который содержит 506 строк и 14 колонок. Он отлично подходит новичкам, так как вы можете пробовать любые методы, не опасаясь перегрузить свой компьютер.
Цель проекта — спрогнозировать медианное значение домов, занимаемых собственниками.
- Почему это полезно?
- Вы разберетесь в машинном обучении.
Пора переходить к практике!
Теперь, когда мы закончили со списком интересных сайд-проектов, пришло время приступить к самой работе. Для начала выберите проект и постарайтесь не бросать его. Прыгайте за клавиатуру и начинайте наслаждаться процессом разработки и изучения новых вещей.
«Если тебе не весело, ты делаешь что-то не так», — Граучо Маркс.
Happy coding!