backend python что нужно знать

Что нужно знать начинающему бэкенд-разработчику, кроме языка программирования

Авторизуйтесь

Что нужно знать начинающему бэкенд-разработчику, кроме языка программирования

продакт-менеджер программы «Python-разработчик» в Яндекс.Практикуме

Некоторые новички считают, что достаточно выучить нужный язык программирования — и всё, это знание по умолчанию делает из вас отличного бэкендера. Помните подход «купил зеркалку — стал фотографом»? Но это далеко не так.

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

Ещё в посте — отношение различных компаний к вашим навыкам, их важность для прохождения собеседования, а также подборка полезных книг по теме.

Базис

Начнём с главного — с ОС. Хороший бэкендер должен быть знаком с unix-подобной операционной системой. Это могут быть не только разные Linux-дистрибутивы, но и macOS или FreeBSD, но общепринятым стандартом всё же является Linux. Работать вы можете на ПК или ноутбуке с любой ОС, но Linux нужно знать. Ведь вам придётся довольно активно взаимодействовать с серверами, а большая часть из них работает на Linux.

4–5 декабря, Онлайн, Беcплатно

Из этого пункта плавно вытекает второй — работа с командной строкой. Это нужно для того, чтобы говорить с сервером на его языке. Нужно не просто знать, как нагуглить ту или иную команду и что она делает, а разбираться в командном интерфейсе. Опять же, допустимы варианты в зависимости от личных предпочтений или литературы, по которой вы учились: zsh, bash, fish, но стандарт — bash.

Следующее требование ― знание систем контроля версий. И тут уже без особых альтернатив: нужен именно Git, несмотря на наличие выбора. Изучите сам Git и механику взаимодействия с ветками, если собираетесь работать в команде. Впрочем, если вы интересуетесь бэкенд-разработкой и сейчас читаете этот текст, аккаунт на GitHub у вас уже наверняка есть (а если нет, вы знаете, что делать).

Очень пригодится базовое знание принципа работы Сети в целом. Мы сейчас не говорим о доскональном изучении HTTP и всех тонкостей DNS, но вы должны представлять, что именно происходит при попытке зайти на какой-то сайт. Что к чему подключается, какие работают связки, что грузится в первую очередь и тащит за собой остальное.

Дополнительным преимуществом для начинающего бэкенд-разработчика будет знание хотя бы одного веб-фреймворка — для Python это Django или Flask. Плюс базовые знания SQL. Никто не будет выставлять вас на ежемесячные соревнования SQL-программистов, но важно уметь самому проектировать БД, работать с ними через ORM, если мы говорим про Django, или через SQLAlchemy в случае с Flask.

Ну и, конечно, никуда без основ администрирования сервера, хотя бы на уровне «Я могу сам задеплоить свой проект по SSH, не отвлекая коллег от чтения Хабра».

Алгоритмы и тестирование

В плане базовых требований к кандидату и знания основ профессии компании делятся на два лагеря.

В первом сидят серьёзные практики, которых волнует только то, что вы умеете делать. У вас может быть любое образование, и, если вы докажете им, что на текущем жизненном этапе вы в состоянии выполнять все задачи, которые они взвалят на бэкендера, вы в деле.

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

Если вы хотите в Яндекс, то самое важное, на что будут смотреть HR и на техническом собеседовании — это на результаты прохождений самих секций собеседования и на то, насколько вы знаете алгоритмы. Ваш диплом и название вуза здесь как вишенка на торте. Вишенки может и не быть — без неё торт не перестанет быть тортом.

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

GitHub и хакатоны

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

Прежде всего на собеседованиях смотрят на практическое решение конкретных задач в рамках прохождения секций. Иногда дополнительно могут посмотреть ваш проект на GitHub, иногда — нет. Если вы идёте на мидла, то хакатонский опыт поможет вам быстрее и легче проходить секции собеседования. Для джуна опыт участия в хакатонах, даже без призовых мест, будет реальным подтверждением того факта, что человеку интересна профессия, он старается быть в курсе новых решений и инструментов, пытается самостоятельно прокачивать навыки. Да, это тоже плюс.

Командная работа

Про soft skills написано множество постов и, скорее всего, несколько книг, поэтому я не будут сильно вдаваться в их важность и необходимость — вы всё это уже читали много раз.

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

