Блог [Start to Python] или Python с нуля

Alex250

Премиум
Регистрация
22 Апр 2022
Сообщения
27
Реакции
51
Roadmap-dlya-Python-razrabotchika.jpeg

Доброго времени суток.
Решился вести блог по Python, возможно кому-то в дальнейшем это поможет, а мне это даст дополнительный пинок в изучении.
Хочу сказать спасибо MilesDave с этого же форума за позитив и мотивацию) Ссылку на его блог прикрепляю:
[Start to web] Начинаю изучать веб программирование
В сети гуляет большое количество курсов, на этом форуме также. Но вот с которых стоит начать?
Я скачал почти все курсы по Python здесь, купил некоторые на других площадках и сделал выводы:
лучший курс для старта оказался этот:
[TeachMeSkills] Python разработчик (2021) - Форум Openssource - Платное теперь бесплатно! Скачать курсы, тренинги, книги, обучения (ex s1.piratehub.biz)
Почему я в этом могу быть уверен? За плечами месяцев 9 изучения Java, пройдено 2 курса по дневной форме и 2 самостоятельно, это конечно в дальнейшем помогает более быстро изучать Python, но есть и свои минусы. В дополнение к этому курсу настоятельно рекомендую скачать или преобрести в печатном варианте эту книгу. В ней также есть задачи после каждой главы, очень подробно и без лишних слов преподносится материал (кстати, встречал интересные варианты решения задач, которых нет в видеоуроках).

UPD_1. Указанный выше курс оказался неплох только по чистому Python. В нем не оказались все лекции + Django пройден поверхностно и как-то грустно. Советую в этом курсе изучать темы только до Django. Именно эти лекции в нем неплохие.

h1001_w1001_uK9yQarkNs1TDmuT3Awl.jpg


UPD_2. Второй курс, который я начал проходить был только по Django. Вот ссылка на него:
[Илья Фофанов] Бэкенд разработка на Django: с нуля до специалиста (2022)
Разница с предыдущим колосальна. Тут раскрывают практически все нюансы, которые необходимы в разработке сайта, а также вся информация структурированная и не скомкона. Присутствуют Базовый и Продвинутый курсы. Придется попотеть, информации будет намного больше и к тому же здесь прочувствуете всю прелесть ООП. Практически прошел курс, осталочь только две завершающие темы и сяду писать пет-проект. Взял за основу крупный онлайн магазин, где есть авторизация, вход из соц сетей, оплата товара, корзина, каталог товара, отзывы, комментарии, сортировка по категориям, новости и свой блог. Основное, что я вспомнил. Второй пет проект - хочу написать бот в телеграмм. Третий - парсер. Но это пока только в планах. Для теории выбрал эту книгу по Django. Очень мало хорошей теории на русском языке, на мой взгляд книга неплохая, но ее надо читать после указанного выше курса. Почему-то не хочет вставлять картинка, напишу название:

Django 3.0. Практика создания веб-сайтов на Python | Дронов В. А.​


UPD_3. Кто работает на Ubuntu, у тех могут возникнуть проблемы с паролем на PostgreSQL. Решение нашел по этой ссылке на ютубе, читает индус наверное, но мне помогло. Смог поменять нормально пароль и польлзоваться базой данных.
На индуса

А сейчас немного копипаста)

Python Developer — это IT-специалист, который создает программное обеспечение, используя в качестве основного инструмента разработки лаконичный язык программирования Python (читается как “пайтон”). Также, в ходе работы он активно применяет вспомогательные технологии, такие как библиотеки и фреймворки — они позволяют упростить разработку сложных проектов и сделать сам процесс кодинга удобным и более результативным.

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

  • разработка серверной стороны веб-приложений (BackEnd);
  • написание скриптов для задач системного администрирования и DevOps инженерии;
  • скрипты для компьютерных игр;
  • автоматизированное тестирование;
  • Big Data, Data Science, анализ данных, машинное и глубокое обучение;
  • десктопные и мобильные приложения;
  • встраиваемые системы;
  • другие сферы.
Если Вы пройдете данный курс и изучите книгу (а это поверьте не тяжело, но требует усидчивости), то на этой карте развития Вы пройдете все стикеры, мало нашел только по Flask информации в них.
 

Последнее редактирование:
За 7 дней изучения языка разобрался в:
-данные, типы, значения, переменные и имена
-числа
-оператор if
-работа со строками
-циклы while и for
-кортежи и списки
-словари и множества
-функции
и дошел до самого интересного: Объекты и классы.
Git опустил, я его знаю с предыдущих курсов. В видеоуроке он разобран только в консоли, в PyCharm препод запутался, поэтому рекомендую посмотреть отдельные уроки по нему, например этот:
[HTML Academy] Git и GitHub (2022) - Форум Openssource - Платное теперь бесплатно! Скачать курсы, тренинги, книги, обучения (ex s1.piratehub.biz)

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

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

