Как практиковать программирование
Перейти к содержимому

Как практиковать программирование

Бери и делай: как прокачаться в программировании и разработке

Топтаться на одном уровне навыков – дорога в никуда. Хороший программист всегда учится, и поэтому растет в профессионализме и цене. Подгоняет к этому и ИТ-отрасль, которая быстро меняется и требует свежей крови разработчиков. Свежей и квалифицированной. Так, BLS прогнозирует, что спрос на программистов к 2026 году вырастет на 24%, а текучка кадров в ИТ уже сейчас выше, чем в розничных магазинах. Потому что вместе с потребностью в кадрах растут и требования к ним.

Так что, если вы ждали знак, чтобы начать прокачиваться, то вот он. А кому и этого мало, держите 5 признаков заиндевелости программиста.

  1. Ваш код плохо понимают коллеги, а если приходится вносить в него изменения, то все ломается.
  2. Вы сами боитесь приближаться к чужому коду и править его.
  3. Вы слишком долго решаете возникающие в работе проблемы, а написание кода для вас – это борьба, а не удовольствие.
  4. Вам не интересно, а страшно учить новые языки программирования.
  5. Вы с трудом объясняете свои задачи коллегам-технарям и совсем не знаете, как говорить о работе с гуманитариями из маркетинга.

Первые шаги к решению

Понимание проблемы – уже хорошо. Но наскоком прокачку навыков не взять. Начнете вы с энтузиазмом, но быстро выдохнетесь, а вместе с этим остановится и ваш рост. Блогер-разработчик из Facebook Joma Tech считает, что для постоянных изменений каждому нужна система. Рассказываем по пунктам, как ее выстроить.

Меняйте подход

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

Создавайте привычки

Кто-то советует выделить 20% рабочего времени на развитие, кто-то считает, что хватит 15 минут в день. Джома говорит о том, что для формирования привычки нужно 3 недели. Определите, сколько времени вы можете уделять учебе ежедневно и не отступайтесь минимум 21 день.

Ставьте дедлайны

Фиксируйте большие цели, пилите их на маленькие подцели и до достижения каждой устанавливайте свой срок. Будет хорошо, если об этом плане узнают другие люди – например, тимлид, который готов поставить вас на новый проект. Ответственность это хороший мотиватор.

Где в онлайне прокачаться

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

Курсы и материалы

Bento – учебные материалы по 80 языкам программирования.

Code School – курсы по разработке, программированию, работе с данными, кибер безопасности и многому другому. Можно оценить текущий уровень навыков и настроить план обучения.

Udacity – курсы от ведущих мировых инженеров и дата сайентистов. Эксклюзивные программы по блокчейн-разработке, VR, программированию робототехники и прочим остроактуальным направлениям.

Lynda – сервис от команды Linkedin с кучей видео-курсов по разным языкам программирования.

Safari Books Online – онлайн-курсы с преподавателем, материалы для изучения самому или в команде.

Coursera – программы российских и мировых университетов онлайн, большой выбор, есть бесплатные курсы.

Confreaks.tv – видео и презентации с мировых ИТ-конференций. Не можете летать – смотрите и учитесь из дома.

Сервисы для тренировок

Hacker Rank – тренировки, обучалки и задачки по выбранным вручную скиллам. Есть даже подготовка к интервью, если вы проседаете в этом.

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

Code Chef – много программистских задачек для разного уровня знаний, можно читать чужие решения. Есть ежемесячные челленджи.

Exercism – бесплатный сервис для тренировки на 48 языках программирования. После выполнения задания можно разобрать его с наставником.

Coding Bat – задачки для практики кода на Java и Python.

Leet Code – можно тестировать, отлаживать и писать проекты онлайн на 14 языках программирования.

Code jam – онлайн соревнования от Google с решением алгоритмических головоломок в несколько раундов. Тех, кто проходит в финал, ценят в крупных международных компаниях.

Project Euler – регулярные челленджи, на которых нужно решать математические и программистские проблемы.

Hacker Earth – реальные задания от компаний, среди которых IBM, Amazone, Adobe и другие. Можно пробовать решать задачи самостоятельно, а можно объединяться в команды.

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

