Как сделать портфолио программисту python

Добавил пользователь Alex
Обновлено: 04.10.2024

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

Чем занимается Python-разработчик

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

Главная задача python-разработчика ― сделать так, чтобы сервисы понимали запрос, а сайты правильно реагировали на действия пользователей. Порядок работы над проектом может быть такой.

  1. Получить задачу и декомпозировать ее (то есть разбить на маленькие части). Важно услышать, что конкретно от вас хотят, и договориться, кто и что будет делать.
  2. Написать код.
  3. Покрыть код тестами и проверить, что все тесты проходят. Иногда этот пункт меняют местами со вторым, в такой ситуации сначала проверяют, что программа не работает.
  4. Закоммитить (зафиксировать изменения) и пройти код-ревью — получить комментарии от более опытного разработчика и внести его правки.
  5. Выкатить релиз или собрать образ на машине.
  6. Поддерживать код, пока он кем-то используется.

Как проходит типичный день Python-разработчика

Спойлер: магия разработки будет первые пару лет, пока вы изучаете что-то новое. А дальше программирование скатывается в рутину.

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

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

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

Большую часть времени занимают:

  • чтение кода,
  • тесты,
  • исправление ошибок.

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

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

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


В работе я использую Slack (робот jenkins присылает мне информацию о том, как протестировался коммит на гитхаб), Github, почту, свободный интернет, PyCharm (среда разработки), Things 3 (тудушник), Iterm 2, так как часть действий удобнее проворачивать через командную строку.

Что надо знать Python-разработчику

Нужно базово знать язык программирования. В моем понимании к базовым знаниям относятся:

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

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

Веб-разработка

  • Фреймворки. Первый — Flask, с его помощью можно быстро запрограммировать что-то работающее. Но все дополнительные функции нужно подключать и скачивать отдельно, если они нужны, конечно.
  • Django. С ним надо познакомиться хотя бы чуть-чуть, потому что долгое время он был одним из самых популярных. Поэтому велика вероятность, что, придя разработчиком на Python в какую-нибудь компанию, вы застанете проект на Django, и его надо будет поддерживать. Основное отличие Django от Flask — всё, что вам может потребоваться, встроено в сам фреймворк.

На старте нужно знать хотя бы один из этих фреймворков. Остальной набор зависит от того, в каком направлении вы хотите развиваться и какие задачи ставит перед вами тимлид. Обычно третьим советуют изучить асинхронный фреймворк. Например, Async IO либо Fast API.

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

  • Устройство Unix-систем (хотя бы на базовом уровне). Перед собеседованием поработайте с Linux, поэкспериментируйте с командой стройкой и попробуйте какое-то время пользоваться только ей, без графического интерфейса. Вероятно, что когда вы придете на первую работу, единственным способом коммуникации с сервером, на котором запущено ваше приложение, будет командная строка. Этот навык осваивается очень быстро: день на то, чтобы прочитать документацию, и буквально неделя на то, чтобы закрепить знания.
  • SQL и базы данных. Начинающему разработчику не нужны глубокие знания в этой области, но нужно понимать, что такое база данных, и как в ней хранится информация. Будет здорово, если перед первым собеседованием вы развернете какую-нибудь базу данных и попробуете составить к ней несколько запросов.

Анализ данных

  • Математика. Перцентили, нормальное распределение, векторы и матрицы — всё это нужно понимать, чтобы знать, что вы считаете. Обычно сложные вычислительные операции можно реализовать с помощью готовых функций, но без понимания, что и зачем используется, высока вероятность получить на выходе что-то ненужное вместо полезных данных.
  • Pandas. Это библиотека Python, которая часто применяется в анализе данных. Ее используют в работе практически каждый день, поэтому нужно знать, как с ней работать.
  • Визуализация данных станет огромным плюсом для начинающего разработчика. Например, базовая библиотека — Matplotlib. Еще есть Seaborn, которая расширяет возможности первой и в основном служит для более простых данных, например, корреляции или анализа одномерного или двумерного массива.

Soft skills

Хорошие soft skills порой важнее hard skills. Самое важное — умение и готовность задавать вопросы. У меня есть алгоритм, которым я делюсь со своими студентами. Он поможет подготовиться к обсуждению проблемы со старшим коллегой и сэкономить его время. Для этого нужно ответить на четыре вопроса.

