Pull to refresh

Comments 43

Как быстро Авито забанит ваш айпи?

Учитывая, что настройка vpn доступна любому айтишнику — им придется банить половину интернета. И вообще динамическая замена айишника с помощью списка vpn это лишь небольшая дополнительная сложность в таком проекте.

Это не базовые навыки, это базовые библиотеки. Сам Пайтон никаких навыков кроме ну очень базовых развить не позволяет. Поэтому лучший проект для начинающего - модуль на Rust.

Это не базовые навыки, это базовые библиотеки. Сам Раст никаких навыков кроме ну очень базовых развить не позволяет. Поэтому лучший проект для начинающего - модуль на C#.

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

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

Это не базовые навыки, это базовые библиотеки. Сам Си никаких навыков кроме ну очень базовых развить не позволяет. Поэтому лучший проект для начинающего - модуль на Фортран.

Это не базовые навыки, это базовые библиотеки. Сам Фортран никаких навыков кроме ну очень базовых развить не позволяет. Поэтому лучший проект для начинающего - модуль на Машинном коде.

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

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

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

Сперва надо научиться манипулировать электрическими зарядами внутри головы.

Нейронные сети, кстати...

UFO just landed and posted this here

rust офигенный язык, но он ни разу не подходит для новичков, его хорошо изучать как второй язык как минимум.

UFO just landed and posted this here

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

В плане визуализации я сейчас начал экспериментировать с https://streamlit.io/. Просто и симпатично.

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

Вот пишу я сейчас например, интересную и полезную утилиту. Для себя могу сделать конфиги в каком нибудь json, но так приложением будет пользоваться 1.5 человека, так как основная целевая аудитория не будет копаться в конфигах. Приходится 3/4 работы выделять на GUI.

Да и это может быть и не скучно, если делаешь не просто клепание форм. GUI может быть вполне интересным и сложным.

но это хороший способ не писать "в стол"

Если у вас есть проект со смыслом, тут вообще все средства хороши.

Мне важно, чтобы результат приятно смотрелся, и организацию этого уходит 80% времени.

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

Что-то типа https://github.com/chriskiehl/Gooey или того-же стримлита.

Спасибо за ссылку на интересную либу. Но что то подобное только для клепания форм подходит.

Вот, например, скрин приложения, которое сейчас пилю (кто угадает GUI тулкит?) .Тут работа с GUI местами интереснее и сложнее, чем работа непосредственно с функционалом (хотя в этом случае само GUI и есть часть функционала).

Если у вас есть проект со смыслом, тут вообще все средства хороши.

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

Хм, не знал об этой библиотеке, спасибо.

Но тут у меня старый добрый дубовый tkinter )

Как-то давно игрался с ним. Мне бы не хватило терпения что-то такое на нем сделать.

Да ладно, tkinter одна из самых локаничных и простых графических либ.

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

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

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

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

TCL/TK в свое время был шикарным тулкитом в плане удобства и скорости разработки, но визуально страшным как ядерная война под любой платформой. Насколько серьезно теперь все изменилось?

Ну под windows выглядит вполне себе нативно, благодаря tkinter.ttk (у меня в проекте кастомная тема). С HiDPI работает корректно. И что бывает немаловажно, имеет небольшой размер при сборке pyinstaller'ом (у меня standalone сборка этого проекта всего 23 мегабайта).

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

В моем проекте, например, столкнулся с такими ограничениями:

  1. Нельзя проскроллить ничего кроме канваса, листбокса или текста. То есть я не могу взять и запихнуть кучу виджетов во фрейм со скроллом.

  2. На канвасе можно конечно размещать виджеты, но это тормозное глюкалово. Пришлось отрисовывать все примитивами.

  3. Нету антиалиасинга примитивов на канвасе.

и скучно и нудно

Отучаемся говорить за всю сеть (с) фидо

Разработка парсера заставит разобраться с тем, что такое, зачем нужны и как работают сетевые протоколы HTTP/HTTPS.

Я когда начинал программировать, то тоже писал парсера, при чём на заказ. Но, к сожалению, это не дало мне понимания как работают сетевые протоколы(только прям уж очень базовые знания). Другое дело, написать свою библиотеку для парсинга, но это не для начинающих:)

Что касается веб-фреймворка, то я бы начал изучение с фласка. Всё-таки у джанго уже много чего из коробки. В целом подборка хорошая:)

Первый проект в списке – парсер сайтов

Ожидание: примитивная работа с HTTP, разбор HTML, запись результатов в файл

Реальность: бан по ip на 20-й скачанной странице, дивный мир подмены UserAgent, автоматизации разгадывания капч, маскировки под гугл-бота и интеграции с ботнетами.

если брать авито, то так и будет)

Что ж, предлагаю тогда написать сначала свой сайтик на джанге, а потом всю инфу с него спарсить

Рассмешил ))))))))))))))))))))))))))))))))))))

Статья хорошая, но явно не для новичка. Проекты полезные, но сложные.

Ожидал увидеть что-нибудь вроде калькулятора с GUI на каком-нибудь Kivy - так и с вёрсткой познакомитесь.

Они не сложные, они объемные. Даже глубокого знания Питона не требуется. И да обучение программированию требует огромного количества времени.

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

Всё-таки обучаться на маленьких проектах проще

Программирование это инструмент для решения задач, решая маленькие задачи не научишься решать большие.

даже с простым парсером Авито возникает куча проблем

Это и есть тот самый опыт который можно получить решая такие задачки.

Обучение идёт от простого к сложному. Начинающие сразу со сложного пропускают азы, без которых развитие возможно лишь в архитекторы). Хорошо заметно, например, по AQA или саппорт, которые быстро пишут код под знакомый фреймворк, но малейшая нестандартность ставит в тупик.

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

Чёрт, вы открыли мне глаза. Я встречал несколько архитекторов, при общении с которыми только одна мысль была "ну вот откуда ты такой дятел взялся"? Теперь понятно, они в программирование и не умели никогда.

Обучение идёт от простого к сложному

Это типичный паттерн, я так и учился. Сначала задачки на закрепление пройденной темы на 10-20 строчек. А потом сайт на Джанго с рисованием на Яндекс картах в качестве выпускной работы.

В плане программирования там всё просто было, большая часть времени ушла на изучение нового.

Под начинающем программистом я подразумеваю, человека который уже прошёл курсы.
Я повторение hello world для новых технологий я за проекты не считаю.

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

Питонисты посдених лет наверное все начинали со старого доброго Django,
Я давно на нем не пишу, перешел на FastApi, но все же о Django всегда вспоминаю с любовью.
Первые строчки кода на Python, прекрасная документация, дружелюбное комьюнити, первый сайт не на CMS, а на фрейме. Блин как же мало нужно было для счастья тогда)

Питонисты посдених лет наверное все начинали со старого доброго Django

Последних лет 15 (или сначала Django был молодым и злым)?

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

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

Супер. Спасибо. Побежал пробовать.🏃‍♂️🏃‍♂️🏃‍♂️

Sign up to leave a comment.

Articles