K>вообще не есть алгоритм. Это формула, калькой переписанная с бумажки, потому что в компьютере, как минимум, не нарисуешь фигурную скобку. В математике такие формулы упрощают, при помощи них что-то доказывают и т.д. ФП — это вообще другой взгляд на программирование. Чтобы в дальнейшем не плодились кодеры, пишущие лапшеобразный код, стоит учить программированию именно с функционального стиля, а затем переходить на императивный (как в SICP).
Возможно, однако в наших условиях переход на функциональное\императивное программирование не является возможным в силу излишней бюрократизованности министерств, отсутствия достаточного количества грамотных преподавателей, которым было бы интересно в этом разбираться, и их начальников в разных ведомствах. Поэтому такой подход, при всей его привлекательности, внедрить возможным не представляется. Максимум пригодится для того, чтобы учить своего собственного ребёнка (что тоже не плохо).
Z>>Ну и наверное в свете все большего развития ООП имеет смысл начинать сразу с него, а не с процедурных языков. Думаю, изучить переход ООП-процедуры легче, чем процедуры-ООП, а многие, переходя на объектно-ориентированный язык, всё равно продолжительное время пользуются знаниями, полученными при процедурном программировании. К несчастью, многие вузовские программы безнадёжно устарели, а процесс их замены долог и мучителен
K>А как насчёт Smalltalk? Как на нём будет писать сишный программист?
Не видел Smalltalk вживую, насколько себе представляю, это полностью объектный язык высокого уровня. Те книги, что я читал по правилам написания хорошего кода, утверждают, что перед тем, как осваивать Java, dotNet, прочее высокоуровнее безобразие, необходимо освоить Си, чтобы разобраться, как функционирует компьютер на более низком уровне — работа с памятью, указателями... (Ассемблер\Машинный_код в качестве первого языка всё же пока не предлагаю ). Если же начинать сразу с ООП, то Java\C#. Если Smalltalk на них похож, хоть с него.
Здравствуйте, konsoletyper, Вы писали:
K>Здравствуйте, volk, Вы писали:
V>>Ты о чем вообще? Может еще список препаратов обсудим? K>Лично я считаю, что на форуме не место обсуждениям медицинских препаратов.
А по поводу обыкновенного стеба что ты скажешь?
K>Может, я что-то пропустил? Где это он облаял автора сообщения? А за соблюдениеи правил должны следить не мы, а модераторы.
Пока есть что сказать по теме, предлагаю не разбирать, кто кого и как задел. За себя скажу, что мне бы не понравилось, если бы ко мне так обратились.
K>Люди разные бывают. Профессионализм и личные черты — вещи ортогональные. Просто, если оба параметра низкие, то такой человек особенно неприятен. Но то, что у человека дурные манеры, никак не предполагает, что он не состоялся как профессионал. Не стоит обвинять в чём-то человека, если недоконца уверен.
А я его обвиняю только в замусоривании ветки.
Бывает разный профессионализм. Кодер или специалист в узкой области может тихо заниматься своим делом, и никому не будут мешать его человеконенавистнические установки.
Если же человек должен контактировать с коллегами, обсуждать проектные решения, формулировать и уточнять задания, общаться с заказчиками или (не дай бог!) обучать новичков, то злобный аутизм может стать непреодолимой преградой не только карьерного, но и профессионального роста. Попытка кооперации с хамом приводит к тому, что все общение проходит через начальство в письменном виде. Что делать, если начальник или коллега по группе проявляет мудаковатые качества -- не знаю, пока не попадал; по-видимому, менять работу, раз уж позволяет рынок.
K>Да нет, как раз косные, инертные товарищи рекомендуют книжки по С++, должен же кто-то убедить человека не изучать C++? Думаю, Колхоз приводит не самую вескую аргументацию, но идея верна.
"Но в главном-то он прав!" (с)
Не-изучать-Си++ -- это Вы, по-видимому, оговорились. По-крайней мере, с такой идеей Вам стоит пройти в СВ, предварительно вооружившись дополняющей идеей -- а что же следует изучать вместо него. Учтите, что Оберон и Немерле уже заняты.
Не начинать с Си++ -- это разумно. Этот язык для обучения плох. Однако, я знаю нескольких человек, которые начали именно с него и прекрасно себя чувствуют.
Тот, кто желает, но не делает, распространяет чуму.
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, korzhik, Вы писали:
K>>>>>так я не понял, ты программировать научиться хочешь или готовые компоненты по форме расставлять? S>>>>Конечно программировать!!! K>>>Тогда ты должен прочитать 3-х томник Кнута K>>Это я пошутил Я не знаю ни одного человека который бы это сделал LVV>Я прочитал... LVV>Правда, почти ничего не помню... Зато помню, в каком томе о чем прочитать можно...
Здравствуйте, volk, Вы писали:
V>Не-изучать-Си++ -- это Вы, по-видимому, оговорились. По-крайней мере, с такой идеей Вам стоит пройти в СВ, предварительно вооружившись дополняющей идеей -- а что же следует изучать вместо него. Учтите, что Оберон и Немерле уже заняты.
V>Не начинать с Си++ -- это разумно. Этот язык для обучения плох. Однако, я знаю нескольких человек, которые начали именно с него и прекрасно себя чувствуют.
Предлагается Лисп, а точнее — Scheme.
С C++ начинать действительно не стоит. Есть у меня один знакомый. Когда он устроился на работу (разработка игр, C++), то его "покоробило, что надо везде const ставить". Уж не знаю, что он у себя там в МГУ имени Ломоносова изучал, но есть подозрение, что изучай он Лисп, такие вопросы у него не возникли бы. Я даже не сомневаюсь, что с опытом к нему пришло понимание таких вещей. Но вот если бы его сразу научили как следует (а на C++ научить как следует невозможно), то сколько бы компания, где он работает, не досчиталась строк индийского кода! А так приходится переучиваться, бороться с дурными привычками.
Кстати, уже немало флейма разведено по поводу перспектив C++. Не знаю, как кто считает, но я вижу, что C++ постепенно сдаёт позиции, его место занимают Java, C#. Так что изучение C++ сейчас может оказаться попросту неактуальным и неперспективным.
Здравствуйте, zheleza, Вы писали:
Z>Возможно, однако в наших условиях переход на функциональное\императивное программирование не является возможным в силу излишней бюрократизованности министерств, отсутствия достаточного количества грамотных преподавателей, которым было бы интересно в этом разбираться, и их начальников в разных ведомствах. Поэтому такой подход, при всей его привлекательности, внедрить возможным не представляется. Максимум пригодится для того, чтобы учить своего собственного ребёнка (что тоже не плохо).
Во-первых, никто и не говорит, что нужно изучать только ФП. Просто императивщина должна идти после функционального введения. Это нужно, чтобы человек осознал простую истину: программист пишет не КАК нужно делать, а ЧТО нужно делать. В идеале, мейнстримовые языки к этому должны приближаться. Но пока на том же C++ можно писать как в стиле "сделай ТАК", так и в стиле "сделай ЭТО". Опытный программист выберет первый подход, новичок — второй. Однако, новичка можно сразу ударить по рукам, чтобы он ценил эстетику кода. Если преподаватель гениальный, то он это сможет сделать и на примере C++. Но в большинстве случаев разумнее просто обучать человека основам ФП.
Про преподавание здесь никто и не говорит. Человек решил заняться самообразованием. Т.е. у него есть воля почитать какую-нибудь книжку. У него, при этом, сознание не замутнено догмой "компьютер делает всё в точности как я скажу". А следовательно, пока есть интерес и свежие мозги, лучше не портить их.
K>>А как насчёт Smalltalk? Как на нём будет писать сишный программист? Z>Не видел Smalltalk вживую, насколько себе представляю, это полностью объектный язык высокого уровня. Те книги, что я читал по правилам написания хорошего кода, утверждают, что перед тем, как осваивать Java, dotNet, прочее высокоуровнее безобразие, необходимо освоить Си, чтобы разобраться, как функционирует компьютер на более низком уровне — работа с памятью, указателями... (Ассемблер\Машинный_код в качестве первого языка всё же пока не предлагаю ). Если же начинать сразу с ООП, то Java\C#. Если Smalltalk на них похож, хоть с него.
Как там в биологии: филогенез есть краткое повторение онтогенеза (если я их не перепутал местами). Это применяется по отношению к живым организмам — развитие эмбриона на разных стадиях повторяет эволюцию, проделанную живыми организмами за милионы лет. Но я заметил, что закон выполняется не только в биологии. В частности, если мы хотим обучить человека чему-то, то лучше его обучать в соответствии с историческим развитием дисциплины. Думаете, почему люди в школе изучают производные и кое-как упоминают о пределах, а затем в вузах формализуют пределы, дают аксиоматику Кантора, Пеано и Дедекинда? А потому, что производные были выдуманы Ньютоном, который не смог дать чёткого определения пределам. Понадобилось 200 лет, чтобы пределы смогли формализовать. Вообще, полезно, чтобы учащиеся не знакомились с сухими фактами, но и могли проследить ход мыслей учёных.
Это я к чему? Первым классическим по-настоящему ОО (я пропускаю Симулу, т.к. она была первым опытом) был Smalltalk. С него бы и стоило начать изучение ОО. Он хорош ещё и тем, что в нём простой синтаксис и человек не забивает голову ненужными деталями, как в случае с Java. Кстати, Лисп я по той же причине считаю языком, который стоило бы изучить одним из первых; правда накладывается ещё тот факт, что он не чистый ФЯ, что есть хорошо.
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, FunnyRabbit, Вы писали:
FR>>А по моему лучше начни с C#. Это тебе и C++ подобный синтаксис и гуйня всякая будет при желании и сразу окунешся в мир классов, Приятно. Когда попробовал, то сразу понял, что учиться лучше с него. Только не забудь потом С++ выучить, ибо это надо для просветления.
L>А тот же паскаль, питон, лисп, etc вы пробовали?
Пробовал паскаль, лисп, пролог, но считаю что т.к. в настоящее и наверное будущее время Object Pascal, а с ним и Delphi уйдет с рынка, то останется для десктоп приложений .NET (?), C++ (!!!), Java(как промышленный стандарт). Т.о. Если человек попытается начать изхучение именно с С#, то его переход к С++ или Java будет проще, ибо:
1. Он привыкнет к синтаксису, который в принципе похож и на С++ и на Java.
2. Разберется с GC.
3. Разберется с Generic'ами и узнает про шаблоны в С++.
4...
5. Делегаты ему будут очень полезны для понимания. При переходе к указателям на функции в C++ особенно.
6. По моему это доволно простая платформа и С# как язык тоже.
А из паскаля я взял привычку определять локальные переменные до вычислений, т.е. в заголовке, так сказать, метода.
То что меня не убивает, делает меня умнее.
Re[10]: Помогите новичку!!!
От:
Аноним
Дата:
17.10.06 08:11
Оценка:
Здравствуйте, Lloyd, Вы писали:
S>>Если сайты рисовать? Тогда конечно %)
L>Ну не всем же сортировку писать, кому-то надо и работать.
Плохо понимая, что он делает. Блин, нельзя называть программистом,
того кто не знает дискретной математики, хотя бы на уровне понимания основных
алгоритмов и концепций.
Здравствуйте, <Аноним>, Вы писали:
А>Плохо понимая, что он делает. Блин, нельзя называть программистом, А>того кто не знает дискретной математики, хотя бы на уровне понимания основных А>алгоритмов и концепций.
Отнюдь, очень даже можно. 90%-ов рынка труда — это задачи не связанные со сколь-либо сложной алгоритмикой. Такова реальность, сколь бы ни было это печально осознавать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Помогите новичку!!!
От:
Аноним
Дата:
17.10.06 09:24
Оценка:
Здравствуйте, Senjer, Вы писали:
S>По С++ литература встречается чаще! S>Да и большенство с кем мне приходилось общаться, программируют на С++!
Матёрые программисты ни на чём не программируют. Они пишут стандарты.
Здравствуйте, konsoletyper, Вы писали:
K>А где тут потеря самообладания? Человеку просто хватает наглости говорить вещи как есть, не соблюдая политкорректность и не боясь оскорбить чьё-то ИМХО. По-моему, очень адекватные мысли.
Просто этот человек или сам В.С. Луговский, что сомнительно --
матом не ругается и никому еще не предлагал суицида для очистки
генофонда или что, более вероятно, начитался его.
Re[5]: Помогите новичку!!!
От:
Аноним
Дата:
17.10.06 10:01
Оценка:
Здравствуйте, Senjer, Вы писали:
S>Пользоваться переменными я умею! S>Функциями то же! S>Но С++, это же совсем другое в плане синтаксиса!
Изучи Lisp, Haskel и SmallTalk и ты поймёшь, что синтаксис
паскаля, дельфи, си, си++, бейсика, Java и C# почти не
отличаются.
Здравствуйте, konsoletyper, Вы писали:
K>Про преподавание здесь никто и не говорит. Человек решил заняться самообразованием. Т.е. у него есть воля почитать какую-нибудь книжку. У него, при этом, сознание не замутнено догмой "компьютер делает всё в точности как я скажу". А следовательно, пока есть интерес и свежие мозги, лучше не портить их.
Стоит попробовать Вот хотя бы на младшем брате
K>>>А как насчёт Smalltalk? Как на нём будет писать сишный программист? Z>>Не видел Smalltalk вживую, насколько себе представляю, это полностью объектный язык высокого уровня. Те книги, что я читал по правилам написания хорошего кода, утверждают, что перед тем, как осваивать Java, dotNet, прочее высокоуровнее безобразие, необходимо освоить Си, чтобы разобраться, как функционирует компьютер на более низком уровне — работа с памятью, указателями... (Ассемблер\Машинный_код в качестве первого языка всё же пока не предлагаю ). Если же начинать сразу с ООП, то Java\C#. Если Smalltalk на них похож, хоть с него.
K>Это я к чему? Первым классическим по-настоящему ОО (я пропускаю Симулу, т.к. она была первым опытом) был Smalltalk. С него бы и стоило начать изучение ОО. Он хорош ещё и тем, что в нём простой синтаксис и человек не забивает голову ненужными деталями, как в случае с Java. Кстати, Лисп я по той же причине считаю языком, который стоило бы изучить одним из первых; правда накладывается ещё тот факт, что он не чистый ФЯ, что есть хорошо.
Будем применять, посмотрим, что выйдет
> Я не знаю ни одного человека который бы это сделал
Будет желание — обращайся.
Re[8]: Помогите новичку!!!
От:
Аноним
Дата:
20.10.06 09:02
Оценка:
Здравствуйте, serra, Вы писали:
>> Я не знаю ни одного человека который бы это сделал
S>Будет желание — обращайся.
Ирси, неужто это вы? На LORе вас вспоминают в каждой новости про Gimp, вот в нём уже и CMYK и LAB есть и
цветовые профили, правда пока только в девелоперской ветке 2.3. Все предвкушают что вы сделаете, когда
и 16 битный цвет добавят.
Здравствуйте, Lloyd, Вы писали:
L>Генадий, неужели вы согласны с коржиком, что начинающему программисту зачем-то нужен Кнут?
Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Здравствуйте, night beast, Вы писали:
NB>не мешайте мальчику самовыражаться. NB>
Нефиг.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Pascal (до уровня процедур/записей/модулей) — > ASM(обзорно), C++ (обзорно на уровне оператор-структура-класс) -> С#/Java (досконально) -> дальше по усмотрению/требованиям на работе
If the message above is in English — means I'm wasting my work time and work computer to post here. No hard feelings
Здравствуйте, Геннадий Васильев, Вы писали:
ГВ>Здравствуйте, Lloyd, Вы писали:
L>>Генадий, неужели вы согласны с коржиком, что начинающему программисту зачем-то нужен Кнут?
ГВ>Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема.
Ну наверное Кнут — это крутовато. Объем все-таки большой и слишком много деталей, это скорее энциклопедия — справочник.
Но вот Ахо, Хопкрофт, Ульман или Седжвик или Кормен, Лейзерстон, Ривест — то, что надо ИМХО.
Здравствуйте, Андрей Хропов, Вы писали:
АХ>Ну наверное Кнут — это крутовато. Объем все-таки большой и слишком много деталей, это скорее энциклопедия — справочник.
АХ>Но вот Ахо, Хопкрофт, Ульман или Седжвик или Кормен, Лейзерстон, Ривест — то, что надо ИМХО.
Вообще-то жалко было бы отказаться от любой из перечисленных книг.
Но, все же, в качестве первого шага, ИМХО, предпочтительнее Ахо, Хопкрофт и Ульман.
Она и по объему меньше, и читается легче.
А главное — там четко проводится генеральная линия с использованием АТД (как отображения в программировании математических моделей).
Т.е. сразу правильно "ставится рука".
Это одна из любимых "моих первых книжек" по программированию.
Ну, и про старика Вирта забывать не стоит ("Алгоритмы + структуры данных = программы" — в вариантах для Паскаля, Модулы-2 и Оберона — и т.п.).
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.
Здравствуйте, Senjer, Вы писали:
S>Да и большенство с кем мне приходилось общаться, программируют на С++!
А многие еще и ругаются матом...
Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.