привет, а как вы мышление прокачивали? актуально для любого ЯП. Я выбирал Шарп, ещё не начал обучаться. О чем я: выучил основы языка, придумал написать парсер или бот, а как в голове разбирать на подзачади и потом соединить в проект, понимания нет. И так же нет понимания, как при помощи циклов, функций и др. базы языка написать проект.
Добрый день. Всё только через практику в решении задач. Чем больше время потратите на это - тем проще будет Вам в дальнейшем.
Старайтесь браться за тяжелые и сидеть разбираться в них самостоятельно, без поиска решений, а прокачивать теорию. По началу было и такое, что рисовал блок схемы на листе что и как должно работать (первые крупные программы садился писать и мягко выражаясь запутывался посреди процесса). Оно как снежный ком, что-то добавляешь и как итог ломаешь код или делаешь предыдущую работу бесполезной тратой времени.
Любой проект состоит из типовых задач, которые надо решить. Разбейте его на подзадачи и начинайте писать код для решения каждой. Вот уже при решении малых задач Вы начнете применять циклы, функции и прочие конструкции.
Если тяжело пока самому прийти к алгоритму - в сети как пример есть алгоритмы написания ботов на c#. Гляньте их и главное не останавливайтесь, а пробуйте и читайте, читайте...
 

Добавил к знаниям ООП, работу с файлами, JSON, CSV, аннотации, обработку ошибок, миксины, модули, интерфейсы, абстрактные классы и чуток еще всякого.
Из указанного выше видеоурока не зашли пару моментов:
-функции map(), filter(), reduce().
-JSON.
По последнему вообще информации почти не было, но в дальнейшем он пригодится.

Обо всем по чуть-чуть.

MAP

Возвращаемое значение:​

  • map object - объект итератора.

Описание:​

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

MAP1.png
MAP2.png
MAP3.png
MAP4.png
 

FILTER

Возвращаемое значение:​

  • filter object - отфильтрованная последовательность.

Описание:​

Функция filter() отбирает/фильтрует элементы переданного объекта iterable при помощи пользовательской функции func.
Функция filter() принимает в качестве аргументов пользовательскую функцию и объект, элементы которого следует отфильтровать (может быть последовательностью или объектом поддерживающий итерирование).
  • Если фильтрующая функция func вернёт False, то элемент последовательности iterable не попадёт в результат выполнения функции filter().
  • Если фильтрующая функция func вернет None, то считается что требуется применить тождественное действие (item for item in iterable if item), таким образом все элементы, оцениваемые как False будут отфильтрованы.
SNIMOK-EKRANA-2023-01-04-172342.png
SNIMOK-EKRANA-2023-01-04-172322.png
 

Reduce

Возвращаемое значение:​

  • требуемое единственное значение.

Описание:​

Функция reduce() модуля functools кумулятивно применяет функцию function к элементам итерируемой iterable последовательности, сводя её к единственному значению.
function это это функция которую требуется применить к элементам последовательности. Должна принимать два аргумента, где первый аргумент - аккумулированное ранее значение, а второй аргумент следующий элемент последовательности.
iterable представляет собой последовательность, элементы которой требуется свести к единственному значению. Если последовательность пуста и не задан аргумент initializer, то возбуждается исключение TypeError.
Например reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) вычисляет ((((1 + 2) +3) +4) +5). Левый аргумент x - это накопленное значение, а правый аргумент y - это следующий элемент iterable.
SNIMOK-EKRANA-2023-01-04-175417.png
 

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

Создать матрицу случайных чисел и сохранить ее в json файл. После прочесть ее, обнулить все четные элементы и сохранить в другой файл

from random import randint
import json


def matrix_writer(files, n, m):
a = []
b = {}
for i in range(m):
a.append([0] * n)
for i in range(0, m):
for j in range(0, n):
a[j] = randint(0, 20)
for i in range(0, m):
b = a
with open(files, "w") as file:
data = json.dumps(b)
file.write(data)


def writer2(file1):
with open(file1, "r") as file:
print(file.read())


def obnulit(file, file2):
with open(file, "r") as f:
data = json.loads(f.read())

with open(file2, "w") as file3:
data2 = dict(data)
for i, j in data2.items():
if int(i) % 2 == 0:
a = json.dumps({"0": "0"})
else:
a = json.dumps({i: j})
file3.write(a)


matrix_writer("D:\work.json", 10, 5)
writer2("D:\work.json")
obnulit("D:\work.json", "D:\work1.json")
 

