Найти тему

Младший разработчик Python - что ему нужно знать?

Оглавление

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

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

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

Младший разработчик Python - Требования

-2

Если среди друзей нет программистов, это может показаться большим испытанием. К должности младшего разработчика Python предъявляются другие требования (иногда очень разные). В предложениях о работе много слов и понятий, трудно решить, какие из следующих ключевых слов важны, а какие меньше, а какие действительно стоит изучить.

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

«Требования» для младшего разработчика Python:

  1. Английский язык
  2. Back-end
  • Python
  • Модульные тесты
  • Веб-фреймворки
  • SQL
  • ORM
  • NoSQL

3. Front-end

  • HTML/CSS
  • JavaScript
  • Препроцессоры CSS
  • Фреймворки JS
  • Начальная загрузка
  • RWD

Позвольте начать неправильно, не с программирования, а с Английского языка.

Английский язык.

Вы изучаете программирование, но не знаете английского языка, ваш английский язык не позволяет использовать материалы на английском языке? Будьте уверены , чтобы вам придется пользоваться английским как бы вы этого не хотели . Изучите сам язык, а также программирование из англоязычных видеороликов, послушайте лексику, которую используют учителя, прочитайте ответы, например из "stackoverflow". Переведите сами ответы из Google, постарайтесь сделать ваш уровень английского достаточным для чтения документации. Материалы на русском языке со временем закончатся. Проблемы на работе невозможно решить с помощью учебных пособий.

Двигайтесь к конкретному B1 / B2 , это безопасный уровень, который позволяет вам свободно общаться о своем свободном времени и планах в жизни, а также отвечать на электронные письма от работодателя.

Cambridge Test your English - один тест занимает от 15 до 30 минут.

BACK-End

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

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

Один из способов проявить себя - пойти на набор, но прежде чем мы уйдем, стоит более-менее узнать, какие требования предъявляются к юниорам (стажеры, конечно, немного ниже).

Собственно "Python"


Программирование на Python - довольно очевидная основа, но что значит знать, как программировать? Больше, чем
знание синтаксиса . Уметь с первого взгляда различать Python 2.x и 3.x (изучите только версию 3). Хотя бы ассоциируйте, что такое PEP-8, и попробуйте написать код в понятной форме. Начинающий программист на Python должен уметь пользоваться стандартными библиотечными методами , уметь использовать и создавать модули . Знайте основные структуры данных. Понять концепции объектно-ориентированного программирования .

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

Хорошо что-то автоматизировать, поиграться с алгоритмами , иными словами проглотить Python.

Написание тестов.

Чем раньше вы начнете писать модульные тесты, тем лучше для вас и вашего кода. Вот два фреймворка для тестирования:

  • unittest - доступен как модуль в стандартной библиотеке, идеально подходит для начала
  • Pytest - более популярный, вне стандартной библиотеки, поэтому вам нужно установить его через pip - менеджер пакетов

Веб-фреймворки Python

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

Flask и / или взаимозаменяемый с Django
Flask и / или взаимозаменяемый с Django

Прежде всего, я еще немного порекомендую Flask , который на самом деле представляет собой микро-кадр. Flask кажется намного проще на первый взгляд, чем Django , он легче для небольших проектов. У него более гибкая конфигурация, что является плюсом и минусом одновременно. Django использует стандартизированную структуру проекта (подобно тому, как, например, Rails основан на шаблоне MVC, поэтому в Django мы встретимся со связанной моделью MVT - View - Template ), в то время как Flask предоставляет больше свободы (без навязываемого архитектурного шаблона).

Стоит ли мне подавать заявку, если предложение о работе - это младший разработчик django, и мы его не знаем?
Следуйте некоторой логике: если
требования действительно включают знание Django, а вы знаете только Flask , то у вас меньше шансов, чем у тех, кто знает Django, но, зная один фреймворк, что плохого во второй половине дня, чтобы задокументировать и узнать о другом? Перед тем, как поговорить на собеседовании, у вас, вероятно, будет время поработать над проектом на Django; P Вы можете подать заявку, тем более что первая работа программиста не за каждым углом, вам нужно пройти несколько наборов.

Уважайте свое время и работодателя, но если вы где-то видите возможность - почему бы и нет?

SQL

Базы данных для backend-разработчика - один из основных инструментов.
Базы данных для backend-разработчика - один из основных инструментов.

Стоит понять, чем характеризуются реляционные базы данных, уметь сравнивать с нереляционными базами данных, ассоциировать аббревиатуру ACID.

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

"Запрос"

Вам необходимо проверить определенную информацию в базе данных магазина. Предположим, что в таблице заказов хранится специальная строка из букв и цифр - transaction_hash, назначенная каждому заказу. Заказ принадлежит покупателю. У покупателя может быть несколько заказов. Каждый заказ одновременно назначается кому-то из службы (CustomerServiceMember), у которого произошло изменение и которое было доступно. Ваша задача - найти все номера транзакций для заказов, принадлежащих зарегистрированным клиентам, которые были размещены в течение определенного периода времени и обрабатывались сотрудниками, работающими неполный рабочий день.

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

Использование ORM

Веб-фреймворк есть, есть SQL, теперь приложение должно быть подключено к базе данных, и именно здесь появляются библиотеки ORM (Object Relational Mapper). Вы можете встретить Django ORM в Django (встроенный) или SQLAlchemy (Flask не имеет встроенного ORM). Это навык, который приобретается естественным образом, когда приложения растут, начинают «что-то записывать» в базу данных и создавать приложение на основе CRUD ( создавать, читать, обновлять, удалять ).

NoSQL - как дополнение

Где-то обязательно появятся нереляционные базы данных. Помимо теоретических различий, вы можете попробовать разработать с использованием базы данных NoSQL (например, MongoDB). Опять же, это не обязательное условие для поиска работы, но стоит знать, с чем вы можете иметь дело.

FRONT-End

-6

HTML (язык разметки гипертекста) и CSS (каскадные таблицы стилей) не являются языками программирования, и, вероятно, многие бэкендеры JavaScript также назвали бы это сублингвальным ( шутка ). Младший разработчик Python, веб-разработчик, программист полного цикла или даже начинающий программист, необходимо наладить контакт с немногочисленным лицом.

HTML и CSS

Скажем сначала: никто из начинающих back-end разработчиков или наша цель - младший разработчик python, не ожидает, что он станет волшебником CSS. Вам не нужно знать сложные анимации, знать все функции наизусть или отправлять друзьям качать пасхальные яйца на CSS на Пасху. Однако HTML и CSS похожи на английский язык в ИТ-индустрии - необходимы основы. Написать семантически правильный код непросто в эпоху широко доступного Интернета, когда каждый может загрузить свой материал, и он не обязательно должен соответствовать документации. С другой стороны, в создании правильного HTML-кода , стилизованного так, чтобы он не обжигал вам глаза, тоже нет ничего сложного.

Javascript

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

ПРОЧЕЕ

Фронтенд-вопросы стоит знать, но их отсутствие среди навыков не является противопоказанием для подачи заявок на вакансии. Они могут работать вам на пользу.

Препроцессоры CSS - Sass / Less - полезные, но не обязательные знания.
JS frameworks - как указано выше. то же самое касается JS-фреймворков. Лучшее твердое знание чистого Js, чем в другом учебнике по React или Angual без понимания.
Bootstrap - я считаю, что знание Bootstrap или любого другого фреймворка CSS очень полезно в карьере разработчика Python. Вы можете создать прилично выглядящий, отзывчивый интерфейс с нулевым чувством эстетики.
RWD- Почему я отделил RWD от HTML и CSS? Адаптивный веб-дизайн - это гораздо более широкое понятие, чем правильный дисплей на телефоне. Знание вопроса на достойном и практическом уровне. Он не обязательно должен быть идеальным по пикселям, но давайте согласимся, что с Bootstrap любой может написать адаптивный веб-сайт.

Что еще нужно младшему разработчику?

Здесь все универсальнее. Инструменты и концепции, необходимые начинающему программисту.

Стажер или младший должен / должен:

  • Использовать git ( Git и Github с нуля ).
  • Довольно эффективно перемещаться по выбранному вами редактору . Свяжите
  • хотя бы название того, что такое CI / CD (Buddy.works, Travis - бесплатно и хорошо для начинающих).
  • Знайте такие концепции, как JSON, REST или API (лучшее письменное приложение, показывающее, что вы знаете, что происходит).
  • Иметь веб-проект более продвинутый, чем список дел, интеграция с внешним API.
  • Знание команд Linux, так что перемещение в терминале - это не то, что вы видите в первый раз.

Наверное, какая-то теория из компьютерных сетей, как работает интернет, браузер, какая разница при выборе сервера - apache hosing или nginx.

На этом пожалуй все, если какая то информация оказалась для Вас полезной, прошу поставить палец вверх.