Контакты

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (34)

Лучшие ответы пользователя

Все ответы (38)
  • Где научиться алгоритмам?

    Почитай книгу «Грокаем алгоритмы. Иллюстрированное пособие для
    программистов и любопытствующих». В нем примеры приводятся на
    Python и объясняются приведенные Вами термины.

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

    Касательно Python, если не приходилось изучать/писать программы с
    использованием стандартной библиотеки collections, то советую
    посмотреть внимательно. Есть реализация множества алгоритмов,
    которые необходимы в жизни при работе. Избавит Вас от повторного
    написания этих алгоритмов.
    Ответ написан
    Комментировать
  • Какие приложения создать для новичка Vue.js?

    Изучаю vue посмотрел несколько курсов, почитал документацию, создал обычный todo list на vue, что писать дальше идей нету =(

    Посоветую добавить функционал в свой вариант todo list, написать тесты, улучшить визуальную составляющую, превратить чисто клиентское приложение в клиент-серверное(можно без бекенда, к примеру через Firebase), ... По функционалу, к примеру, можно добавить возможность создания многоуровнего списка задач, выставления тегов, автоархивирование задач по времени устаревания, заполнение задач по шаблонам (по подобию snippet), разделить списки задач на личные и рабочие, ... Если создавать клиент серверное решение, то появится возможность создавать списки задач для совместной деятельности, синхронизация между устройствами, ...
    К чему все это. Надо учиться доводить проекты до логического конца, приобретать навыки в рефакторинге, учиться улучшать проект и поддерживать на плаву. Такой подход поможет приобрести практические навыки, которые востребованы на рынке труда, а не научиться фрагментарным знаниям и навыкам. "Погружение в глубину", так скажем, приблизит Вас к миру разработок ПО практикуемые в крупных компаниях и экспертов в программировании. Выходите за рамки стандартных шаблонов обучения, доработайте идею проекта и совершенствуте чистоту Вашего кода.
    И напоследок, если в Вы это еще не сделали:
    • Освойте распределенную систему хранения версии - git. Зарегистрируйтесь на одном из популярных сервисов (Github, Bitbucket, GitLab, ...), если хотите, то можно выложить проект даже как open source
    • Начните писать тесты для свох программ. Недавно вышел перевод популярной книги "Тестирование компонентов Vue.js с помощью Jest". Есть так же хорошая стандартная документация на русском языке по тестированию в Vue
    • Пригласите в свой проект друзей и/или знакомых. Не обязательно программистов: переводчиков, дизайнеров, бухгалтеров, юристов и т.д. Будет не скучно и проект обогатится новыми идеями.
    • Идея "Eating your own dog food". Начните использовать свою программу для ведения личных дел или к примеру на работе. Опять же, "подсадите" своих родственников и друзей на Вашу программу. Так Вы не устаните улучшать программу и разработка ускорится в разы.
    Ответ написан
    1 комментарий
  • Как теория графов применяется в программировании?

    Человек Паук, для новичка программиста при обучении основ программирования в теории графов нет необходимости. Это я Вам говорю, как дипломированный математик прикладник с опытом работы в индустрии разработки ПО.

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

    Для новичков, рекомендую "потреблять легкую пищу" при обучении. Основы алгоритмов, методологии программирования (хотя бы императивный подход и ООП), практические навыки работы с инструментами программистов (tooling: IDE, линтеры, VCS, инструменты для сборки и/или упаковщики), технологии (http, ajax, сериализация, ...), ...

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

    На практике, много где применяется:
    1. Не понимая основ графов, можно запросто запутаться и испортить репозитории в git. Точно так же понадобится для анализа дерева зависимостей и разрешения проблем связанных с ним (смотри).
    2. При отладке программ и профилировании зачастую приходится смотреть AST.
    3. Нахождение путей, определение цикличностей и т.д. понадобятся, когда Ваши данные хорошо подходят для представления в качестве графов. К примеру социальные сети, GPS навигация, множество абстракции в компьютерных играх и т.д.
    Ответ написан
    Комментировать
  • Реализации на Python?

    По поводу Jython согласен.
    А Illia Nezhyhai не прав. Cython != CPython. CPython действительно реализация языка, но Cython - это самостоятельный язык, синтаксисом напоминающим микс Python и C.

    >>> Зачем они нужны?
    Cython используют часто для написания компилируемых расширении для Python.
    Преимущество в повышении производительности и понижении потреблении памяти.
    Но может служить и для написания самостоятельных программ.
    Подробнее: https://ru.wikipedia.org/wiki/Cython
    Ответ написан
    Комментировать
  • По-быстрому слепить Android-приложение на Python (Kivy?). Стоит ли?

    Посоветовать действительно много чего:
    • Kivy довольно простой инструмент для создания мобильного приложения. Насколько я читал, проблема больше в сборке бинарных пакетов для мобильные ОС. Для Android есть buildozer, с которым люди испытывают проблемы. В Хабре есть статья про его настройку
    • Мобильное приложение для управления - не сложная задача. Логика очевидно будет на сервере, а клиент можно сделать и на современных Javascript фреймвоках. Не зацикливайтесь на языках и технологиях, самое важное в сроках и качестве исполнения.
    • Не тратьте много времени на мелочи. Кроме минимального мобильного клиента и сервера, Вам не мало времени придется провести за проработкой протокола обмена, способе и виде хранения, оптимизации и отладке всего этого и т.д. Быстро создайте прототип, путь и не самый красивый, а позже украшательство можно внести.
    • Из практических советов: В мобильном клиенте можете сильно "затормозится" на реализации хороших графиков. Можно значительно упростить, если воспользоваться готовыми html виджетами. Для python есть довольно популярный Dash. В мобильном клиенте можно показывать через html контейнер.
    • При работе с железом хорошо бы использовать очередь в том или ином виде. Советую очень хорошую реализацию очереди на Python: dramatiq. Для крупного проекта RabbitMQ или NATS
    • Для создания сервера на Python очень рекомендую molten. Проект хоть и молодой, но стабильный и очень продуманный и современный. P.S. есть интеграция с dramatiq с коробки.

    Самому приходилось писать на Python решение для умного дома, так что знаю о чем пишу.
    Ответ написан
    1 комментарий