Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Открой для себя волшебный мир реальной рыбалки. Лови реальную рыбу на реальных водоемах! Исследуй новые рыболовные места и заполучи заветный трофей.

Реальная Рыбалка

Симуляторы, Мультиплеер, Спорт

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Python + Обучение

С этим тегом используют

Программирование IT Программист IT юмор Разработка YouTube Образование Учеба Урок Английский язык Все
551 пост сначала свежее
47
anetto1502
anetto1502
2 года назад
Программирование на python

Закон дырявых абстракций и GIL в python⁠⁠

Давным давно Джоел Спольски рассказал о "законе дырявых абстракций" (оригинал от 2002 года). В современном мире, чтобы починить проблему, часто надо уметь работать на уровень ниже текущего уровня абстракции. Проблема может быть с compose, docker, конкретной библиотекой, python, операционной системой, сетью, железом... Чем больше абстракций вы знаете, тем больше вероятность, что вы сможете решить проблему следующего уровня.


Нельзя в один момент освоить десяток нужных инструментов и абстракций. Нужно плавно расширять используемый инструментарий. Освоили git? Ни строчки кода далее без него. Научились тестам? В каждом проекте их нужно писать с самого начала. Теперь Docker в копилке? Применяем, если это уместно. Чем больше опыта в разных технологиях, тем вы сильнее как специалист.


Расскажу о своём опыте. В статье как расширить технический кругозор я делился, что для ориентирования в технологиях я постоянно читал хабр (2010-2015 года, самый расцвет технического контента там). Пришёл ко мне коллега со следующим вопросом. Я, говорит, выгружаю строю граф друзей в социальной сети, для этого массово скриптом на python выгружаю оттуда списки всех друзей и складываю в mongodb. Запускаю выборку на N человек на 1 потоке — скрипт работает 60 секунд. Запускаю на 10 потоках — скрипт работает 70 секунд. Мне надо N увеличить и запуститься на сутки, но какого чёрта увеличение числа процессоров замедляет выполнение?  Где проблему искать?

Это питон тормозит?

В монге проблемы?

С компом что-то не так?

Социальная сеть меня банит?

Сеть тормозит?

Где вообще искать беду?


А я просто знал ответ. Прочитал накануне статью про GIL в python. На вики она выглядит так. Если кратко, то из-за потоковой небезопасности кода на Си, который внутри всех стандартных библиотек питона, интерпретатор физически работает на одном ядре, а многопоточность реализована с блокировками. Это не важно для IO-bound задач (когда код ждёт внешних данных), но критична для CPU-bound задач (когда реально надо все ядра использовать).

Для починки всего-то и надо, что заменить модуль многопоточности threading.Thread на многопроцессность multiprocessing.Process. Теперь работают 10 независимых процессов, которые делают своё черное дело. У них нет связи (общего адресного пространства), которое есть у потоков. Но в этой задаче связь и не нужна была, процессу выдавался пул адресов для анализа.

И теперь 60 секунд на 1 ядре превратилось в 10 секунд на 10 ядрах. Да, не в 10 раз ускорилось, но это вполне годное ускорение. А ещё можно посмотреть, как делают рядом и воспользоваться топовым инструментом.


В телеграм-канале разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку.

Показать полностью
[моё] Программирование Разработка IT Обучение Linux Python Telegram Текст
22
18
vrom1990
vrom1990
2 года назад

Программирование на Python «для тупых» 010.2 Проверяем домашку⁠⁠

00:00 Вступление

00:48 1 задание

03:30 2 задание

07:25 3 задание

11:00 4 задание

12:06 5 задание

14:33 6 задание

15:40 7 задание

16:50 8 задание


Решения https://github.com/vrom1990/pythondlyatupyh/tree/main/010eli...



И да! Мне тут подключили донаты на Пикабу. Мелочь — а приятно
Показать полностью
[моё] Программирование Python YouTube Обучение Образование Видео
3
16
anetto1502
anetto1502
2 года назад
Программирование на python

Как анализировать предметную область перед разработкой на примере видеоаналитики⁠⁠

Хочу поделиться с разработчиками своим опытом научного поиска. Изобретать велосипед хорошо только в учебных целях. Но весело :)


Любая работа по программированию начинается с анализа предметной области. Надёжнее всего использовать материалы из рецензируемых научных изданий (отечественные ВАК и РИНЦ, зарубежные WebOfScience и Scopus — напрямую из РФ недоступны). Наличие рецензирования обычно позволяет отбросить плохие статьи, что в целом повышает качество оставшихся статей. Могу порекомендовать для русского и английского поиска такие ресурсы