Разговаривайте, спрашивайте, уточняйте. Это нормально. Так же нормально, как пойти и усердно погуглить что-то, если не получается.

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

Ещё несколько советов. Спокойно реагируйте на критику и замечания, прокачивайте уровень самоорганизованности, давайте коллегам обратную связь, не бойтесь ошибаться в работе и исправлять ошибки. И учитесь — возможностей для этого сейчас множество.

Полезные книги

Марк Лутц, «Изучаем Python». Марк написал эту книгу по мотивам собственных курсов, которые ведёт уже более 10 лет. Здесь всё важное: обзор инструментов, типы объектов, функции плюс описания моделей и инструкции по обработке исключений.

Антонио Меле, «Джанго 2 в примерах». Книга делает упор на практическое создание приложений для реальных задач. Кроме непосредственной работы с компонентами самого фреймворка, рассматриваются также и возможности интеграции сторонних инструментов.

Лекции Тимофея Хирьянова по алгоритмам. Тимофей — один из преподавателей МФТИ. Лекций по алгоритмам множество, но эти наглядные. Особенно полезны для новичков, но и разработчику с опытом тоже пригодятся.

Если вы можете свободно читать профильную литературу на английском, то порекомендуем ещё и пару книг о разработке на основе тестов: Harry Percival, «Test-Driven Development with Python» и Kevin Harvey, «Test-Driven Development with Django».

Источник

Python для Веба: что нужно знать джуниору, чтобы работать и развиваться

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

Почему Python хорош для веб-разработки

Валентин Домбровский: Почему именно Python подходит для веб-разработки? Почему не PHP или JavaScript, например?

Григорий Петров: Так ведь выбора особо нет. Несмотря на то что в современном Вебе можно фактически без бэкенда — чисто на фронтенд-технологиях, на JavaScript — собрать себе single page application или progressive web application, все равно это слишком сложно, плохо индексируется и требует крутых разработчиков.

Если мы хотим сделать сайт или сервис, мы используем комбинированный подход: у нас какой-то бэкенд осуществляет логику и создает веб-страницы и какой-то фронтенд рисует эти веб-страницы в браузере. И когда нам надо быстро это все на чем-то собрать, то выбора особо нет.

Читайте также:  какой нормальный вес при росте 163 у девушки

Давайте рассмотрим возможные варианты.

Давайте опустим Ruby, Haskell, Erlang и другие нишевые штуки, и у нас остается… Python. Язык с консистентным синтаксисом, единообразной стандартной библиотекой, лучшей документацией, популярными легкими фреймворками, мегапопулярным комбайном Django.

Получается, что, несмотря на широчайший выбор, если у нас обычные, не топовые разработчики, мы обычный бизнес, который хочет делать обычные сайты, у нас нет отдела разработки на 50 человек, то мы берем Python.

Какие знания нужны для входа в профессию

Злата Обуховская: Я считаю, что один фреймворк нужно знать хорошо — и знать, какие еще бывают и когда они используются. Где Tornado, где Django, где Flask, где aiohttp и так далее.
Пригодится знать, что есть такая штука, как протоколы. В частности, знание протокола http — центральное для построения веб-приложений.

Еще нужно хотя бы приблизительно представлять себе, как в веб-проектах устроен фронтенд: что есть HTML, CSS, JS.

Алексей Штырняев: И знать, где лежит документация. Это самое главное.

Григорий Петров: Тут мы ступаем на очень зыбкую почву. Если нам не повезло и мы начали как-то серьезно изучать современный фронтенд, то он будет примерно раз в 10 сложнее, чем бэкенд на Python. Начинающему разработчику нужно ограничить свой фокус так, чтобы начать изучать HTML, но чтобы не провалиться во все эти div, span, float, как там все выравнивается и выстраивается.

Алексей Штырняев: Нужен базовый курс по Bootstrap. И основы HTML.

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

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

Григорий Петров: Да, порекомендую сразу на тот случай, если вы выбрали Python в качестве языка бэкенд разработки и, например, Django в качестве фреймворка: у Django есть документация в Django Book, она реально клевая, в ней все то, о чем сказала Злата, она и правда хороша для начинающего.

