Если вы всерьез подумываете о разработке своего веб-приложения, сначала ответьте на два вопроса:
14 319 просмотров
- Для решения какой задачи будет использоваться это приложение?
- Каким способом будет разработано данное приложение?
Первое — веб-приложение всегда разрабатывается для решения конкретной задачи, как правило, одной. Оно должно быстро реагировать на изменения, и чем проще и меньше время реакции, тем более веб-приложение жизнеспособно.
Второе — есть по меньшей мере 6 путей к разработке веб-приложения, самым современным из которых является реализация фронтенда как single page application, где контакт с бэкендом реализуется через REST API. Данный путь к созданию веб-приложения достигается за 8 шагов.
1. Работа с бизнес-логикой бэкенда
Есть два способа такой работы: вы можете сгруппировать бизнес-логику бэкенда в одном сервисе (монолитная логика) или реализовать каждый ее компонент в отдельном микросервисе. Работая с небольшим проектом, используйте первый способ, а при работе с крупным проектом идеально подойдет второй.
Я сделал сайт за 10 минут!
2. Выбор языка программирования
Если вам менее важна производительность веб-приложения, пишите на Python (фреймворки Django, Flask), Node JS (фреймворки Express JS, Koa JS, Gatsby JS), Ruby (фреймворки Ruby on Rails, Grape). Если в приоритете скорость приложения — используйте Golang (фреймворки Gingonic, Beego, Revel). Еще вы можете использовать популярный язык программирования от Microsoft — C#, который произносится как «си шарп».
Он разработан в качестве языка прикладного уровня для CLR. С# вобрал в себя многое от C++, Модула, Delphi, Smalltalk и Java, но разница состоит в том, что С# исключает модели, которые зарекомендовали себя как проблемные при разработке ПС. К примеру, C# в отличие от C++ не поддерживает множественное наследование классов, но допускает множественную реализацию интерфейсов. Главное, какой бы язык вы не выбрали, кодить на том, который вы хорошо знаете.
3. Реализация бизнес-логики
Сперва ориентируйтесь на паттерн MVC, а когда поймете, что бизнес-логика начинает усложняться, используйте presenter и interactor. Но помните, что presenter и interactor находится на разных уровнях и выполняют различные смысловые и функциональные нагрузки.
Presenter обрабатывают события от пользовательского интерфейса (UI) и выполняют роль callback из внутренних уровней (Interactors). Presenters легко тестировать и их задача состоит в том, чтобы получить информацию от веб-приложения и преобразовать ее для перемещения presenters на экран с помощью представления (View).
Interactor по факту вмещают бизнес-логику веб-приложения, то есть проверку условий и обработку информации. Interactor работают фоном и перемещают события и информацию на верхний уровень, presenters, c помощью callback.
4. QA-тестирование бэкенда
Тестирование нужно обязательно делать для того, чтобы знать, правильно ли работает бизнес-логика вашего веб-приложения, а также для того чтобы не проверять постоянно «вручную» работоспособность кода. Используйте автоматическое тестирование для модулей и библиотек, соответствия UI/UX и API. Пропишите несколько вариантов тестирования. Разработайте roadmap для платформы, чтобы управлять испытаниями для всех типов тестирования. Обязательно сделайте подключение инструментов отслеживания текущего покрытия кода, чтобы убедиться в том, что ваше веб-приложение не «виснет» и работает без багов и перебоев.
Не могу написать программу! Что делать! Как начать писать код!
5. Добавление поддержки сваггера
Swagger – это «умная» документация RESTful web-API. По сути, это фреймворк для спецификации REST API, дающий возможность не только просматривать спецификацию в интерактивном режиме, но и отправлять запросы, именуемые Swagger UI. А теперь на счет веб-приложения.
Предположим, вы уже начали разработку фронтенда вашего веб-приложения. Как вам понять, какие параметры и запросы отправлять на сервер? Заглядывать в код бэкенда? Поверьте, это не лучший выход.
Рекомендую вам добавить поддержку сваггера, при этом очень здорово, если сваггер еще и поддерживает генерацию через тесты. Таким образом, он поможет вам документировать API.
6. Работа с бизнес-логикой фронтенда
Сложность работы с бизнес-логикой фронтенда заключается в том, что тут очень много фреймворков. Обычно в современном програмировании используются Angular, React, Vue. У них у всех есть как свои достоинства, так и свои недостатки. Но я рекомендую вам выбирать для работы с фронтендом React, так как он легче, проще и более гибкий.
7. QA-тестирование фронтенда
Фронтенд тестируют двумя основными видами тестов — на логику и на отображение. Тесты на логику проверяют логическую реализацию функций и классов. Тесты на отображение отвечают за то, чтобы наполнение демонстрировалось пользователю в том виде, который вы задумали, прописывая фронтенд. Для осуществления QA-тестирования фронтенда используйте такие фреймворки, как Mocha, Chai, Jest, Ava, Enzyme, Jest — они самые ходовые, простые в эксплуатации и наиболее понятные из всех.
8. Мониторинг качества веб-приложения
Когда вы завершили седьмой этап, ваше веб-приложение, можно сказать, готово. Ну, или оно находится на финальной стадии готовности — 98%. Что вам нужно знать по итогу? Естественно, первое, что нужно, — это понять, насколько качественно реализовано приложение, как оно будет работать и на какое время хватит его износостойкости.
В этом вам поможет Lighthouse — автоматизированный инструмент с открытым исходным кодом для мониторинга качества вашего веб-приложения. Lighthouse проводит системный аудит производительности и доступности веб-приложения для понимания обычного пользователя.
Собранные с помощью Lighthouse данные помогут вам в дальнейшем в случае надобности дорабатывать ваше веб-приложение, изменять в нем какие-то детали или же добавлять и оптимизировать новые функции.
Имейте в виду, что, начав разработку веб-приложения, вам нужно будет изучить все «подводные камни» каждого этапа, а также запастись терпением, потому как сама разработка может занять у вас несколько дней, а вот тестирование и доработка с устранением багов может затянуться и на многие месяцы. Будьте ко всему готовы и помните про первые и самые важные два вопроса: всегда ставьте конкретную задачу, которую должно решать ваше приложение, перед тем, как начать разработку, и выбирайте самый удобный и легкий для вас способ разработки, в котором вы хорошо ориентируетесь. Ведь разработка веб-приложения — это именно тот случай, когда надо идти путем наименьшего сопротивления.
Источник: vc.ru
Разработка веб-приложений: основные этапы
В обиходе всё, что мы открываем в браузере, называют сайтами, но это не совсем корректно. Сайт — это место, где люди получают информацию: читают, слушают и смотрят. Но есть еще веб-приложения: с ними человек взаимодействует — скажем, вносит оплату, оформляет бронь или играет в игру. То, что появляется в веб-приложении, зависит от запроса пользователя.
Разберемся, как проходит разработка веб-приложений, для чего такие приложения нужны бизнесу и как их создают.
Время чтения: 8 минут
Зачем нужны веб-приложения
Интернет-магазины, социальные сети, образовательные продукты, фото-, видео- и текстовые редакторы, игры, системы бронирования — все это и есть веб-приложения. Они устроены сложнее, чем обычные информационные сайты. Пользователь — не пассивный читатель, а участник бизнес-процесса, он взаимодействует с компанией. Информационные сайты без интерактивности бизнесу, конечно, тоже нужны, но их возможности ограничены. Например, это просто сайт-визитка.
Веб-приложения могут пригодиться, чтобы:
- Оказывать услуги пользователю в режиме онлайн: продавать товар, записывать на мероприятие, проводить курсы и вебинары.
- Решать внутренние задачи компании. Большим организациям веб-приложение может понадобиться, чтобы координировать сотрудников, выстраивать внутреннюю логистику. Например, с помощью веб-приложений можно проводить онбординг новых сотрудников и налаживать рабочие процессы с подрядчиками.
Разработка сайта для компании без интерактивности не дает всего этого спектра возможностей. Кроме того, именно интерактивность позволяет добавить геймификацию, делать опции для комментирования и общения пользователей. Все это помогает растить комьюнити вокруг бренда и повышать лояльность к компании.
Через сайт можно рассказать пользователю о своей компании, но нельзя получить фидбек или оказать полезную услугу. Поскольку бизнес за последние годы стремительно переходит в онлайн-формат, веб-приложения становятся все более популярными. Для многих компаний именно цифровой сервис — основной источник монетизации.
Веб-приложения, которые человек открывает с браузера, как сайты, конкурируют с мобильными приложениями. Возможности и там, и там схожие. Какой вариант выбрать — нужно смотреть в каждом отдельном случае. Например, корпоративным таск-трекером удобнее пользоваться в вебе, а для сервиса доставки еды более актуальна будет разработка мобильного приложения . Есть и технология, которая совмещает два варианта: человек скачивает приложение на телефон, а работает оно из окна браузера — подробнее мы рассмотрим такую архитектуру в следующем разделе.
Виды веб-приложений
Способов разработки приложений много. От выбранного типа приложения будет зависеть цена, сроки и функциональность. Давайте рассмотрим каждый вид и определим, для каких задач будет оптимальна та или иная архитектура.
Прежде всего, приложения можно разделить на кастомные (написанные кодом) и ноукод (собранные в конструкторах). Современные ноукод-редакторы, скажем, Webflow или Bubble позволяют создавать интерактивные решения — к ним можно подключить платежную систему и сделать работающий интернет-магазин. Ноукод выбирают, потому что это быстро и дешево.
Но такие решения подходят разве что для MVP или простых задач — например, лендингов или джоб-бордов с информацией о вакансиях и контактами рекрутёра. Функциональность получается очень ограниченной, потому что ноукод-инструменты — это конструктор с фиксированным набором элементов. Производительность таких приложений тоже ниже, чем у кастомных — большой трафик они не выдержат. Поэтому если вам нужен полноценный сервис, с прицелом на большую аудиторию, стоит остановиться на кастомных решениях.
Хотите больше узнать о специфике ноукод-решений и их отличия от классической разработки? Можете прочитать нашу статью: мы подробно разобрали специфику работы с конструкторами.
READ MORE Что такое «No-code»: простой способ сделать MVP или пустая трата времени и денег?
Приложения, написанные кодом, тоже различаются между собой — по своей архитектуре или системе организации программы. Давайте рассмотрим, какие они бывают.
Single Page Application — это одностраничное приложение. Для разработки таких приложений используют HTML и JavaScript. По сути, это разработка лендинга , только интерактивного. Но SPA могут быть достаточно сложными. Суть одностраничных приложений в том, что на сервере хранится одна HTML-страница, контент на которой обновляется по мере прокрутки или переходов по ссылкам.
То есть когда вы нажимаете на кнопку, вы не переходите на новую страницу — элементы добавляются к уже загруженной. Например, по этому принципу работает Gmail.
- Разрабатывать такие приложения проще, чем многостраничные.
- Приложения работают быстро: контент на странице просто меняется по мере движения пользователя, его загрузка не требует много ресурсов.
- На одной странице проще сделать однообразный дизайн, а пользователь точно не потеряется и не запутается.
- Настройка SEO-оптимизации для SPA будет более трудоемкой, чем для других вариантов.
- Трудно гарантировать безопасность таких страниц: они больше подвержены взломам и утечкам, чем MPA и PWA, которые мы рассмотрим ниже.
Multi Page Application — это многостраничные приложения. Они позволяют пользователю не просто скроллить окно браузера, а переходить между отдельными страницами. И загрузка контента в таких приложениях происходит целыми страницами. Это значит, например, что если пользователь совершил оплату, в SPA подгрузится окошко с подтверждением, а в MPA страница оплаты полностью обновится. Пример многостраничного приложения — интернет-магазин Amazon.
- Простая SEO-оптимизация.
- Более привычный вариант для большинства пользователей, которые привыкли переходить между страницами.
- Если приложение сложное, с большим количеством функций, оно точно должно быть многостраничным. Переход по страницам позволяет пользователю легко попадать на нужные разделы. Скроллить огромное одностраничное приложение в начало, когда внезапно потребовалась какая-то информация оттуда, никому не захочется.
- Сложная и более дорогостоящая разработка и дизайн, чем для SPA.
Progressive Web Application — прогрессивные веб-приложения. Это что-то среднее между разработкой мобильного приложения и вебсайта. PWA можно сразу из браузера установить на главный экран смартфона в обход магазинов приложений. А ещё такие приложения работают офлайн и отправляют push-уведомления, но при этом открываются в браузере.
Это возможно благодаря технологии Service Worker — скрипту, через который проходят все взаимодействия между фронтэндом и бэкендом. У этого скрипта есть доступ к кэшу и данным. По сути к большинству сайтов можно дописать Service Worker — и получится PWA. Поэтому часто на эту технологию переходят СМИ — например, The Washington Post.
- Сочетание офлайн- и онлайн- режима удобно для пользователя.
- Такие приложения можно сравнительно быстро разработать.
— Приложение быстро работает
Как стать веб-разработчиком: пишем своё первое веб-приложение
С чего начать? Это, пожалуй, самый распространенный вопрос которым задаются все новички, приходящие в IT. Вокруг так много сайтов, которые предлагают всевозможные курсы, а рейтинги популярности языков часто меняются. Но даже если вы уже решили что изучать, поиск грамотного источника информации становится ещё большей проблемой.
Обычно, для многих таким источником становятся знакомые, которые уже работают в IT. А как ты начинал/а? А что читал/а? А что изучать? А где посмотреть? А курсы надо покупать?
Зачастую, большинство вопросов, так и остаются без ответа.
Что касается меня, мой путь в программирование был сложен и тернист и это несмотря на то, что у меня IT образование. Часть моей жизни после окончания института, проходила в стенах Сбербанка, где мои обязанности сводились к эникейским.
Специалист техподдержки 1С АО «Гринатом» , , можно удалённо , По итогам собеседования
Затем в моей жизни настал период, в течение которого я практически не притрагивалась к ноутбуку и как результат, совершенно растеряла опыт. Технологии разработки меняются так быстро, что такой долгий пятилетний перерыв, очень сильно сказался на ценности тех знаний что у меня были.
Когда я, наконец, решила вернуться и стать «настоящим» программистом, я разместила объявление на hh и села перед ноутбуком в ожидании предложений. Спустя неделю я получила пару откликов от работодателей, вакансии которых предполагали в основном поддержку сайта и работу в Exсel, что естественно меня не устраивало.
Я не сразу поняла, что причиной подобных предложений являлось мое резюме. Оказалось, что хаотично указанные мною знания и навыки, не увеличивали его ценность. Несмотря на это, позже мне крупно повезло. Я всё-таки дождалась заветного звонка и успешно прошла собеседование.
В новой организации мне довелось познакомилась с множеством интересных людей, которые показались мне сильными специалистами. Но меня смущало то, что моих знаний явно не хватало, для того чтобы писать код с коллегами на одном уровне, а где прокачать свои навыки я не представляла.
После этого мне повезло ещё раз, и один из моих знакомых предложил помощь в обучении, а через некоторое время я поняла, что мне нравится мобильная разработка. Я ушла работать в компанию, которая писала на React Native и в итоге, стала fullstack разработчиком.
Исходя из моего опыта, могу сказать что для своей первой работы нужно иметь представление об алгоритмах, знать несколько структур данных, понимать что такое переменные и представлять как работают функции. Совсем неважно, какой именно язык вы решили изучать, важно понимать для каких целей он подходит. Как правило, это помогает определиться, но если в вашем случае это не сработало, то давайте попробуем разобраться вместе.
Что к чему?
Одна из самых распространенных ошибок у новичков — изучение всего и сразу. Самым лучшим решением будет начать изучение с одного направления. Как правило, изучив хотя бы один язык, следующие даются намного легче и быстрее. Условно все языки можно разделить на языки с высоким порогом входа и с низким.
Очевидно, что изучение языка с низким порогам быстрее, но в процессе обучения вы можете столкнуться с потерей интереса. Занимайтесь изучением тех языков, которые действительно нравятся, а не тех что легче даются.
Для начала стоит определиться с целями изучения. Каждый язык, превалирует в той или иной области. Например, если вы решили заниматься бэкендом, то для этого больше подойдут такие языки как PHP, Python, Go. Если ваши предпочтения ближе к фронтовой части, то думаю, здесь лучше подойдут JS для клиентской и Web части, а также Swift и Java для разработки мобильных приложений. Если же, вы всегда мечтали написать игру которая возглавит все топовые рейтинги, то вам следует с головой погрузиться в C# / C++ и подобные им языки.
8 основных языков для бэкенда
Большой удачей будет найти ментора, который поможет направить вас в правильное русло. Многие допускают ошибку, начиная изучение с дорогостоящих курсов, в итоге обучаясь тому, что возможно вообще им не пригодится. В этом случае, ментор сможет подсказать, нужна ли вам эта информация и какие еще материалы будут для полезны на данном этапе обучения.
Немного практики
Программирование — это опыт, который вы сможете получить только через практику. Теория — это замечательно и нужно, но изучая только ее, вы не сможете начать писать код. Только большое количество практики научит вас преодолевать задачи, с которыми ежедневно приходится сталкиваться разработчику. В итоге, на практике у вас выработается привычка искать самый простой подход к решению задачи. А затем, вы перейдете к совершенствованию своего кода, стараясь найти более красивое и быстрое решение.
У программиста процесс обучения и совершенствования своих навыков никогда не заканчивается. Со временем вы привыкните программировать каждый день, а пока вы еще не успели определитmся с выбором языка и начать свое обучение, хочу показать вам, что можно будет разработать, лишь немного изучив один язык.
Давайте вместе напишем небольшой сайт, который будет определять ваше местоположение и показывать погоду.
Для начала, необходимо определить структуру проекта. В перспективе это поможет более правильно и понятно организовать код и ускорить разработку. В данном примере не сложная структура, где для каждого типа файлов определена своя папка.
Далее опишем html-файл. HTML — язык разметки страницы, описывает содержимое отображаемое в браузере. Набросаем так называемый «скелет». В нём обязательно должны присутствовать теги и , а стили страницы вынесем в
Теперь давайте подключим имеющиеся у нас файлы и определимся с какими библиотеками мы будем работать. Для отображения карты я решила использовать leafletjs , а для получения данных о погоде — сервис weatherstack. leafletjs позволяет отображать различные карты на странице, а weatherstack имеет rest api, которое мы будем использовать для получения данных о погоде. Rest api — Representational State Transfer — «передача состояния представления», по сути это инструмент взаимодействия сервиса расположенного в сети с вашим приложением.
Грамотная клиент-серверная архитектура: как правильно проектировать и разрабатывать web API
Для начала, давайте подключим файлы со стилями и js кодом для дальнейшего использования. При подключении обратите внимание, что если код, который вы собираетесь использовать лежит не на вашем сервере, то прописывается полный http адрес источника. Путь к локальной папке указывается относительно редактируемого html-файла.
— это тег, в котором обычно располагается всё тело страницы. Мы расположили в нём с id=»map» . В этот мы поместим нашу карту, а id поможет нам его найти. В файле weather.js мы расположим логику. Тут мы объявим функцию weather() , в ней будет описана вся логика получения текущих координат и погоды в месте вашего нахождения, а также отрисовки карты. Начнем с получения геолокации и карты.
function weather () < const catIcon = L.icon(< iconUrl: ‘img/catIcon.png’, iconSize: [38, 38], iconAnchor: [19, 38], >); navigator.geolocation.getCurrentPosition(async (event) => < const mymap = L.map(‘map’).setView([event.coords.latitude, event.coords.longitude], 13); L.marker([event.coords.latitude, event.coords.longitude], ).addTo(mymap); L.tileLayer(‘https://.tile.openstreetmap.org///.png’).addTo(mymap); >, () => < alert(«Не удалось получить текущую позицию. Возможно стоит проверить настройки геолокации») >, ); > weather();
Для того чтобы получить наши координаты, воспользуемся функцией navigator.geolocation.getCurrentPosition() . Она принимает 3 аргумента:
- функция, которая будет вызвана в случае успешного получения данных;
- функция, которая будет вызвана в случае возникновения ошибки;
- опции.
Объект L позволяет работать с библиотекой leafletjs и отображать карту и маркер на ней. Чтобы иметь возможность получения координат, пользователь должен дать разрешение на определение своей геолокации. Если разрешение получено и координаты определены успешно, то мы можем отрисовать карту в нужном нам месте. Как видно из скриншота, маркер я использовала нестандартный, библиотека дает возможность использовать разные иконки.
Чтобы поменять маркер, достаточно задать константу, в которой необходимо указать три параметра:
- путь к иконке, которая лежит локально;
- размеры иконки, её высоту и ширину;
- якорь, чтобы определить положение указателя маркера.
Затем, наш маркер добавляем к карте и показываем тот участок, где мы сейчас находимся. В коде желательно по большей части использовать для объявления переменных const , если переменная меняться не будет.
const catIcon = L.icon(< iconUrl: ‘img/catIcon.png’, iconSize: [38, 38], iconAnchor: [19, 38], >);
Если во время выполнения кода возникает ошибка, считается хорошей практикой давать понять пользователю, что что-то пошло не так. Для простоты выведем её с помощью функции alert() .
А теперь займёмся получением данных о погоде. Для начала, нам необходимо зарегистрироваться на https://weatherstack.com/, для того чтобы получить api key. С помощью этого ключа мы сможем обращаться в api и оттуда получать все необходимые данные, чтобы в дальнейшем иметь возможность отрисовывать их на странице. После этого делаем запрос в сервис с помощью ajax и если запрос отработал нормально, то получаем объект с данными о погоде. Создадим несколько переменных, в которые запишем полученные данные о температуре, влажности, времени обновления данных и иконку.
try < const response = await fetch(url + event.coords.latitude + ‘,’ + event.coords.longitude); if (response.ok)< const json = await response.json(), weather = json.current.weather_icons[0], degrees = json.current.temperature, time = json.current.observation_time, humidity = json.current.humidity; >> catch (e)
В добавим и , туда запишем данные из наших переменных.
Температура: Обновлено в: Влажность:
const json = await response.json(), weather = json.current.weather_icons[0], degrees = json.current.temperature, time = json.current.observation_time, humidity = json.current.humidity; document.getElementById(«weather»).src = weather; document.getElementById(«degrees»).innerText = degrees; document.getElementById(«time»).innerText = time; document.getElementById(«humidity»).innerText = humidity;
У вас должно получиться что-то вроде этого:
Выглядит очень криво и плохо, чтобы на это было приятно смотреть, добавим немного стилей в style.css:
#map < height: 280px; >.weather-row < display: flex; flex-direction: row; align-items: center; position: absolute; left: 0px; bottom: 0px; z-index: 1000; background: rgba(255, 255, 255, 0.51); padding-right: 5px; >.info < margin-left: 10px ; >.info span
Вот теперь у нас получилась красивая карта с удобным расположением погоды. Для первого приложения очень даже неплохо. Однако остался один момент — наша погода сама не обновляется, поэтому мы можем добавить обновление нашего приложения, через равные промежутки времени. В конце кода добавим вызов функции setInterval() , который раз в минуту будет определять нашу геолокацию и делать повторный запрос в сервис погоды.
Для этого нам необходимо немного переписать код. Инициализацию карты мы вынесем за функцию, чтобы она не происходила каждый раз, а остальной код оставим в функции.
const catIcon = L.icon(); const mymap = L.map(‘map’); const marker = L.marker([0, 0], ).addTo(mymap); L.tileLayer(‘https://.tile.openstreetmap.org///.png’).addTo(mymap); function weather () < navigator.geolocation.getCurrentPosition(async (event) => < mymap.setView([event.coords.latitude, event.coords.longitude], 13); marker.setLatLng([event.coords.latitude, event.coords.longitude]).update(); const url = «http://api.weatherstack.com/current?access_key=efd350a8ef4ecf4affd3c61c0ad9dea3; try < const response = await fetch(url + event.coords.latitude + ‘,’ + event.coords.longitude); if (response.ok)< const json = await response.json(), weather = json.current.weather_icons[0], degrees = json.current.temperature, time = json.current.observation_time, humidity = json.current.humidity; document.getElementById(«weather»).src = weather; document.getElementById(«degrees»).innerText = degrees; document.getElementById(«time»).innerText = time; document.getElementById(«humidity»).innerText = humidity; >> catch (e) < alert(«Не удалось получить данные о погоде»); >>, () => < alert(«Не удалось получить текущую позицию. Возможно стоит проверить настройки геолокации») >, ); > weather(); setInterval(weather, 60*1000);
Теперь погода обновляется сама раз в минуту. Миссия выполнена, все молодцы.
Что почитать?
- https://www.codecademy.com/ — ресурс для обучения многим языкам. Обучение строится в форме решения задач, также на сайте.
- https://learn.javascript.ru/ — современный учебник JavaScript. Здесь можно изучить JS начиная с нуля и заканчивая продвинутыми концепциями.
- https://www.udemy.com/ — содержит более ста тысяч курсов на различные тематики. Доступ к сайту платный, поэтому сюда лучше приходить, когда уже более-менее определились с направлением.
- Роберт Мартин, «Чистый код» — эту книгу стоит читать, когда уже есть опыт в программировании. В ней рассказывается о хороших практиках написания кода и о паттернах проектирования.
Делаем выводы
В целом можно сказать, что начинать заниматься программированием никогда не поздно. Не стоит бояться неудач в начале пути, ведь они бывают у каждого, главное чтобы у вас было желание, а всё остальное придёт со временем. Работа программистом — это постоянное совершенствование и получение новых знаний.
Присоединяйтесь к различным сообществам, посещайте конференции и читайте побольше чужого кода. Не важно, какой будет ваша первая работа, просто воспринимайте ее как возможность получить опыт. Многие компании готовы взять и обучить человека, у которого есть потенциал и желание развиваться. Занимайтесь самообразованием и у вас всё получится.
Источник: tproger.ru