Киберленинка — open science платформа

ResearchGate — соц сеть для учёных (англ).

Google.Академия — сбор знаний отовсюду

ArXiv — сборник препринтов, то есть незавершённых исследований


Мне меньше нравятся, но тоже хороши:


eLibrary — собственно, сам РИНЦ

IEEE Xplore

Semantic Scholar

Springer


У большинства современных рецензируемых статей есть DOI. Отсутствие не страшно, но в современном мире удивительно.


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


Если статья интересная, но отсутствует в открытом доступе, можно погуглить "название статьи filetype:pdf" в гугле. Нередко так можно найти PDF от автора, препринт или статьи, которые на искомую ссылаются.


Видео примеры по тегам можно искать по размеченным видео с ютуба.


Интересные рассмотренные статьи необходимо заносить в список с небольшой аннотацией. Такой список позволит в большей степени понимать и ориентироваться в предметной области. и синхронизировать усилия нескольких людей. Например,


1. <ссылка>. Работа на "хорошо". В работе есть данные по нейросети, которая с 80% точностью распознаёт человека в маске. Ссылка на программу есть, на датасет нет. Напрямую применить нельзя, но можно взять часть про нормализацию кадра

2. <ссылка>. Выглядела на "отлично", по факту бред. Литературы нет, написано на коленке


Примеры разобранных статей в области видеоаналитики:

1. Многокритериальная оценка качества фотографий. В статье рассматриваются различные критерии качества изображений, а также их количественная оценка. Из полезного: оценка резкости изображения, что может быть полезно для выделения одного наиболее информативного кадра в потоке на заданном промежутке времени. Есть математические операции по подсчету, а также примеры использования OpenCV для получения количественных оценок

2. Алгоритмы предобработки изображений в системе идентификации лиц в видеопотоке. В статье описывается алгоритмы предобработки изображений для их последующей обработки. Сюда входит

— Обесцвечивание

— Выравнивание гистограммы яркости изображения

— Выравнивание изображения относительно вертикальной оси симметрии лица (по возможности)

— Масштабирование

3. Video data quality improvement methods and tools development for mobile vision systems. В статье производится сравнение подходов однопоточной и многопоточной мобильной обработки видео, зависимость скорости обработки видео от его разрешения, а также приводятся примеры перехода из пространства RGB в YUV на OpenCV с целью оценки освещенности изображения

4. Age + Gender Estimation in Android with TensorFlow. Приложение под Android, определяющее пол и возраст человека на изображении. Прилагаются скриншоты результатов распознавания. Если с точностью определения пола все хорошо, то c определением возраста как-то не очень (числовые оценки не приводятся). Есть ссылки на датасет и блокноты в Colab, которые экспортируют модели TFLite (используется в приложении для Android). Из полезного можно вынести на мобилку модель для определения пола.


Очень важно изучить существующие открытые проекты на github. Например, если мы пытаемся по видеоряду определить возраст человека и всё делаем на питоне, то можно поискать age detection и выбрать ограничение на python. На текущий момент в поиске будет почти 600 проектов. Их берём и разбираем — есть ли документация, можно ли запустить, свежее ли, есть ли описание. Если что-то можно переиспользовать (с оглядкой на лицензию) — то переиспользуем.

Как анализировать предметную область перед разработкой на примере видеоаналитики Программирование, Разработка, Python, IT, Обучение, Telegram, Наука, Длиннопост

В телеграм-канале разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку.

PS: спасибо Александре Элбакян за sci-hub

Показать полностью 1
[моё] Программирование Разработка Python IT Обучение Telegram Наука Длиннопост
7
40
anetto1502
anetto1502
2 года назад
Программирование на python

Рефакторим простое на python⁠⁠

Давайте посмотрим на 10 строк кода.

Рефакторим простое на python Программирование, Разработка, Python, Обучение, Telegram, IT, Код, Длиннопост

Вроде всё хорошо. Классическое открытие файла с помощью контекстного менеджера with, классическая построчная обработка. Разбиваем строку, записываем в список словарей. Всё ли по канону? Неа:

1. Смотрим документацию: readlines возвращает список всех строк файла. Значит, для большого файла может быть беда. Современный питон позволяет итерироваться сразу по объекту file_. Просто пишем

for line in file_:

2. raw_line[0] и прочие индексы — это всегда ужас. Заменяем на

