LINUX.ORG.RU

[loroogle][книги]Основы программирования

 ,


0

1

Захотелось как-то упорядочить свои знания о программировании с теоретической точки зрения и я неосознанно стал искать книгу, которая могла бы мне в этом помочь. SICP и Страуструп хороши, конечно, но совершенно не интересны мне в этом плане. Меня не интересуют алгоритмы и приемы, используемые на конкретных языках программирования. Мне интересна именно общая теория. Наткнулся сегодня на RSDN на книгу «Основания языков программирования» Дж. Митчелла (перевод на русский Н. Непейводы), но в комментариях указано, что книга слишком плохо изложена и в целом слишком сложна для чтения. А есть ли еще нечто подобное в мире (желательно, естественно, на русском) на эту тему?

И еще. Меня давно беспокоит такой вопрос: если бы перед вами стояла задача научить программированию подростка (ребенка, девушку любимую, если хотите), знания которого на данный момент равны нулю, с чего бы вы начали и чем продолжили? Как наиболее грамотно и безболезненно ввести человека в мир духов, живущих в компьютерах, и не создать у этого человека каши в голове?

ну ты ебанулся сравнивать SICP со страусом.

SICP это как раз фундаментальная книжка по основам разработки ПО. (наверное думаешь там «про лисп»? А вот хуй, нихуя там не про лисп.)

А страус это бред и отмазки про то как он не сумел не допустить разрастания плюсцов до уровня монструозного говна.

с чего бы вы начали и чем продолжили?

Я бы как раз с SICP начал.

lovesan

anonymous
()
Ответ на: комментарий от anonymous

Материться не стоит. У нас тут и дети иногда бывают. SICP я не дочитал (каюсь), но из того, что успел прочитать (пока зевать не начал) понял, что книга про:
1) алгоритмы и их оптимизацию;
2) scheme во всей его красе и уродстве.

В результате за деревьями я не увидел леса. Эта книга хороша, если хочешь окончательно сбить новичка с толку и вбить ему в голову дурные мысли, что схема - это круто, а хвостовая рекурсия решит все проблемы.

Страус... Это просто энциклопедия алгоритмов и программистских трюков, 50% из которых применимы только в Си++ и ему подобных языках. Это опять не то.

delete83 ★★
() автор топика
Ответ на: комментарий от delete83

Меня интересует теория. Даже если она оторвана от реальности. Мне не нужны алгоритмы сортировки и поиска подстроки. Мне нужны структуры данных и организация кода. Грубо говоря.

delete83 ★★
() автор топика
Ответ на: комментарий от delete83

В результате за деревьями я не увидел леса. Эта книга хороша, если хочешь окончательно сбить новичка с толку и вбить ему в голову дурные мысли, что схема - это круто, а хвостовая рекурсия решит все проблемы.

Что за бред? Ты хоть оглавление читал?

Книга про:
1) Модели вычисления
2) Виды абстракций
3) Низкоуровневые вычислительные машины и трансляцию в них.

anonymous
()
Ответ на: комментарий от anonymous

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

delete83 ★★
() автор топика
Ответ на: комментарий от power

Спасибо всем за ссылки, почитаю на досуге.

deterok ★★★★★
()

если бы перед вами стояла задача научить программированию подростка (ребенка, девушку любимую, если хотите), знания которого на данный момент равны нулю

П. Франка, C++. Учебный курс. По просте лучше не найти, при этом охвачены все важные примитивы программирования.

Makefile
()

Вот мой путь:

Структура и интерпретация компьютерных программ -> Типы в языках программирования -> Ламбда-исчисление Барендрегта -> Основания языков программирования

Вас никто не заставляет осиливать схему. Знаете Эрланг и Си - нет проблем - решайте упражнения с их помощью. В любом случае, лучше SICP вы ничего не найдете. Инфа 100%

ymn ★★★★★
()

Как наиболее грамотно и безболезненно ввести человека в мир духов, живущих в компьютерах, и не создать у этого человека каши в голове?

Взял бы python, настроил среду и переменные среды самостоятельно (если windows), после чего научил бы человека писать простые программки, но эффект от которых очевиден (аля скачать файл из интернета, перенести папочку и т.д.). Смысл в том, чтобы заинтересовать человека, а не в том, чтобы сразу сделать из него программиста, т.к. программированию можно научиться только самостоятельно.

Norgat ★★★★★
()

Для подростка можно показать просто на примерах что «могут» программы (написанные на любом языке программирования) для того, чтобы заинтересовать его - На делфи, например. SICP оч хорошая книга, сам сейчас читаю ее. Оч нравится. Если до этого не встречался с языками программирования примеры на Lisp - хороший выбор.

thunriv
()

Понятно все. Пока я обедал, набежали знатоки и начали втирать мне, на чем же надо писать программы, а на чем не надо. Страуструпа я упомянул, потому что ожидался наплыв советов прочитать именно его. SICP по той же причине. Какие задачи надо, а какие не надо решать на Erlang я в курсе. Речь шла об учебных заданиях, а не о промышленном ПО.

Самый дельный совет:

Вот мой путь:

Структура и интерпретация компьютерных программ -> Типы в языках программирования -> Ламбда-исчисление Барендрегта -> Основания языков программирования

Вас никто не заставляет осиливать схему. Знаете Эрланг и Си - нет проблем - решайте упражнения с их помощью. В любом случае, лучше SICP вы ничего не найдете. Инфа 100%

Спасибо. Постараюсь осмыслить и прислушаться. Если сердце скажет, что это правильно.

Всем спасибо за советы. Тему объявляю закрытой, потому что флейм о [не]нужности и качестве языков мне сейчас не интересен.

P.S. Отсутствие результата - тоже результат. (С) не помню кто сказал.

delete83 ★★
() автор топика
Ответ на: комментарий от ebantrop

Вот я тоже недоумеваю... если так хочется фундаментально-сакральных знаний, у Кнута их точно есть.

Хотя MIT уважаемая контора;-)

ТСу - возьмите питон, возьмите набор простеньких задач (начинать можно с юзания питона как калькулятора) и учите свою девушку... Хотя, ИМНО, учить программирование просто так совершенно бессмысленно. Имеет смысл решать какие то конкретные актуальные задачи, и если при этом надо кодить - то надо учиться кодить именно под эти задачи. Иначе будете уподобляться человеку, изучающему английский просто что бы знать английский - не читать Толкиена/Шоу/Шекспира в оригинале, не смотреть фильмы в оригинале, не разговаривать, не читать тексты по специальности а именно просто знать в совершенстве английский со всеми временами и прочей мутотенью;-)

AIv ★★★★★
()
Ответ на: комментарий от delete83

Мне нужны структуры данных и организация кода

SICP же!

no-such-file ★★★★★
()
Ответ на: комментарий от delete83

зациклена на одном языке программирования, который может и является тьюринг-полным, но уж точно не охватывает все приемы разработки ПО, изобретенные программистами за 70 лет

Ололо, да ты эпично обосрался :)

anonymous
()

HtDP, SICP, EoPL, Programming Languages: Application and Interpretation, Zen of Programming, Art of Prolog, A Programming Language (а к ней статейку Notation as a tool of thought).

buddhist ★★★★★
()

Мне интересна именно общая теория.

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

buddhist ★★★★★
()

How to Design Programm. Может это ищешь? Еще могу посоветовать дискретную математику почитать, Categorian for Working Mathematics, TAPL, и прочие веселые книги... Можно еще Кормена и Ахо-Ульмана посоветовать. Можно Драгон Бук.

TheKnight ★★★
()

Правильно! SICP распиаренная непонятная хренотень для задротов, да еще и убогий скобчатый язычок использует. Нунах. Читай «Код» Петцольда и «Алгоритмы и структуры данных» Вирта, лучше этого ничего не видел.

anonymous
()
Ответ на: комментарий от delete83

Мне не нужны алгоритмы сортировки и поиска подстроки. Мне нужны структуры данных и организация кода.

А как это ты алгоритмы от структур данных оторвать собрался? Читай Вирта! Кнута не читай, SICP не читай, это все чушь, а вот Вирт это наше все.

anonymous
()

Наткнулся сегодня на RSDN на книгу «Основания языков программирования»

Спасибо, хотел просмотреть эту книгу. Как-то видел ее, но забыл название/автора.
По теме: наверное, уже 10 раз советовали, но: Дональд Кнут: Искусство программирования, Конкретная математика.

научить программированию подростка

Дональд Кнут

ребенка

Дональд Кнут

девушку любимую

Дональд Кнут

efe421
()
Ответ на: комментарий от anonymous

Читай Вирта!

Вирт тоже ОК: на первом курсе его читали.

efe421
()

Нашел что сравнивать: SICP и упорка Страуструпа. Страуструпа вообще читать нельзя.
Можешь почитать Кнута .

NewHackersIgnat
()
Ответ на: комментарий от NewHackersIgnat

Нашел что сравнивать: SICP и упорка Страуструпа. Страуструпа вообще читать нельзя.
Можешь почитать Кнута .


Честно говоря, Кнут и имелся в виду, но что-то в голове у меня вчера заклинило... Имелось в виду именно «Искусство программирования» в четырех томах.

delete83 ★★
() автор топика
Ответ на: комментарий от delete83

Мне нужны структуры данных и организация кода. Грубо говоря.

дак сипк именно об этом, а не о том что ты написал в прошлом посте. там ни про ским, ни про оптимизации алгоритмов - нет. только то, как нужно писать программы.

kyz
()
Ответ на: комментарий от kyz

Ты... ошибаешься. Эта книга о том, как, по мнению ее авторов, нужно писать программы. Мне нужно не это. А еще там очень много про оптимизацию алгоритмов и еще больше про схему.

delete83 ★★
() автор топика
Ответ на: комментарий от delete83

Когда-то ооочень давно (когда деревья еще были большими, а я ходил в школу) я читал одну книжку, по содержанию довольно похожую на sicp (попроще намного, правда), только там пропагандировался структурный подход к программированию и превозносился Pascal (и обсирался Basic). В ней было много здравых идей, но сегодня большинство из них уже скорее вредны, чем полезны. Вот sicp для меня сейчас такая же узкая закостенелая точка зрения ее авторов, а мне нужно все множество точек зрения, которые сейчас актуальны (или уже/еще не актуальны).

delete83 ★★
() автор топика

Мне интересна именно общая теория

SICP. Scheme там выбрана потому что нужен хоть какой-то язык на котором писать примеры. Но это не учебник по схеме, программы можешь хоть на питоне писать.

anonymous
()
Ответ на: комментарий от delete83

алгоритмы и их оптимизацию

Что? Первые две главы про абстракции, ты где там вообще алгоритмы увидел?

Эта книга хороша, если хочешь окончательно сбить новичка с толку и вбить ему в голову дурные мысли

Меня не сбила, а наоборот, направила на путь истинный.

anonymous
()
Ответ на: комментарий от delete83

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

про оптимизацию алгоритмов - ничего(да в первой главе есть что-то на пол странички, но это первая глава, а основа сикп с 3-й по 5-ю главы. 1-я и 2-я - это основы для дальнейшего разговора.

если ты дальше 1 и 2-й не дошел, то поздравляю. считай что сикп про оптимизации и схему.

kyz
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.