Я уже писал, что надо учить Питон, потому что все знают, а я не знаю. По работе тоже есть пара задачек. Короче, я решил, что надо понять, что это. По опыту чтения книги по Haskell, я уже знал, что читать книжку про язык программирования не применяя его на практике -- бессмысленно. Я просто забуду всё, что узнал. Поэтому задачу я себе нашёл. А потом ещё одна задача свалилась. Но про это я напишу в другой раз. Сейчас -- про книжку.
Книжка хорошая, но не для всех. Эта книжка -- экскурсия по Питону и его библиотекам различной направленности (первая половина -- про язык, вторая, про библиотеки, который тут модно называются "фреймворки"). В буквальном смысле "посмотрите налево -- это Красная площадь; посмотрите направо -- это Литейный мост". Если вы не знаете ни одного языка программирования -- она вам не подойдёт (хотя во введении написано обратное). Чтобы усваивать информацию -- вы должны быть УЖЕ очень хорошо подготовлены. Вы должны знать не просто "хотя бы один язык программирования". Вы должны знать основные концепции программирования из различных прикладных областей. Тогда эта книжка может сослужить ориентиром -- куда дальше копать.
Не для начинающих. А мне -- в самый раз.
Книжка хорошая, но не для всех. Эта книжка -- экскурсия по Питону и его библиотекам различной направленности (первая половина -- про язык, вторая, про библиотеки, который тут модно называются "фреймворки"). В буквальном смысле "посмотрите налево -- это Красная площадь; посмотрите направо -- это Литейный мост". Если вы не знаете ни одного языка программирования -- она вам не подойдёт (хотя во введении написано обратное). Чтобы усваивать информацию -- вы должны быть УЖЕ очень хорошо подготовлены. Вы должны знать не просто "хотя бы один язык программирования". Вы должны знать основные концепции программирования из различных прикладных областей. Тогда эта книжка может сослужить ориентиром -- куда дальше копать.
Не для начинающих. А мне -- в самый раз.
03.04.2021 в 21:18
03.04.2021 в 21:31
>>А с чего стоит начать его изучение и в какой последовательности так и не понял.
Программирование -- очень обширная область. Нельзя изучать "просто программирование" (кроме как в школе и на 1-м курсе института для развлечения и общего развития). Когда ты знаешь, к чему ты будешь программирование прикладывать -- тогда появляется ответ на вопрос "какой язык учить". И сразу появляются для него задачи.
Да, в посте я про это не написал, но Питон во многом не просто язык -- а именно набор библиотек (фреймворков). Если ты используешь для задачи библиотеку Х, то ты учишь питон и её применяешь. Си++, скажем, не такой. Си++ это в первую очередь именно язык. Библиотек -- много, но их, скажем, сотни. А питон -- десятки тысяч. И если в Си++ библиотеки -- это приложение к языку, то в Питоне язык -- приложение к библиотекам.
03.04.2021 в 22:48
Хорошая подколка, жаль, что неверная
Да, в посте я про это не написал, но Питон во многом не просто язык -- а именно набор библиотек (фреймворков).
Это да. А всё потому, что у Pyton есть пакетный менеджер pip, благодаря которому любую библиотеку (со всеми её зависимостями!) можно поставить одной командой. В C++ такой роскоши нет, поэтому программы на плюсах часто сами костыляют то, что, по-хорошему, могло бы быть частью какой-нибудь библиотеки. С другой стороны, у программ на Python могут быть десятки и даже сотни зависимостей, в то время как у программ на C++ зависимостей обычно довольно мало.
Kris Antari, А что можно почитать для начинающих
Начинающим обычно советуют «Изучаем Python» Марка Лутца. Но в целом я дваждую комментарий zHz00 — отталкиваться нужно от задачи. Особенно при самообучении.
-- Minoru
03.04.2021 в 23:00
Спасибо, изучу этот вопрос. У меня сложилось впечатление, что в веб-программировании всё называют фреймворвками независимо от наличия коллбеков.
А вот Win32 API издавна называется библиотекой (набором библиотек) несмотря на то, что коллбеки там очень даже есть.
>>А всё потому, что у Pyton есть пакетный менеджер pip
Вот в чём причина-то! Спасибо.
>>Начинающим обычно советуют «Изучаем Python» Марка Лутца
Сразу этот здоровенный двухтомник?! Может тогда Дональда Кнута посоветуешь уж?
(сам думаю за Лутца взяться, т.к. хочу изучить именно язык, а не 100-500 библиотек.)
03.04.2021 в 23:30
Ну, jQuery не фреймворк, например. Но этот пример действительно было сложно придумать; в голову постоянно лезут всякие Angular, React, Next.js, которые чистой воды фреймворки. Скорее всего, это потому, что я не занимаюсь веб-разработкой и знаю только о том, что на слуху. А на слуху оказываются как раз крупные проекты, обещающие порешать все проблемы мира — как правило, навязав своё видение этого самого мира
А ещё меня смущает твой плавный переход от IoC к коллбекам. По-моему, это понятия разного уровня: IoC это архитектурный принцип, а коллбек — это почти что конкретный способ реализации. *Отвернулся почитать Википедию* Ну да, вот, пишут, что коллбеки — это один из шаблонов, реализующих принцип IoC. Другие примеры: event loop, планировщики, dependency injection. Есть тут какая-то тонкая грань, но мне не удаётся её нащупать.
А вот Win32 API издавна называется библиотекой (набором библиотек) несмотря на то, что коллбеки там очень даже есть.
Я не специалист по WinAPI, но глядя на docs.microsoft.com/en-us/windows/win32/learnwin... я бы сказал, что это таки библиотека, потому что ты сам пишешь свой event loop. Тот факт, что после вызова DispatchMessage библиотека смотрит в ранее созданную тобой табличку функций и вызывает WindowProc — это прикольно и действительно выглядит как фреймворк, но IMHO фреймворком не является.
Но да, разница тут размыта, I'll give you that.
Сразу этот здоровенный двухтомник?! Может тогда Дональда Кнута посоветуешь уж?
Сам-то я советую только найти задачу
-- Minoru
04.04.2021 в 11:43
Kris Antari, у некоторых онлайн-школ есть интенсивы, где дают общее представление о разных направлениях, например - https://netology.ru/programs/kak-stat-programmistom#/
ещё можно посмотреть бесплатные курсы на степике или курсере
04.04.2021 в 13:29
>>А на слуху оказываются как раз крупные проекты, обещающие порешать все проблемы мира — как правило, навязав своё видение этого самого мира
Лол.
>>А ещё меня смущает твой плавный переход от IoC к коллбекам.
Я про IoC вообще от тебя услышал, хотя пользуюсь им, как оказалось, много лет.
>>Самой лучшей книжкой все равно в итоге окажется та, которую прочитал, а не та, которую все нахваливают.
Годный панч.
>>Следующий уровень — осознать, что самой лучшей книжкой будет сборник из двух глав вот этой, нескольких глав вон той
Я изучаю различные области человеческой деятельности -- и меня всегда интересует, какие книжки по теме пойдут а) для начинающих б) как справочники. То есть, я японский учу давно, но всё равно люблю заглянуть в учебники для начинающих и посмотреть, как там что. По Си, например, все рекомендуют классическую книжку K&R, но она во-первых плохо написана, а во-вторых там описывается настолько устаревший стандарт языка, что уже даже нетхак перешёл на более новый.
Так вот, ты, конечно, прав, что в одной книжке лучше может быть написано одно, а в другой -- другое. Но начинающему нужна ОДНА книжка, которая не отвратительная. Что-то в ней действительно может быть написано плоховато. Она должна отвечать следующим критериям:
1) Внятно объяснять базовые концепции
2) Не быть перегружена деталями
3) Давать как теорию, так и практические примеры
4) На первых порах должна быть возможность использовать книжку как справочник
Лутц не подойдёт для начинающих потому что это доскональная книжка (я её листал). В принципе, пользоваться такой книжкой можно, но осторожно. Она подойдёт, если собираешься изучать её по 3 страницы в день в течение года. Автор пишет, что это, фактически, лекции по питону, которые он читал.
А Любанович не подойдёт для начинающих, потому что он не разбирает детально базовые концепции и потому что у него всё на примерах. Если ты уже всем этим владеешь, то у тебя показанное вклеивается в общую картину. А если не владеешь, то ты вроде что-то понял -- и сразу забыл.
В общем, если знаешь хорошую книжку по Питону -- скажи)).
eminence_grise,
>>"Как стать программистом"
Может, у меня выборка плохая, не знаю, но все люди, которые у меня спрашивали "как стать программистом" -- программистами так и не стали. Те же, кто стали, таких вопросов не задавали. Они либо сами всё нашли, либо у них были более конкретные вопросы и уже имелись какие-то задачи.
04.04.2021 в 14:37
zHz00, наверное, мы с вами в разных "пузырях" находимся
я вижу, что много людей начинают писать код и зарабатывать на этом после прохождения курсов (платных с контролем и проверкой со стороны и перспективой трудоустройства/бесплатных с прохождением всего пути самостоятельно/с помощью ментора)
"стать программистом" - очень пространная цель. как выше писали, нужно определиться конкретнее, а вот с этим у многих фрустрация, потому что сфера IT большая, и даже в рамках одной компании в разных командах у условного аналитика может быть разный круг задач
нужно либо быть очень упорным, либо иметь знакомого-программиста/ходить на митапы/конфы, чтобы влиться в сообщество и хоть немного начать понимать, что происходит
04.04.2021 в 16:38
Да, звучит разумно. В принципе, под первые три критерия подходят даже курсы, про которые упомянула eminence_grise. Хорошей книжки я не знаю.
А вот с четвёртым пунктом («книжка как справочник») я хотел бы поспорить. В век Интернета привязывать людей к бумажному справочнику — преступление. У всех топовых языков (включая Python) сейчас есть онлайн-документация, а зачастую ещё и открытый код рантайма и стандартной библиотеки. Пусть лучше смотрят туда.
-- Minoru
04.04.2021 в 17:49
Собственно, мне оно нужно именно для развлечения и что бы мозги не ржавели когда нет сложных задач по основному профилю деятельности, а также задел на будущее, на случай если конкретная задача всё-таки появится, что бы я понимал, хотя бы, с какой стороны за неё браться.
eminence_grise, спасибо, погляжу.
05.04.2021 в 06:09
Книжка Марка Пилгрима как туториал по языку - вполне себе ничего.
Лутц хорош, но уж больно медленный и занудный. Может он реально подойдёт тем, кто взял питон как первый язык.
А после надо взяться за изучение алгоритмов и концепций, пробовать написать их на питоне.
Для начала надо обязательно получить краткое представление о теории множеств и графах. Плюс ещё немножко логику вспомнить - коньюнкция, дизъюнкция. Это всё несложно, достаточно раскурить на базовом уровне.
Потом я бы порекомендовал схватиться за Кормена или ещё какой талмуд по алгоритмам. Есть книжки из 80х, которые вполне дают представление типа Ахо.
Ещё из реально полезных книг, которые меняют и вправляют мышление, крайне рекомендую "Структуру и интерпретацию компьютерных программ" aka SICP - важно, делайте из неё домашку, здорово развлекает и не даёт мозгам ржаветь!
Потом хвататься за любой справочник SQL, желательно если это будет Postgresql, т.к. он щас популярен.
Потом Javasсript изучать только по Крокфорду - Javasсript Good Parts! Иначе будете страдать, а тут большая часть грабель хотя бы перечислена.
И теперь с широко раскрытыми глазами попробовать наколхозить себе что-то реально полезное. Да хоть хранилку заметок какую-нибудь или каталог домашних книжек.