Алексей Штырняев: Еще для быстрого старта подойдет какой-нибудь Django Girls, если цель — изучить именно Django. Это такой туториал, где за один день можно пройти по верхам, понять основы и то, на что способен фреймворк.

Валентин Домбровский: Готовясь к записи подкаста, мы составили список того, что нужно программисту на Python для веб-разработки, чем и резюмируем ранее сказанное.

Что входит в базис для веб-разработки на Python

Нужны ли джуниору алгоритмы

Злата Обуховская: Поначалу не нужно знать алгоритмы, они сами постепенно появятся в голове, если заниматься разработкой достаточно долго. Я знаю кучу хороших инженеров, у которых не было хорошего формального курса алгоритмов.

Григорий Петров: Я хочу подлить масла в огонь. Вот откуда вообще берется наша тяга к алгоритмам?

У нас сейчас нет фундаментального образования по алгоритмам, у нас не умеют обучать программистов, нет технической базы.

Это пытаются делать, но тут у нас история Хогвартса: мы не можем сделать школу волшебников, пока у нас нет ни одного волшебника. Поэтому что делать университету, в который приходят и просят: «Начните обучать программистов», а программистов у них нет, потому что все работают в Mail.ru, Rambler и «Яндексе», им там хорошо?

В университете смотрят и говорят:
— О’кей, программирование. Давайте найдем какую-то смежную область знаний и пригласим специалистов оттуда. Давайте пригласим журналистов, которые умеют писать текст, инженеров-электриков, которые умеют делать электрические схемы, и математиков, которые умеют в алгоритмы.

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

При этом про сам цемент и кирпич не рассказывают, потому что физик, который пытается обучить строителя, дома строить не умеет. В итоге получаем строителя, который в состоянии прекрасно расписать, как «работает цемент», но ни разу его не видел и делать из него ничего не умеет.

Алгоритмы и структуры данных — это очень хорошо, но это очень маленькая прикладная область. Они остро нужны, например, если ты пишешь игровой движок, компилятор, сетевой протокол.

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

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

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

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

Григорий Петров: Бизнесу нужен писатель, а не лингвист. Писателю не нужно знать, почему тысячу лет назад это слово трансформировалось вот в то. Ему надо уметь применять эти слова.

Что нужно, чтобы найти первую работу разработчиком

Если вы приходите в какую-то компанию, вас возьмут не за то, что вы знаете Django, JSON и немного алгоритмов. Вас, скорее всего, возьмут за те скиллы, которые здесь и сейчас нужны этой компании.

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

Григорий Петров: Когда мы в VoxImplant искали нескольких джунов, наш технический директор сформулировал базовое требование так: человек должен уметь решать задачи. Понятно, что джун это будет делать не всегда эффективно, не лучшим способом и не всегда правильно, но в идеале ты ставишь человеку задачу, он напрягается и решает ее. Это тот скилл, который в первую очередь ищут работодатели.

Злата Обуховская: Люди, которые ищут работу, переходя из других областей, имеют с точки зрения бизнеса некоторое преимущество, потому что уже прошли какой-то путь и умеют решать задачи быстро. Это soft skills, я бы это назвала даже трудовой культурой. Зачастую у выпускников вузов эта трудовая культура еще не наработана.

Но мне бы хотелось все-таки попытаться дать какой-то рецепт начинающим.

Первые шаги для начинающего разработчика

Злата Обуховская: Первое — это все-таки какой-то свой проект, потому что в резюме нужно что-то написать, показать минимальное портфолио. Круче, когда эти проекты сделаны не для себя, а на фрилансе — для кого-то.

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

Валентин Домбровский: Кстати, мы на курсах готовим учеников к тому, чтобы у них появился свой проект за 10 недель обучения. Плюс тренируем навык командной разработки. Это как раз те soft skills, о которых говорила Злата.

Алексей Штырняев: По опыту скажу, что первую работу можно искать очень долго. Когда вы ищете месяц-два — это нормально. Если вы подаете резюме во все компании, ходите на собеседования, на третий месяц вы обязательно что-то найдете.

Валентин Домбровский: Можно пилить свои проекты или брать простые проекты на фрилансе и параллельно заниматься рассылкой резюме.

Какие перспективы есть у Python-разработчика