Игры и интерактив

Python Challenge – игра, проходя каждый уровень которой, вы лучше узнаете язык и его возможности.

Codin Game – игры на 25 языках программирования.

Code Combat – обучение информатике и программированию через игры для взрослых и детей. Сайт переведен на русский, интерфейсы в играх на английском.

Mimo – мобильное приложение, в котором можно в легкой форме прокачивать языки от HTML до C#.

Grasshopper – мобильное приложение, которое через игры учит основам JavaScript.

Swift Playgrounds – сервис для прокачки навыков разработки под IOS с играми, задачками и головоломками.

WarriorJS – игра для изучения скриптов веб-разработки. Будете, используя JavaScript, помогать своему герою-воину пройти через препятствия.

Code Cards – виртуальные карточки, под рубашкой которых вас ждут задачи на HTML, CSS, JavaScript, Ruby and Rails. Каждый язык содержит 53 карточки с заданиями – можно выбрать один или перемешать.

Что ещё поможет вам расти профессионально

Если перерыть весь интернет (что я и сделала) и опросить практиков кода на тему «как прокачаться», то все сведется к списку из 5 советов.

В прокачке хард скиллс не стоит забывать еще и о следующих 3 вещах:

  1. Читайте техническую литературу. В книгах описаны основы, которые нужно знать, а иногда не мешает и перечитать. Возможно, с новым опытом вы иначе увидите фундаментальные истины.
  2. Изучайте чужой код. Open-source решения и открытые библиотеки – это богатство опыта. Читайте код лучших инженеров, пытайтесь понять, почему он написан так, а не иначе. А потом попробуйте повторить – написать изученный код с нуля самому. Принципы хорошего программирования улягутся в голове незаметно, но прочно.
  3. Участвуйте в офлайн событиях. Хакатоны, митапы и соревнования – все это активизирует мозг и учит искать решение проблем в стрессовых ситуациях и в сжатые сроки. Горящий дедлайн на работе вас больше не испугает.
  1. Работайте не один. Объединяйтесь в пары с более опытными разработчиками, вливайтесь в большие проекты и комьюнити. Умение работать в команде высоко ценится у ИТ-гигантов. К тому же так вы лучше научитесь объяснять техническую проблему и проговаривать ее решение. А свежий взгляд на ваш код найдет ошибки, которые вы сами уже не замечаете.
  2. Делитесь опытом. Можно писать блог, преподавать на курсах и выступать на конференциях. Когда вы будете учить других, то почувствуете ответственность, а значит тщательно подготовитесь к возможным вопросам и попробуете посмотреть на привычные знания под другим углом. В итоге вы досконально разберетесь в вопросе, плюс разовьете общение, экспертизу и навыки самопрезентации.

В итоге

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

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

28 cайтов, на которых можно порешать задачи по программированию

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

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

Codeforces — несомненно самая популярная и известная платформа во всем мире для проведения соревнований на алгоритмику. Кроме крупных контестов сайт зачастую проводит свои «раунды» — участникам даются 5 задач на два часа. Есть система рейтинга, на основе которой участники делятся на два дивизиона. Таким образом, профи не соревнуются с новичками напрямую. Все задачи можно сдать и проверить даже после соревнований. Кроме «раундов» доступны и «тренировки» — задачи с прошедших соревнований публикуются в режиме дорешивания.

TopCoder — ненамного отстающая по популярности от Codeforces американская платформа. Примечательна тем, что кроме алгоритмических контестов, которые описывались ранее, на ней проводятся и соревнования по промышленному программированию и марафоны — соревнования с задачами на исследование, для которых нет единого верного алгоритма, а есть лишь ответ, подходящий больше или меньше. На решение таких задач участникам обычно дается одна или две недели.

задачи по программированию Timus Online Judge

Timus Online Judge — русскоязычная (хотя английский язык также поддерживается) платформа, на которой более тысячи задач удачно отсортированы по темам и по сложности. Также тут регулярно проводятся контесты уральского региона, которые, впрочем, не представляют для вас ничего интересного, если только вы не студент УрФУ или другого близлежащего вуза ��

задачи по программированию SPOJ