Важно, чтобы с человеком было приятно работать в одном кабинете и поговорить не только о работе.

Где учиться на Python-разработчика

Высшее образование

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

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

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

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

Курсы

Есть много курсов на Coursera, Stepik, EdX. Поищите лекции на YouTube, а вопросы задавайте в комментариях. Еще можно читать Хабр. Правда, полезно там далеко не все. Но за неделю можно найти пару хороших статей, которые расширят кругозор и могут однажды пригодиться на собеседовании.

Где в 2020 году выучить Python с нуля? Топ онлайн-курсов и школ

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

Ментор

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

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

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

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

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

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

Как подготовиться к собеседованию

Когда я искала свою первую работаю, поступила просто: искала в интернете вопросы для junior Python-разработчика. Так вы понимаете, с чем придется столкнуться и оцениваете свой уровень. Например, на какие-то вопросы сможете ответить сразу, а какие-то — придется погуглить. Соответственно, продолжаете заниматься, через пару месяцев смотрите этот список и пытаетесь дать честный ответ, как ответили бы на собеседовании.

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

Хорошим показателем готовности к собеседованию будет наличие работающего проекта на GitHub, который вы можете использовать в своей жизни. Я уже писала в начале про бота, который помогает составить список покупок. Если есть такой или другой аналогичный по сложности проект, вы его написали и сами пользуетесь, выкладывайте на GitHub и рассылайте резюме с сопроводительными письмами. Это уже хороший старт.

Что почитать

Telegram-каналы

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

Книги

    . Автор пишет о своем опыте собеседований в крупнейшие ИТ-компании. В книге 189 задач и вопросов, которые помогут восполнить пробелы в знаниях и подготовиться к интервью. . Внутри много советов и рекомендаций, которые научат писать код лучше и чище, проектировать с максимальной продуктивностью, быстро находить в проекте проблемы и разрабатывать качественнее. . Книга про архитектуру и дизайн кода. Автор объясняет, что и почему нужно делать, чтобы стать успешным программистом. Много рассказывается про объектно-ориентированное программирование, но внутри используется Java.

проекты Python

Программирование и разработка

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

Книги и видео могут только довести ваши знания до определённого уровня. Лучший способ отточить свои навыки — бросить вызов самому себе. Станьте лучше, создавая проекты, такие как проекты Python для новичков в списке ниже.

Теперь пришло время проверить эти знания и начать совершенствовать свой опыт программирования с проектами Python.

Причины, по которым вам следует изучать Python

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

Более того, ведущие компании, такие как Instagram, Google, Spotify, Netflix, Dropbox, Instacart и Reddit (и это лишь некоторые из них) полагаются на Python. Короче говоря, добавление Python в ваше резюме сделает вас более привлекательным кандидатом для потенциальных работодателей.

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

Выбор проекта Python для начинающих

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

Убедитесь, что вы не перепутали Python 2 и Python 3. Важно понимать оба языка. Однако изучение Python 3 делает вас самым современным языком.

Выберите тему, которая вас интересует

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

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

Подумайте, насколько хорошо проект впишется в ваши общие цели. Например, если вашей карьерной целью является разработка приложений, создайте простой проект веб-приложения.

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

Думайте о малом, чтобы добиться больших успехов

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

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

Проекты Python для начинающих разработчиков: игры и испытания

игры и испытания

Игры и задания на Python могут улучшить навыки решения проблем.

Говорят, что практика ведёт к совершенству. И никто не станет экспертом ни в чём, пока не отработает более 10 000 часов. Это может показаться устрашающим, но не расстраивайтесь. Эти простые игры и задания помогут повысить ваше понимание и уверенность.

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

Вот список из девяти отличных проектов Python для начинающих:

Игра камень, ножницы, бумага

Одна из самых любимых игр всех времён и простой проект на Python для проверки ваших навыков. Начните с игры игрок против компьютера. Используемые навыки: лучшее понимание циклов while и операторов if.

Создайте бота для Twitter

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

Угадай число

Это может быть забавный проект Python для групп или мероприятий, где необходим случайный генератор. Это полезно для проведения лотерей, настольных игр или просто угадывания случайного числа между игроками. Используемые навыки: знакомство со случайной функцией, переменными, целыми числами, печатью, if / else и циклами while.

Генератор MadLibs

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