Злата Обуховская: Python-разработчик может пойти куда угодно. Можно пойти в тестирование, продолжить развиваться до senior-архитектора. Или даже в менеджмент. Технические менеджеры бывают разные, и можно дорасти до топ-менеджмента. Можно развиваться в data science, DevOps, пойти в автотесты или machine learning.

Читайте также:  какой минватой лучше утеплить мансарду изнутри

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

Это лишь часть выпуска Python Junior. Полную версию эпизода можно послушать.

Источник

Python backend. Вид изнутри. — Ключевые аспекты веб-разработки на Python

Из чего состоит backend?

Когда сервер получает запрос от браузера, с программной стороны его обрабатывает Web-сервер. Некоторые языки встраивают web-сервер прямо в своё приложение, но большинство интерпретируемых языков использует специальную внешнюю программу. Таких самостоятельных Web-серверов существует несколько, но наиболее популярен Nginx. Он берёт на себя обработку входящих запросов, отдачу статических файлов, распределение запросов между web-приложениями.

В случае Python за web-сервером как правило находится WSGI-сервер, запускающий WSGI-приложения. WSGI или Web Server Gateway Interface — это такая абстракция, согласно которой ответчик на запросы, это Python-функция, принимающая запрос и возвращающая ответ! Звучит просто, не правда ли? Минимальное WSGI-приложение выглядит примерно так:

Web-фреймворк

Показанное Web-приложение пусть и работает, но на любой запрос оно будет возвращать один и тот же текст. Что-то более сложное написать в таком стиле будет проблематично, пусть и выполнимо. Чтобы упростить жизнь типичного backend-разработчика и помочь ему реализовывать типичные приложения, используются фреймворки (frameworks) — библиотеки, задающие готовую структуру приложения. В эту структуру разработчику нужно только вписывать свои кусочки кода, а сам «скелет» приложения оказывается сразу готов к применению. Именно Web помогают писать web-фреймворки. Самые популярные web-фреймворки для Python — это Django и Flask.

Web-фреймворки берут на себя маршрутизацию, упрощают работу с заголовками и данными запросов, формирование ответов в разных форматах, сохранение истории запросов в файлы (для анализа и сбора статистики, для нужд отладки).

ORM и шаблонизатор

Что же ещё находится в бэкенде, кроме машинерии обработки запросов? Чаще всего — ORM и шаблонизатор.

ORM или Object-Relational Mapping, это средство работы с записями в базах данных (БД), представляющие записи в виде понятных для языка программирования объектов.

Источник

Как стать web-разработчиком на Python за полгода: конкретный план действий

Всем привет! Меня зовут Евгений Степанов, и я Python Full Stack-Developer в компании PVS-Studio. В этой статье вы узнаете, что нужно сделать, чтобы за полгода стать Python backend-разработчиком. После прочтения данной публикации у вас будет чёткий план, который останется только реализовать. Поехали!

Веб для тех, кто постоянно развивается

В IT необходимо постоянное развитие. Без него вас просто могут «съесть» более любопытные и совершенствующиеся программисты. Веб не исключение. Пожалуй, это одна из тех сфер, где больше всего технологий, и их число постоянно растёт. Поэтому для backend-разработчика самосовершенствование — лучший друг. Если вы к нему не готовы — чтение данной статьи будет бесполезным (почти).

Насколько глубоки ваши знания в Python?

Надеюсь, вы понимаете, что без хорошего знания Python реализация этого плана невозможна. Циклы, условия, функции, классы, миксины — во всём этом вам нужно так же легко разбираться, как в чистке зубов. Если вы уже знаете этот язык программирования — отлично, можно приступать к выполнению плана. Если нет — вот 2 хорошие книги, которые помогут его изучить:

A byte of Python

Коротко о книге: Данная книга, на мой взгляд, является лучшей для изучения Python с нуля. В 158 страницах автор лаконично и понятно объясняет все основы этого чудесного языка.

Сам себе программист

Автор: Кори Альтхофф

Коротко о книге: В книге объясняются основы Python и немного затрагиваются Git, bash, алгоритмы, регулярные выражения и pip (пакетный менеджер для Python). А задачи для практики помогут лучше понять теоретический материал.

После прочтения любой из этих книг вы получите ликбез по Python (а также по программированию в целом) и сможете приступить к выполнению плана.