Мимолетно пролетели базы данных и основы веба. Позади 4 занятия по Django и можно делать небольшие выводы.
1) Учитесь работать в Ubuntu, кто еще ею не владеет. У кого Windows - не беда. Ставите виртуальную машину и накатываете Ubuntu со всеми вытекающими. В сети дофига полезной информации, сам пользуюсь VMware Workstation PRO.
Git - тоже рассмотрите команды в консоли, это быстрее, удобнее и практичнее. От консоли вы никуда не уйдете.
2) Django, теория. Прикреплю ссылку на сторонний ресурс, сайт полезный, там только туториалы на различные ЯП и фреймворки. Когда-то там же подсматривал теорию по Java, потом иногда по Python, сейчас по Django. Надеюсь модераторы не будут против ссылки. Информации хорошей в сети мало - а эта сможет кому-то пригодиться. Там сухая теория и парочка примеров между строк. ссылка
3) Django, практика. Подсказали неплохой сайт, где подробно описан механизм создания простого сайта. Этот алгоритм и команды будут встречаться постоянно, обязательно к ознакомлению. ссылка
Чуть позже дополню этот коммент, мало информации в сети по методам, придется читать документацию.
 

В итоге решил изменить первый пост в этом блоге. Всё, что изменил, выделил красным цветом.
Указал решение с паролем на PostgreSQL на Ubuntu, доп книгу по Django, и курс только бэкэнду на нем. Курс хороший, но после него нужна практика, поэтому ориентировочно 25.01.23 сажусь за пет-проект с книгой.
Касаемо затраченного времени:
Python к Django примерно как 1 к 2.
Рассчитывайте, что понадобится в два раза больше времени чтобы в нем разобраться.
 

Последнее редактирование:
Посчитал, где-то ушел месяц на все это, сидя по Over много часов в день (в районе 6 часов каждый день за видео и книгами).
 

Ориентировочно через неделю будет полное завершение пет-проекта.Из нового понимания:
-Django выучить по видеоурокам труднее, т.к. рассматриваются только частные случаи. Шаг вправо, влево и опять надо идти гуглить.
-Пока у меня в топе указанная выше книга по Django + гугл.
В книге очень подробно всё рассказано с примерами, можно учить по ней.
Садился писать проект под готовый скачанный шаблон (не хотелось с ним возиться). Как итог - неделя перебора шаблонов, все они не те как хотелось изначально. Плюнул, начал писать полностью всё с нуля с вёрсткой, HTML не такой тяжелый, как казалось первоначально. Многие сайты даже предлагают готовый формы HTML вместе с редактором кода, очень удобно, в учёбе помогает.
Пока больше всего нравится этот сайт с формами www.schoolsw3.com
 

Закончил написание проекта. Весь бэкенд и основа фронтенда написаны, но решил до конца недели навести еще красоту визуальную в нем + почитать книгу. Попутно bootstrap еще начнете понимать немного из примеров (как по мне - очень крутой инстумент).
Вердикт - книга по Django, что указвывал выше, - качественная и полезная. Но в ней нет некоторых фич, что есть в курсе Фофанова (тоже есть ссылка в этом блоге). А именно таких, как размещение на сервере, подключение оплаты, перенос базы данных и еще немного. К 1 марта нужно всё это пройти и закрыть пробелы и неясности. Попутно начну писать второй проект, хочу там применить новые знания от Фофанова. В далекой перспетиве разобраться с Flask и поиграть с парсерами и чат-ботами. А может и не в далекой).
 

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

Давно не писал.
В дополнение изучил Selenium, BeautifulSoup, сейчас изучаю асинхронность, попутно алгоритмы подтягиваю.
P. S. Немощным и обделенным умом просьба не писать, не засоряйте тему.
 

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

Давно не писал.
В дополнение изучил Selenium, BeautifulSoup, сейчас изучаю асинхронность, попутно алгоритмы подтягиваю.
P. S. Немощным и обделенным умом просьба не писать, не засоряйте тему.
по Питону значит все получилось или хотя бы осилили основы и берут на работу, очень круто.
что примерно изучили, какое направление выбрали? Это будет 1я работа и какую зп вилку предлагают вам и прочее?
 