SPOJ — крупный англоязычный сайт с более чем 20000 задачами на абсолютно разные темы: динамическое программирование, графы, структуры данных и т.д. Изредка проводит контесты, которые не представляют интереса, если вы не живете в странах их проведения.

задачи по программированию informatics.mccme.ru

informatics.mccme.ru — платформа с множеством теоретических материалов и задач по соответствующим темам. Все очень удобно собрано по категориям и темам. Также содержит большую базу задач с прошедших олимпиад школьников.

CodeChef — менее крупный аналог Codeforces и TopCoder, тоже с огромным архивом задач и регулярными контестами.

задачи по программированию acmp.ru

acmp.ru — сайт, который будет полезен всем благодаря своему архиву задач, удобно (и по большей части правильно) отсортированному по сложности и темам. Соревнования проводятся, но участвовать в них имеет смысл только школьникам Красноярского края, для которых эта платформа изначально и предназначалась.

Project Euler — сборник 500 задач, которые невозможно решить без знаний математических и геометрических алгоритмов. Иногда используется на собеседованиях для приема на работу, чтобы лучше выяснить алгоритмическую подготовку претендента.

Kaggle — данная платформа отличается от описанных ранее тем, что тут не проводится алгоритмических соревнований — только задачи на исследование (как в марафонах на вышеприведенном TopCoder). Например, одна из задач, на которой сейчас там проверяют свои умения участники, состоит в распознании написанных вручную цифр. Вот несколько символов, для которых это не так просто, как кажется (прим. авт. — некоторые из них я не смог распознать даже не программно):

задачи по программированию Kaggle

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

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

HackerRank наоборот будет больше интересен профессионалам, которые уже многое умеют. На этом сайте собрано множество задач на самые разные разделы Computer Science: традиционная алгоритмика, ИИ, машинное обучение и т.д. Если вы решите много задач, то вами могут заинтересоваться работодатели, регуляторно мониторящие эту платформу.

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

Codewars — cборник задач на разные темы, от алгоритмов до шаблонов проектирования.

LeetCode — сайт с задачами для подготовки к собеседованиям.

задачи по программированию Programming Praxis

Programming Praxis — блог, включающий в себя много интересных задач.

PythonChallange — сайт с загадками, возрастающими по сложности. Для их решения необходимо написать программу на Python.

Al Zimmermann’s Programming Contests — платформа, на которой раз в полгода проводятся контесты с задачами на исследование и оптимизацию. Интересен тем, что писать программу необязательно — даются только тестовые данные. Ответы можно расчитывать вручную, или просто гадать их на кофейной гуще.

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

Prolog Problems — аналогично с Ruby Quiz. Подборка задач для программистов, использующих Prolog.

задачи по программированию MindCipher

MindCipher — сборник занимательных математических и логических задач (в том числе и по программированию).

Сборник задач для практики от СppStudio. Рекомендуется решать на С++, но можно и на других языках.

CheckIO — сайт с задачами для программистов всех уровней, оформленный в виде игры.

E-olimp — украинская тестирующая система с большим архивом задач.

задачи по программированию Empire of Code

Empire of Code — сайт для программистов, где необходимо писать код, реализующий стратегию и тактику виртуальных бойцов.

задачи по программированию Operation Go

Operation Go — практика написания кода на Go в игровой форме.

Russian AI Cup — ежегодный контест от mail.ru по разработке ИИ. Участвовать могут все — от школьников до профессионалов. Победителям и призерам так же полагаются крутые призы. Обязательно примите участие, если вы заинтересованы этой темой.

задачи по программированию Tproger

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

Где попрактиковаться в программировании: 30 ресурсов

Быть настоящим программистом — это не только смотреть тысячи часов видео, но и писать десятки тысяч строк кода. Подобрали для вас полезные ресурсы, на которых можно размяться в программировании. Расскажем о них в алфавитном порядке.

C Puzzles

Сайт с головоломками на языке С. Может быть полезен и тем, кто не знает C, но изучает С-подобные языки.

Code Abbey

Множество задач по программированию, рейтинг участников и форум.

CodeChef

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

CodeCombat

Ресурс для начинающих, где обучение построено как игра с возрастающей сложностью. Подойдет изучающим Python, JavaScript или HTML&CSS с нуля.

Codeforces

Русскоязычная платформа для марафонов по программированию. Пользователи делятся на два дивизиона — начинающие соревнуются отдельно от опытных. Можно участвовать в состязаниях или просто тренироваться на задачах в режиме дорешивания.

Codewars

Платформа с разными заданиями — от алгоритмов до шаблонов проектирования — ждет разработчиков, программирующих на Java, JavaScript, PHP, Go, Ruby и других языках. Предварительно надо пройти тестирование.

Coding Bat

Ресурс, посвященный Java и Python. Опытным и начинающим программистам доступны упражнения и справочные материалы по языкам.

CodinGame

Увлекательная практика в формате видеоигр. Поддерживаются 25 языков: Java, JavaScript, PHP, Python, Swift, C#, C++, Ruby и другие.

Empire of Code

Русскоязычный ресурс с задачами по Python и JavaScript в формате игры. Участники пишут код для стратегии и тактики персонажей.

Exercism

Сайт предлагает задачи на 48 языках программирования. Пользователь скачивает упражнения, решает их на собственном компьютере, а затем проверяет с наставником. Например, в разделе Python 111 упражнений и 70 менторов, его изучают 29 тысяч пользователей, а в разделе PHP — 64 упражнения, 14 наставников и 4 тысячи студентов.

HackerRank

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

InterviewBit

Сайт помогает подготовиться к интервью в Google, Facebook, Microsoft и других корпорациях и получить оффер.

LeetCode

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

MAXimal

Русскоязычный ресурс для освоения алгоритмов. Есть подробные описания и упражнения. Бонус — большая библиотека по программированию. Сайт не обновляется.

MindCipher

Ресурс позиционируется как социальный репозиторий с самыми занимательными головоломками.

Programming Praxis

Блог, в котором еженедельно размещают новые интересные задачи, чтобы программисты тренировали навыки и мозги.

Programming Skills

Сайт с онлайн-тестами и вопросами для технического интервью. Подойдет тем, кто работает с HTML, JavaScript, C#, Java, PHP, C# и другими ЯП.

Programmr

Платформа, на которой собраны задачки по Java, PHP, Python, C# и Ruby. Ресурс давно не обновляется, но потренироваться еще можно.

Project Euler

Сайт с непростыми заданиями для математиков и программистов. Задачи ранжируются по сложности.

Prolog Problems

На сайте программиста Вернера Хетта вы найдете краткий курс по языку Prolog и сборник упражнений для тренировки. Ресурс не обновляется.

PythonChallange

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

Rosalind

Ресурс по изучению биоинформатики. Есть обучающий курс по Python.

Ruby Quiz

Еженедельная викторина по Ruby, которая приходит в рассылке. Автор ресурса отошел от дел, но инициативу продолжают энтузиасты. Можно подписаться на письма или порешать задачки из архивных выпусков.

На платформе Sphere Online Judge зарегистрированы 650 тысяч пользователей и размещено более шести тысяч заданий. Ресурс поддерживает 45 языков программирования, в том числе C, C++, Pascal, Perl, Haskell, Ocaml и другие.

SQL-EX.RU

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

Timus Online Judge

Ресурс Уральского федерального университета, на котором собран архив задач по программированию с автоматической проверкой.

Topcoder

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

W3Resource

Портал предлагает огромное количество обучающих материалов по веб-разработке, базам данных, Linux и даже программам Excel или шаблонам Google Forms. Есть упражнения и квизы по базам данных, PHP, JavaScript, Java, Swift и другим языкам.

Питонтьютор

Русскоязычный ресурс для новичков в Python. Это интерактивный учебник с задачками, которые решаются без установки среды, прямо в браузере.

Школа программиста

Ресурс, который создали во Дворце пионеров в Красноярске. Он предлагает множество задач и разбирает их для начинающих программистов.

А вы где практикуетесь? Поделитесь в комментариях.

UPD. Для прокачки программистов есть не только серьёзные порталы, но и увлекательные игры. Мы подготовили для вас целую подборку!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *