Прежде чем перейти к перечню ресурсов, уточним, что упомянем несколько сайтов и git-репозиториев на китайском языке. Чтобы разобраться с ними, может понадобиться переводчик. Следуйте приведенным ниже рекомендациям.
Способ 1. Установите расширение Google Переводчика. Ссылки: для Chrome и Firefox.
Способ 2. Используйте сайт Google Переводчика. Иногда расширения не работают. Тогда используйте этот вариант. Ссылка.
Ресурсы, о которых пойдет речь, разделены на 3 категории:
- теоретические основы;
- алгоритмы и структуры данных;
- ресурсы для подготовки к собеседованию.
Теоретические основы
1. CS-Notes (CyC2018)
В этом репозитории содержится информация почти по всем концепциям современной информатики.
Перечень тем:
- Основы операционных систем (в частности, ОС Linux).
- Алгоритмы и решение задач с LeetCode.
- Компьютерные сети и базы данных.
- Java и понятия объектно-ориентированного программирования.
- Проектирование систем и обзор таких инструментов, как Git, Docker и т.д.
Ссылки:
Язык контента: китайский.
Используемые языки программирования: Java, SQL.
2. Java Core Sprout (Crossoverjie)
Этот сайт полностью посвящен основным понятиям Java. Если вы хотите овладеть базовыми концепциями Java, обязательно им воспользуйтесь.
Перечень тем:
- Основы Java, хеш-карты, хеш-сеты, LinkedList, DSA и т.д.
- Многопоточность в Java и концепции JVM.
- Фреймворки, такие как Spring, Kafka и т.д.
- Проектирование баз данных и архитектур.
Ссылки:
Язык контента: китайский.
Используемые языки программирования: Java, SQL.
3. C++ Core (Huihut)
C++ — любимый язык большого количества разработчиков. На этом специализированном ресурсе вы найдете все, что нужно знать о C++.
Перечень тем:
- Основы C++, STL, структур данных и алгоритмов.
- Операционные системы, компьютерные сети, программирование сетевых задач, базы данных и системы проектирования.
- Дорожные карты по C++ и вопросы на собеседованиях.
Ссылки:
Языки контента: китайский, английский.
Используемые языки программирования: C++, SQL.
4. Home-Made Machine Learning (Trekhleb)
В репозитории содержится описание тем (от базового до продвинутого уровня), а все концепции проиллюстрированы в коде Python, ноутбуке Jupyter и коде MatLab/Octave.
Перечень тем:
- Контролируемое и неконтролируемое обучение.
- Регрессия, кластеризация, классификация, обнаружение аномалий и т.д.
- Нейронные сети.
Ссылки:
Язык контента: английский.
Используемые языки программирования: Python, Matlab, Octave.
5. Web Development For Beginners (Microsoft)
Программная инженерия не обходится без веб-разработки. Кроме того, огромным спросом на рынке пользуется знание JavaScript.
Перечень тем:
- Основы HTML и CSS.
- Понятия JavaScript.
- Проекты, задания и контрольные работы.
Ссылки:
Язык контента: английский.
Используемые языки программирования: HTML, CSS, JavaScript.
6. Project Based Learning (Practical tutorials)
Обучение на проектах позволяет лучше разобраться в различных концепциях. Этот репозиторий охватывает широкий спектр языков программирования.
Ссылки:
Язык контента: английский.
Используемые языки программирования: C#, C/C++, Java, Python, Javascript, Dart, Elixir, F#, Go, Rust, Haskell, Swift, Objective-C, Kotlin, PHP, Perl, Ruby и т.д.
Дополнительные источники
Есть несколько альтернативных ресурсов, которые помогут освоить концепции программирования всего за 30 дней.
Алгоритмы и структуры данных
Итак, вы четко освоили основные понятия информатики. Следующим шагом будет знакомство со структурами данных и алгоритмами.
Ресурсы распределены по языкам программирования.
JavaScript
- Алгоритмы JavaScript (Trekhleb).
- Dsa.js, структуры данных и алгоритмы на JavaScript (Amejiarosario).
- Визуализатор алгоритмов.
Python
- Алгоритмы (Keon).
C
- Изучаем алгоритмы (Nonstriater).
- “Чертов” алгоритм (Labuladong).
Go Lang
- Шаблоны алгоритмов (Greyireland).
Еще один сайт — The Algorithms. Там вы найдете алгоритмы на многих популярных языках программирования.
Ресурсы для подготовки к собеседованию
В этом разделе собраны источники, в которых можно изучить опыт других людей, прошедших собеседования по программированию. Также тут есть решения задач с LeetCode и практические вопросы.
Coding Interview University (Jwasham)
Репозиторий содержит ресурсы, созданные программистом, который устроился инженером по разработке ПО в Amazon. Здесь собраны основные темы, обсуждаемые на собеседованиях, и лучшие практики, которым нужно следовать.
Tech Interview Handbook (Ysngshun)
На этом сайте вы найдете шпаргалки по алгоритмам, а также советы по прохождению собеседований и составлению резюме.
Interviews (Kdn251)
В этом репозитории собраны материалы по структурам данных и алгоритмам, советы по прохождению собеседований, анализу алгоритмов и т.д.
Leetcode (Azl) — на китайском
В этом репозитории представлены подробные решения задач с LeetCode, а также карточки, позволяющие легко их запомнить. Также тут есть материалы по структурам данных и алгоритмам.
Tech Interview for Developer (Gyoogle) — на корейском
На этом сайте собрано практически все, что требуется для успешного прохождения собеседования, от алгоритмов и структур данных до концепций Linux и git.
SDE Interview Questions (Twowaits)
В данном репозитории собраны все вопросы, которые представители ведущих технологических компаний задают на технических собеседованиях.
CtCI 6th Edition Javascript (Careercup)
Репозиторий содержит более 100 вопросов, которые задают ведущие компании, и ответы на них.
Awesome Interview Questions (DopplerHQ)
Ищете ответы на вопросы, которые задают кандидатам на собеседованиях по языкам программирования? Тогда этот репозиторий для вас.
Читайте также:
- Git: простое руководство о том, как стать мастером контроля версий
- 4 частые ошибки в рефакторинге
- 20 продвинутых проектов для освоения сложных концепций программирования
Читайте нас в Telegram, VK и Дзен
Перевод статьи Mohana S: Useful GitHub Repositories You Need To Crack MAANG