fio, login = line.split(";")

Вроде то же самое, но мы сразу понимаем, что было в строке. И тут же видим следующую проблему.

3. А что, если в строке нет двоеточия, или этих двоеточий больше одного? То есть нужна обработка ошибок на исключение ValueError, если справа split вернул не два значения. Добавляем try-except.

4. Частая проблема split — это лишние пробелы. Скорее всего, потребуется strip всем переменным после split.

Итого 4 ошибки на 10 строк кода.


Теперь посмотрим на переработанный код. Docstring вырезан для краткости.

Рефакторим простое на python Программирование, Разработка, Python, Обучение, Telegram, IT, Код, Длиннопост

Код теперь крут:

1. Есть аннотация типов. Понятно, что на входе строка, на выходе список.

2. С файлом всё работаем через контекстный менеджер, то есть закрыть не забудем — оно само

3. Не забыли про запрет использования file как ключевого слова, поэтому file_

4. При разбиении строки по точке с запятой используем именованные переменные

5. При ошибках — кастомные исключения. Не забудьте их документировать в docstring

6. Добавлены strip для убирания лишних пробелов по краям. Опционально

7. Выходная переменная называется logins

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

В общем, каждая строка на своём месте. Или всё ещё нет?


Возьмём такой входной файл

Иванов Иван;anetto
Сидоров Петр;bnetto
Петров Артём;сnetto

Для него вывод итогового logins будет выглядеть так

[{'fio': 'Иванов Иван', 'login': 'anetto'}, {'fio': 'Сидоров Петр', 'login': 'bnetto'}, {'fio': 'Петров Артём', 'login': 'сnetto'}]

Этот словарь не является удобной конструкцией, ФИО доступно как logins["fio"]. Кроме того, мы демонстрируем наружу внутреннее представление, нарушая принцип инкапсуляции. Замена словаря на список, например, заставит переписать весь код, который использует эту структуру данных. Какой может быть выход?


Создадим класс Student и превратим словарь в экземпляр класса. Можно использовать namedtuple из collections, но мы пойдём своим путём - создадим класс с двумя полями (fio, login) и двумя методами (конструктор и repr для вывода). Теперь logins будет списком экземпляров класса.

Рефакторим простое на python Программирование, Разработка, Python, Обучение, Telegram, IT, Код, Длиннопост

Бонусов много:

1. Мы скрываем внутреннее устройство Student. Наружу мы отдаём только пару полей, откуда мы их берём никто снаружи не знает. Вместо logins["fio"] теперь используется logins.fio.

2. Можем к Student добавлять методы. Например, вывод фамилии с инициалами в стиле Иванов И.И. — теперь это в нашей власти. В примере в repr выводится ФИО:логин. Мы полностью можем кастомизировать вывод.

3. Можем добавить новые способы создания этого студента, например, данные брать из базы данных.

Пока методов нет, можно выключать диагностику pylint, а то нам будет ругаться "у класса слишком мало публичных методов". Не забываем включить её обратно после класса.


Теперь вывод выглядит так

[Иванов Иван:anetto, Сидоров Петр:bnetto, Петров Артём:сnetto]

В телеграм-канале разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку. На ютуб-канале вы можете посмотреть часовой стрим по созданию небольшого проекта на gitlab.

