Топ 8 лучших ресурсов для практики программирования в 2018 / Хабр
Привет, Хабр! Представляю вашему вниманию перевод статьи Top Coding Challenge Websites of 2018 автора Trey Huffine.
Все просто: чтобы стать программистом — нужно научиться программировать. Без разницы, какую цель вы преследуете: успешно пройти интервью или выучить новый язык, — сайты из этой подборки вам помогут прокачаться.
На чем бы вы не кодили: Python, Ruby, JavaScript, Golang, TypeScript, или еще какой-то язык, вы найдете здесь ресурс под ваши потребности. Чтобы научиться программировать — нужно программировать.1. Codewars
www.codewars.com
Сodewars программирование — это сплошной фан. Зарабатывайте очки, повышайте свой рейтинг, создавайте кланы. Автор статьи предлагает присоединиться к своему клану (вы можете посмотреть к какому в оригинале статьи). Я же, призываю вас присоединяться к клану HTML Academy, конечно(прим. переводчика). Ресурс предлагает огромную подборку задач на более чем 20 языках программирования. На codewars вы сможете обсудить задачи с другими игроками, а также посмотреть альтернативные решения.
2. HackerRank
www.hackerrank.com
Уровень сложности задач на HackerRank чуть выше, попадаются задания, выходящие за рамки базового программирования. Можно развиваться в нескольких областях, включая алгоритмы, математику, SQL, функциональное программирование, AI и многое другое. Также платформа предоставляет функционал для корпоративного программирования.
3. Coderbyte
coderbyte.com
4. CodinGame
www.codingame.com
Это платформа для изучения программирования в игровой форме. Управляйте сценарием игры с помощью кода. Большой выбор языков, обучения по фану. В играх есть описание проблемы и тестовые примеры. Определенно стоит попробовать такой подход в обучении.
5. LeetCode
leetcode.com
Если вы ищете работу — это то, что нужно для того, чтобы прокачать необходимые навыки. Основное направление ресурса — подготовка к техническим интервью. Есть специалист, который оценивает правильность решения заданий. Также вы можете поучаствовать в некой имитации собеседования.
6. Topcoder
www.topcoder.com
Topcoder, вероятно, лучше подходит для продвинутой аудитории. Это один из первых сайтов, посвященных кодированию, который вводит концепцию ранжирования. Вы можете посоревноваться в решении задач с другими разработчиками за денежный приз, а также принять участие в конкурсе «Single Round Match».
7. Project Euler
projecteuler.net
Ветеран среди подобных платформ. Интерфейс, пожалуй, не самый утонченный, но зато там много задачек на разных языках. Большое внимание уделяется математическим задачам. Простой сайт, чтобы быстро начать практиковаться.
8. CodeFights
codefights.com
Много задачек + платформа для поиска работы/разработчиков. Кроме того, у них есть уникальная функция под названием «Company Bots», где разработчики состязаются с официальными ботами программирования от некоторых из самых больших игроков в IT сообщества.
Тесты и практические задачи по программированию на itProger
Linux
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиDart & Flutter
Начальный уровень
Средний уровень
Сложный уровень
Практические задачиGodot
Начальный уровень
Средний уровень
Сложный уровень
Golang
Начальный уровень
Средний уровень
Сложный уровень
Практические задачиСи
Начальный уровень
Средний уровеньСложный уровень
Практические задачиKotlin
Начальный уровень
Средний уровень
Сложный уровень
Практические задачиGit
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
SQL
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиMongoDB
Начальный уровень
Средний уровень
Сложный уровень
Ruby
Начальный уровень
Средний уровень
Сложный уровень
Практические задачиCorona SDK
Начальный уровень
Средний уровень
Сложный уровень
Swift
Начальный уровень
Средний уровень
Сложный уровень
Практические задачиQt Creator
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиNode JS
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиDjango
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиVue JS
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиАндроид
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиReact JS
Начальный уровень
Сложный уровень
Практические задачиBootstrap
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиUnity
Начальный уровень
Средний уровень
Сложный уровень
Практические задачиUnity C#
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиPython
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиJava
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиC++
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиC#
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиPHP&MySQL
Начальный уровень
Средний уровень
Интерактивные тесты
Практические задачиjQuery
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиJavaScript
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиCSS3
Начальный уровень
Средний уровень
Сложный уровень
Интерактивные тесты
Практические задачиHTML5
Начальный уровень
Средний уровень
Сложный уровеньИнтерактивные тесты
Практические задачиЗдесь представлены практические и тестовые задания по программированию. Вы найдете как легкие, так и сложные задания по различным темам программирования
Застрял в программировании: найдите решение на этих 10 лучших веб-сайтах
Обман в программировании допустим. Если вы застряли в своем коде, погуглите его или попробуйте найти ответ на других ресурсах. Это разумный способ учиться друг у друга.
Застрять в программировании — нормальное явление для всех разработчиков. Большинство начинающих и даже опытных программистов пользуются некоторыми ресурсами, но это не значит, что они тупые или плохие программисты. Когда вы получаете помощь от некоторых других ресурсов, это делает вас лучшим программистом, а также хорошим отладчиком. Каждый программист должен проверить все эти веб-сайты, где люди задают каверзные вопросы по программированию, дают решения и помогают друг другу.
Мы собираемся перечислить некоторые веб-сайты, на которых вы можете найти решение своего вопроса по программированию, если вы застряли в программировании. Эти веб-сайты действительно хороши для программистов, когда они не знают, что делать дальше, если проблема не решена.
1. StackOverflow
Каждый программист благодарен этому веб-сайту, потому что он был для них спасением с 2008 года. Stackoverflow — самое большое и популярное сообщество среди разработчиков. На этом сайте зарегистрировано более 50 миллионов пользователей, которые помогают друг другу. Вы можете просто зарегистрироваться здесь, задавать вопросы (следуя некоторым правилам, упомянутым ими), а также дать решение каверзных вопросов по программированию, заданных другими разработчиками. Вы можете найти проблемы, связанные с различными языками программирования, платформами, инструментами программирования и сервисами. Большинство программистов получают ответы на свои вопросы, связанные с программированием, на этом сайте.
2. Reddit
Этот сайт должен быть в вашем списке, если вы хотите проверить некоторые проблемы, связанные с программированием. На Reddit есть несколько сообществ для обсуждения различных тем, включая программирование, технологии, инструменты и другие основы информатики. Вам просто нужно просто создать там свою учетную запись и присоединиться к группе. Вы можете принять участие в обсуждениях или задать свой вопрос. Убедитесь, что вы прочитали часто задаваемые вопросы перед отправкой сообщения.
3. Quora
Quora — самый популярный сайт вопросов и ответов, открытый для всех пользователей, где они могут делиться знаниями, задавать вопросы и предлагать решения. У многих технических гигантов и экспертов есть учетная запись на кворе, которая может помочь программистам и решить их проблемы. Вы найдете большинство ответов, данных экспертами в своей области. Если вы ищете ответ на определенную тему, вы можете найти ее и просмотреть все ответы, данные пользователями. Система голосов, чтобы дать или получить награду, если кто-то находит ответ полезным и актуальным для них. Вы также можете проверить, сколько читателей просматривают ваши ответы. Этот сайт довольно популярен и является ценным ресурсом для программистов, так что регистрируйтесь, задавайте вопросы, давайте решения, учитесь и делитесь своими знаниями с другими.
4. StackExchange
Это снова одно из лучших сообществ для разработчиков, где они могут задавать проблемы, связанные с программированием, и получать решения. Около 174 сообществ занимаются различными темами, такими как разработка игр, веб-разработка, программирование головоломок, спрашивайте Ubuntu, разработка программного обеспечения и многое другое. Специалисты голосуют за посты за соответствующий ответ, чтобы можно было легко найти наиболее полезное решение. Добавьте этот сайт в закладки, зарегистрируйтесь здесь, найдите запрос, задайте вопросы или ответьте на запрос, чтобы помочь другим программистам.
5. CodeProject
На сайте зарегистрировано более 14 миллионов пользователей. Сайт очень полезен как для начинающих, так и для опытных программистов, поскольку позволяет получать все новости, информацию, данные или исходный код, связанные с программированием. Темы имеют отдельный форум, и их дискуссионный форум включает такие темы, как ASP.NET, Javascript, Java, C/C++, базы данных, веб-разработка и многое другое. Вы можете поделиться своими мыслями, мнениями и обсудить проблемы или решения с другими единомышленниками. Создав учетную запись, вы сможете задавать вопросы, участвовать в обсуждении и получать обновления. Сайт в основном разделен на функции, быстрые ответы, обсуждение, статью, сообщество, информационные бюллетени и раздел помощи.
6. CodeRanch
Один из лучших ресурсов как для начинающих, так и для опытных программистов. Если вы новичок в программировании, вы можете изучить программирование на Java, Android и iOS и несколько других тем, а также разместить здесь свои запросы по разным темам. Их раздел форума разделен на категории «Недавние темы», «Горячие темы», «Лучшие темы» и «Помеченные темы». Их подфорумы включают такие темы, как языки программирования, базы данных, вычислительная техника, фреймворки и многое другое. Вы можете легко зарегистрироваться здесь, присоединиться к форумам, задать вопросы и дать решение заданных здесь вопросов.
7. Группы Google
Как следует из названия, это инициатива Google, которая позволяет людям с общими интересами взаимодействовать, обсуждать проблемы, решать проблемы и помогать другим. Вы можете создать свое сообщество или форум на основе определенной темы программирования и начать общение с другими. Вы также можете присоединиться к другому сообществу, чтобы задать вопросы, связанные с программированием, и обсудить их с кем-то, кто интересуется этим вопросом или той же темой.
Как и другой веб-сайт, он помогает программистам задавать вопросы, делиться своими идеями, предложениями и отвечать на запросы. Группы разделены на категории и подкатегории, такие как программирование, игры, искусственный интеллект, графика, операционные системы, безопасность, программное обеспечение, базы данных, Интернет и многое другое. Здесь вам также необходимо создать учетную запись в Google, чтобы присоединиться к ней, а затем вы можете искать группу в соответствии с вашими интересами.
8. Programmers Heaven
Не очень популярный, но хороший ресурс для разработчиков, где они могут задавать вопросы и отвечать на вопросы, связанные с программированием. Они также включали несколько категорий, таких как языки программирования, игровые языки, приложения, разработка программного обеспечения, операционные системы и платформы, мобильные и беспроводные сети, веб-разработка и многое другое. Вы можете найти количество просмотров и комментариев к каждому сообщению на его вкладке обсуждения. Как и на всех вышеперечисленных веб-сайтах, здесь вам также необходимо зарегистрироваться, чтобы присоединиться к сообществу, и вы можете начать обсуждение различных тем, связанных с программированием.
9. Chegg
Это образовательный веб-сайт, который помогает студентам и программистам во всем мире. Этот веб-сайт не является полностью бесплатным, но позволяет вам бесплатно задавать 20 новых вопросов каждый месяц. Сайт позволяет вам задавать вопросы по различным темам, связанным с информатикой, таким как программирование, алгоритмы, проектирование программного обеспечения, системы баз данных, операционные системы и многое другое. Вам будут помогать специалисты со всего мира.
Chegg также предлагает такие услуги, как онлайн-репетиторство, помощь в выполнении домашних заданий, перепродажа/покупка/продажа книг, приобретение решений для учебников, стажировки или помощь, связанная с карьерой, и многое другое. Вы можете зарегистрироваться и получить выгоду от этого сайта.
10. FindNerd
Очень удобный веб-сайт и социальная сеть для разработчиков, где вы можете получить помощь, связанную с программированием. Этот сайт представляет собой смесь бирж фриланса и обучающих форумов. Сайт предлагает вам публиковать вопросы и отвечать на запросы, создавать проекты, находить проекты и позволяет вам сотрудничать с другими программистами. Вы можете легко зарегистрироваться на этом веб-сайте и получать актуальную информацию от технического сообщества.
Учебники по программированию, проблемы кодирования и практические вопросы
Учебники по программированию и практические задачи
Подготовка к собеседованию
Пройдите собеседование на отлично.
Попытки
Codemonk
Улучшайте программирование шаг за шагом.
Пройдено
Уровни
Базовое программирование
Начните свое путешествие по программированию.
Решено
Проблемы
Структура данных
Освойте важные структуры данных.
Решено
Проблемы
Алгоритмы
Все, что вам нужно знать о важных алгоритмах.
Решено
Проблемы
Математика
Изучите все математические вопросы, необходимые для вашего путешествия в программирование.
Решен
Проблемы
машинного обучения
Вход/выход, анализ сложности, реализация и т. Д.
Решен
Проблемы
Python
Вход/вывод, анализ сложности, реализация и т. Д.
Solved
0005
Проблемы
Проблема дня
Проблемы с трендом недели
Обзор треков
Основное программирование
Вход/Выход
- Основы ввода/выходы
- . и космическая сложность
Реализация
- Основы реализации
Операторы
- Основы операторов
Bit Manipulation
- Basics of Bit Manipulation
Recursion
- Recursion and Backtracking
Data Structures
Arrays
- 1-D
- Multi-dimensional
Стеки
- Основы стеков
Очереди
- Основы очередей
Hash Tables
- Basics of Hash Tables
Linked List
- Singly Linked List
Trees
- Binary/ N-ary Trees
- Binary Search Tree
- Heaps/Priority Queues
Расширенные структуры данных
- Trie (дерево ключевых слов)
- Деревья сегментов
- Деревья Fenwick (двоично-индексированные)
- Деревья суффиксов
- Suffix Arrays
Disjoint Data Structures
- Basics of Disjoint Data Structures
Algorithms
Searching
- Linear Search
- Binary Search
- Ternary Search
Sorting
- Пузырьковая сортировка
- Сортировка выбором
- Сортировка вставками
- Сортировка слиянием
- Быстрая сортировка
- Сортировка подсчетом
- Radix Sort
- Heap Sort
- Bucket Sort
Greedy Algorithms
- Basics of Greedy Algorithms
Graphs
- Graph Representation
- Breadth First Search
- Depth First Search
- Minimum Spanning Tree
- Алгоритмы кратчайшего пути
- Алгоритм заполнения
- Точки сочленения и мосты
- Двусвязные компоненты
- Strongly Connected Components
- Topological Sort
- Hamiltonian Path
- Maximum flow
- Minimum Cost Maximum Flow
- Min-cut
String Algorithms
- Basics of String Manipulation
- String Searching
- Z Algorithm
- Алгоритм Маначара
Динамическое программирование
- Введение в динамическое программирование 1
- 2 Dimensional
- State space reduction
- Dynamic Programming and Bit Masking
Math
Number Theory
- Basic Number Theory-1
- Basic Number Theory-2
- Primality Tests
- Totient Function
Комбинаторика
- Основы комбинаторики
- Включение-исключение
Геометрия
- Техника развертки линии
- пересечение линии с использованием алгоритма Bentley Ottmann
машинное обучение
Статистика
- Основные модели вероятности и правила
- базовые модели вероятности и правила
- . Случайные величины
Управление данными и визуализация
- Практическое руководство по управлению данными с помощью Numpy и Pandas в Python
Алгоритмы машинного обучения
- Руководство для начинающих по регрессионному анализу и интерпретации графиков
- Практическое руководство по логистическому регрессионному анализу в R в R
- Учебное пособие для начинающих по XGBoost и настройке параметров в R
- Глубокое обучение и настройка параметров с помощью пакета MXnet, h3o в R
- Дерево решений
Расширенные методы
- Простое руководство по регулярным выражениям и операциям со строками в R 3
Проекты машинного обучения
- Практический проект машинного обучения в Python на данных о ценах на жилье
Вызов выигрышного подхода
- Challenge #1 — машинное обучение
- Challenge #3 — машинное обучение
- Challenge #2 — глубокое обучение
.