LINUX.ORG.RU

Книга для начинающих программистов, ориентированная на Linux

 , ,


19

5

На сайте А.В.Столярова продолжается сбор средств на написание и последующее издание книги «Программирование: введение в профессию».

Автор проекта уже известен публике по своим книгам Программирование на языке ассемблера NASM для ОС Unix, Сверстай диплом красиво: LaTeX за три дня и другими. Электронные версии всех своих книг автор сразу после выхода бумажного издания выкладывает на сайт, считая это принципиальной позицией.

Книга, задуманная Столяровым в этот раз, должна стать руководством для начинающих, ориентированным на *nix-системы (с использованием командной строки в качестве основополагающего принципа при обучении) и покрывающим при этом предмет от нулевого уровня (школьной информатики) до ООП и парадигм программирования; структура книги приблизительно соответствует последовательности программистских курсов на факультете ВМК МГУ, но отличается от программы ВМК наличием общей платформы (*nix), полным исключением заведомо мёртвых инструментов вроде всё ещё применяющихся на ВМК Турбо-Паскаля и ассемблера MASM для MSDOS, а также существенно иначе расставленными акцентами. Примерный план книги представлен здесь, а с оглавлением неоконченной рукописи, уже включающей три части из предполагающихся семи или восьми — здесь.

Книга отличается от предыдущих своим масштабом. Как было сказано в анонсе проекта,

До сей поры я всегда обходился своими силами; задумав книгу, я просто садился и писал её... Всё было хорошо, пока мои задумки не отличались масштабностью; мне всегда удавалось выкроить пару более-менее свободных недель, чтобы написать текст, и десять-пятнадцать тысяч рублей, чтобы издать написанную книжку. Но в этот раз реальность несколько отличается. Задуманная мною книга по своему объёму по меньшей мере в семь-восемь раз превосходит самые большие тексты, которые мне приходилось писать до сих пор

Даже без дополнительных глав ожидаемый объём книги составляет порядка 1000 страниц; автор планирует уложиться в 500 рабочих часов, для выделения которых необходимо на некоторое время отказаться от подработок. Кроме того, издание книги в бумаге потребует серьёзных расходов, а сотрудничество с издателями на их условиях означало бы невозможность распространения (по крайней мере, открытого) её электронной версии. Автор предпочёл объявить о сборе средств.

К настоящему моменту завершены три из четырёх частей, которые предполагалось написать с нуля; автор продолжает работу над последней из этих частей, посвящённой начальным навыкам программирования (с использованием Free Pascal в качестве учебного пособия); кроме того, в книгу должен после переработки войти материал из пособий, изданных ранее, образовав оставшиеся четыре части. Поддержать проект можно здесь; для доноров предусмотрены разнообразные плюшки.

>>> Подробности

★★★

Проверено: maxcom ()
Последнее исправление: CYB3R (всего исправлений: 2)

Ответ на: комментарий от debugger

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

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

А чем плох Basic для обучения?

Указателей нет

А если LOGO?

Он плох тем же, чем плохо программирование эмуляторов: формированием ощущения, что это вот — оно не настоящее, а настоящее — оно не получится. Есть вот, например, такой старый факт, что учебный авиатренажёр «посадить» гораздо труднее, чем реальный самолёт (так специально делают), то есть пилот-практик, каждый день сажающий реальный борт, может с тренажёром не справиться. И тем не менее ежели обучаемого, умеющего прекрасно сажать тренажёр, но не имеющего опыта посадки на реальном самолёте, посадить за штурвал без инструктора, он, скорее всего, самолёт разобьёт. Просто от ужаса, что это настоящее, а не игрушка, как раньше.

Про Scratch не знаю ничего.

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

А вы хотите чтобы девочка из бухгалтерии сваяла скрипт на _____ (язык подставьте сами, хоть питон, хоть 1с) за две-три минуты?

Если этому учить с первого класса, наравне с обычной грамотностью — то никаких проблем; совсем безмозглые в бухгалтерии не сидят, там надо хотя бы уметь обращаться с числами, что уже немало (не все это понимают, но обыкновенное число — это самая сложная из абстракций, выдуманных человеком), и такого человека ЗАВЕДОМО можно научить обращаться со скриптами, если делать это вовремя.

тыкая в клавиатуру двумя указательными пальцами

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

В первом классе школы, насколько я помню, детей учат писать. Палочки, кружочки, закорючки, потом буквы и слова. И это правильно, потому что писать ученику придётся по крайней мере ещё лет десять

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

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

