Наконец-то завершилась первая неделя долгой и утомительной недели. Тем не менее, я, вероятно, учился быстрее и больше работал над программированием, чем когда-либо в своей жизни. Это были веселые несколько дней, полных парного программирования, прослушивания лекций и знакомства с замечательными товарищами по группе.

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

Остаток недели был заполнен парным программированием для изучения многих типов структур данных. Из моего самостоятельного изучения за последний год я уже имел некоторое представление о стеках, очередях и связанных списках. В дополнение к этому мы узнали о том, как работают графы, деревья и хеш-таблицы. Каждая структура данных имеет свои сильные и слабые стороны для хранения любых данных, которые вам нужны.

Хэш-таблицы

Структура данных, которая, казалось, создавала проблемы большинству людей, представляла собой хеш-таблицу. Это эффективная структура данных, которая при правильном проектировании сохраняет постоянную временную сложность при записи и поиске данных.

Хеш-таблицы в основном состоят из двух частей: хеш-функции и самой таблицы для хранения данных. Хеш-функция принимает ввод и преобразует его в сортируемое значение, которое сообщит вам «адрес» для хранения или извлечения ваших данных в вашей хеш-таблице. Хорошая хэш-функция распределяет эти данные равномерно, чтобы избежать коллизий и поддерживать постоянную временную сложность. Сама хеш-таблица может быть массивом или другим объектом для хранения данных.

Я очень взволнован второй неделей и держу пари, что изучу еще много концепций программирования. Я бы хотел подробнее остановиться на структурах данных, но большая проблема этих учебных курсов по программированию — выспаться. Прощай!