PS: а как лучше вставлять фрагменты кода? В цитатах нет подсветки :(

Показать полностью 2
[моё] Программирование Разработка Python Обучение Telegram IT Код Длиннопост
39
64
anetto1502
anetto1502
2 года назад
Программирование на python

Учебный python-проект student на gitlab с тестами, часть 1⁠⁠

Периодически приходится объяснять одни и те же детали работы с python в gitlab. Решил записать видео-версию, чтобы покрыть часто возникающие вопросы.


Часовое видео включает в себя полноценную работу в консоли и редакторе vim.  Раскрыты следующие аспекты:

1. создание проекта в gitlab

2. консольную работу в git (git status / add / commit / diff / push), в том числе удобные alias для ускорения работы

3. pylint, в том числе выключение некоторых диагностик в тестах

4. создание небольшого проекта на python, в том числе

— база типа запуска hello world, if name == main, f-строк

— три варианта запуска скрипта

— чтение из CSV файла с разделителем "точка с запятой" ФИО и логины

— обработка исключений, в том числе re-raise

— google docstring

— requirements.txt и pip freeze

— проверка наличие логинов на gitlab.com

— разница mv и git mv

— правильная структура проекта

— постоянное использование tab, ctrl+R и прочих практик ускорения работы

— колёсико мышки для вставки буфера выделения

5. создание тестов к проекту с помощью pytest и фикстуры-файла


Код на gitlab. Мой bash конфиг.

В телеграм-канале разбираем разные нюансы из жизни разработчика на Python и не только — python, bash, linux, тесты, командную разработку. Есть разборы фрагментов кода, где в нескольких постах описывается превращение кода "как попало" в хороший. Есть обзоры тенденций (например, выдержки из stackoverflow survey или обзор тенденций систем контроля версий на рынке). Популярен пост как разработчику исследовать предметную область, чтобы не велосипедить и пользоваться топовыми научными достижениями.


На ютуб-канале вы ещё можете посмотреть видео про атаку forkbomb в docker или идеальный скрипт на bash.

Показать полностью 1
[моё] Python Gitlab Vim Git Программирование Разработка Обучение YouTube Telegram Видео
49
22
YtYt.Pikabu
YtYt.Pikabu
2 года назад
Программирование на python

Войти в IT за 365 дней. Дни #21-31⁠⁠

3 начинающих программиста изучают Python и ведут видеодневники. Предыдущие выпуски можно найти в профиле.


Краткий срез по состоянию на 29 августа: тема "Коллекции" пройдена, Юрий и Андрей уже написали первые самостоятельные проекты. Проект Юрия можно увидеть на видео ниже, а Андрей запишет демонстрационное видео на следующей неделе.


А вот у Дениса другие успехи - он ещё не закончил проект, зато уже устроился на должность Python-разработчика :) Ранее он работал в отделе техподдержки, а теперь занимается написанием несложных скриптов на Python в этой же компании. Правда, теперь приходится учиться и до работы, и во время работы, и после работы, потому что начальство просит поскорее разобраться с классами, а на YtYt он до них ещё не дошёл.

Финальный проект Юрия здесь:

А откровения Андрея на тему "Чем больше знаешь, тем сильнее разбегаются глаза при выборе разных вариантов решения" - здесь:

Показать полностью 2
IT Программирование Python Обучение Видео YouTube Длиннопост
16
7
proDream
proDream
2 года назад
Серия Цифровые профессии: Обучение

Обучение: первый месяц⁠⁠

Приветствую.

Пролетел первый месяц с начала обучения.


Для тех, кто не читал предыдущие посты: Учусь по программе "Цифровые профессии".

Поступил в GeekBrains на курс "Python разработчик".

Сейчас проходит 3х месячная "общая" программа.


Что было и что изучил за месяц:

Было 3 лекции и 3 семинара "Основы программирования". В основном изучали алгоритмы и постороение блок-схем. Было интересно и полезно.


Так же было 3 лекции и 3 семинара "Введение в контроль версий". Оббучали работы с git в локальном репозитории, а потом и с удалённым на github. Было полезно, был ранее знаком с git на уровне "авторизовался на гитхабе в IDE и нажал кнопочку". Но должен отметить, что на семинарах было откровенно скучно, потому что в основном повторяли одно и тоже из лекций "для закрепления".


Началась программа "Знакомство с языками программирования", было 2 лекции и 3 семинара. На них нас обучают языку программирования C#(CSharp). До этого я немного учил питон и после него синтаксис сишарпа кажется громоздким, но я воспринимаю это как полезный опыт.



В целом негативных ощущений за первый месяц нет, в основном только положительные(может потому, что у меня нет опыта прохождения 500 различных платных курсов как у частых критиков такого обучения из комментариев).


Как-то так.

Показать полностью
[моё] Обучение Образование Python Учеба Geekbrains Инвалид Госуслуги Текст
23
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
133
YtYt.Pikabu
YtYt.Pikabu
2 года назад
Программирование на python

Как научиться программированию? 4 ключевых ошибки⁠⁠

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


В общем, встречайте: статья для всех, кто уже давно сидит на Stepik, пересмотрел сотни видео на YouTube, перечитал много книг, но до сих пор не научился программировать.

Как научиться программированию? 4 ключевых ошибки IT, Программирование, Python, Обучение, Совет, Длиннопост

Ошибка №1: изучать язык вместо того, чтобы учиться программировать

Вот ситуация, которую я постоянно вижу у новичков на код-ревью: студент прошёл несколько курсов на Stepik, Udemy или Coursera, иногда даже документацию на docs.python.org успел почитать. Он легко может перечислить параметры любой встроенной функции или перечень зарезервированных слов в алфавитном порядке. Но при этом простейшая задачка на 50-60 строк кода вгоняет его в ступор, на решение уходит несколько часов, а получившийся код выглядит как жуткое месиво из прошлогоднего салата и человеческих останков.


