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

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

Доброго времени суток.
Решился вести блог по Python, возможно кому-то в дальнейшем это поможет, а мне это даст дополнительный пинок в изучении.
Хочу сказать спасибо MilesDave с этого же форума за позитив и мотивацию) Ссылку на его блог прикрепляю:
[Start to web] Начинаю изучать веб программирование
В сети гуляет большое количество курсов, на этом форуме также. Но вот с которых стоит начать?
Я скачал почти все курсы по Python здесь, купил некоторые на других площадках и сделал выводы:
лучший курс для старта оказался этот:
[TeachMeSkills] Python разработчик (2021) - Форум Openssource - Платное теперь бесплатно! Скачать курсы, тренинги, книги, обучения (ex s2.openssource.cc)
Почему я в этом могу быть уверен? За плечами месяцев 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 информации в них.
 

Последнее редактирование:




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

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

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

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

Премиум
Регистрация
22 Апр 2022
Сообщения
21
Реакции
26
Добавил к знаниям ООП, работу с файлами, 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
 

Премиум
Регистрация
22 Апр 2022
Сообщения
21
Реакции
26
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
 

Премиум
Регистрация
22 Апр 2022
Сообщения
21
Реакции
26

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
 

Премиум
Регистрация
22 Апр 2022
Сообщения
21
Реакции
26
По 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")
 

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

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

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

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

Последнее редактирование:
Сверху