Ответ
Да, я знаком с CS50. Это отличный курс для фундаментального понимания Computer Science. Основные моменты, которые мне запомнились:
- Работа с памятью, указателями и структурами данных на C
- Основы алгоритмов (поиск, сортировка, рекурсия)
- Введение в веб-разработку (HTML, CSS, JavaScript)
- Основы баз данных и SQL
Пример из курса (быстрая сортировка на C):
void quicksort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quicksort(arr, low, pi - 1);
quicksort(arr, pi + 1, high);
}
}
Курс дал мне хорошую базу, хотя некоторые вещи (особенно низкоуровневые) я углублял уже самостоятельно.
Ответ 18+ 🔞
Ну, вот смотри, CS50, блядь. Это как такой фундаментальный пиздец для мозга, если ты в IT лезешь. Не просто "нажми кнопку — получишь результат", а реально залезают в дебри, чтобы ты понял, откуда ноги растут у всей этой цифровой хуйни.
Что там было, что врезалось в подкорку навечно:
- Память, указатели и структуры на С. Вот это, ёпта, отдельная песня. Сидишь, блядь, и думаешь: "Ну что за мудак придумал эти стрелочки
*и&, чтобы мозг выносить?". А потом бац — и прозрение: "А, бля, так это же просто адрес, сука, в оперативке!". И чувствуешь себя богом, который может накосячить так, что программа взвоет "Segmentation fault" и накроется медным тазом. - Алгоритмы. Сортировки, поиски, рекурсия. Рекурсия — это вообще отдельный вид мазохизма. Функция вызывает сама себя, пока стек не переполнится и не скажет "ну ты, бля, идиот". Но когда дерево рекурсии в голове складывается — кайф, ебать мои старые костыли.
- Веб-разработка. Тут уже полегче, отдышаться можно после С. HTML, CSS, JavaScript. Сделал свою первую страничку — и сразу полубог, уже не просто консольный червяк.
- Базы данных и SQL. Когда впервые написал
SELECT * FROM users WHERE brain > 0;и получил пустой результат — понял, что жизнь — боль.
А вот, смотри, пример кода оттуда, про быструю сортировку. Красота же, блядь, элегантная хуйня:
void quicksort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quicksort(arr, low, pi - 1);
quicksort(arr, pi + 1, high);
}
}
В общем, курс — огонь. Он не сделает тебя senior-разработчиком, это да. Но он даёт такую базу, что потом, когда учишь что-то новое, не просто зазубриваешь, а понимаешь, как это, сука, внутри устроено. Низкоуровневые штуки потом, конечно, сам допиливал, но старт был охуенный. Рекомендую, если не боишься, что мозг немного поскрипит.