Как изучать архитектуру компьютера?
Еси вы плохо понимаете, как устроена память, что такое куча и стэк, как устроен компилятор, как работает процессор, при чём тут ассемблер и др, то этот пост для вас.
Стереотипный хардкорный айтишник скажет: Что тут обсуждать? Таненбаума в зубы и вперёд.
Кроме шуток, это отличный подход, если вам такое заходит.
Но я так и не осилил этот великолепный труд наскоком - начинал и каждый раз бросал, т.к. становилось скучно.
К счастью, помимо Таненбаума, есть и другие способы погружения в тему. С годами мне удалось раскопать жемчужины, которые мне идеально подошли:
1) Курс From NAND to Tetris. Его фишка в том, что вы самостоятельно, начиная с примитивных логических блоков (AND, OR, NAND, ...) строите сумматор, АЛУ, ЦПУ, пишете свой ассемблер, ОС, язык выского уровня, графическую оболочку.. В общем, собираете компьютер собственными руками, и в конце пишете для него игру Тетрис.
Авторы лишь дают необходимую теорию, а практику вы выполняете сами. Курс - просто шедевр.
Советую проходить его на курсере (ссылку найдёте на сайте), и покупать его там не обязательно, т.к. вся практика выполняется через бесплатный софт на сайте авторов курса.
2) Книга "Код: тайный язык информатики" Ч. Петцольд. Идея примерно та же, что и у Nand2Tetris, но в виде книги. Написано очень простым, понятным и интересным языком, читается как художественная. Автор аналогичным образом проведет вас от примитивных логических схем к собственному компьютеру.
Кстати, у МИФ очень крутое качество бумажного издания.
3) Игра MHRD - всё то же самое, что в предыдущих пунктах, но в игровой форме. Ваша работа - собирать процессор, вы его собираете. Всё просто 😁
Все эти ресурсы не исключают друг друга, а наоборот - очень круто дополняют:
- Проходите курс на курсере - это основа обучения
- Параллельно читайте книгу, чтобы лучше усваивать материал, укладывать в голове
- Проходите игру, чтобы было ещё веселее
————
Если знаете похожие ресурсы, делитесь в комментариях. Особенно, если они связаны с другими темами - сети, компиляторы, алгоритмы и т.п.
#nand2tetris
Еси вы плохо понимаете, как устроена память, что такое куча и стэк, как устроен компилятор, как работает процессор, при чём тут ассемблер и др, то этот пост для вас.
Стереотипный хардкорный айтишник скажет: Что тут обсуждать? Таненбаума в зубы и вперёд.
Кроме шуток, это отличный подход, если вам такое заходит.
Но я так и не осилил этот великолепный труд наскоком - начинал и каждый раз бросал, т.к. становилось скучно.
К счастью, помимо Таненбаума, есть и другие способы погружения в тему. С годами мне удалось раскопать жемчужины, которые мне идеально подошли:
1) Курс From NAND to Tetris. Его фишка в том, что вы самостоятельно, начиная с примитивных логических блоков (AND, OR, NAND, ...) строите сумматор, АЛУ, ЦПУ, пишете свой ассемблер, ОС, язык выского уровня, графическую оболочку.. В общем, собираете компьютер собственными руками, и в конце пишете для него игру Тетрис.
Авторы лишь дают необходимую теорию, а практику вы выполняете сами. Курс - просто шедевр.
Советую проходить его на курсере (ссылку найдёте на сайте), и покупать его там не обязательно, т.к. вся практика выполняется через бесплатный софт на сайте авторов курса.
2) Книга "Код: тайный язык информатики" Ч. Петцольд. Идея примерно та же, что и у Nand2Tetris, но в виде книги. Написано очень простым, понятным и интересным языком, читается как художественная. Автор аналогичным образом проведет вас от примитивных логических схем к собственному компьютеру.
Кстати, у МИФ очень крутое качество бумажного издания.
3) Игра MHRD - всё то же самое, что в предыдущих пунктах, но в игровой форме. Ваша работа - собирать процессор, вы его собираете. Всё просто 😁
Все эти ресурсы не исключают друг друга, а наоборот - очень круто дополняют:
- Проходите курс на курсере - это основа обучения
- Параллельно читайте книгу, чтобы лучше усваивать материал, укладывать в голове
- Проходите игру, чтобы было ещё веселее
————
Если знаете похожие ресурсы, делитесь в комментариях. Особенно, если они связаны с другими темами - сети, компиляторы, алгоритмы и т.п.
#nand2tetris