С генератором Mad Libs вы можете пережить эти весёлые моменты заново. Этот генератор позволяет вам работать над широким спектром навыков Python. Используемые навыки: строки, переменные, конкатенация, печать.

Палач

Подобно генерации случайного числа, эта игра Python заменяет слово там, где пользователь угадывает буквы. Вам также нужно будет создать счётчик, чтобы подсчитать количество угаданных неправильных букв. Используемые навыки: случайная библиотека, логическое значение, ввод / вывод, символ, строка и длина.

Генератор паролей

Создайте генератор случайных паролей для своих друзей и семьи, чтобы обезопасить их учётные записи! Используемые навыки: Случайная библиотека и последовательность.

Роликовые кости

Текстовое приключение

Этот проект Python представляет собой простую игру-квест, в которой пользователь может ходить по разным комнатам и получать описание каждой из них. Вы установите ограничения на то, как далеко ходят персонажи, в их направлении и как отслеживать их местоположение. Используемые навыки: переменные, строки, ввод / вывод, if / else, печать и список.

Секретный шифр

Проекты Python для разработчиков Python среднего уровня

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

Будильник

Создание будильника — отличный способ продемонстрировать свои навыки программирования. Это позволяет вам создать что-то, что будет давать вам конкретное уведомление в назначенное время. Сделайте свой будильник более продвинутым, включив в него музыку или видео.

Крестики-нолики

Пришло время сделать ещё один шаг в разработке игр на Python. Крестики-нолики может быть простой игрой, но её не так легко запрограммировать. Библиотека Pygame полезна для этого типа проектов. Поставляется с модулями, необходимыми для звука и графики.

Генератор статей Википедии

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

Проекты Python для продвинутых разработчиков Python

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

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

Создать MP3-плеер

Пришло время отказаться от компакт-дисков и начать работу над собственным MP3-плеером. Этот проект Python включает создание инструмента для воспроизведения аудиофайлов. Дело в том, чтобы создать пользовательский интерфейс, имитирующий физический музыкальный проигрыватель. После завершения у вас будет MP3-плеер, который будет работать на вашем компьютере или ноутбуке.

Программа викторины

Поднимите свои навыки Python на новый уровень, создав приложение-викторину. Приложения-викторины задают пользователям серию вопросов и дают им возможность ответить. Затем викторина даёт пользователю результаты.

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

Тест на набор текста

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

Начальные проекты Python для науки о данных

Начальные проекты Python для науки о данных

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

Концепции криптографии для начинающих Python

Запирание задних дверей с помощью проектов шифрования Python.

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

Автоматизируйте скучные задачи с помощью проектов Python для начинающих

Экономьте время, автоматизируя задачи с помощью проектов Python.

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

Сэкономьте время, автоматизируя такие вещи, как:

Существует бесплатный сайт под названием Automate the Boring Stuff, где вы можете просматривать эти и другие темы. Вы также можете купить книгу для дальнейшего использования.

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

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

Создаем и запускаем сайт при помощи Flask и Heroku.

Jan 30, 2019 · 8 min read

Время от времени появляются новые языки программирования, а с ними и крупные сообщества поль з ователей. Python существует уже довольно долго, поэтому я могу уверенно сказать, что это не просто язык, а целая религия. Хотите напечатать “hello world”? Легко. Создать приложение для работы с базой данных? Пожалуйста. Создать приложение на основе GUI? Ага. Визуализация? И это есть. Сложные алгоритмы машинного обучения? Python поможет и в этом. В любой задаче программирования Python может вам помочь. Однако в одной сфере Python явно недооценивают. Это back-end разработка. Но вскоре и это изменится. А мы же сделаем первый шаг, чтобы побольше об этом узнать.

Все создают сайты при помощи HTML и CSS, что в этом такого? В этой статье мы создадим сайт, используя Python и Flask. А когда мы сделаем это, то запустим его на веб-серверах Heroku. Так все пользователи Интернета смогут увидеть ,что вы сделали. Также это может пригодиться вам в дальнейших разработках в машинном и глубоком обучении. Готовы? Это может занять немало времени. Поехали.


Шаг 1 — Разбираем Flask