Prolog капишь?

и речь про общеобязательный навык(два ) среди «не_смердов» - распоряжаться говорящими орудиями и распоряжаться идеальными исполнителями - есть конечно различия.

qulinxao ★★☆
()
Ответ на: комментарий от Croco

Если этому учить с первого класса <...> и такого человека ЗАВЕДОМО можно научить обращаться со скриптами, если делать это вовремя.

Можно, говорят, и зайца научить курить, но нужно ли? В мире много других профессий, нельзя научить всему.

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

А я видел. В последнее время пришлось побегать по присутственным местам.

Вы сами-то вы слепой печатью владеете? Видимо, нет. Я вот жалею, что поздно овладел этим необходимым навыком. Это кайф — видеть что печатаешь. Не говоря уже про то, что меньше устают руки и шея. Как это влияет на состояние человека — рассказывать не буду, гугл.

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

на русском и для начинающих? Этот Столяров, он претендует на роль русского Кнута?

Кнута

начинающих

ОМГ.

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

> можно научить обращаться со скриптами,

В мире много других профессий, нельзя научить всему.

Это не профессия, это бытовой навык. Вы, чтобы дома посуду помыть, вызываете профессиональную посудомойку? А яичницу вам профессиональный повар жарит? А, это, галстук вам завязывает профессиональный завязывальщик галстуков? Рискну предположить, что нет.

Можно, говорят, и зайца научить курить, но нужно ли?

Поскольку альтернатива — бесплодное убиение времени на однотипные действия с машиной, то, сдаётся мне, вопрос лишен смысла. Разумеется, нужно, ибо время, которое эти несчастные девочки в бухгалтерии тратят на вколачивание данных из текстового файла в эту их 1С, они могли бы потратить с существенно большей пользой для себя.

Вы сами-то вы слепой печатью владеете? Видимо, нет.

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

Иной вопрос, что на левой руке я использую только два пальца, а на правой — четыре. И ничего, пишу вполне сносно, больше 200 в минуту, если не торопиться. Если торопиться, то я вышибал что-то около 280, но там уже, конечно, начинались опечатки, что лишало затею смысла.

Учить навыкам слепой печати специально — это какой-то нонсенс, по-моему. Во-первых, классический десятипальцевый метод тупо неудобен: те же мизинцы лучше не задействовать, они короткие и слабые, я вот только на правой руке мизинец использую, чтобы на shift нажимать; опять же, циферки и всякие Esc, F1-F12, ins/del/ну-вы-поняли, они в классическую схему не входят (я по ним замечательно попадаю без зрительного контроля, у меня, например, xterm запускается по Ctrl-F10, что я, ради этого на клаву теперь смотреть должен?). Во-вторых, я точно помню, что перестал смотреть на клавиатуру примерно через год после того, как в окружающем меня мире клавиатуры перестали то и дело меняться (в начале девяностых был всё-таки изрядный зоопарк этого дела).

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

Prolog капишь?

И? Где этот твой пролог используется для... программирования людей? (Я уже не спрашиваю, где он используется для программирования)

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

и распоряжаться идеальными исполнителями - есть конечно различия.

Бггг, дьявол в деталях: джва года пытались тестеров приохотить к автоматизации своего труда... «Да чего я буду делать работу программистов!» Пока курсы «автоматических тестеров» с надбавкой за не ввели - фиг кто почесался чего осваивать, кроме «10000 раз нажать кнопки, смыть, повторить». (тут тебе и про говорящих орудий, у которых есть навык идеального похуя и про идеальных исполнителей, на которых всем идеально похуй, пока это ни на что материально не влияет) Поэтому и на тестерах с бизнес-аналитегами экономить - первый навык «эффективных менеджеров»: программист худо-бедно работу всех прочих сделает за какую-нибудь «переходящую премию», а наоборот - недЪ.

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

Часто встречаю компьютерных спецо, не умеющих печатать. Почти всегда это вызывает улыбку. Хотя в целом статистика грустная. Не ожидал этого от вас, А.В.

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

Учить слепой 10-пальцевой печати желательно, как и программированию/скриптингу, со школьной скамьи, параллельно чистописанию. Дети вообще быстро такие навыки приобретают, как губки впитывают.

Да и пора всем на Дворака переходить, всё равно мало кто владеет qwerty. Только как этого добиться?..

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

Часто встречаю компьютерных спецо, не умеющих печатать.

