быть готовым решать задачи в технической части собеседования;
быть готовым дать оценку сложности своему решению;
быть в состоянии дебажить чужой код;
иметь возможность улучшить работу своего алгоритма;
уметь ответить на практические вопросы.
заложить основу для дальнейшего прохождения обучения;
заложить основу для самостоятельного дальнейшего изучения алгоритмов.
Правила и пожелания по данному курсу
в ответе на вопросы не стоит использовать chatGPT - старайтесь отвечать сами, чтобы знания полученные в процессе занятий остались с вами. Я уверен, что chatGPT знает ответ, но чтобы ответ принадлежал вам, вам необходимо приложить усилия. Давайте сделаем это вместе;
каждое занятие имеет теоретическую и практическую части. Все вопросы из чата обсуждаются в конце теоретической части и в конце практической части. Кроме чата, вы, конечно, можете задавать свои вопросы голосом;
обсуждение практической части, в частности решение задач, происходит голосом;
задачи, которые будут обсуждаться во время занятия, делятся по уровню сложности, чтобы у каждого была возможность ответить;
вы можете отвечать на русском или английском;
мы уважаем себя и других, не оскорбляем участников дискуссии и не обсуждаем отличные от программы курса темы;
личная просьба - включайте камеру во время занятий. Это поможет вам в будущем быть готовыми во время прохождения реального интервью;
пожалуйста, готовьтесь к лекциям заранее, повторяйте пройденный материал и выполняйте домашнее задание.
Заметки и ответы на частые вопросы
занятия проходят по вт и чт в 4 pm по Калифорнии (4 часа дня);
курс рассчитан на 16 занятий;
в занятиях будет использоваться JavaScript;
я буду признателен любой вашей обратной связи, как лично мне, так и куратору школы;
все материалы курса и дополнительная литература находятся тут: Google Drive. Все материалы в этой папке защищены авторским правом и предоставляются вам исключительно для личного некоммерческого использования и в целях обучения. Копирование, распространение или любое другое использование этих материалов в коммерческих целях строго запрещено без предварительного письменного разрешения правообладателей.
вам не нужно знать высшую математику, чтобы начать этот курс или проходить его;
вам не нужно знать React для прохождения этого курса;
вам необходимо знать JavaScript syntax для уверенного прохождения этого курса и решения задач;
если вам тяжело дается какая-то концепция, то попробуйте прочитать другое ее определение. Вполне вероятно, что иная интерпретация может больше подойти вам. Буду признателен, если в этом случае вы поделитесь своим опытом и мы добавим его в данный курс;
вам не стоит сдаваться в самостоятельном решении одной задачи минимум 30 минут. Это время должно включать активное написание кода, использование (хотя бы) console.log() для поиска проблем в своем решении;
что делать если вы не можете решить какую-то задачу? Ответ будет зависеть от того, сколько времени в день у вас есть на решение задач в целом. Если у вас есть на решение алгоритмов более 1 часа в день, то при решении сложной задачи вам стоит приложить минимум 30 минут без посторонней помощи. Если после этого времени ответ у вас так и не появился, то стоит сформулировать основную проблему и погуглить ее или спросить совет у chatGPT. Если и после этого у вас не появилось решения, то стоит найти полное решение данной задачи и разобрать каждую его строку. После этого, на следующий день, нужно решить эту задачу без посторонней помощи. Через неделю необходимо вернуться к задаче и закрепить алгоритм ее решения;
ваш прогресс в изучении алгоритмов лежит не в том, сколько вы можете решить задач за один день, а в том сколько дней подряд вы можете показывать стабильный результат, решая n задач каждый день.
Программа курса
что такое алгоритмы и анализ сложности (Big O notation);
изучение рекурсии;
работа со строками и массивами;
методы решения задач с помощью хэш таблиц (hash table);
изучение структур данных: стек (stack) и очередь (queue);
изучение объектно-ориентированного программирования (ООП) через классы;