Простой и красивый синтаксис, множество библиотек под самые разные задачи и большое комьюнити делают Python одним из самых популярных языков программирования на сегодняшний день, который активно используется в data science и машинном обучении, веб-разработке и прочих областях.
Когда я начал изучать питон, у меня возникло несколько вопросов:
какие темы необходимо изучить;
насколько это будет сложно;
сколько это займёт времени;
где найти хорошие источники информации?
Вкратце, на мой взгляд, необходимо знать следующие темы:
стандартные типы данных;
условия;
циклы;
функции;
основы алгоритмов;
объектно-ориентированное программирование (ООП);
конкурентность;
тестирование кода;
полезные библиотеки типа itertools, collections и тому подобное.
Если вы прежде не занимались программированием, то поначалу будет сложновато, но потом мозги «настроятся» в нужное русло и будет норм.
На этом преамбула окончена и переходим непосредственно к плану обучения.
Основы Python (3 месяца)
Советую начать с прочтения книги Билла Любановича «Простой Python. Современный стиль программирования» (второе издание) чтобы иметь представление о том, что такое программирование и как выглядит код на Python.
Далее переходим к курсам на платформе Stepik:
Очень хорошие курсы с морем задач, которые вас познакомят с основными типами данных, условиями, циклами, функциями и работой с файлами.
После рекомендую посмотреть плейлист декораторы канала luchanos и для практики пройти на Stepik «Декораторы в Python»: часть 1 и часть 2.
Введение в алгоритмы (2 недели)
Вообще, о том, как шатать leetcode и проходить алгоритмические фиды на собесах, следует написать отдельную статью, поэтому пока обойдемся основами основ и здесь на сцену вступает небезызвестная книга Адитьи Бхаргавы «Грокаем алгоритмы».
У автора получилось сделать очень дружелюбное к новичкам пособие по классическим алгоритмам – однозначно рекомендасьон.
Объектно-ориентированное программирование (3 недели)
Рекомендую плейлист Python OOP канала JimShapedCoding и курс Олега Молчанова по ООП – лучшее объяснение из всех, что я видел (курс как бы платный, но интернет – такая вещь, что….ну вы поняли).
Отсюда вы узнаете как устроена объектная модель в Python, парадигмы ООП, как и зачем применять дескрипторы, и многое другое.
Также параллельно с курсами было бы хорошо углубляться в пройденные темы и здесь мне понравилась книга «Object-oriented Python», Irv Kalb.
В отличие от курсов, в ней также уделяется внимание магическим методам и некоторым другим аспектам. Писать игры необязательно, как это делается в книге, но ознакомиться с ней стоит.
Для практики подойдет codewars. Когда получится решать 4-5 кату по ООП, то можно двигаться дальше.
Конкурентность (2 недели)
По основам многопроцессорности и многопоточности советую плейлист канала luchanos Конкурентность в Python.
По асинхронному программированию однозначно плейлист Олега Молчанова Асинхронность в Python и плейлист import asyncio: Learn Python’s Asyncio канала EdgeDB.
Для углубления переходим к книге Мэттью Флауэра «Asyncio и конкурентное программирование на Python».
Отсюда вы узнаете о выполнении конкурентных запросов к базам данных, сочетании многопоточной обработки с asyncio, управлении подпроцессами и многом другом.
Тестирование кода (1 неделя)
Уметь покрывать свой код тестами хотя бы на базовом уровне – точно не будет лишним и поэтому я предлагаю начать с просмотра плейлиста Pytest тестирование канала luchanos.
Для углубленного изучения есть неплохая книга «Python Testing with pytest» (second edition), Brian Okken, с которой стоит ознакомиться.
Больше продвинутых тем (3 недели)
В принципе, может показаться, что всего вышеперечисленного уже достаточно, но, на мой взгляд, для лучшего понимания как устроены функции и классы, как работает сборщик мусора, в чем отличие итераторов от генераторов, в каком случае лучше использовать асинхронность, а в каком многопоточность, как пользоваться библиотеками типа itertools, collections и т.д., еще необходимо немного углубиться, и в этом нам помогут 2 книги:
-
«Python – к вершинам мастерства» (второе издание), Лусиану Рамальо.
-
«Dead simple Python», Jason C. Mcdonald.
Книги плюс-минус об одном и том же, однако в последней некоторые темы рассматриваются на немного более поверхностном уровне. За счёт этого она читается легче.
Какую из них выбрать? Трудно ответить: лучше читать наиболее непонятные темы из обеих книг.
Best practices (1 неделя и больше)
После того, как вы уже научитесь немного писать код, неплохо бы научиться писать его красиво и в этом нам поможет книга «Effective Python. 90 specific ways to write Python better» (second edition), Brett Slatkin.
Солянка из лучших практик, показывающая как сделать код более лаконичным и эффективным с «питоновской» точки зрения.
Дополнительные источники
Ещё несколько полезных ссылок для изучения Python:
Хендбук по Python – небольшой курс по питону от Яндекса;
Курс по Python от Google;
Python tutorials – еще один неплохой курс по питону;
Инди-курс программирования на Python – курс от Артёма Егорова;
Добрый, добрый Python – обучающий курс от Сергея Балакирева;
Документация по Python;
Что в итоге
Занимаясь по 10 часов в день, на изучение всех вышеперечисленных тем уйдёт около полугода – это цифры из собственного опыта, так что можно их брать в качестве ориентира.
Что дальше
Дальше можно смело двигаться в выбранное вами направление: будь то веб-разработка с Django и Flask или же машинное обучение с Numpy, Pandas, Pytorch и другими прелестями жизни – полученных знаний хватит за глаза.
Надеюсь, данный гайд оказался для вас полезным.
Всем успехов!
Комментарии (64)
Alexrook
04.01.2023 20:02+22Статья ни о чем. Никакого плана не увидел, тем более подробного. А список топовых книжек по пайтону можно найти и в гугле за пару секунд.
EGA_production Автор
04.01.2023 20:05-41Сходите к офтальмологу, может, он вам поможет)
Alexrook
04.01.2023 20:12+19А зачем мне куда-то ходить? Просто тупо список книг и чужих курсов или плейлистов. Таких «планов» в сети хоть одним местом жуй. Ладно, если бы в названии статьи не было слова «подробный», еще куда не шло. Но вот это назвать подробным планом? ) Извините.
RealBeria
04.01.2023 20:18-3в последнее время на хабре токсичность читателей просто зашкаливает ... добрее надо быть ... нам всем
Alexrook
04.01.2023 20:24+17Просто высказал свое мнение. С каких пор высказывание своего мнения запрещено? Токсичность - это когда за мнение сразу прилетает минус от автора, вместо того, чтобы немного подумать и осознать, что тут представлен не подробный план, а нечто другое.
Как минимум в моем понимании минимально подробный план должен выглядеть вот так: https://roadmap.sh/python
Как примечание уже можно дать источники информации. Тут. же упор сделан на источники информации, а как такового плана, еще раз замечу, подробного, нет.
RealBeria
04.01.2023 21:26-8Кто и где Вам запрещал высказывать свое мнение? А минусы как раз Вы хорошо и обильно расставляете на любую реплику, которая не в унисон с Вашим виденьем.
Alexrook
04.01.2023 22:17+8Если бы вы были внимательнее, то увидели бы, что я даже не имею возможности расставлять какие-либо минусы в принципе. У меня никогда не было достаточной кармы для этого.
Я вообще против этой политики Хабра - затыкать неугодных. При этом решения принимают ни модераторы, а просто какие-то … с горы. Я просто не вижу смысла в минусовании человека, пока он не оскорбил тебя или написал что-то в принципе недопустимое с моральной точки зрения. Никогда не был против чужих мнений, если они аргументированы, а не в стиле - сам дурак. Так что минусование - это не про меня с любой точки зрения. Вы меня с кем-то перепутали.
Alexrook
04.01.2023 22:45+2OK, спасибо еще за один минус ))) И этот человек рассуждает про токсичность… давайте, ставьте еще!
RealBeria
05.01.2023 09:37+2я к сожалению не могу даже плюс поставить (высказался положительно о белорусском производстве ноутов, слили карму в минус). так что тут мы с Вами в одной упряжке получается. Была у меня одна просьба к Деду Морозу, что бы в новогоднюю ночь всем хабровчанам вернулись в их карму + и - , которые они ставили другим. хотя бы на один день. это было бы наглядно, и может быть кто нибудь задумался. Дед, как уже видно, проигнорил просьбу.
Flux
05.01.2023 00:09+6В последнее время любую критику стало модно называть токсичностью и делать вид что это что-то нежелательное.
Впрочем, даже если запретить критиковать низкосортный контент он от этого низкосортным контентом быть не перестанет,какие бы хайповые титулы себе не приписывал его авторпросто потеряется обратная связь и ресурс завалят низкокачественным конте~~ oh, wait..
dopusteam
05.01.2023 08:59+9Вы посмотрите комментарий первый и ответ автора и найдите где токсичность
EGA_production Автор
04.01.2023 20:35-9Извиняю, однако не могу понять что именно вы подразумеваете под планом обучения и почему набор шагов в определенной последовательности с прикрепленными источниками им не является? Я приветствую дискуссию по делу, но в ваших словах нет никакой конкретики и кроме токсичности я ничего не вижу. В любом случае с высоты своего опыта вы всегда можете нам продемонстрировать как нужно делать правильно). Будьте здоровы.
Alexrook
04.01.2023 20:56+5Я ожидал увидеть план, специфичный именно для Python. А в результате очень общий план, я бы даже сказал очень короткий список, который можно без изменений перенести на любой другой язык.
Ну вот одна строчка есть, которая касается библиотек:
полезные библиотеки типа itertools, collections и тому подобное
Далее идут источники с кратким отзывом вперемешку с какими-то дополнениями. Ну слишком громкое название у статьи, учитывая содержание.
saboteur_kiev
06.01.2023 23:54+2Нет.
Самое полезное в данной статье это "Занимался по 10 часов каждый день в течение полугода".
spbru
06.01.2023 14:10Есть тактика и стратегия. В данной статье я вижу стратегический план. Подробная тактика на 6 месяцев по 10 часов - это гигантский объем материала который будет цитированием различных курсов и книг и сам по своей сути будет являться неким курсом. Странно такое ожидать статьи на Хабре.
serchkv
07.01.2023 11:29+1Поддержу автора. Мне, как начинающему питонисту, эта статья кажется полезной - она даёт структуру обучения, которая для неопытного может показаться не очевидной.
Ваша позиция мне не близка. Вы критикует, выставляя какие-то требования, при этом сами не одной статьи не написали. И даже если бы написали, то почему вы думаете, что можете выступать в роли судьи. Не нужно самоутверждаться за счёт критики других людей - это ущербная позиция.
Мнение вы можете высказывать, например, в ключе чего бы вам ещё хотелось видеть в этой статье. А ваш стиль как раз и является токсичным. В работе в команде вы скорее также будете высказывать свое мнение, а с такими работать никто не любит.
Автору респект.
EGA_production Автор
07.01.2023 11:37Вам также большой респект за поддержку. Я тоже не понимаю что плохого в том, чтобы помогать начинающим, экономя время и силы на поиск полезной инфы? Хабр же не только для сеньоров. В хороших компаниях всегда есть поведенческое интервью, где сразу пытаются отсеивать токсиков.
Lord_of_Rings
04.01.2023 20:54-1Я бы посоветовал начать изучать python с Марка Лутца, а не с Любановича
alexdesyatnik
05.01.2023 21:53+2Это чтобы на Лутце же и закончить? Он абсолютно непригоден ни для чего. Слишком много информации для новичков, а для профи есть куда более лучшие справочники (та же оригинальная документация в 90% всё покрывает, и при этом не устаревает, в отличие от).
DollyPapper
07.01.2023 13:40+1Я бы даже сказал не информации а воды. Для новичков не подходит, потому что можно захлебнуться, а бывалые и так все это знают (я надеюсь). Для матерых лучше почитайте "Python к вершинам мастерства".
Brogahnl
07.01.2023 13:40Слишком много информации для новичков
А подробнее?
alexdesyatnik
07.01.2023 14:13Извините, детали я уже не помню, последний раз брал его в руки лет 5-6 назад, как раз кто-то просил посоветовать учебник по Питону для начинающих, в интернете из каждого утюга Лутца советовали, ознакомился и ужаснулся. Соседний комментатор совершенно прав, там много именно воды - ненужных подробностей. Любанович вроде неплох, хотя вот для совсем быстрого старта я бы даже не с книг начинал, а с бесплатных онлайн-курсов вроде "Поколения Python" на Степике.
Hadjimurad
04.01.2023 21:58+2"10 часов в день" - это не опечатка ?
EGA_production Автор
04.01.2023 21:58-1Нет. Всё верно.
vedenin1980
04.01.2023 23:04+4В прошлой статье вы говорили про 8 месяцев и «10 часов в день» на математику для ML, тут 6 месяцев и «10 часов в день» на Python. При этом вы еще пишете, что в ML еще «не вкатились», я так понимаю на ML у вас планы на несколько лет по «10 часов в день»?
Такое упорство, конечно, замечательно, но вы не думали, что в ML джуна проще было «вкатиться» за сильно меньшее время, а потом набрать недостающее на реальных практических задачах? Это только мое ИМХО, но использовать ML на практике можно с намного меньшими усилиями.EGA_production Автор
04.01.2023 23:36-4Использовать ML на практике действительно можно с наименьшими усилиями, но для сбора и хранения данных, создания и обучения моделей, вывода их в продакшн и поддержки описанный вами подход не прокатит). У меня есть конкретный план действий, которого я придерживаюсь и, может, в будущем напишу статью к чему это привело.
vedenin1980
05.01.2023 00:57+3но для сбора и хранения данных, создания и обучения моделей, вывода их в продакшн и поддержки описанный вами подход не прокатит
Ох, я работал с рекомендательной системой сайта, входящего в 50 крупнейших ресурсов интернета, — мне кажется вы слишком хорошего мнения о сложности моделей продакшена реального бизнеса, бизнесу нужны в основном проверенные типовые решения, типовые модели и типовые подкрутки типовых параметров. ИМХО, конечно.
План это хорошо, просто потом может оказаться, что вы в РПГ прокачались до 300 уровня на доп.квестах месяцами, а когда перешли к сюжетке внезапно оказалось, что и 50 уровень последнего боса убивает одним ударом и ваш 300 уровень не нужен вообще ни для чего.EGA_production Автор
05.01.2023 01:08-3Если всё так и будет, то только лучше: проще грандмастера получить будет. Вообще, всё сильно зависит от компании: если вы, например, пишите алгоритмы компьютерного зрения или диаризации, то здесь математика играет очень важную роль и учится она не так быстро как может показаться. Если же говорить о проде, то тут вообще много сюрпризов бывает, к слову, я это не из головы беру). Поэтому не всё так однозначно.
vedenin1980
05.01.2023 13:55+2проще грандмастера получить будет
Это не много так работает — практический опыт обычно важнее теории. Поэтому ML специалист с 2 годами реального практического опыта в реальной компании и 0.5 годами теории скорее будет успешнее того кто эти 2.5 года только учил теорию и делал задачки (исключения, конечно, бывают). Да и при найме практический опыт обычно перевешивает теорию.
Но это ваше дело, считаете, что у вас правильный план — удачи.EGA_production Автор
05.01.2023 15:27-1Почему вы решили, что у меня нет практического опыта в ML? Я работал над реальными проектами + продолжаю обучаться, но как сам считаю, ещё не до конца вкатился — вот и всё, поэтому и написал, что вкатываюсь.
vedenin1980
05.01.2023 16:51+6Просто я очень слабо себе представляю обучение по 10 часов в день и работу 8 часов в день, это уже банально места для сна и еды толком не остается.
EGA_production Автор
05.01.2023 00:35+5Заметил, что появилось много вопросов по поводу времени обучения, содержания материала и т.д.. Уважаемые читатели, создавая эту статью, у меня была одна цель, а именно помочь новичкам понять какие темы в каком порядке стоит изучить шаг за шагом и где это, собственно говоря делать, а также показать сроки обучения, опираясь на собственный опыт, и никому я карму не скидывал. Было бы очень хорошо, если бы более опытные разработчики также делились ресурсами в комментариях, чтобы ничего не знающий человек после прочтения статьи и комментариев имел полное представление, что ему делать дальше. Разве такая связь не делает хабр и ему подобные площадки крутым местом, где менее опытные могут помогать друг другу и заимствовать опыт у более опытных? Всем спасибо.
Zermond
05.01.2023 01:56+5Что для новоиспеченного разработчика нужно?
- базовый синтаксис языка
- немного теории алгоритмов
- парочка пет-проектов
и вперед искать позицию джуниора. А книги продолжать читать уже устроившись куда-то. Про субъективное понимание временных рамок – это вы маху дали, конечно. Разным людям нужно разное время для понимания предмета.p.s. давно не заглядывал на roadmap. Раньше это была просто пикча, а теперь там к каждому объекту есть описание и ссылки на литературу. В таком случае вообще не понятно что нового принесла эта статья.
Vedga
06.01.2023 02:01+8Уважаемый автор! Не догадываетесь, почему ваши статьи имеют отрицательный рейтинг? Вам нечего на данный момент сказать по существу, а читать "влажные мечты" большинству просто не интересно. Попробуйте сначала подрасти хотя бы до миддла (про сеньора молчу). И тогда, с учётом пройденного в обучении пути и достигнутых результатов, пишите roadmap-ы. А так инфоциганство какое-то получается.
И, не в обиду... Когда HR присылает мне резюме кандидатов на собеседование, я всегда дополнительно запрашиваю наличие публикаций на тематических ресурсах, образцы кода на любом языке (не по нашей теме, просто любой код для оценки стиля), pet-проекты соискателя (если есть). Так вот, публикации тематики "изучить проблему N за Y шагов/часов" от кого-то с уровнем меньше сеньора автоматом ведёт к отказу в техническом собеседовании, даже на стажировку. Путь познания у всех разный. Можно им поделиться, но только когда ты его успешно прошел. Подкрепив правильность направления практическими достижениями.
kay_kay
06.01.2023 21:01Зря Вы так. Я, например, начинающий студент Питона.
Первым делом таким, как я, нужна дорожная карта того, что можно прочитать и в каких курсах поучаствовать.
Без подобного гайда (карты) можно идти в деле изучения языка максимум неделю (одну книжку начать читать и бросить).
Поймите, Вы много знаете и, поэтому, можете оценивать.
Но есть масса людей, типа меня меня, которые ничего не знают, в том числе и куда надо идти, и, как следствие, ничего не могут оценить, в том числе и ту дорогу, по которой они идут при изучении Питона.
Тот путь, который предложен автором, ценен для меня гораздо больше того пути, который не предложили Вы.
Вы промолчали, а автор топика сказал. Может быть, ценность его слов равна информации в размере 0.1 бита (знаю, такоего не существует, но пусть будет для примера)
Но 0.1 бит гораздо больше чем 0.0. бит. И это реально важно для того класса людей, в который вхожу я, и в который не входите Вы.
EGA_production Автор
06.01.2023 21:07Рад, что для вас статья оказалась полезной, как раз для начинающих она и писалась, чтобы знать где и какие темы нужно проходить, и сколько примерно времени это займёт.
Vedga
07.01.2023 06:38+3Исходный комментарий был немного не о том. Путь стоит указывать, только если его прошел. Или не прошел. Но тогда описать, что и почему не получилось.
Материал автора представляет собой какой-то набор ресурсов, которые он только планирует изучить. Временные оценки явно не адекватные (к примеру изучение многопоточности языка "с нуля", включая ещё и многопоточную работу с базами данных, причем за пару недель). Оригинальной (ранее не существовавшей) информации нет от слова "совсем". Зачем статья? Заявить о своих планах? Ну есть соцсети, пиши там, если хочется. На технический ресурс зачем это выносить?
А мои рекомендации были в комментарии выше в неявном виде: Pet-проекты. Придумай тему, которая интересна именно тебе. Начни писать ее программную реализацию. Не хватает инструментов (понадобилась та же asyncio) - Гугл или доки языка в помощь. Или stackoverflow.
Разберись, какая методика разработки тебе удобнее ("сверху вниз" или "снизу вверх"). Когда получится что-нибудь рабочее, опиши это на том же Хабре. Получи кучу замечаний вида "да кто ж так пишет, вот здесь у тебя будет гонка, надо сделать так-то". Исправь свой проект. Вообщем именно практика, а теорию подхватываешь по мере необходимости. Большинство из того, чему учат в институте, в реальной жизни не пригодится. Главное - запомнить направление поиска. К примеру есть задача выявить закономерности по набору значений. Вспоминаешь, что "набор значений похож на оцифровку сигнала, закономерности в сигнале обусловлены суммой составляющих его частот, а для их определения что-то говорили про FFT". И идёшь искать описание этого самого БПФ, при необходимости закапываясь по-уши в жёсткий матан. А может это и не понадобится, берешь готовую реализацию и вставляешь в свой проект (для начинающего вполне приемлимо).
В результате на собеседовании будет:
Твой исходный код (оценят стиль и знание языка)
Твоя статья с решённой проблемой (а не мечты "вот поднапрягусь и сделаю")
Авторская разработка (именно сделанная тобой, раньше ее не существовало)
EGA_production Автор
07.01.2023 11:28-2Уважаемый, якобы, сеньор, не знаю почему вы за меня решили, что я поделился набором ресурсов, который планирую изучить. Если бы вы читали внимательнее, то увидели, что я делюсь ресурсами, которыми пользовался, КОГДА ИЗУЧАЛ питон. Если бы подобного рода планы писали настоящие сеньоры, то они были бы неактуальны т.к. учились давно и по старым источникам, и именно поэтому наибольший профит для новичков будет от тех, кто что-то изучал год-два назад, а для пет-проектов существует гитхаб, странно, что вы такого не знаете. Также непонятно почему вы решаете за пользователей Хабра, что они должны начинать статьи с написания кода и почему роадмапам здесь не место? Не вижу в этом ничего плохого. Также в одном из комментариев я уже писал, что в будущем хотелось бы написать про ML, плюсы, разные проблемы и интересные проекты. Учитывая, как вы откровенно дезинформируете своими комментариями, то сразу понятно какого вы поля ягода.
LuchS-lynx
05.01.2023 02:53+1Вы лучше напишите где взять и в чем писать программку на питоне в Линуксе для работы с файлами MS Office/LibreOffice с кнопками в форме для опций на GTK/Qt с примерами?
EGA_production Автор
05.01.2023 03:04Честно говоря, хотелось бы написать ещё статьи по алгоритмам классического и глубокого обучения, С++, о всяких проблемах в ML и их решении. Просто пока хочется зайти с самых низов, а там как пойдет)
Sild
05.01.2023 18:00+2Вы в МойОфис собеседоваться идете?
LuchS-lynx
05.01.2023 19:57нет, хочу переписать свой код vba на питон и вынести в отдельный скрипт/модуль. А Вы хотите помочь?
SWATOPLUS
05.01.2023 03:13+4Выучить питон можно, но зачем? Я бы предостерёг читающих от его изучения не имея понимая как устроиться на работу.
Зная только питон на работу не попасть, да можно выучить джанго и стать бэкэндщиком, но где найти работу, когда таких вакансий немного, а выпускников курсов толпы. Есть ещё ML, Data Science, DevOps которые связывают с питоном, но знание питона это 5% от необходимых знаний в этой професии.
Я бы не сказал, что питон проще чем другие ЯП. На нем проще написать базовые вещи, но в целом в языке есть свои "приколы". Его очень пиарят продавцы разных курсов обещая золотые горы, но на деле все по другому.
Лучше учите JS/TS там вариантов входа в профессию куда больше, хотя бы потому что больше вакансий. А дополнительных знаний здесь нужно меньше и они хорошо разжеваны во множестве видео на Ютубе.
EGA_production Автор
05.01.2023 03:18Я с вами согласен, что изучив один питон, работу не получится найти, но не стоит ли идти туда, что больше нравится? Например, в том же ML существует море нерешенных проблем, а это, в свою очередь, также открывает большие перспективы на будущее.
Vedga
05.01.2023 16:48+3Особенно интересно смотрится "конкурентные запросы к БД" за 2 недели, включая изучение многопоточности и асинхронности самого языка.
fixin
05.01.2023 21:10Надо Илье Леонтьеву передать. Он свитчанулся из 1С в Питон, тоже долго и много учил всего разного. В итоге ушел с 400к в месяц на 1С на 120к в Питон джуном. Но думаю, своё наверстает.
776166
05.01.2023 22:04+3Asyncio и конкурентное программирование для новичков в течение полугода от старта? SRSLY?Автор, ты вообще как, нормально? Или совсем того? Извините за мой французский.
Это самая бездарная и бессмысленная графомания про обучение Питону, какую я только видел.
Набор книг ничего, но он более-менее очевиден.
Vedga
06.01.2023 01:42+1Я думаю, такими темпами автор и verilog за пару месяцев выучит. Не, а чего мелочиться-то?
AVX
05.01.2023 22:42+2Очень неплохо, но это всё для разработчиков. А есть какие-то ориентировочные сроки по изучению python для сисадмина? Ведь в этой области львиная доля возможностей языка просто не нужна. А без его изучения я вот, например, не могу сказать, что там нужно изучать (и потребуется для других тем), а что не обязательно. Где-то есть такой план для сисадминов?
EGA_production Автор
06.01.2023 00:47К сожалению, такой информацией не обладаю. Здесь лучше спросить у самих сисадминов.
Kozhedub
06.01.2023 14:12Автору спасибо. Я только начинаю путь в Python. Пока прошла два курса "Поколение Python". Действительно очень хороший курс.
Возник вопрос: какой из методов и в каком случае лучше (эффективнее) - изучать книги или проходить курсы (с учетом того, что по времени я ограничена)?
EGA_production Автор
06.01.2023 14:15Курсы хороши тем, что они, как правило, содержат достаточно заданий для практики, а плюс книг заключается в том, что вся информация подается более глубоко и структурированно. Поэтому, на мой взгляд, лучше обращаться к обоим источникам.
plustilino
06.01.2023 16:36+2Допустим, выучит человек Python глубоко, а дальше с этим куда? В том смысле, если просто познакомиться с программированием, то так глубоко не надо. Если под какое-то место работы, то скорее всего необходим стык нескольких языков/технологий.
Dannil100893
07.01.2023 13:37А я вот прислушаюсь. Хоть какой-то план, и ормально рассказано. А "про дальше куда" и "стык с другими языками" следующую статью))) но думаю после курса вопросов не будет. Пожалуй начну учиться.
KirillKostin
07.01.2023 13:43+1Две недели на алгоритмы?
Это что, прикол такой? Я вот с перерывами учусь уже год, и ощущение, что нифига не знаю. Встрял на алгоритмах (прохожу курс на старике).
elFurion
07.01.2023 14:13Прежде всего, автор, спасибо за статью. Я увидел несколько книг, на которые стоит обратить внимание. Однако, должен заметить, что отчасти критика в адрес статьи справедлива. Судя по содержанию, ей больше подходит заголовок "Изучаем почти всю теорию о Python за 6 месяцев".
Еще, к сожалению, считаю, что этот план для начинающих имеет серьезные потенциальные недостатки:
1) В течении 6 месяцев человек будет заниматься по 10 часов в день. Потратит много времени, мотивации и может быть даже здоровья.
2) Получит кашу в голове, потому что невозможно в таком темпе эффективно усваивать только теорию без подкрепления практикой. Это как учить английский язык, но не использовать его в повседневной жизни. А некоторые книги, такие как «Python – к вершинам мастерства» противопоказаны начинающим python-программистам. Об этом сам автор пишет в предисловии к книге, что его книга не для новичков.
3) Очень не факт, что станет хоть сколько-то востребованным специалистом. Где знания и pet-проекты на Django (обязательное требование в 50% вакансиях)? Где знания и pet-проекты на FastAPI (можно сказать, что это второй по востребованности фреймворк на python сейчас)?
4) Столкнется с реальностью, где окажется, что нужно вкалывать еще минимум 3 месяца, а силы и мотивация уже на исходе (см. пункт 1).
EGA_production Автор
07.01.2023 15:22Спасибо за дельный комментарий. Постараюсь ответить по вашим пунктам:
1) Может, есть и другие способы, более лёгкие и быстрые в изучении ЯП, и прочих технологий, но лично я с ними не знаком и нигде про них не слышал, поэтому тут ничего сказать не могу.
2) Здесь я обобщу остальные пункты. Да, вы правы, что нет смысла учить что-то, не применяя это на практике, но перед тем самым применением должна же быть какая-то база, чтобы делать норм проекты. Может показаться, что для начала конкурентность - это жир, но, например, если вы работаете с большим объемом данных, то его надо обрабатывать быстро и эффективно, а без таких тем просто никуда. Про фреймворки не писал т.к. в каждом направлении они разные: у тестеров selenium, у веба django и flask, в ML numpy, pytorch и т.д., поэтому здесь всем не угодишь.
Конечно придётся много чего ещё доучивать, писать свои pet-проекты и т.д., но иметь хорошую опору точно необходимо. Если бы лично вы нанимали человека на работу, согласитесь, вам бы хотелось видеть кого-то, кто может что-то большее, чем перекладывание json-чиков.
Главное, чтобы ничего не знающий про прогу человек, наткнувшись на подобного рода материал, понимал куда ему двигаться дальше, взглянув на разные точки зрения как от начинающих специалистов, так и от более опытных.
KShaddix
07.01.2023 18:18Наверное, план был бы подробным, если бы по каждой книге была описана мотивация, чем определённая книга поможет, т.е. какой аспект языка или технологии в какой главе хорошо или плохо описан, ссылки, где можно лучше почитать. Чтобы было понимание, как можно приблизиться к самоцели, а не просто поглощать информацию, надеясь, что она чем-то да поможет. Конечно, человек сам потом поймёт, когда наберётся знаний и опыта, что важно знать, а что не очень. Но это будут его личные выводы. Поэтому да - список источников - это план, но не думаю, что подробный)
EGA_production Автор
Заметил, что появилось много вопросов по поводу времени обучения, содержания материала и т.д.. Уважаемые читатели, создавая эту статью, у меня была одна цель, а именно помочь новичкам понять какие темы в каком порядке стоит изучить шаг за шагом и где это, собственно говоря делать, а также показать сроки обучения, опираясь на собственный опыт, и никому я карму не скидывал. Было бы очень хорошо, если бы более опытные разработчики также делились ресурсами в комментариях, чтобы ничего не знающий человек после прочтения статьи и комментариев имел полное представление, что ему делать дальше. Разве такая связь не делает хабр и ему подобные площадки крутым местом, где менее опытные могут помогать друг другу и заимствовать опыт у более опытных? Всем спасибо.