Я был бы таким, если бы позволил себя научить пресловутому десятипальцевому, в котором зачем-то используются мизинцы. А так я как раз умею. Вот чего никогда не видел — так это чтобы кто-то печатал без ошибок существенно быстрее меня.

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

Я мог бы пригласить вас на клавагонки, но вы JS, возможно, ради этого не станете включать. Там бы я мог показать зачем нужны мизинцы. Моторика мизинцев также поддаётся развитию, слабые они у тех кто их не использует. Да вы взгляните хотя бы на музыкантов-виртуозов: гитаристов, флейтистов, пианистов. Думаю, аргумент про мизинцы расствориться раз и навсегда.

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

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

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

Гитаристы не используют мизинец правой руки — ровно по тем же причинам, он слишком короткий. На левой руке он используется только в таких аккордах, где все остальные пальцы уже чем-то заняты, но там проще, струну к ладу прижать особой силы не надо. С флейтистами и пианистами несколько другая история, там слишком много всего одновременно надо нажимать, чтобы позволить себе роскошь отказаться от мизинцев (как, впрочем, и на грифе гитары). NB: ОДНОВРЕМЕННО надо много куда нажать. А вот на клавиатуре мы больше двух клавиш почти никогда не нажимаем, ну три — очень редко (что-нибудь вроде Ctrl-Shift-F8, вот у меня такая комбинация есть), так что вполне можно ту зону клавиатуры, которую «по классике» должен обслуживать мизинец, окучивать безымянными пальцами.

Кстати, гнал я, вот тут сам за собой понаблюдал — оказалось, таки на левой руке активно использую безымянный, но, правда, мало для каких клавиш. Q и W нажимаю средним, а вот A и Z почему-то безымянным. Я этого даже не знал :-) А на правой у меня мизинец, оказывается, ещё и Enter нажимает. Во. А ещё я за собой такое свойство знаю, что если у меня рука занята, например, чашкой чая, а нужно в чате срочно кому-нибудь ответить, так я благополучно наколачиваю ответ одной рукой, причём любой — и тоже не глядя на кнопки. Конечно, о скорости тут речи уже не идёт, потому что руку приходится оторвать от стола, но вот это вот ощущение на уровне «где какая клавиша» — оно приятное. Впрочем, по-моему это всё неважно, важнее то, что я с клавиатурой работаю вслепую, при том что никогда этому специально не учился. И, по моим наблюдениям, так делают все, кто много наколачивает текстов. Слепая печать приходит сама.

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

Гитаристы не используют мизинец правой руки, блокфлейтисты - мизинец левой руки. Ну и что? Мизинец используется там, где он нужен. Вне зависимости от его длины. На гитаре, кроме блатных аккордов, где мизинец почти не используется, существует множество других приёмов игры. Вообще я имел ввиду гаммовые пассажи, где мизинец используется очень часто и от которого требуется довольно техничная работа.

там проще, струну к ладу прижать особой силы не надо

Проще, чем что? Чем по клавише стукнуть? Как раз-таки здесь нужна и сила, и точность (особенно если брать в рассмотрение вестерн-гитару).

Мне проще всего говорить про гитару и блокфлейту. На блокфлейте мизинец совершают более разнообразную работу, чем любой другой палец: в зависимости от его постановки можно, во-первых, извлекать разные ноты (до или до-диез - на блокфлейте сопрано), во-вторых, получить неопределённый свист в случае неточной постановки. Я уже не говорю про трели.

Безусловно, игра на музыкальных инструментах не то же самое, что печать, никто не спорит. Существует множество нюансов и особенностей. Верно отметили про синхронную работу пальцев рук. Но это опять же аргумент в пользу того, что пальцы, и мизинцы в частности, поддаются тренировке и могут быть эффективно использованы. Устоявшаяся техника печати, возможно, не лишена недостатков, но, пожалуй, практически всегда оказывается быстрее, чем индивидуальные стили. А в этом её предназначение и есть.

P.S. Вас так почитаешь и складывается впечатление, что мизинцы это мёртвый груз :-)

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

Указателей нет

Указателей сейчас почти нигде нет, везде ссылки и сборка мусора. Более того, использование указателей в учебных программах - зло, т.к. при этом обычно не учитываются проблемы утечки памяти, исключений и т.п. нюансы. И тут действует ваш же аргумент про «ненастоящее» - это не настоящее программирование, хоть и на C/C++, т.к. не учитываются все факторы, существующие в реальных приложениях.