Алгоритма нет, задача решалась на ходу и в процессе переписывалась 5 раз. Функции и переменные названы как попало, да и остальные правила написания чистого кода тоже соблюдались весьма условно. Зато синтаксис языка изучен на 100 из 100 баллов. Вот только пользы это не принесло.


А как правильно?

Пишите больше кода. Составляйте алгоритмы. Думайте над задачами. Соотношение «практика / теория» должно быть 5-к-1 или ещё больше. Недостающую теорию вы всегда можете загуглить, но если вы сфокусируетесь на изучении мельчайших деталей языка, а не на написании кода, то не научитесь никогда.


Ошибка №2: искать лёгкие пути и избегать трудных заданий

«Ой, эта задача сложная, её пока пока что пропущу, решу что-нибудь полегче. Такой проект я пока не потяну, лучше напишу что-нибудь попроще». Делаете так? Тогда поздравляю, вы попали во вторую по популярности ловушку для новичков.


Представьте себе бегуна, который хочет побеждать в соревнованиях, но на тренировках никогда не разгоняется до максимальной скорости, а иногда вообще ограничивается лишь разминкой, и потом с чувством выполненного долга идёт домой. Он никогда не потеет и не устаёт, круто! Вот только настоящим бегуном так никогда и не станет, и в соревнованиях никогда не победит — ни спустя год, ни спустя 10 лет.


То же самое и в программировании. Можно решить 50 несложных задач, а можно и 5 000. Но в обоих случаях вы столкнётесь с одинаковыми трудностями, когда перейдёте к более серьёзным задачам. Только времени во второй ситуации потратите в 100 раз больше.


А как правильно?

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


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


Ошибка №3: изучать всё, что попадётся под руку

Сегодня изучаем Python, потому что на нём пишется красивый код, а ещё он используется в Google. Завтра Javascript, потому что на нём можно написать и бэк, и фронт. Послезавтра Go, потому что он перспективный и современный. Потом возвращаемся к Python и 2 месяца пытаемся изучить Django, а в итоге понимаем, что без хорошего знания Python и хотя бы базового знания SQL Django в голову вообще не ложится. Знакомая картина?


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


А как правильно?

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


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


Ошибка №4: рассчитывать на то, что за 6-7 месяцев вы станете Middle-разработчиком

Я испытываю странную смесь уважения и негодования к маркетологам кое-каких онлайн-школ за то, что они сумели внушить людям такую мысль. Дар убеждения у них определённо есть. К сожалению, в обещании обучить с 0 до middle за полгода правды не больше, чем в обещании стабильно выплачивать проценты вкладчикам МММ.


Прежде всего, грейд «middle» подразумевает, что разработчик уже имеет опыт работы на реальном проекте. Причём этот опыт, как правило, должен быть не менее тех самых 6-7 месяцев, а скорее даже не менее 1 года. То есть мидлом без реального опыта стать нельзя по определению.


Более того, в современном мире даже к Junior-разработчикам предъявляются такие требования, что на обучение стоит закладывать около 700-900 часов, то есть примерно 1 год. Это при условии, что вы идёте по чётко намеченной программе, не тратите время на поиск материалов, и у вас есть ментор, который вовремя вернёт вас на нужные рельсы, если вы с них сойдёте.


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


А как правильно?

Настраивайте себя на то, что учиться придётся долго. Более того, учиться придётся даже после того, как устроитесь на работу, потому что отрасль IT очень быстро развивается и изменяется. Если не готовы к долгому марафону, то не надейтесь на чудо и не тратьте своё время.


Итого

1. Практикуйтесь;

2. Не избегайте сложных задач, а стремитесь к ним;

3. Двигайтесь по намеченному пути, без метаний из стороны в сторону;

4. Готовьтесь к тому, что учиться придётся долго.


Статья получилась немного пессимистичной, как будто программирование — это сплошная боль и печаль. На самом деле всё далеко не так плохо :) Программирование — это очень интересно. Оно развивает мозг, дарит радость от решения сложных задач и позволяет приносить пользу другим людям. Так что если вам нравится программировать — следуйте этим несложным советам, и всё получится. Удачи!

Показать полностью
IT Программирование Python Обучение Совет Длиннопост
65
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии