Что такое фронтенд-разработчики, бэкэнд-разработчики и разработчики полного стека? На какую работу я могу устроиться младшим программистом? В последней части нашей серии мы ответим на эти общие вопросы

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

Его статья написана в сотрудничестве с моим большим другом, наставником и компьютерным мастером Хоакином Тумасом

Часто бывает сложно найти руководства по программированию и онлайн-курсы. Большинство из них требуют некоторых предварительных знаний или технической подготовки, загрузки и установки программ и пакетов, и не так много времени тратится на объяснение основ. Эта серия статей призвана заполнить этот пробел и дать вам общую картину мира разработки, и в этой последней части я хочу обсудить возможные пути, которые вы можете выбрать, если решите стать веб-разработчиком.

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

Клиент, сервер и база данных

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

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

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

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

Общие интерфейсные технологии

Если вам нравится визуальная часть приложения и вам нравится создавать красивые динамичные веб-сайты, вам, вероятно, понравится работать с этими технологиями. HTML и CSS очень важны, и сегодня Javascript является наиболее часто используемым языком программирования во внешнем интерфейсе. В большинстве проектов используются такие фреймворки, как React, Angular или Vue, а также многие библиотеки, дополняющие их, в зависимости от потребностей проекта.

Кроме того, полезно ознакомиться с Chrome DevTools, Github и npm.

Общие серверные технологии

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

Наиболее распространенными технологиями, используемыми сегодня, являются Java, Python, PHP и .NET - вам не нужно знать их все, но хорошо понимать основы объектно-ориентированного программирования и функциональное программирование. У этих языков есть свои самые популярные фреймворки и библиотеки, которые будут зависеть от потребностей каждого проекта. В последние годы Javascript также приобрел некоторую популярность среди back-end разработчиков, в основном в форме Node.js.

Кроме того, SQL - важный навык, если вы хотите работать с базами данных, и обычно он используется с такими расширениями, как MySQL, Ocacle или PostgreSQL. Веб-сервер Apache, Docker и Github - это еще несколько инструментов, которые вы, вероятно, будете использовать ежедневно.

Лучше быть полным стеком или специализироваться?

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

Как я могу найти свою первую работу младшим разработчиком?

Вы можете использовать такие сайты, как Linkedin, Indeed и Glassdoor, чтобы иметь лучшее представление о предлагаемых вакансиях, их требованиях, заработной плате и условиях. Заработная плата в сфере технологий обычно выше средней почти во всех странах, а компании, как правило, более современны в отношении дресс-кода и удаленной работы. С другой стороны, определенно может быть труднее найти свою первую работу в качестве программиста, поскольку существует большая конкуренция и есть компании, которые не хотят нанимать кого-то без опыта. Вы можете искать компании, которые предлагают программу стажировок, или даже начать с небольших внештатных выступлений, используя такие платформы, как Upwork.

Если у вас нет профессионального опыта в сфере технологий, попробуйте создать несколько личных проектов, и вскоре у вас будет портфолио, которое можно будет показать. Я также рекомендую использовать ваши навыки межличностного общения и другой опыт, профессиональный или иной. Например, до того, как работать программистом, я был учителем, поэтому могу упомянуть, что я хорошо объясняю людям, руководству и организации. Кроме того, я говорю на многих языках, что говорит о том, что я хорошо учусь. Мягкие навыки несколько недооцениваются, но они становятся все более и более важными в процессе найма.

Заключение

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

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

Кроме того, программист должен хорошо работать в команде и думать о своих коллегах, написав четкий и организованный код. Мы не хотим писать код, который никто не поймет позже (возможно, даже мы сами), или создавать что-то, что невозможно поддерживать в долгосрочной перспективе.

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

Полная серия:









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