При чтении книг по программированию важно понимать, что это не художественная литература. Чтобы получить максимум пользы от этих руководств, необходимо практиковаться параллельно с их изучением. Например, после прочтения каждой главы можно придумывать задачи (или находить в Интернете) и использовать полученные знания для их решения. Это не только поможет вам закрепить пройденный материал, но и сделает более интересным дальнейшее чтение книги.

Стратегия для составления и реализации плана

«Если бы у меня было восемь часов на то, чтобы срубить дерево, я потратил бы шесть часов на то, чтобы наточить топор».

План – важнейшая составляющая достижения любой цели. Поэтому его необходимо уметь грамотно составлять. Это сэкономит ваше драгоценное время и сократит ненужную работу.

Каждый год люди составляют кучу планов и ставят множество задач. Вначале всё у них идёт хорошо, но уже через пару месяцев начинается откладывание дел на потом – ведь времени ещё полно, почти целый год (да и вообще, устал я, дам себе немного отдохнуть). Так длится вплоть до осени, когда сроки начинают поджимать. И вот в последние 2,3 месяца уходящего года люди увеличивают нагрузку, пытаясь наверстать упущенное. Но, конечно же, сделать это не удаётся, и достижение целей переносится на следующий год.

Такой подход, как можно заметить, не очень эффективен, тем более для веб-разработчика. Поэтому необходимо выбрать другой. Есть много разных стратегий для составления и реализации плана. Лично я пользуюсь способом из книги «12 недель в году» (авторы Брайан Моран и Майкл Леннингтон) и рекомендую его вам (как и саму книгу). Суть стратегии заключается в том, чтобы представлять год как 12 недель, а не как 12 месяцев. Отсюда и название. При таком мышлении, у целей на год будет дедлайн – 12 недель. Данный способ помогает сильно повысить производительность и начать по-настоящему ценить каждую неделю (ведь теперь 1 неделя — это 1 месяц).

Как правильно ставить цель

При составлении качественного плана у каждой цели должны быть:

Дедлайн — крайний срок, когда нужно закрыть цель. Будет поджимать вас при каждом взгляде на него;

Время, за которое нужно её выполнить. Поможет вам рассчитать дедлайн и понять, укладываетесь вы в него или нет;

Детальное описание. Чем детальнее расписана задача, тем быстрее вы её сделаете и тем меньше времени потратите на лишнюю работу;

Наличие инфинитива в формулировке цели. Заставит вас больше думать о том, чтобы выполнить (сделать) эту задачу. (Например: разобрать команду commit).

Составляем план

Внимание! Установка дедлайнов не дорого идёт с расчётом на то, что вы можете уделять реализации плана 6-8 часов в день.

1. Изучить книгу «ProGit» до 171 страницы

Дедлайн — конец 2-й недели 1-го 12-недельного года

Время на выполнение — 2 недели

VCS (Version Control System) – инструмент, без которого не обойтись ни одному уважающему себя программисту. Он поможет откатить программу на рабочую версию, если вдруг в текущей вы слегка накосячили.

Самая популярная VCS и, пожалуй, самая лучшая — Git. Он прост в понимании, изучении и очень быстр – что ещё надо? (Кстати, создан он разработчиками ядра Linux). Самый лучший вариант разобраться в нём — изучить книгу «ProGit» от Скотта Шакона. На старте всю читать нет смысла. Достаточно дойти до главы «GitHub» (не включительно). Таким образом, изучив всего 171 страницу, вы сможете понять смысл VCS и то, как работает Git вместе с его основными командами: commit, add, push, pull, clone, remote. Именно эти команды вы будете использовать в 80% случаев.

Конечно, не все компании используют Git. Но даже если ваша будущая организация применяет другую VCS, вам не составит особого труда изучить её (все, кто использует SVN, нервно закурили в сторонке), поскольку команды систем контроля версий очень похожи.

2. Изучить книгу «PostgreSQL для начинающих»

Дедлайн — конец 4-й недели 1-го 12-недельного года

Время на выполнение — 2 недели