по Питону значит все получилось или хотя бы осилили основы и берут на работу, очень круто.
что примерно изучили, какое направление выбрали? Это будет 1я работа и какую зп вилку предлагают вам и прочее?
Вообще получил приглашение на работу, но из-за специфики своего дела, не буду устраиваться сейчас и не буду больше откликаться.
Поменялись планы и нужно ехать открывать второй офис в другую страну.
По вилке, на которую пригласили: 100к-140к. До этого каждодневное изучение по 5-9 часов в день, начиная где-то с декабря 2022.
Направление: бэкэнд на Django + DRF. Дополнительно требовали знание PostgreSQL, Python, Celery, Redis, Linux.
Откликов сделал где-то 90, но делал только подходящие для меня, готов был на релокацию, не спамил во всем вакансиям. Основной критерий - удаленная работа. Как начал откликаться на вакансии решил прокачаться еще с aiogram и mongoDB. Последняя очень зашла, да и как дополнительный опыт нереляционных БД будет плюсом. Эту сферу не забрасываю, пока занимаюсь делами и налаживаю все процессы, решил прокачаться до мидла и заходить второй раз уже мидлом + vue.js выучить надо для фулл стака. В свободное время буду прокачиваться на фриланс проектах, после этого пойду устраиваться сразу на европейский рынок (параллельно инглиш на B2 надо прокачать). Чуть не забыл, сейчас в процессе изучения асинхронность. До общей кучи надо бы еще FastAPI, но точно не Flask)
P.S. Подтягиваю алгоритмы, они тоже нужны. Да и вообще, у меня личка открыта чуть что)
 

по Питону значит все получилось или хотя бы осилили основы и берут на работу, очень круто.
что примерно изучили, какое направление выбрали? Это будет 1я работа и какую зп вилку предлагают вам и прочее?
Изучил Python, Django, DRF, PostgreSQL, MongoDB, Redis, Linux, Docker, NQINX, Gunicorn, celery, aiogram, Selenium, BeautifulSoup. Вроде бы основное перечислил, пишу проект сейчас на openCV.
 

Вообще получил приглашение на работу, но из-за специфики своего дела, не буду устраиваться сейчас и не буду больше откликаться.
Поменялись планы и нужно ехать открывать второй офис в другую страну.
у вас бизнес или прочее не связанное с разработкой направление? так понимаю вы в пассивном поиске - собеседуетесь чтоб протестить сколько дадут + выявить требования и прочее.
По вилке, на которую пригласили: 100к-140к. До этого каждодневное изучение по 5-9 часов в день, начиная где-то с декабря 2022
вы конечно прилично трудились, видно из-за работы на себя было на это время. Удивило сначала что за такой короткий период в 4-5 мес. уже такие приличные деньги дают. Потом смотрю 5-9 часов ежедневно. Можно говорить, разделив время для др. человека, который изучает вне работы/учебы, что вы больше года изучаете.
Направление: бэкэнд на Django + DRF.
по каким критериям? без понятие что такое ДРФ.
P.S. Подтягиваю алгоритмы, они тоже нужны. Да и вообще, у меня личка открыта чуть что)
благодарю за столько подробные ответы + открытость, я пока пасс в изучении. Кризис. И не стоит на разработку. Думал ещё в мае прошлого года, когда понял что неоднократно выгораю на своей работе, надо попробовать C#. Не хватило энергии начать +не излечился думаю от выгорания. Продолжу в маркетинге трудится.
Вам виднее и только вы знаете как лучше. Вижу сильно заряжены на результат и движетесь к нему, по хорошему завидую что и энергии и мотивации хватает. Возможно правильней будет пойти на эту высокую зп (100-140т) и расти работая над реальным проектов к мидловой должности.
Сильно сомневаюсь что указанная зп это для джуна (140т максимум, это примерно по вашему рублевому курсу 2к долларов, очень хорошо для новичка)
Поделитесь как англ.изучаете: метода, курс(ы), приложения, прочее. Мне и по своей стези очень нужно, из-за этого много отказывают.
 

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

вспоминаю историю товарища и Питона. Он разработчик был на экзотическом языке Ирланг, проработал 11-12 мес. в компании, получал меньше 1к. Потом уволили, что-то не понравилось. Он оценил ситуацию, что вакансий крайне мало по экзотическому серверному языку и стал пробовать Яву и Питон. От Явы отказался (наверное ввиду огромного кода, а это время).
Фокус на Питоне: пол дня англ., пол дня язык. Параллельно смотрел вакансии новичкам и офигевал от дичайшего демпинга (то ли в большинстве вакансий было то ли в попадавшехся ему резюме) 400-600 долл.

Но из-за опыта сравнивал его с Ирлангом и ему какие-то моменты не нравились. Дальше не имеет смысла рассказывать что было.
Судьба повернула так, что узнал о курсах при компании (или компания ему сама предложила) пройти по Эликсиру (базируется на Ирланге, для меня это как С и С++, сильно похожи). Он прошёл успешно, было 10 или 12 человек и их 2е дошло и успешно сдало курсовую. В результате уже не в той компании но трудится по Эликсиру. Когда спрашивал о зп в том году, было 2.5к весной. Говорил раз в 6 мес пересмотр. Думаю 3к точно уже.

Как бы вспомнилось, прошу прощения за многобуков и флуда не в тему.
 

Назад
Сверху