Автор Тема: Как воспитать отвращение к программированию.  (Прочитано 116763 раз)

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Как воспитать отвращение к программированию.
« Ответ #300 : Сентябрь 08, 2012, 08:18:10 pm »
Вот ссылка на картинку, там ещё и описание в пдфке есть, в последней статье...
http://forum.oberoncore.ru/viewtopic.php?f=93&t=1542&start=420#p74169
Прикольно, даже Лаптев переплюнул Ткачёва по практическим делам. Я фигею дорогая редакция...

DIzer

  • Гость
Re: Как воспитать отвращение к программированию.
« Ответ #301 : Сентябрь 08, 2012, 08:52:31 pm »
Вот ссылка на картинку, там ещё и описание в пдфке есть, в последней статье...
http://forum.oberoncore.ru/viewtopic.php?f=93&t=1542&start=420#p74169
Прикольно, даже Лаптев переплюнул Ткачёва по практическим делам. Я фигею дорогая редакция...
  :) Фигеть пока рановато... картинка это еще не продукт... а вот ББ в школьной сборке продуктом, который можно использовать, назвать можно (фиговеньким, и малопрезентабельным, в сравнение с тем же PABCом - но можно)

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #302 : Сентябрь 08, 2012, 09:18:59 pm »
Вот ссылка на картинку, там ещё и описание в пдфке есть, в последней статье...
http://forum.oberoncore.ru/viewtopic.php?f=93&t=1542&start=420#p74169
Прикольно, даже Лаптев переплюнул Ткачёва по практическим делам. Я фигею дорогая редакция...
Но ты учти, что Лаптев все же не самостоятельно это пишет. У него есть рабы студенты которые делают всю работу. А он сам к коду не притрагивается. Он менеджер :-)

Ну, кроме того, Лаптев, как ни крути, хоть бывший, но программист-профессионал. В отличае от Ткачева. Кроме того, Ткачев не имеет студентов которых можно было бы заставить заинтересовать в пилении некого продукта. Поэтому он занимается другим, например Биномом. Сам он, насколько я понимаю, не переводит, но организует взаимодействие с издателем. Замечу что с этими переводными книжками лучше чем без них (хотя перевод местами оставляет желать много лучшего).

Ну а также Ткачев играет роль маркетоида-продажника/евангелиста продвигаемой идеалогии (хотя идеалогия для технологии - звучит дико).
"но сейчас, чтобы компенсировать растущую мощность компьютеров, программисты используют фреймворки"

DIzer

  • Гость
Re: Как воспитать отвращение к программированию.
« Ответ #303 : Сентябрь 08, 2012, 09:28:50 pm »

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

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Как воспитать отвращение к программированию.
« Ответ #304 : Сентябрь 08, 2012, 09:38:19 pm »
Ну да, вы правы. Под "практическими делами", как человек с профессионально деформированным мозгом (или чего там у меня вместо него), я имел в виду программирование.

Кстати, когда в следующий раз двадцать первый сюда явится надо будет у него поинтересоваться сам-то он программирует или только учит? Сколько десятков (или сотен) тысяч строчек кода он написал за последние два-три года?

vlad

  • Hero Member
  • *****
  • Сообщений: 1391
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #305 : Сентябрь 09, 2012, 04:23:45 am »
Про циклы.

Воистину неисчерпаемая тема! :)

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

"Шестиветочный цикл" - это 99% кандидат в говнокод. Оставшийся 1% - это специфическая оптимизация или некая регулярная структура, которая по каким-то причинам не могла была быть выражена иначе (например, в силу ущербности ЯП).
Я не поленился и нашел этот шедевр:
PROCEDURE Convert* ( t0: M.Model;  OUT t1: M.Model ); (* преобразуем текст, одновременно запоминая таблицу соответствия позиций переведенных слов *)
    VAR
        rd: M.Reader;  wr: M.Writer;  attr: M.Attributes;  ch: CHAR;
        id: String; (* буфер для очередного идентификатора, обнаруживаемого в оригинальном тексте *)
        en: String;
        pos, i: INTEGER;  успешно: BOOLEAN;  new, e: Entry;
BEGIN
    (* ASSERT( language # '', 20  ); *)
   
    rd := t0.NewReader( NIL );
    t1 := M.dir.New();  wr := t1.NewWriter( NIL );
    NEW( table );  table.pos0 := -1;  table.pos1 := -1;  table.next := NIL; (* барьер *)
   
    pos := 0; (* позиция начала id в исходном тексте *)
    i := 0; (* позиция внутри id *)
    rd.Read;  ch := rd.char;
    (* цикл Дейкстры: *)
    LOOP IF ~rd.eot & ( attr # rd.attr ) THEN (* наткнулись на изменение атрибутов текста -- просто копируем *)
        attr := rd.attr;
        wr.SetAttr( attr );
    ELSIF ~rd.eot & ( rd.view # NIL ) THEN (* наткнулись на вьюшку, делаем дубликат (?) и копируем *)
        wr.WriteView( Views.CopyOf( rd.view, Views.deep ), rd.w, rd.h );
        rd.Read;
    ELSIF ~rd.eot & ( i = 0 ) & National.IsFirstIdentChar( rd.char ) THEN
        (* увидели начало идентификатора *)
        pos := rd.Pos() - 1; (* запомнили, где он начинается в оригинале *)
        id[ i ] := rd.char;  INC( i ); (* записали в буфер его первую литеру *)
        rd.Read;
    ELSIF ~rd.eot & ( i > 0 ) & National.IsIdentChar( rd.char ) THEN
        (* идентификатор еще не закончился *)
        id[ i ] := rd.char;  INC( i ); (* записали в буфер его очередную литеру *)
        rd.Read;
    ELSIF  i > 0  THEN (* завершили чтение идентификатора *)
        id[ i ] := 0X; (* оформили завершение соотв. цепочки литер *)
        (* можно попытаться заменить id по словарику: *)
        ConvertWord( id, en, успешно );
        IF  успешно  THEN
            NEW( new );
            new.pos0 := pos; (* позиция идентификатора в оригинале *)
            new.pos1 := wr.Pos(); (* позиция перевода, здесь начнется переведенное ключ. слово *)
            new.next := table;  table := new;
            WriteWord( wr, en );
        ELSE
            WriteWord( wr, id );
        END;
        i := 0;
        wr.WriteChar( rd.char );
        rd.Read;
    ELSIF  ~rd.eot  THEN
        wr.WriteChar( rd.char );
        rd.Read;
    ELSE EXIT END END;
    NEW( new );
    new.pos0 := t0.Length();
    new.pos1 := t1.Length();
    new.next := table;  table := new;
END Convert;

Байтораздирающее зрелище. Еще один пример того, что циклу Дейкстры нечего делать в программах, предназначенных для чтения человеком.

Недоучки. Ламеры. Чмо.

Удачи в переписывании этого говна, когда потребуется что-то поменять. Или что-то поменяется во фрэймворке (к которому оно наглухо припаяно).

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #306 : Сентябрь 09, 2012, 06:06:29 am »
Байтораздирающее зрелище. Еще один пример того, что циклу Дейкстры нечего делать в программах, предназначенных для чтения человеком.
Vlad, в таких случаях следует приводить свой образцово-показательный вариант. Иначе будет:
- Вы - недоучки!
- Нет, это вы - недоучки!
и т.п.

Влад Жаринов

  • Full Member
  • ***
  • Сообщений: 189
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #307 : Сентябрь 09, 2012, 09:38:41 am »
/// скиньте , пожалуйста, ссылку на ролик и картинку
Всё на этой странице... но демка как бы старая... Зато есть первый автоотзыв (вроде и рабочее название :) )...

DIzer

  • Гость
Re: Как воспитать отвращение к программированию.
« Ответ #308 : Сентябрь 09, 2012, 11:31:31 am »
/// скиньте , пожалуйста, ссылку на ролик и картинку
Всё на этой странице... но демка как бы старая... Зато есть первый автоотзыв (вроде и рабочее название :) )...
Еще раз спасибо  (Влад'у)- демка показала то что и ожидал увидеть. Насчет обсуждения результатов -  забавно , ну как вы например оцените "студенты УСПЕВАЮТ набрать программу и выполнить примерно за пол-пары" - без приведения того, что они должны набить  :D

Влад Жаринов

  • Full Member
  • ***
  • Сообщений: 189
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #309 : Сентябрь 09, 2012, 12:18:06 pm »
Никак... :D Из сказанного неявно следует, что Лаптев сравнивает с подготовкой тех же самых заданий "по-прежнему"... но, разумеется, можно у него уточнить... и попросить привести тексты... для более основательного разбора программистами... :)
Кстати, говорится и о методике оценки работы... видимо, выведены какие-то KPI...

DIzer

  • Гость
Re: Как воспитать отвращение к программированию.
« Ответ #310 : Сентябрь 09, 2012, 01:16:29 pm »
Вы не очень внимательны.. есть пара разумных предположений, позволяющих оценить этот параметр:
1. первая неделя обучения - задания простейшие... кроме того фраза Лаптева говорит о том, что  речь идет именно о набивании.
2.в ролике показано решение подобной задачи, человеком, который разрабатывал эту систему, и соответственно  навык которого (как пользователя) близок к максимально достижимому..

DIzer

  • Гость
Re: Как воспитать отвращение к программированию.
« Ответ #311 : Сентябрь 09, 2012, 01:39:19 pm »
ну и еще, приблизительно  пол-пары - ~40 мин.

Peter Almazov

  • Sr. Member
  • ****
  • Сообщений: 482
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #312 : Сентябрь 09, 2012, 06:00:32 pm »
Я не поленился и нашел этот шедевр:
...
Я как-то писал здесь http://forum.oberoncore.ru/viewtopic.php?p=69811#p69811 про смесь из лексического и синтаксического разбора
Цитировать
Мне многократно приходилось писать "наколеночные" решения для разбора каких-нибудь данных. Почти всегда возникал соблазн схалтурить, не делать отдельный лексический разбор. В 100% случаев это приводило к тому, что в итоге получалась какая-то дрянь.

"Шестиветочный цикл" Info21 - прекрасная иллюстрация.

valexey

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1990
    • Просмотр профиля
Re: Как воспитать отвращение к программированию.
« Ответ #313 : Сентябрь 09, 2012, 06:12:45 pm »
Байтораздирающее зрелище. Еще один пример того, что циклу Дейкстры нечего делать в программах, предназначенных для чтения человеком.
Vlad, в таких случаях следует приводить свой образцово-показательный вариант. Иначе будет:
- Вы - недоучки!
- Нет, это вы - недоучки!
и т.п.

Это не имеет смысла - приведенный код писал не info21, насколько я понимаю, а trurl. Таким образом если окажется что код плохой, проиграет trurl, если окажется что код хороший (а то что представит vlad - плохой), то выйграет info21. В обоих случаях info21 не в накладе.

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

Губанов Сергей Юрьевич

  • Hero Member
  • *****
  • Сообщений: 590
    • Просмотр профиля
    • Домашняя страница
Re: Как воспитать отвращение к программированию.
« Ответ #314 : Сентябрь 09, 2012, 08:45:35 pm »
Это не имеет смысла - приведенный код писал не info21, насколько я понимаю, а trurl.
Повсюду лишние пробелы

( i > 0 )
id[ i ]
NEW( new );
ELSIF  i > 0  THEN <-- там по два пробела перед i и после 0

это почерк info21. Он и все примеры к книге Вирта таким форматированием испоганил.