В свете этого ваши претензии к языкам без указателей несостоятельны, т.к. ссылки со сборкой мусора позволяют применять все те же техники программирования что и указатели, но без дополнительных издержек и оговорок. Например Java, который представляет собой как раз самый настоящий, модульный, повсеместно используемый язык, имеющий развитый инструментарий разработки, что тоже немаловажно при обучении (в т.ч. и изучение современного инструментария разработки, как один из компонентов получения студентом компетентности в своей области), подходит на роль учебного намного лучше чем мертвый паскаль, алгол или PL/I. Смешно сказать, но даже дедушка FORTRAN гораздо больше приемлем для обучения, т.к. всё ещё имеет применение (и в нём, кстати, есть указатели).

В общем дело конечно ваше, но книга на мой взгляд будет полностью бесполезная.

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

Это не профессия, это бытовой навык.

Есть английская поговорка, что-то про то, что взяв в руки молоток, всё вокруг начинает казаться гвоздями. Вы — типичный препод (взявший в руки «молоток» — свой предмет), который считает, что его предмет нужнее других. На другие предметы можно забить, но вот программирование надо изучать, и непременно с первого класса.

Учить навыкам слепой печати специально — это какой-то нонсенс, по-моему. Во-первых, классический десятипальцевый метод тупо неудобен…

Мдя… Не ожидал такой чуши от вас, честное слово…

Где то я читал ваше довольно резкое высказывание, что вас не интересует мнение людей, не имеющих опыта преподавания, сравнимого в вашим. Так вот, по вопросу слепой десятипальцевой печати меня не интересует мнение человека, её не осилившего. Вы сейчас похожи на местных икспердов, которые говорят что учить программированию на Паскале нельзя, он тупо неудобен.

Счастливо оставаться. Пишите свою книгу шестью пальцами.

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

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

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

Учить слепой 10-пальцевой печати желательно, как и программированию/скриптингу, со школьной скамьи, параллельно чистописанию. Дети вообще быстро такие навыки приобретают, как губки впитывают.

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

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

P.S. Вас так почитаешь и складывается впечатление, что мизинцы это мёртвый груз :-)

юбицумэ

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

Java

Обученный сразу писать на яве/пыхе/пыхтоне/шарпе скорее всего будет всю жизнь писать отвратительный код, ибо GC калечит мозг тем, что отучает думать о том, как этот код, собственно, работает и во что он превращается. Помни, что именно ненависть к C/C++ побудила создавать управляемый код. Тот, кто не познал всю глубину своей криворукости недостоин писать ничего большего, чем гостевухи и 1с-ные скрипты.

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

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

crutch_master ★★★★★
()
Последнее исправление: crutch_master (всего исправлений: 1)
Ответ на: комментарий от no-such-file

не учитываются все факторы, существующие в реальных приложениях.

Это уже проектирование приложений. Само программирование - это заставить машину сделать то и то. А всё, что собирает управляемый код - делает еще что-то кроме того, что ему говорят.

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

Это уже проектирование приложений

Нет, это не проектирование. Это обычное программирование, когда нужно учитывать все возможные варианты утечек, исключений, переполнений буфера и прочих исключительно технических моментов. Я не видел ни одной учебной программы на Си, где обрабатывались бы все возможные ошибки, да ещё кроссплатфоремнно. И я не утверждаю, что это обязательно делать при обучении, но ТС выдвигает аргумент о «настоящем» программировании - тогда извольте писать и на Си по-настоящему, а уж использование паскаля в качестве «настоящего» языка звучит просто смехотворно.

всё, что собирает управляемый код - делает еще что-то кроме того, что ему говорят

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

Ну и ещё, ваши потуги выдать знание механизма работы с динамической памятью в Си за что-то необходимое выглядят странно, т.к. на самом деле это знание ограничивается применением malloc/free и арифметикой указателей. Но если студента интересует действительные алгоритмы управления динамической памятью, то встроенные указатели не имеют никакого и преимущества перед обычными массивами с косвенной адресацией через переменную. Напротив, использование массива, как абстракции кучи, гораздо более наглядно и никакие указатели, встроенные в язык, для этого не нужны - это можно и на самом древнем фортране изучить и на джаве с gc. Даже полезнее, т.к. не привязано к конкретной модели памяти.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Croco

2 класс доходит максимум до 7 уровня из 40 человек где-то 3-4 смогли пройти 7, в голове у 1 класса как ни старайся не будет еще «программирования» - для них «компьютер это игрушка»

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

Считайте

И это - главная ошибка. «Не надо заботится о сборке мусора, GC позаботится за вас», говорят они. А в результате те же утечки, тормоза, проблемы с этой самой сборкой, танцы с бубнами вокруг VM (или что там у вас) и полная не способность программиста организовать работу с памятью. GC - инструмент. Прежде, чем с ним работать, программист должен отлично понимать, что это, для чего это и как без этого, а не абстрагироваться в свой розовый мирок.

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

opensource

В 60-е годы?

И это - главная ошибка. «Не надо заботится о сборке мусора, GC позаботится за вас», говорят они

Ты или тупой, или тролль.

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

Плюсую. Всё чётко сказал.

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

А ты что хотел? Первый класс ещё не соображает. Второй уже проходит некоторые уровни и добирается аж до седьмого. А третий что будет? А десятыйсам такие игрушки будет стряпать! Короче, если заниматься, то результат будет. Постепенно, и будет. Но начинать-то надо же.

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

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

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

Так вот, по вопросу слепой десятипальцевой печати меня не интересует мнение человека, её не осилившего.

Дык это, as you wish. Только вы на досуге всё-таки поставьте левую руку в классическую позицию с закреплённым на столешнице запястьем и попробуйте МЕДЛЕННО нажать на Q. Медленно — это чтобы подробно рассмотреть, что при этом происходит с ладонью. Заодно прикиньте, какие при этом напряглись группы мышц. А потом МЕДЛЕННО сделайте то же самое безымянным пальцем вместо мизинца.

Для A и Z этого не видно, для Q видно довольно отчётливо.

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

В ФП он использовался всегда.

Это совершенно верно. Точно так же совершенно верно то, что императивное программирование и GC — это вещи взаимоисключающие. Если нас устраивает НАСТОЛЬКО далеко отойти от базового вычислителя (известного как машина фон Неймана и навязывающего именно что императивное программирование), что нам даже GC с его недетерминированностью не помеха — то тогда нет никакого смысла тащить за собой исходно противоестественные циклы и присваивания. Если же мы хотим оставаться в императивщине, то GC нас устраивать не должен. Или одно, или другое.

Поверх JVM вот придумали Clojure — нормальная такая штука для высокоуровневого программирования. Сама же Java — совершеннейший бастард, не имеющий права на существование. Этот недоязык придумала почившая ныне в бозе Sun, и не для того, чтобы программировать, а для того, чтобы захватывать мир. Соответственно для программирования эта хрень не годится. Как, впрочем, и майкрософтовский «асимметричный ответ», известный как C#.

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

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

базового вычислителя

Базовый вычислитель - это всё таки машина Тьюринга, которая, как известно, равносильна лямбда-исчислению.

машина фон Неймана

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

Сама же Java — совершеннейший бастард, не имеющий права на существование. Этот недоязык придумала почившая ныне в бозе Sun, и не для того, чтобы программировать, а для того, чтобы захватывать мир. Соответственно для программирования эта хрень не годится. Как, впрочем, и майкрософтовский «асимметричный ответ», известный как C#.

И это говорит человек, использующий паскаль? Батенька, да вы фанатик-маргинал похуже любого штангиста, или борщевика. Вы удивитесь, но все языки придуманы не для того чтобы программировать, а для того чтобы решать личные, корыстные задачи авторов.

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

Знание железа и методов его программирования - это совершенно отдельная дисциплина, которая не имеет прямого отношения к общей теории алгоритмов. Но даже, как я уже сказал выше, изучение и этой области тоже никак не связано со знанием отдельно взятого ассемблера или умением применить malloc/free. Здесь важнее общее понимание машины Тьюринга, или более развитого исполнителя (виртуальной машины), а для его моделирования совершенно не важно, какие средства поддерживает язык - можно моделировать память исполнителя даже на древнем фортране в статическом массиве. Вот это действительно даёт понимание, как работает машина, какие есть алгоритмы выделения памяти и её освобождения (в том числе gc) и т.п.

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

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

А вы хотите чтобы девочка из бухгалтерии сваяла скрипт на ...

Очень многие 12..18-летние школьники стремятся программировать на низком уровне. Я встречал среди них даже «хакеров» (в хорошем смысле этого слова) ... хе-хе. Поэтому качественной русской литературы по asm не может быть мало.

У меня в 12-14 лет это были книги Абеля, братьев Фроловых (первые 4 тома БСП), переводные издания-справочники по i386/i486.

В случае zeus asm / Z80 это были отксеренные и перепечатанные листинги команд из журналов, и краткие мануалы с советами. Опять же, на русском. Журнал «МОНИТОР» 1993-1995 ещё был хорошим.

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

Базовый вычислитель - это всё таки машина Тьюринга, которая, как известно, равносильна лямбда-исчислению

Базовый вычислитель — это то, на чём работают программы. Если для вас это машина Тьюринга, то мне остаётся пожелать вам успехов.

NB: только не надо МНЕ рассказывать про теорию алгоритмов, ладно? ;-) И про Моушли с Эккертом, собственно говоря, тоже не надо. ENIAC программировался тумблерами и перемычками, ничего похожего на хранимую программу там исходно не было. Вообще не знаю, от кого тут дилетантизмом пахнет, мне так после объявления машины Тьюринга базовым вычислителем стало уже не интересно.

Вообще, чего я с джавистом-то разговариваю? Я бы ещё с каким-нибудь один-эсником стал время терять. Тьфу.

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

ENIAC

При чём тут ЭНИАК? Экерт придумал хранить программу в памяти уже после этого, но до того как в группу пришёл фон Нейман.

Базовый вычислитель — это то, на чём работают программы

А можно ссылку на научную работу, где дано такое определение?

только не надо МНЕ рассказывать

Похоже, что надо, ведь вы совершенно не ориентируетесь в вопросе.

Вообще, чего я с джавистом-то разговариваю? Я бы ещё с каким-нибудь один-эсником стал время терять. Тьфу

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

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от Croco

Это не профессия, это бытовой навык.

это не бытовой навык, т.к. надо думать.

Вы, чтобы дома посуду помыть, вызываете профессиональную посудомойку?

посудомоечная машина.

А яичницу вам профессиональный повар жарит?

не так много людей умеет готовить что-то сложнее яичницы. а так вообще есть рестораны/доставка еды.

А, это, галстук вам завязывает профессиональный завязывальщик галстуков?

галстуки можно не развязывать.

Рискну предположить, что нет.

риск — дело благородное, конечно.

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

Э-ммм, вот уж чего я не утверждал, так это что жму Ctrl-Shift-F8 одной рукой. Где вы такое утверждение у меня вычитали? o_O

P.S. Попробовал. Дотянулся. Можно, но неудобно и нафиг не надо :)

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

Два месяца?

У меня ушло два дня,плюс один на шлифовку. У детей тоже.

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

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

Хм. У него свой бизнес-план, не все работают full-time для какой-то задачи. Я наоборот уважаю людей, у которых хватило терпения выпустить что-то за donation. Ведь кроме продуманной стратегии развития продукта надо иметь что-то уже наработанное, чтобы показывать читателям. А у него (Croco) эти тексты уже есть. Кстати, вполне легко читаемые даже для незнакомого с тематикой. И одновременно, ёмкие по содержанию.

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

я не говорил что вы так говорили, я просто предположил, и подумал что руки как у пианиста должны быть тогда)

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

В 60-е годы?

Криокамера протекла? На дворе 2015 год.

Ты или тупой

Угу. Всякие жавапыхтономакаки не умеют работать с памятью, не хотят понимать, как работает их GC, гордятся тем, что им насрать на то, что там внутри, а я - тупой.

или тролль.

Что есть, то есть. Использование больших абстракций без понимания их внутреннего устройства суть танец на поле с граблями. Поэтому учить надо с низу вверх иначе процентов 80 будут писать Someclass a = new Someclass(); и на этом успокоятся.

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

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

Угу. В гугле тоже так думали, а их почему-то по судам начали таскать.

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

везде ссылки и сборка мусора

учить на этом -> приучать к идее «компьютер умнее, он сам разберется»

Потом посадишь такого за C++, не дай ты Бог, - не переучишь

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

Попробовал. Дотянулся.

Если вы левый Ctrl-Shift жмете с F8 ОДНОЙ рукой - вы, батенька, кадавр. o_O

Это я вам как закончивший музшколу и жмущий одной рукой полторы октавы на пианино говорю. Шоб нажать одной рукой левый Ctrl-Shift-F8 - нужно жать минимум 2 октавы(чтобы предельное расстояние от большого пальца до мизинца было больше).

На таких у нас в школе смотрели преподы вот так: O_O. Их всего человека 2 было на 4 потока, оба в консерваторию пошли ЕМНИП

А правые Ctrl-Shift-F8 нажать одной рукой можно. Но просто неудобно.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 2)
Ответ на: комментарий от crutch_master

Использование больших абстракций без понимания их внутреннего устройства суть танец на поле с граблями.

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

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