Flask — это микрофреймворк для веб-разработки. “Микро” означает, что он очень простой. С ним не идет никаких заранее устанавливаемых внешних библиотек и инструментов. Обычно Flask используют с MongoDB, что позволяет лучше управлять базами данных и историей. Думаю, для введения достаточно. Ведь на самом деле нам интересно то, как он работает, верно? Давайте перейдем к этому. Но перед этим нам нужно разобраться с одним фундаментальным понятием, касающимся фреймворка Flask, маршрутизацией.

Шаг 2 — Создание простого сайта

Создать простой сайт при помощи Python и Flask станет для вас легкой прогулкой. Вам просто нужно написать 5 строчек кода, и всё.

  1. Сначала импортируем класс Flask из фреймворка Flask.
  2. Создаем переменную, в которой будем хранить экземпляр класса flask, иными словами, ваше приложение Flask. Параметр __name__ определяет название вашего приложения. По умолчанию это __main__ .
  3. Маршрут, как мы уже сказали, это путь или URL, по которому вы можете посмотреть свой сайт. В данном случае он настроен на корневую папку.
  4. Теперь создаем функцию. Она определяет, что будет делать наша страница. Пока просто напечатаем “hello world”.
  5. Запускаем скрипт. Если название вашего приложения __main__ , скрипт сработает, вот и всё. Но если вы вызываете скрипт из другой части кода, наш параметр __name__ из второго пункта использует имя нашего файла, script1 , и следовательно скрипт не сработает.


Всё ещё не разобрались с маршрутами? Следующий фрагмент кода прояснит картину. На всех сайтах есть страница О нас, верно? Давайте и на нашем создадим такую же. У нас есть 2 разных маршрута для 2 разных страниц.


Шаг 3 — HTML и CSS

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

Теперь мы хотим, чтобы программа возвращала не простой текст, а конкретные html-страницы, которые мы создали. Для этого нужно импортировать ещё один класс, render_template. Тогда наша функция должна возвращать render_template("file.html") , чтобы мы видели конкретную html-страницу по этому маршруту.

Для HTML — все файлы .html, которые вы вызываете, должны содержаться в папке под названием templates в вашей рабочей папке.

Для CSS — вам нужно создать папку static и добавить в нее папку css , а уже потом добавить в неё ваши файлы .css.




Поздравляю, у вас есть всё, чтобы достичь вашей цели. Мы создали сайт, и он отлично работает на удалённом сервере. Следовательно, пора делать следующий шаг. Ваш сайт станет виден всему Интернету. Для этого мы запустим его в облаке. Использовать будем облако Heroku, в нем можно бесплатно запустить приложения Python. Но сначала давайте настроим виртуальную среду в нашей системе.

Шаг 4 — Настройка виртуальной среды

Вы, должно быть думаете, что это за виртуальная среда такая, да? Я тоже так думал. Но не переживайте, я всё объясню. Виртуальная среда поможет нам отделить нашу среду разработки и установки пакетов от остальной системы. То есть, всё, что мы установим в виртуальной среде, не повлияет на реальную систему. Очень удобно, ага. Давайте же настроим её.

  1. Установим virtualenv , прописав в терминале pip install virtualenv .

2. Перейдите на тот же уровень, где находится ваша корневая папка и напишите virtualenv -p python3 virtual , чтобы создать виртуальную среду (посмотрите на иерархию ниже, если вы ещё не разобрались, в моем случае корневая папка — App4 ).

3. Для активации виртуальной среды, выполните source virtual/bin/activate , а для деактивации просто напишите deactivate .



Шаг 5 — Запуск сайта на реальном сервере

Так, давайте вернемся в нашему сайту. Запустить сайт на Python не так просто, как c HTML и PHP файлами, когда мы перетаскиваем и загружаем файлы при помощи FTP-клиента. Нам нужно делать всё по порядку, будьте терпеливы и внимательно выполняйте каждый шаг.

Шаг 5.1 — Создаем аккаунт Heroku

Создайте аккаунт на Heroku, перейдя по этой ссылке.

Шаг 5.2 — Устанавливаем необходимый инструменты

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

Если вы устанавливаете git в первый раз, возможно, вам захочется установить своё имя и e-mail адрес, написав это:

Далее следует Heroku CLI , это такой собственный git для Heroku. Для установки:

Отлично. Теперь у нас есть всё, что нужно. Поехали дальше.

Шаг 5.3 — Настройка Heroku через командную строку

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



Шаг 5.4 — Создаем необходимые файлы (всего 3)