Backend-разработчику необходимо знать базы данных. Это даже не обсуждается. На первых порах у вас может отсутствовать необходимость с ними работать, но однажды этот день обязательно наступит. Помимо понимания баз данных, необходимо уметь работать с СУБД (Система Управления Базами Данных). Чаще всего в Python-проектах используется PostgreSQL. Именно эту технологию я и рекомендую изучать. Книга «PostgreSQL для начинающих» даст вам общее представление о базах данных и обучит основным командам Postgres (синоним слова PostgreSQL). Для начала этой книги будет достаточно. В будущем можно почитать официальную документацию. Она, несомненно, улучшит ваши знания в этом инструменте.

Читайте также:  ранец для первоклассника какой лучше рейтинг 2020

Кстати, выучив основные команды PostgreSQL, вы сможете легко сделать то же самое и для других СУБД, например MySQL. Тут все так же, как и с системами контроля версий, т. е. команды и смысл в разных технологиях очень похожи.

3. Понять, что такое Веб и какие у него есть составляющие

Дедлайн — конец 5-й недели 1-го 12-недельного года

Время на выполнение — 1 неделя

Плавно переходим к веб-программированию. Вначале нужно понять, что вообще за фрукт такой – этот Веб. Узнать, что такое адрес, домен, хост, сервер, HTTP, HTTPS, POST и GET методы, что такое куки, как работает кеширование и т. д. В этом вам помогут лекции на YouTube. Просто введите в поисковой строке фразу «веб лекции», и у вас появится много различных вариантов для изучения данной темы. Лично я рекомендую эти 2 плейлиста: «Основы веб-разработки» и «Web-технологии».

Дедлайн — конец 6-й недели 1-го 12-недельного года

Время на выполнение — 1 неделя

HTML — технология, знание которой необходимо как backend, так и frontend-разработчику. Он несложный от слова совсем. Благодаря шикарному самоучителю, понимание HTML не станет для вас серьёзным препятствием. Дальше дело за практикой и постоянным изучением новых и повторением изученных тегов. В этом, кстати, вам поможет справочник.

5. Изучить части №1 и №2 книги «Django 3.0. Практика создания веб-сайтов на Python»

Дедлайн – конец 6-й недели 2-го 12-недельного года

Время на выполнение — 12 недель

Переходим к самому сложному и самому интересному — фреймворку для веб-программирования на Python. Django и Flask занимают тут лидирующие позиции. Именно их выбирает большинство питонистов.

У Django много встроенного функционала, и за счёт этого на нём можно быстро писать сайты. Flask же не предоставляет такой возможности и почти всё требует создавать с нуля (в этом тоже полно своих плюсов). Мы остановимся на Django. К Flask можно будет вернуться позже. Его изучение сильно улучшит ваше понимание как Django, так и в целом веб-программирования.

При изучении Django я пользовался и до сих пор пользуюсь великолепной книгой Владимира Дронова «Django 3.0. Практика создания веб-сайтов на Python». Рекомендую изучить её полностью, но на старте хватит разбора частей №1 и №2. Читая их, не забывайте о практике, без неё Django выучить невозможно. Придумайте какую-нибудь тематику и сделайте простенький сайт. Например, блог о котах. Желательно практиковаться параллельно с чтением. Также не пытайтесь выучить всё, что есть в книге. Изучите основное, а второстепенное сможете подсмотреть, когда будет необходимость. И да, не забывайте добавлять код своего сайта на GitHub.

Кстати, у Django есть отличная документация, с которой точно стоит ознакомиться в дальнейшем.

6. Пройти первые 4 главы части №1 учебника по JavaScript

Дедлайн – конец 9-й недели 2-го 12-недельного года

Время на выполнение — 3 недели

Да-да! Великий и могучий JavaScript. Пришло его время. Что тут можно сказать? Изучение JS – это интересно, весело и порой больно. А ещё оно необходимо для всех, кто хочет подвизаться в веб-разработке. Бэкендеру будет достаточно базового понимания языка. На момент написания этой статьи лучшим руководством по JavaScript я считаю учебник от javascript.ru. В нём есть вся необходимая информация, она хорошо структурирована и понятно излагается. Для backend-разработчика достаточно пройти первые четыре главы из части №1.

Дедлайн — конец 11-й недели 2-го 12-недельного года

Время на выполнение — 2 недели

И последний инструмент из привычного всем набора JS/HTML/CSS – это CSS. Бэкендеру знание этой технологии особо не пригодится, но базовое понимание не помешает. Помните сайт для изучения HTML? Так вот, у него ещё есть самоучитель по CSS, который и поможет вам в освоении этой непростой технологии.

8. Составить резюме и откликнуться на подходящие вакансии

Дедлайн — середина 12-й недели 2-го 12-недельного года

Время на выполнение — 2 дня

Итак, с технологиями покончено. Минимальный набор backend-разработчика у вас в кармане. Пришло время для поиска работы. Первое, с чего стоит начать – составление резюме. Да, возможно, это самый простой этап, но он очень важен. То, как вы себя преподнесёте работодателю, скажется на скорости и качестве трудоустройства. Вот список рекомендаций, как улучшить своё резюме:

1. Если можете самостоятельно составить резюме на английском — сделайте это;

2. В списке технологий не надо писать свои личные качества, например целеустремлённость, трудолюбие и т. д. Это бесполезная информация, которую может написать про себя любой кулхацкер. Указывайте только технологии, которыми владеете (Python, Django, Git, JavaScript и т. д.);

3. Хорошо, если вы можете подтвердить знание указанных технологий. Для этого будет достаточно ссылки на репозиторий с кодом нужного инструмента (у вас же есть репозиторий на GitHub?);

4. В поле с названием профессии пишите именно название профессии, а не набор ваших технологий (такое часто можно увидеть в разных резюме). Например, в вашем случае это может быть «Junior Django Developer»;

5. Если вы раньше работали в IT, помимо названия компании, укажите, чем в ней занимались. Если есть, что показать, приложите ссылки с материалами. Также добавьте список используемых в работе технологий;

6. Напишите о себе. О своих хобби, о том, как начали изучать программирование, о любимых песнях и т. д. Лучше хотя бы что-то, чем ничего. Подойдёт даже имя кота;

7. Обязательно приложите свою фотографию. Она не только подчеркнёт вашу индивидуальность, но и покажет, что вы серьёзно подошли к составлению резюме.

Вот пример хорошего резюме (фото и данные кота конечно же надо заменить на свои):

Резюме готово? Отлично! Смело выкладывайте его на HeadHunter, даже если не считаете, что оно безупречно. Не забудьте открыть для него полную видимость.

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

9. Подготовиться к собеседованию

Дедлайн — конец 12-й недели 2-го 12-недельного года

Время на выполнение — 5 дней

Резюме — это хорошо, но без собеседования (а может, даже и тестового задания) вас никто на работу не возьмёт. Что может быть на «собесе»? Обычно вопросы бывают 2 типов: hard и soft skills. Soft skills – это ваши навыки работы в команде, ответственность, лидерские качества и т. д. Hard skills – это технические вопросы, т. е. вопросы по технологиям, указанным в вашем резюме. Оба типа вопросов важны. Подготовиться к техническим вопросам, конечно, сложнее. Вначале нужно понять, какие вопросы могут задать. В этом вам поможет умение гуглить. А если у вас его нет или вы просто не хотите тратить на это время, то вот список вопросов, который когда-то составлял я. Просматривая его и отвечая на вопросы, попробуйте представить себя на реальном собеседовании. И да, если вдруг какой-то вопрос непонятен, обязательно разберитесь в нём.

Что же, вы проделали большую работу. Теперь можно немного отдохнуть, выпить кружку ароматного чая и покурить самый дымный кальян вашего города.

Что дальше?

На изученном стеке технологий далеко не уедешь. Важно, как говорилось ранее, постоянно изучать новые инструменты. Как понять, какие из них нужны? Элементарно! Заходите на наш любимый HeadHunter, в поисковой строке вбиваете фразу «Python Django» и открываете полученные вакансии. Но теперь не откликаетесь на них, а выписываете себе указанный стек технологий. И так нужно сделать хотя бы с 15 вакансиями. После этого из всех выписанных технологий выбираете 3,5 самых часто встречающихся и начинаете их изучение в порядке важности. Данный метод поможет вам изучить самые необходимые инструменты.

Спасибо всем, причастным к написанию этой статьи и вам, дорогие читатели. Уверен, был хоть немного полезен. Удачи и до скорых встреч!

Дополнительные ссылки

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

Источник

Сказочный портал