за сколько можно научиться программировать с нуля на python
Как выучить Python с нуля? 15 бесплатных курсов и самоучителей
В этой статье мы расскажем, с чего начать изучение популярного языка программирования. На каких сайтах находятся бесплатные курсы и самоучители. Как получить работу в сфере разработки и многое другое.
Содержание статьи:
Где используется Python и для чего?
Основные сферы применения данного языка программирования:
Создание сайтов, интернет-сервисов, порталов, парсеров. Питон используют для программирования серверной части, то есть скриптов, которые отвечают за обработку информации и вычисления. Подробно об этом можно прочитать в описании профессии Backend-разработчик.
Машинное обучение и искусственный интеллект
Создание поисковых систем и других программ, где применяется AI. Например, в Яндексе и Google активно используют данную технологию.
Big Data (анализ и обработка больших массивов данных)
Проведение научных исследований и вычислений, анализ финансовых рынков и составление прогнозов. Основные работодатели – научные центры, банки, инвестиционные фонды.
Помимо указанных областей, язык программирования Питон используют в мобильной разработке (например, в приложении Инстаграм), компьютерных играх, в телекоммуникационном оборудовании, банкоматах, ЧПУ-станках. На этом языке пишут десктоп-программы, например, графический редактор GIMP.
В числе ИТ-компаний, где востребована данная технология: Facebook, Microsoft, Dropbox, Intel, Cisco, HP, IBM, Qualcomm, Seagate и множество других.
Зачем учить Python? Преимущества и недостатки языка
Что нужно учить в первую очередь?
Базовые знания языка Python
Операторы, выражения, переменные, условный оператор if, ветвления, циклы (while, for), циклы со счетчиком, работа со списками и их сортировка, массивы, кортежи и строки, словари, функции, работа с модулями, работа с файлами (открытие, чтение, запись), основы работы с сетью. Изучить фреймворки, например, Django.
Что такое ООП (объектно-ориентированное программирование), алгоритмы и структура данных, базы данных (какие бывают, как с ними работать).
Системы контроля версий
В первую очередь Git.
Если планируете работать в сфере веб-разработки, лучше дополнительно освоить HTML и CSS, основы JavaScript, научиться верстать адаптивные макеты.
За сколько времени можно выучить Python?
От 8 до 12 месяцев, если вы изучаете программирование с нуля и хотите освоить разные технологии, нужные для поиска работы. Например, курс в Skillbox для Питон-разработчиков идет ровно год. Он рассчитан на новичков, и в его рамках обучают самому языку, а также верстке, работе с базами данных и Git.
Бесплатные курсы и материалы для новичков
В интернете много сайтов и видеоуроков, которые можно смотреть бесплатно. Ниже собран их обзор.
Сайты и самоучители, в основном бесплатные:
Яндекс.Практикум – онлайн-курс от Яндекса. Первая часть, где обучают азам, бесплатная. Ее можно пройти самостоятельно, а потом решить, что делать дальше.
Также советуем посмотреть 24 сайта для изучения программирования на русском языке. В нем собраны ссылки на полезные справочники, каталоги и другие ресурсы для разработчиков.
ООП для новичков – советуем посмотреть для общего развития.
Также в Клубе фрилансеров вы найдете бесплатные уроки по программированию и верстке. Рекомендуем заглянуть в группу и сохранить себе подборку материалов.
Где учиться программировать на Python?
Самостоятельное обучение подходит не всем. Кроме того, сложно осваивать новые знания с нуля, не имея опыта. Поэтому можно пойти на онлайн-курсы, где готовят разработчиков. Примеры таких программ:
Курс в Skillbox. Подходит новичкам. Здесь учат создавать простые и сложные программы, работать с базами данных, тестировать код, использовать Git. Помимо самого языка, вы освоите фреймворк Django и веб-верстку. Отдельные лекции посвящены построению карьеры.
Курс в Нетологии. Формат обучения: вебинары по вечерам и практика. На момент подготовки обзора отправляли студентов на стажировку в «Ланит». На наш взгляд, заточен для подготовки веб-разработчиков. Например, среди курсовых проектов – интернет-магазин. Если вы хотите работать с сайтами, интернет-сервисами и приложениями, то присмотритесь к нему.
Плюсы обучения на курсах – возможность общаться с практиками, задавать вопросы и быстро получать ответы. Системный подход. Помощь в старте карьеры, поиске стажировки и вакансий. Также в процессе обучения вы получаете не только теоретические знания, но и практику, пишете программы, которые можно показать работодателям на собеседованиях.
Советы для начинающих
Старайтесь писать простой и понятный код. Посмотрите, что такое ООП и как его использовать.
Как устроиться на первую работу?
Практикуйтесь. Работодателям важны ваши реальные знания и навыки, и именно их будут проверять на собеседованиях.
Удачи вам в освоении языка программирования Python и поиске работы!
Сколько Времени Требуется Для Изучения Python
Изучение Python зависит от вашего фона если вы полный новичок в мире программирования, то вам потребуется около 7-8 недель, чтобы изучить основы python.
Сколько Времени Требуется Для Изучения Python
Прежде чем задать вопрос, сколько времени требуется для изучения python спросите себя, почему вы хотите изучать язык программирования python. Спросите себя, почему вы выбрали python, а не другие языки программирования.
Python заменил Java как самый популярный язык в колледжах и университетах и никогда не оглядывался назад. Итак, давайте начнем Путешествие, Начиная с Того, почему Python и сколько времени требуется для изучения языка программирования python.
Зачем Изучать Python?
Python-это язык общего назначения, а это значит, что его можно использовать для создания практически всего, что будет легко сделать с помощью правильных инструментов/библиотек.
Профессионально Python отлично подходит для бэкэнд-веб-разработки, анализа данных, искусственного интеллекта и научных вычислений. Многие разработчики также использовали Python для создания инструментов повышения производительности, игр и настольных приложений, поэтому существует множество ресурсов, которые помогут вам научиться делать и это.
Почему вы должны изучать Python как свой первый язык программирования:
Итак, означает ли широкий спектр использования Python, что технические новички должны придерживаться более привычных языков веб-разработки? Ни за что! Диапазон Python может показаться пугающим, но он известен как простой в освоении и использовании язык программирования.
Помимо того, что он потрясающий, Python должен быть вашим первым языком программирования, потому что вы быстро научитесь думать как программист. Python очень удобочитаем. Вы не будете тратить много времени на запоминание загадочного синтаксиса, который вам преподнесут другие языки программирования. Вместо этого вы сможете сосредоточиться на изучении концепций и парадигм программирования. Как только у вас есть эти инструменты под вашим поясом, вы можете перейти к другим, более мощным, конкретным языкам и легко понять данный фрагмент кода. Но не ошибитесь. Вы не играете с детской игрушкой. Python-это супер-мощь! href=”https://www.python.org/about/success/usa/”>Есть причина, по которой НАСА использует его. Как новичок, вы сможете сделать все, что вам нужно, с помощью Python. href=”https://www.python.org/about/success/usa/”>Есть причина, по которой НАСА использует его. Как новичок, вы сможете сделать все, что вам нужно, с помощью Python.
КТО ДОЛЖЕН ИЗУЧАТЬ PYTHON?
Итак, означает ли широкий спектр использования Python, что технические новички должны придерживаться более привычных языков веб-разработки? Ни за что! Диапазон Python может показаться пугающим, но он известен как простой в освоении и использовании язык программирования. А это значит, что Python-хороший язык для изучения:
Сколько времени требуется для изучения Python
Если вы спрашиваете меня о том, сколько времени требуется, чтобы выучить Python? Тогда я отвечу вам, что это зависит от вас. Если вы очень увлечены изучением языка программирования python, то вы изучите python очень быстро. Но если вы просто учите python, чтобы заработать на нем немного денег, то извините. Потому что в этом случае вам будет трудно выучить python.
Если вы совершенно новичок в программировании, с регулярной и целенаправленной практикой, вы должны быть в состоянии подобрать базовый синтаксис и структуру примерно за 6-8 недель. Изучение python не займет много времени. Но чтобы стать совершенным в python, требуется много времени. Если вы новичок и хотите изучить Python. Вам придется быть очень преданным и сосредоточенным. Если у вас уже есть опыт работы с другими языками, вам может потребоваться неделя или две, чтобы освоить базовый синтаксис и структуру языка.
Сколько времени требуется, чтобы Стать экспертом в языке программирования Python
Чтобы стать экспертом в Python, вам нужно продолжать работать над проектами. Чем больше проектов вы делаете, тем больше вы учитесь.
Однако, если вы знаете некоторые основы других языков программирования, таких как C, и вам это интересно. Тогда вам будет очень легко понять и выучить его. Если вы новичок в мире программирования, то python-хороший выбор, но убедитесь, что у вас есть страсть к его изучению, тогда вы научитесь ему очень быстро.
Однако программирование – это гораздо больше, чем основы. Чтобы действительно стать хорошим программистом продвинутого уровня, может потребоваться от 2-4 лет или более при регулярной практике. Это зависит от того, сколько времени вы посвящаете, насколько вы увлечены, ваша логика и творчество и многое другое. Однако правда в том, что даже мастера-программисты каждый день узнают что-то новое. С программированием никогда не бывает финишной черты, где вы “закончили” обучение. Научитесь принимать путешествие, и вы будете хорошо на своем пути. Поэтому здесь невозможно дать точные цифры: это тот тип опыта, который вы получаете на практике, и он чрезвычайно зависит от контекста. В сложной среде вы станете продвинутым программистом Python после two до трех лет.
Можно Ли Выучить Python Без Какого-Либо Фона В Языке Программирования?
Программирование просто основано на логике. Если у вас есть отличное чувство логики, вы можете начать практически с любого языка, такого как Python, Java. Когда дело доходит до читабельности кода, PYTHON является одним из самых простых языков, поскольку ему требуется меньше строк кода. Вы можете легко начать, если у вас есть некоторые базовые знания английского языка и математики.
Как Быстро Вы Можете Учиться и Факторы обучения
К сожалению, ответить на этот вопрос непросто. Точно так же, как овладение любым другим навыком, аналогичное обучение программированию на Python сильно зависит от вашего фона и индивидуальных способностей. Ниже приведены факторы, которые я считаю наиболее важными для изучения Python.
1. Метод Обучения
Очень важно выбрать методы обучения, которые подходят нам лучше всего и поддерживают процесс обучения, а не мешают ему.
2. Предыдущий Опыт Программирования
Человеку, который никогда раньше не писал ни строчки кода, изучение языка программирования покажется более сложным, чем тому, кто обогащает свой портфель программ после нескольких лет профессионального развития. Все языки программирования имеют схожую логику, поэтому, как только вы начнете думать как разработчик, вам будет относительно легко освоить новый.
Однако это не означает, что кто-то без опыта программирования не сможет выучить Python. Python-это идеальный выбор для начинающих программистов, потому что он прост и помогает вам развить хорошие навыки программирования, так что не волнуйтесь, если вы новичок в этом мире.
3. Время, посвященное обучению
Очевидно, но все еще забыто: время, необходимое для изучения или сколько времени требуется для изучения Python, зависит от времени, доступного для изучения. Если бы у нас было два человека с одинаковым опытом программирования и другими характеристиками, упомянутыми выше, но разным количеством свободного времени (например, 3 часа в день против 3 часов в неделю), им не понадобилось бы одинаковое количество недель, чтобы начать писать код.
Почему программисты должны изучать Python в 2020 году
Если вы думаете об изучении Python, но не уверены, почему вы должны это делать, то вот 10 причин, которые подчеркивают преимущества изучения Python в 2020 году.
В любом случае, без лишних слов, вот мои 5 причин изучать Python в 2020 году.
1. Наука о данных
2. Машинное обучение
3. Веб-Разработка
4. Огромное сообщество
5. Работа и зарплата
Где Я Могу Выучить Python?
Вы можете использовать книги, видеоуроки или интерактивные онлайн-уроки или пройти автономный коучинг в хорошо известном коучинговом центре.
Если вы решите изучать Python в 2020 году, то вот некоторые из полезных книг, курсов и учебных пособий по Python, чтобы начать свое путешествие в прекрасный мир Python.
1. Онлайн-Курсы
Возможно, вы знаете, что есть много сайтов, которые предлагают онлайн-курсы и видео для обучения различным предметам. Точно так же вы можете выучить и Python.
Ниже приведены несколько веб-сайтов:
Эти сайты имеют разные способы обучения Python. Вы должны попробовать все.
2. Книги и практика
Если вы хотите прочитать книгу и попрактиковаться на примерах кодов для изучения Python, вы тоже можете это сделать. Тем не менее, вы должны получить несколько действительно хороших книг и начать читать уроки один за другим, а также продолжать практиковать кодирование на компьютере.
Ниже приведены несколько хороших книг для изучения Python:
Вы можете получить гораздо больше книг на Amazon; вы можете получить несколько хороших книг, прочитав их отзывы. Но моя рекомендация состоит в том, чтобы пойти с Learn Python the Hard way href=”https://amzn.to/2SYdD63″>Книга. href=”https://amzn.to/2SYdD63″>Книга.
Ссылка на лучшую покупку Learn Python 3 the Hard Way упоминается ниже. Вы также можете прочитать наш полноценный href=”https://amzn.to/2ZVxMLq”> рецензия на эту книгу. href=”https://amzn.to/2ZVxMLq”> рецензия на эту книгу.
Обзор: Изучите Python на горьком опыте
amzn_assoc_tracking_id = “python pool-20”;amzn_assoc_ad_mode = “manual”;amzn_assoc_ad_type = “smart”;amzn_assoc_marketplace = “amazon”;amzn_assoc_region = “US”;amzn_assoc_design = “enhanced_links”;amzn_assoc_asins = “0134692888”;amzn_assoc_placement = “adunit”;amzn_assoc_link = “2b0c9538b5814c26fa62b692f814595d”;
3. Автономные занятия
Вы также можете присоединиться к какому-нибудь коучинговому классу самое большее на 1 месяц, чтобы избавиться от своих сомнений гораздо лучшим способом. Кроме того, в классе вы взаимодействуете с другими студентами и преподавателем и обсуждаете Python, который помогает вам изучать его гораздо лучше.
Самообучение-это потрясающе, но иногда некоторые сомнения не проясняются во время обучения самостоятельно, поэтому очень важно присоединиться к офлайн-классу коучинга, чтобы легко выучить Python.
Вывод
Так что теперь, я думаю, у вас, ребята, есть четкое представление о том, сколько времени требуется, чтобы выучить Python. Python-это простой в освоении язык программирования, и он также не менее мощный. Он был очень популярен из – за своего более чистого синтаксиса. Если вы начнете учиться, вы научитесь этому легко. Итак, начните прямо сегодня, если у вас есть интерес к изучению Python.
Если у вас все еще есть какие-либо сомнения, вы можете упомянуть об этом в комментариях ниже. Я постараюсь ответить на все из них как можно скорее.
Python за месяц
Руководство для абсолютных чайновичков.
(Прим. пер.: это советы от автора-индуса, но вроде дельные. Дополняйте в комментах.)
Месяц — это много времени. Если тратить на обучение по 6-7 часов каждый день, то можно сделать дофига.
Теперь план по неделям.
![]()
Статья переведена при поддержке компании EDISON Software, которая дает дельные советы юниорам, а также проектирует программное обеспечение и пишет ТЗ на русском и английском.
Первая неделя: познакомьтесь с Python
Разберитесь как все устроено в Python. Проверьте как можно больше вещей.
Я понимаю, звучит противоречиво. Но поверьте мне. Я знаю кучу людей, у которых отпало всякое желание изучать что-либо после того как они не смогли установить среду разработки или ПО. Я советую сразу залезть в андроид приложение вроде Programming Hero или на сайт Repl и начать исследовать язык. Не ставьте себе задачу первым делом установить Python, если вы не особо подкованы технически.
Вторая неделя: начните разработку программного обеспечения (соберите проект)
Получите опыт разработки ПО. Попробуйте использовать все, что вы выучили, чтобы создать настоящий проект.
Просто слепо следуя шагам в уроке или видео вы не разовьете умение думать. Вы должны применить свои знания в проекте. Как только вы потратите все силы на поиск ответа, вы его запомните.
Третья неделя: освойтесь как программист
Ваша цель на 3 неделе получить общее представление о процессе разработки ПО. Вам не нужно будет оттачивать ваши навыки. Но вы должны знать некоторые основы, так как они повлияют на вашу повседневную работу.
Если вы болеете этой темой и посвящаете ей всего себя, то сможете сделать все за месяц.
Четвертая неделя: серьезно отнеситесь к тому, чтобы получить работу (стажера)
Ваша цель четвертой недели всерьез задуматься об устройстве на работу. Даже если вы не хотите получать работу прямо сейчас, вы многому научитесь в процессе собеседований.
часов): Каждый раз, когда вы получаете отказ, определите для себя 2 вещи, которые вы должны знать, чтобы получить работу. Затем потратьте 4-5 дней на то, чтобы отточить свое мастерство в этих вопросах. Таким образом, после каждого отказа вы будете становиться лучше как разработчик.
Готовность к работе:
Правда в том, что вы никогда не будете готовы к работе на 100%. Все что вам нужно это очень хорошо выучить 1-2 вещи. И ознакомиться с другими вопросами, чтобы преодолеть барьер собеседований. Как только вы получите работу, вы многому научитесь на ней.
Обучение это процесс. На вашем пути обязательно будут трудности. Чем их больше — тем вы лучше как разработчик.
Если вы сможете закончить список за 28 дней, вы большой молодец. Но даже если вы выполните 60-70% списка, вы разовьете необходимые качества и навыки. Они помогут вам стать программистом.
Если вы все еще не знаете c чего начать,
Говорят, выучить Python и стать программистом легко. Правда?
Работать в ИТ — круто, но путь в индустрию может быть совсем не таким, как описывают родители или преподаватели в школе. На биржах труда ищут мобильных разработчиков, девопсов, бэкендеров и фронтендеров, но где эти профессии в списках специальностей классических вузов?
Мы запускаем цикл статей в которых подробно расскажем о каждой профессии через опыт людей. В первом выпуске обсуждаем Python-разработчиков. Свои истории рассказали Артем Сухаренко и Данила Лобанов. Они пришли в профессию совсем недавно, но успели набраться опыта в других сферах. А экспертом выступил Алексей Петренко — декан факультета Python в Geekbrains.
Мы поговорили о том, что нужно знать перед обучением, чем хорош и плох язык, что трудного ждет в обучении и на чем стоит сосредоточиться; какие профессии и деньги сулит знание языка, как готовиться к первым собеседованиям и многое другое.
Для чего учить Python
Артем Сухаренко учился в СибГИУ на кафедре автоматики и информатики. Его специальность была инженерной, но не связанной с программированием. После выпуска Артем устроился работать на завод ЗСМК — один из самых крупных металлургических комбинатов в России.
«Я обалдел, насколько там все ужасно», — говорит он, — «Полуразвалившийся советский электропривод, никакой модернизации, специалисты особо не нужны». Долго на заводе он не задержался, но продолжил работать с электрикой дальше. Вырос до ведущего инженера в Сибирьтелекоме, затем переехал из Сибири в Москву и устроился в коммерческий ЦОД, где отвечал за инфраструктуру.
Программирование иногда подразумевалось. Артем пытался работать с микроконтроллерами, делать что-то более сложное, но всегда упирался в отказы работодателей и заказчиков — им это было не нужно. Хватало элементарных вещей, которыми, как говорит Артем, интересно заниматься только первые 15 минут, и особых скиллов для этого не нужно.
«Может быть, я не туда совался, но развития для себя не нашел. Пять лет вуза — просто чтобы крутить провода. Это было так обидно».
Однажды коллега подал Артему идею изучать программирование не для электрики, а чтобы стать разработчиком. Он стал читать книги, пробовать разные задачи, но не решался сменить профессию. «Желание у меня назревало долго. Сначала не давали сменить профессию ипотека, финансовые вопросы, личный страх».
В 36 лет Артем пошел на курсы Python-разработчика.
Веб-разработка стала клондайком для многих людей, кому интересны технические профессии. А Python — одним из популярнейших языков программирования для входа в профессию. Он привлекает простотой и универсальностью.
«Зная Пайтон можно делать много всего — от простейших скриптов до анализа данных и построения нейронных сетей. Но конкретно разработка на Пайтоне — это бэкенд для веб-серверов, разработка скрытой части интернета — той, которую не видят обычные пользователи. Сервер, его логику, взаимодействие с базами данных», говорит Алексей Петренко, декан факультета Python в Geekbrains.
«Думаю, это хороший выбор в качестве первого языка. У него простой синтаксис. Он прощает мелкие ошибки разработчика. У Пайтона низкий порог вхождения, на нем очень легко освоить азы программирования. У него очень большая аудитория и обширная библиотека, плюс много внешних библиотек, которые делают разработчики со всего мира. За счет этого он становится языком, который подойдет для чего угодно».
«Хоть Python и пропагандируется как язык для всего, по факту у него только две сферы применения: всякие data science, ML и прочая математика — и веб-разработка. В этом он меня немного разочаровал», — говорит Данила Лобанов, бывший сисадмин, который недавно стал Python-разработчиком.
«Питон понравился мне тем, что он может выполнять любую работу. У него есть библиотека для мобильных приложений, для десктопных, на нем можно писать скрипты автоматизации для серверов, можно веб-приложения. Но по факту на работу без глубокой математики требуются только веб-разработчики. Никто не пишет на нем десктопные приложения, и уж тем более мобильные. Для этого есть другие языки, которые создавались специально под свои задачи».
Данила тесно познакомился с компьютером относительно поздно, примерно в 18 лет. От высшего образования он отказался и почти сразу пошел работать сисадмином. Начинал с самых элементарных задач, потом приступил к изучению Linux и программирования.
«Я попытался изучать С, PHP, Java еще какие-то языки, но не заходило — начинал и бросал. Не мог писать даже простейшие скрипты. Когда я ходил на курсы по С, у меня получалось читать код, но не получалось его писать. Мне давали задачу, я смотрел на нее и не представлял, как делать. Преподаватель садился рядом, писал построчно, объяснял, и я понимал, что именно так и надо было делать. Но мне давали аналогичную задачу, и я снова был в ступоре».
После неудачных попыток Данила надолго забросил программирование. Около десяти лет он проработал сисадмином. И когда почувствовал, что администрирование больше не приносит радости, решил дать разработке еще один шанс.
«Новичку лучше первым делом разобраться в синтаксисе», — считает Алексей Петренко, — «Только потом стоит думать, куда хочется идти дальше. Чем больше ты учишься, тем больше уходишь от синтаксиса к библиотекам, паттернам проектирования, отдельным шаблонам».
Данила все-таки выбрал Python потому, что язык считался легким. «Синтаксис реально оказался простым», — говорит он, — «Как писать текст на английском языке. Сначала я изучал его самостоятельно по видеоматериалам на Ютубе, по статьям, решал задачи на pythontutor.ru. Но потом понял, что ресурсы в интернете — это только основы и азы. Они доступны всем и везде, и не помогут научиться программированию основательно. Я понял, что надо искать курсы, которые дадут все то же самое, только систематизировано, а потом поведут меня дальше».
Что надо знать перед началом обучения
Перед тем, как серьезно погружаться в изучение языка, Алексей Петренко рекомендует выяснить заранее — а нравится ли программировать вообще. «Я бы советовал попробовать написать несколько программ, пройти бесплатные уроки. Перед началом обучения лучше уже понимать, что такое переменная и как две переменные сложить.
Чтобы курсы не стали бесполезными, поможет только одно — практика. Если только смотреть и слушать, ничего не получится. Для новичка практикой будет даже переписать код, который преподаватель показывает на экране. Переписывать и думать, как он работает.
Необходимый минимум для занятий — четыре часа в неделю. Два дня в неделю по два часа. Но я бы рекомендовал выделять час в день на написание собственного кода. Главное не нырять в программирование с головой, чтобы не было буйства магии. Когда три дня учишь все подряд — в голове получается каша.
Начать может быть легко, но впереди ждут трудности
Артем продолжал работать электриком днем, а вечерами начал учиться на курсах, несмотря на усталость. «Как и у всех наивных людей, у меня было ожидание магии от курсов. Я пришел не совсем нулевым. В багаже было несколько книг и даже простых сайтиков, в том числе на PHP (грешен, признаю). Я ждал, что на курсах надмозги меня выдрессируют, и я стану волшебником. Реалии оказались другими — там такие же люди, которые просто знают чуть больше».
Артему нравилось на курсах, но не все шло гладко. Программа на тот момент была новая, мало обкатанная и по его впечатлениям сумбурная. О спорных моментах ученики высказывались, давали обратную связь, и недостатки исправлялись на ходу. Один из преподавателей оказался настолько слабым, что его попросили убрать. Но остальные, как вспоминает Артем, были очень сильны.
У Данилы же все шло еще труднее. После нескольких вводных курсов он перестал успевать за программой, и несколько раз покидал свой поток, чтобы повторять программу в следующем.
«Все признавали, в том числе сотрудники Geekbrains, что уровни 2 и 3 в программе по Python были одними из самых сложных курсов в университете. Очень много информации в слишком сжатые сроки, очень большие домашние задания. Многие усваивали только часть материала. Я лично два раза переводился в следующий поток. Мы просили облегчить программу, нас спрашивали как, и я предлагал разбить два курса на три. Что-то из этого приняли во внимание и сейчас реализовали».
В отличие от первых попыток учить С, когда ничего не получалось, Данила шел дальше. Вещи, которые он не понимал, превращались в вещи, которые он не понимает, как можно было не понимать. Но преодолеть эту грань нельзя простым зубрением учебников. Как говорит Данила, умение программировать и знание языка — абсолютно разные вещи.
«Преподавать программирование тоже очень сложно. Всем кажется, что раз человек может писать программы, значит может и научить. Это не так. Когда мышление перестроено, и знаешь много всего — уже не можешь вспомнить, каково это — не понимать».
Алексей предупреждает, что Python легкий только в начале. А после легкой базы придется приложить усилия, чтобы освоить более серьезные аспекты — библиотеки и фреймворки. «Если сравнить язык программирования с водоемом, то, например, язык С — это океан. Ты ныряешь с обрыва на огромную глубину, и либо плывешь, либо тонешь. Язык Пайтон — это пляж с чистым песком, где ты можешь далеко зайти, спокойно поплавать, и если понял, что хочешь двигаться дальше — то за красивым пляжем есть огромная впадина, по глубине сопоставимая с С и Java».
«Асинхронное программирование в Python — это мозгодробительная штука», вспоминает Артем. «Мы проходили это как-то поверхностно, и потом даже на собеседованиях, когда по нему спрашивали, я чувствовал, что плыл.
Паттерны проектирования тоже нахрапом взять невозможно. Я уже по три раза перечитывал выдержки, специально читал книгу, и все равно до конца не чувствую себя уверенным. За один месяц, который длится курс по ним, это вообще нереально освоить».
Данила же вспоминает модуль select как самое трудное: «Все три потока помнят мою боль с селектами. Есть такой модуль, и он мне прямо очень не давался в свое время. Сейчас-то он для меня простой — я теперь не понимаю, как его можно не понять».
«В базовой конфигурации Python лежит около 70 функций и несколько десятков зарезервированных слов, но даже крутой программист не обязательно использует их все. То есть, чтобы выучить сотню слов и понять, что они делают, можно потратить одну-три недели при желании и активной работе», говорит Алексей.
«Начинающие программисты пишут программы, которые тоже работают. Но код один раз пишут — десять раз читают. Когда спустя время программу пытается прочитать другой человек, то возникают сложности.
Чтобы в будущем работать в команде и показывать код кому-то еще, надо знать общепринятые стандарты стиля. В Python они называются «Пепы» (Peps). Я бы советовал читать Pep8 параллельно с изучением синтаксиса. Это соглашение программистов, которые пишут на Пайтоне. Оно рекомендует как правильно писать, а как неправильно.
Несколько лет назад в Python произошло разделение. Был Python 2.7, а потом вышла версия 3. Вторая версия все еще используется, но только в старых фирмах для поддержания легаси-кода. Если устроиться в такую фирму, то изучать Python 2 придется, но я бы рекомендовал учить третью версию. Все современные проекты и сторонние библиотеки пишутся под нее».
Как выдержать первые собеседования
Артем и Данила закончили курсы очень по-разному. Данила после нескольких попыток решил не заканчивать обучение, потому что не нашел взаимопонимания с преподавателем последних курсов, но зато нашел работу. Артем же вместе с сокурсниками уже во время обучения вырастил учебный проект в стартап, который начал приносить реальные деньги.
«Проект назвался GoLiving. Это что-то вроде AirBnb, только задумка такая: в Америке есть люди, которые часто ездят работать в разные города на непродолжительный период. И они могут между собой меняться жильем с гарантированной страховкой, чтобы точно быть уверенным, что не вернешься в разгромленную квартиру. Сейчас я не знаю, насколько далеко пошел этот ресурс, кажется финансирование приостановили. Но тогда у нас даже были инвесторы».
Данила во время обучения на курсах полгода сидел без работы. Он уволился специально, чтобы учиться, но из-за частых переводов учеба заняла больше времени, и отложенные на это время деньги подходили к концу. Покинув курсы, Данила даже не успел начать изучение Django — самого популярного фреймворка для веб-разработки.
«Под новый год я написал в компанию, которая просто находилась рядом с моим домом. Зашел к ним на сайт, увидел вакансию бэкенд-разработчика и написал им письмо. Говорю, хотел бы у вас поработать, хоть и учился, но знаю немного. Очень интересуюсь и буду развиваться. И меня позвали на собеседование».
«Мой опыт в Geekbrains показывает, что некоторые студенты находят работу, до того как они заканчивают годовой курс обучения», говорит Алексей. «Работодатель хочет видеть у серверного разработчика элементарное умение работать с синтаксисом, знание как работают сайты, как устроен бэкенд, тот же самый набирающий популярность Django. Я бы сюда ещё добавил работу в команде и знания баз данных, потому что любой бэкенд любого сайта неразрывно связан с хранением информации.
Ежемесячно на «Моём круге» открывается порядка 200 вакансий python-разработчиков, вы можете посмотреть самые свежие и подписаться на рассылку о новых вакансиях.
Во время интервью главное не молчать. Если дают задачу, на которую не получается сходу ответить, то надо просто рассуждать вслух, показывать, как думаешь, и что способен двигаться к решению.
И главное не отчаиваться, если первое собеседование оказалось неудачным. Сходя на два-три собеседования заметишь, что вопросы начинают повторяться. И тогда уже сам будешь выбирать, куда устроиться, потому что однажды из трех собеседований пройдешь сразу везде».
Данила на собеседовании больше всего удивило то, что ему не задали ни одного технического вопроса: «Не давали никаких заданий — просто общались о том, как я учился, чем интересуюсь. В итоге предложили работу, и я согласился».
Алексей же считает, что с такими компаниями стоить быть внимательнее. «Кроме общих вопросов должны быть задачи на написание кода. Даже если на бумаге карандашом — это нормально. Но если ты пришел на собеседование программиста и не получил ни одного вопроса о программировании, то тебя либо собеседовал некомпетентный человек, либо ты будешь заниматься вообще чем-то непрограммистским. Программистов надо проверять на программирование».
«Я считаю, не спрашивать технические вещи — это правильный подход», говорит Данила. «Очень известный в Python-сообществе Григорий Петров тоже говорит, что скилы по программированию (хард скилы) подтянуть всегда можно. Главное сойтись во взглядах на жизнь, чтобы было комфортно вместе работать. Я с ним согласен.
Конечно, навыки программирования важны. Но сейчас я работаю с такими вещами, которых на курсах не преподают. Мне их показали уже на работе, и дальше я разбираюсь сам, читаю документацию, статьи, смотрю примеры. Меня больше настораживают компании, которые дают «нормальные» тестовые задания. Ты смотришь и думаешь — а это правда тестовое или я сейчас бесплатный фрилансер?»
«Собеседование, которое проходил я, расплавило мне мозг еще как», вспоминает Артем. «Когда я вышел, состояние было, как будто иду на автопилоте — так сильно продолжали жужжать мысли».
Проходило оно так: сидели два эйчара и два технаря. Один питонист и фулстек, который занимался вебом — куда пробовался и я. Второй — судя по вопросам — совершенный надмозг. У него такой был сильный матан, что просто ого-го!
Сначала пошли житейские вопросы, все эти «как себя видишь, как себя чувствуешь». Потом за меня принялся фулстек, погонял меня по Python, по Django. Он прямо на бумаге накидывал примеры и спрашивал по ним. Не сложные, но с подковырками.
А потом за меня взялся дядька-надмозг. Полез вглубь матана, спрашивал про алгоритмы, и поскольку компания работает с безопасностью и шифрованием, он меня и по нему тоже погонял. Но в этом я совершенно не силен, поэтому отвечал как пятилетний ребенок. В общем, на шифровании сыпался, в алгоритмах держался, но не очень.
Честно, даже не ожидал, что мне перезвонят. Тем не менее — получил оффер. Через несколько дней будет первый рабочий день».
На какие деньги стоит рассчитывать
Люди идут в ИТ не только по зову души. Это индустрия с одними из самых быстро растущих зарплат в России. И иногда кажется, что зарплаты программистов по сравнению со среднестатистическими профессиями отличаются как зарплаты в Москве и в регионах. Тем не менее, ни Артем, ни Данила не шли в эту профессию за богатством. Больше того — они его пока так и не нашли.
«Даже в Москве на начальных позициях программистам предлагают 40-50 тысяч, может даже меньше. В регионах 20 тысяч для джуниора тоже не редкость. Это не такая уж высокооплачиваемая работа, как все утверждают. Да, когда достигаешь уровня синьора, зарплаты могут переваливать за 200-300 тысяч. Но где таких зарплат нет? Недавно одна такси-компания показала доходы таксистов, которые больше всех заработали. Там 230, 240 тысяч.
На диаграмме зарплат python-разработчиков с разбивкой по квалификациям видно, что медиана для джуна составляет почти 60 000 рублей, тогда как мидл получает уже в среднем чуть больше 100 000 рублей. Зато разница между показателями медиан для сеньора и лида совсем небольшая — 151 000 рублей и 167 000 рублей соответственно.
При построении диаграммы были использованы данные зарплатного калькулятора «Моего круга».
Возможно, в программировании проще дойти до уровня выше среднего, чем во многих других сферах. Но для меня это вообще не было главным. Мне было интересно создавать программы».
«Зарплаты зависят от региона», говорит Алексей, «Кто-то устроится за 40 тысяч как начинающий, кто-то может и сразу на 100 тысяч. Смотря как себя проявить. Если покажешь, что можешь писать не только код, но и разбираешься в архитектуре, можешь набросать схему проекта целиком, всех модулей, сервисов, связей между ними».
Артем же вообще ушел в разработку на меньшую зарплату, чем имел будучи инженером. «В электрике у меня была должность главного инженера, и зарплата была очень хорошая. Я ушел, потому что хочу развития. А в программировании можно развиваться до бесконечности».
Несмотря на то, что в программировании одна из самых четких и понятных градаций по уровню мастерства (джуниор, мидл, синьор) — она все равно остается относительной и постоянно разжигает споры размытостью своих критериев. Споры в духе «ты в компании Х синьор, а в компании Y и джуниором не возьмут» или «пока десять лет не работал — не синьор».
«До уровня мидла можно прокачаться в течение года обучения. Например, в Geekbrains есть обязательные курсы и дополнительное. Все их надо пройти полностью чтобы честно сказать — я прокачался до уровня мидла. То есть, получается год основной программы и ещё полгода параллельных курсов», — считает Алексей, — «А синьор — это человек, у которого есть богатый опыт. Это тот, кто разбирается в разных фреймворках, способен масштабировать задачи, понимать каких ресурсов они требуют. Человек, который не изобретает велосипеды. Кто на собственном опыте разобрался во всех аспектах и нюансах работы.
Если человек через три года работы называет себя синьором — почему бы и нет. Все зависит от фирмы, стремления и навыков. Если человек одаренный и целеустремленный, то я в это поверю.