Прежде чем перейти к перечню ресурсов, уточним, что упомянем несколько сайтов и git-репозиториев на китайском языке. Чтобы разобраться с ними, может понадобиться переводчик. Следуйте приведенным ниже рекомендациям.

Способ 1. Установите расширение Google Переводчика. Ссылки: для Chrome и Firefox.

Способ 2. Используйте сайт Google Переводчика. Иногда расширения не работают. Тогда используйте этот вариант. Ссылка.


Ресурсы, о которых пойдет речь, разделены на 3 категории:

  • теоретические основы;
  • алгоритмы и структуры данных;
  • ресурсы для подготовки к собеседованию.

Теоретические основы

1. CS-Notes (CyC2018)

В этом репозитории содержится информация почти по всем концепциям современной информатики.

Перечень тем:

  • Основы операционных систем (в частности, ОС Linux).
  • Алгоритмы и решение задач с LeetCode.
  • Компьютерные сети и базы данных.
  • Java и понятия объектно-ориентированного программирования.
  • Проектирование систем и обзор таких инструментов, как Git, Docker и т.д.

Ссылки:

  1. Сайт.
  2. GitHub.

Язык контента: китайский.

Используемые языки программирования: Java, SQL.

2. Java Core Sprout (Crossoverjie)

Этот сайт полностью посвящен основным понятиям Java. Если вы хотите овладеть базовыми концепциями Java, обязательно им воспользуйтесь.

Перечень тем:

  • Основы Java, хеш-карты, хеш-сеты, LinkedList, DSA и т.д.
  • Многопоточность в Java и концепции JVM.
  • Фреймворки, такие как Spring, Kafka и т.д.
  • Проектирование баз данных и архитектур.

Ссылки:

  1. Сайт.
  2. GitHub.

Язык контента: китайский.

Используемые языки программирования: Java, SQL.

3. C++ Core (Huihut)

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

Перечень тем:

  • Основы C++, STL, структур данных и алгоритмов.
  • Операционные системы, компьютерные сети, программирование сетевых задач, базы данных и системы проектирования.
  • Дорожные карты по C++ и вопросы на собеседованиях.

Ссылки:

  1. Сайт.
  2. GitHub.

Языки контента: китайский, английский.

Используемые языки программирования: C++, SQL.

4. Home-Made Machine Learning (Trekhleb)

В репозитории содержится описание тем (от базового до продвинутого уровня), а все концепции проиллюстрированы в коде Python, ноутбуке Jupyter и коде MatLab/Octave.

Перечень тем:

  • Контролируемое и неконтролируемое обучение.
  • Регрессия, кластеризация, классификация, обнаружение аномалий и т.д.
  • Нейронные сети.

Ссылки:

  1. GitHub.

Язык контента: английский.

Используемые языки программирования: Python, Matlab, Octave.

5. Web Development For Beginners (Microsoft)

Программная инженерия не обходится без веб-разработки. Кроме того, огромным спросом на рынке пользуется знание JavaScript.

Перечень тем:

  • Основы HTML и CSS.
  • Понятия JavaScript.
  • Проекты, задания и контрольные работы.

Ссылки:

  1. Сайт.
  2. GitHub.

Язык контента: английский.

Используемые языки программирования: HTML, CSS, JavaScript.

6. Project Based Learning (Practical tutorials)

Обучение на проектах позволяет лучше разобраться в различных концепциях. Этот репозиторий охватывает широкий спектр языков программирования.

Ссылки:

  1. GitHub.

Язык контента: английский.

Используемые языки программирования: C#, C/C++, Java, Python, Javascript, Dart, Elixir, F#, Go, Rust, Haskell, Swift, Objective-C, Kotlin, PHP, Perl, Ruby и т.д.

Дополнительные источники

Есть несколько альтернативных ресурсов, которые помогут освоить концепции программирования всего за 30 дней.


Алгоритмы и структуры данных

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

Ресурсы распределены по языкам программирования.

JavaScript

  1. Алгоритмы JavaScript (Trekhleb).
  2. Dsa.js, структуры данных и алгоритмы на JavaScript (Amejiarosario).
  3. Визуализатор алгоритмов.

Python

  1. Алгоритмы (Keon).

C

  1. Изучаем алгоритмы (Nonstriater).
  2. “Чертов” алгоритм (Labuladong).

Go Lang

  1. Шаблоны алгоритмов (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)

Ищете ответы на вопросы, которые задают кандидатам на собеседованиях по языкам программирования? Тогда этот репозиторий для вас.

Читайте также:

Читайте нас в TelegramVK и Дзен


Перевод статьи Mohana S: Useful GitHub Repositories You Need To Crack MAANG

Предыдущая статьяКак загрузить 3D-модель с помощью PyWeb3D
Следующая статьяПочему разработчики JavaScript используют инструменты на Rust