1. requirements.txt — Содержит список зависимостей (библиотек), которые Heroku должен установить, чтобы наше приложение работало правильно. Для этого, переходим в виртуальную среду, которую мы создали ранее, с помощью pip устанавливаем gunicorn . Это веб-сервер Python. После этого напишите pip list , чтобы увидеть список зависимостей, а потом pip list > requirements.txt , чтобы создать текстовый файл с этим списком. Это нам и нужно. Вы можете найти файл в вашей папке, переместите его туда, где находится наш файл Python.


Важное примечание — Пожалуйста, удостоверьтесь, что ваш файл requirements выглядит, как представленный ниже. Иначе Heroku не примет его и выдаст ошибку. Отредактируйте файл, чтобы он выглядел так.


2. Procfile — У этого файла нет расширения. Он содержит имя сервера и название приложения. Создайте файл, назовите его Procfile и напишите в нем следующее:

Здесь, gunicorn — это используемый сервер. mainscript — это название файла Python, app — это название приложения, которое мы придумали при создании экземпляра класса flask (смотри фрагмент кода в шаге 2). Если ваши названия отличаются, измените их.

3. runtime.txt — Содержит информацию о версии Python, которую вы хотите использовать. В этом файле напишите:

Я использую Python 3.x, поэтому я использовал эту среду. Если вы используете Python 2.x, укажите python-2.7.15 вместо этого. Отлично, все готово. Теперь нам нужно просто всё загрузить.


Шаг 5.5 — Загрузка всего необходимого

Отлично. Чтобы не объяснять всё по отдельности, к каждой строке дам комментарий. Каждую строку нужно выполнять отдельно.


Какое должно быть образование?

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

Когда цель соискателя — получить работу разработчика Python в сфере Data Science, пригодятся хорошие знания математики, опыт выступления на конференциях, магистерская степень либо аспирантура, а также наличие авторских научно-технических публикаций.

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

Чтобы получить работу, нужен опыт, чтобы получить опыт, нужна работа

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

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

— будьте готовы опубликовать свои проекты на GitHub или на личном сайте-портфолио;

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

Важно помнить, что дополнительные проекты не только выделят вас из толпы соискателей, но и позволят дополнительно прокачать собственные навыки разработки на Python.


Какие soft skills особенно важны?

При работе на реальном проекте программисту Python недостаточно иметь необходимые технические навыки и уметь решать поставленные задачи. Не менее важны различные социальные и личностные качества:

— умение коммуницировать с людьми;

— умение работать в команде;

— стремление к профессиональному росту;

— повышенное чувство ответственности;

— умение управлять своим рабочим временем.

Все это — базовые soft skills, необходимые почти на любой должности в сфере IT.

Если речь идет о кандидате без опыта, претендующего на позицию джуниора, то тут можно сделать акцент на следующих навыках:

— умение быстро осваивать много нового материала, способность учиться;

— умение вникать в суть поставленных задач;

— умение быстро схватывать, что от тебя хотят;

— отсутствие страха перед рутинными задачами.

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

— будущие задачи, проекты, продукты;

— особенности компании, ее корпоративную культуру;

— условия работы и т. п.

Выберите, что для вас действительно важно. Неплохие ответы звучат так:

Какие технические навыки нужны?

Самое главное — это знание языка программирования Python и умение писать на нем код. Порой требуются разработчики (developers), которые имеют базовые навыки программирования и на других языках: C++, Java, Golang и т. п.

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

— уметь работать с базами данных;

— знать фреймворки (хотя бы общее понимание должно присутствовать);

— понимать принципы асинхронного и многопоточного программирования;

— уметь работать в командной строке, иметь начальные навыки системного администрирования (простейшие команды в Linux не должны вас пугать).

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

Иногда разработчика Python ищут под задачи Machine learning. Когда речь идет об отборе Data Science-специалиста, дополнительно проверяются знания алгоритмов машинного обучения. Соискатель должен уметь их применять, идеально, если он участвовал в хакатонах или Kaggle-соревнованиях по Python. Не обойтись и без математики: не должны вызывать затруднений ни теория вероятности, ни линейная алгебра, ни математический анализ.

Что повторить?

Ниже представлен краткий список того, что нужно повторить перед собеседованием:

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

Примеры вакансий разработчиков на Python можно посмотреть на Jobsora.

Читайте также: