metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2013-08-03 11:49 pm

Обучение программированию с нуля.

Последнее время часто возникает такой вопрос: как обучить человека программированию вообще с нуля. Т.е., например, человек умеет работать на компьютере и все, пользователь - с чего начинать, чтобы он смог хоть как-то понять, например, книги по программированию "для начинающих".
Если по хорошему, то начинать, конечно, надо с таненбаума, ассемблера, сишечьки, SICP и прочего такого - но, само собой, за короткое время это не осилишь, да и, честно говоря, когда не видишь практического применения - оно даже с базовыми знаниями нихрена не осиливается. Разве что для сдачи экзамена, когда над душой стоит препод с дубиной.

[identity profile] permea-kra.livejournal.com 2013-08-05 08:02 am (UTC)(link)
Угу. А гуй больше писать и не на чем.

[identity profile] vp.livejournal.com 2013-08-05 08:05 am (UTC)(link)
Почему? Qt, PyQt, .net, mono

Дохера и больше развитых средств для гуя.

[identity profile] permea-kra.livejournal.com 2013-08-05 08:13 am (UTC)(link)
питон - это ужас, летящий на крыльях ночи. Нет, в лялихе с ним жить можно, но на винде его установка и настройка неоправданно мучительна. Кроме того, это интерпретируемый язык и сложные интерфейсы в его исполнении недостаточно отзывчивы.
.net/mono - частично несовместимы и имеют свои тараканы.
Остается Qt , который c++ с дурномакрами. Но зато кроссплатформенный. Мазахисты развлекаются с GTK.
Edited 2013-08-05 08:40 (UTC)

[identity profile] vp.livejournal.com 2013-08-05 08:43 am (UTC)(link)
Вы неправы по всем пунктам чуть больше чем полностью.

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

Дотнет и моно с большего совместимы, никаких тараканов в них не найдено.

Qt вылизан очень сильно.

Короче, все хорошо :)

[identity profile] permea-kra.livejournal.com 2013-08-05 09:06 am (UTC)(link)
>В линуксах питон давным давно ставится в одну строку или вообще является частью дистрибутива.
Это, безусловно, так. Однако сейчас распространены две ветки (2.* и 3.*).
В винде питон ставится одним мелким инсталлятором, да. А вот установка дополнений с бинарными компонентами - это несколько интереснее.

> Питон - не интерпретируемый язык, чтоб вы знали.
Да ну? Т.е. для него вроде как была реализация с копиляцией в бинарный код через хаскель, но основные реализации до сих пор интерпретируемые. (точнее, компилируемые в байт-код)

>Дотнет и моно с большего совместимы, никаких тараканов в них не найдено.
Есть (точнее, были, сейчас достоверно не знаю) мелкие отличия в семантике байт-кода, которые не позволяют толком использовать F# на моно. Наверняка есть что-то еще, но мне в тот момент этого хватило, дальше копать не стал.

Qt - да, вылизан. Но на плюсах с говномакрами. В том и есть мой пойнт: писать кроссплатформенный гуй в общем больше и не на чем.

[identity profile] vp.livejournal.com 2013-08-05 09:09 am (UTC)(link)
Почитайте, как работает питонья PVM виртуальная машина и про байткод. Это ни разу не интерпретатор. Так же работают и жаба и дотнет.





[identity profile] permea-kra.livejournal.com 2013-08-05 09:23 am (UTC)(link)
CPython is bytecode interpreter.
Нет, жаба и дотнет работают не так. В дополнение к bytecode interpreter они имеют JIT. Впрочем, сравнение с жабой символично, поскольку она тоже зачастую радует неотзывчивым интерфейсом.

[identity profile] vit0ld.livejournal.com 2013-08-05 09:27 am (UTC)(link)
есть и JIT:
http://pypy.org

[identity profile] vit0ld.livejournal.com 2013-08-05 09:27 am (UTC)(link)
есть и JIT: PyPy точка орг

[identity profile] permea-kra.livejournal.com 2013-08-05 10:10 am (UTC)(link)
Скажем так, я ни разу не видел PyPy в боевых условиях. Допускаю, что по причине недостатка опыта, но тем не менее.

[identity profile] vit0ld.livejournal.com 2013-08-05 11:57 am (UTC)(link)
справедливости бдля, я тоже ) но это дело времени, на Вики проекта есть список совместимости