Структуры данных, алгоритмы, исчисление и линейная алгебра

Доброе утро, мои друзья и коллеги-инженеры,

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

И это такой позор.

Учиться должно быть весело, а делиться знаниями должно быть легко. Даже если это не в вашей области знаний или вы новичок в обсуждении, темы всегда можно разбить таким образом, чтобы сделать их доступными для вас.

И в этом прелесть интернета. У вас есть бесчисленное количество людей, которые делятся информацией, которой уже делились раньше. Миссия состоит в том, чтобы просто найти голос, который объясняет эти концепции так, как вы понимаете. Эти ресурсы, которыми я делюсь, — это голоса, которые я понимаю, и, надеюсь, они помогут и вам. Благодаря этим источникам я получил высокие баллы на уроках.

Давайте возьмем это.

Но прежде чем мы «разберёмся», я просто хочу быстро рассказать об этом своим друзьям, которые самостоятельно изучают информатику (они же самоучки).

Если вы заинтересованы в самостоятельном изучении информатики и не знаете, с чего начать, Университет Общества открытого исходного кода (на GitHub) собрал бесплатные онлайн-ресурсы для обучения информатике. Они говорят, что это полное образование в области компьютерных наук с использованием онлайн-материалов. Кажется, людям это нравится. У него много активности на GitHub. Обязательно ознакомьтесь с Учебной программой ОСГУ.

А также, если вам интересно, я хочу поделиться с вами планом моего университета по получению степени в области информатики, чтобы вы могли увидеть курсы, которые я проходил. Вот Диаграмма компьютерных наук на 2019–2020 годы. Вы можете найти больше информации здесь, если вам интересно. На самом деле, если вы видите какой-либо класс, указанный в дорожной карте или каталоге, который вас интересует, вы можете честно найти его в Google и изучить его в Интернете. Вся информация бесплатна и доступна онлайн. Вам просто нужно знать, что эти темы существуют, чтобы вы могли заниматься ими.

Давайте начнем.

PatrickJMT — Математика на уровне колледжа

Этот человек буквально принес мне самые высокие оценки по исчислению I, исчислению II, дискретной математике, линейной алгебре и всем курсам математики, которые я изучал в университете. Я так обожаю этого человека, что рекомендую его контент всем, кого знаю. Он действительно лучший источник по математике во всем Интернете.

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

Он использует очень доступный язык. Лекции, как правило, делают вещи более сложными, чем они должны быть, и это делает обучение намного более трудным, чем оно должно быть на самом деле. Он объясняет математику самым простым и простым способом. Каждый должен уметь его понять.

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

Вы можете найти его веб-сайт по адресу http://patrickjmt.com/ или посетить его канал YouTube. Я люблю его вещи.

Майкл Самбол — Алгоритмы

Алгоритмы не должны быть такими сложными. Если вы не понимаете этого после лекции в колледже, не смотрите дальше Канала Майкла Самбола на YouTube. Он дает самые легкие, самые простые визуальные эффекты, которые заставят вас чувствовать себя уверенно и готовы покорить мир.

Я использовал его материалы для своих занятий по алгоритмам, а также для подготовки к интервью. Проверьте его.

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

После просмотра видео Майкла Самбола вам могут понадобиться две вещи: (1) реализация алгоритмов на C, C++, Java, Python или C# и/или (2) временная сложность алгоритмов.

Возможно, вы захотите увидеть реализацию, чтобы воспроизвести ее во время интервью. И вам может понадобиться временная сложность, чтобы вы могли сравнить ее с другими алгоритмами. И в качестве бонуса, если по какой-то причине вы не поняли объяснение Майкла, «Гики для гиков» вам точно помогут.

Помимо охвата алгоритмов, они также охватывают структуры данных. Обязательно ознакомьтесь с ним, если хотите узнать больше о любом из них. Действительно, Гики для гиков научили меня структурам данных и алгоритмам значительно лучше, чем мои университетские курсы.

Проверьте это.

Программирование с помощью Mosh — Компьютерные языки

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

В итоге я изучил Java, C#, C, C++, Python, GoLang, Swift, R, Haskell и другие. Мой любимый человек для изучения новых языков — Мош Хамедан. У него есть исчерпывающие организованные учебные пособия по Python, Java, C++ и C#. Я рекомендую их все. Он относится к каждому уроку так, как будто вы абсолютный новичок. Он очень всеобъемлющий и прямолинейный. Он идеальный источник.

Прежде чем открыть для себя его работу, всякий раз, когда мне ставили задачу выучить новый язык, я смотрел 2–5-часовые уроки языка FreeCodeCamp. Мош легко сжимает это и упаковывает все, что вам нужно знать.

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

Я думаю, что он невероятно талантлив. У меня действительно есть карьера благодаря ему.

Это все, что у меня есть для вас. Спасибо, что задержались :) Увидимся в следующем