Re[7]: Помогите новичку!!!
От: zheleza Беларусь  
Дата: 16.10.06 17:41
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>А вот такая запись:


K>
K>(define (phi alpha x)
K>    (cond
K>        ((= phi 0) alpha)
K>        ((> phi 0) (phi (* alpha x) (- x 1)))
K>    )
K>)
K>


K>вообще не есть алгоритм. Это формула, калькой переписанная с бумажки, потому что в компьютере, как минимум, не нарисуешь фигурную скобку. В математике такие формулы упрощают, при помощи них что-то доказывают и т.д. ФП — это вообще другой взгляд на программирование. Чтобы в дальнейшем не плодились кодеры, пишущие лапшеобразный код, стоит учить программированию именно с функционального стиля, а затем переходить на императивный (как в SICP).


Возможно, однако в наших условиях переход на функциональное\императивное программирование не является возможным в силу излишней бюрократизованности министерств, отсутствия достаточного количества грамотных преподавателей, которым было бы интересно в этом разбираться, и их начальников в разных ведомствах. Поэтому такой подход, при всей его привлекательности, внедрить возможным не представляется. Максимум пригодится для того, чтобы учить своего собственного ребёнка (что тоже не плохо).

Z>>Ну и наверное в свете все большего развития ООП имеет смысл начинать сразу с него, а не с процедурных языков. Думаю, изучить переход ООП-процедуры легче, чем процедуры-ООП, а многие, переходя на объектно-ориентированный язык, всё равно продолжительное время пользуются знаниями, полученными при процедурном программировании. К несчастью, многие вузовские программы безнадёжно устарели, а процесс их замены долог и мучителен


K>А как насчёт Smalltalk? Как на нём будет писать сишный программист?

Не видел Smalltalk вживую, насколько себе представляю, это полностью объектный язык высокого уровня. Те книги, что я читал по правилам написания хорошего кода, утверждают, что перед тем, как осваивать Java, dotNet, прочее высокоуровнее безобразие, необходимо освоить Си, чтобы разобраться, как функционирует компьютер на более низком уровне — работа с памятью, указателями... (Ассемблер\Машинный_код в качестве первого языка всё же пока не предлагаю ). Если же начинать сразу с ООП, то Java\C#. Если Smalltalk на них похож, хоть с него.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Помогите новичку!!!
От: volk  
Дата: 16.10.06 17:53
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Здравствуйте, volk, Вы писали:


V>>Ты о чем вообще? Может еще список препаратов обсудим?

K>Лично я считаю, что на форуме не место обсуждениям медицинских препаратов.
А по поводу обыкновенного стеба что ты скажешь?

K>Может, я что-то пропустил? Где это он облаял автора сообщения? А за соблюдениеи правил должны следить не мы, а модераторы.

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


K>Люди разные бывают. Профессионализм и личные черты — вещи ортогональные. Просто, если оба параметра низкие, то такой человек особенно неприятен. Но то, что у человека дурные манеры, никак не предполагает, что он не состоялся как профессионал. Не стоит обвинять в чём-то человека, если недоконца уверен.


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

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

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



K>Да нет, как раз косные, инертные товарищи рекомендуют книжки по С++, должен же кто-то убедить человека не изучать C++? Думаю, Колхоз приводит не самую вескую аргументацию, но идея верна.


"Но в главном-то он прав!" (с)

Не-изучать-Си++ -- это Вы, по-видимому, оговорились. По-крайней мере, с такой идеей Вам стоит пройти в СВ, предварительно вооружившись дополняющей идеей -- а что же следует изучать вместо него. Учтите, что Оберон и Немерле уже заняты.

Не начинать с Си++ -- это разумно. Этот язык для обучения плох. Однако, я знаю нескольких человек, которые начали именно с него и прекрасно себя чувствуют.
Тот, кто желает, но не делает, распространяет чуму.
Re[8]: Помогите новичку!!!
От: korzhik Россия  
Дата: 16.10.06 18:18
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, korzhik, Вы писали:


K>>>>>так я не понял, ты программировать научиться хочешь или готовые компоненты по форме расставлять?

S>>>>Конечно программировать!!!
K>>>Тогда ты должен прочитать 3-х томник Кнута
K>>Это я пошутил Я не знаю ни одного человека который бы это сделал
LVV>Я прочитал...
LVV>Правда, почти ничего не помню... Зато помню, в каком томе о чем прочитать можно...
Re[9]: Помогите новичку!!!
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 16.10.06 19:01
Оценка:
Здравствуйте, volk, Вы писали:

V>Не-изучать-Си++ -- это Вы, по-видимому, оговорились. По-крайней мере, с такой идеей Вам стоит пройти в СВ, предварительно вооружившись дополняющей идеей -- а что же следует изучать вместо него. Учтите, что Оберон и Немерле уже заняты.


V>Не начинать с Си++ -- это разумно. Этот язык для обучения плох. Однако, я знаю нескольких человек, которые начали именно с него и прекрасно себя чувствуют.


Предлагается Лисп, а точнее — Scheme.

С C++ начинать действительно не стоит. Есть у меня один знакомый. Когда он устроился на работу (разработка игр, C++), то его "покоробило, что надо везде const ставить". Уж не знаю, что он у себя там в МГУ имени Ломоносова изучал, но есть подозрение, что изучай он Лисп, такие вопросы у него не возникли бы. Я даже не сомневаюсь, что с опытом к нему пришло понимание таких вещей. Но вот если бы его сразу научили как следует (а на C++ научить как следует невозможно), то сколько бы компания, где он работает, не досчиталась строк индийского кода! А так приходится переучиваться, бороться с дурными привычками.

Кстати, уже немало флейма разведено по поводу перспектив C++. Не знаю, как кто считает, но я вижу, что C++ постепенно сдаёт позиции, его место занимают Java, C#. Так что изучение C++ сейчас может оказаться попросту неактуальным и неперспективным.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Помогите новичку!!!
От: konsoletyper Россия https://github.com/konsoletyper
Дата: 16.10.06 19:01
Оценка:
Здравствуйте, zheleza, Вы писали:

Z>Возможно, однако в наших условиях переход на функциональное\императивное программирование не является возможным в силу излишней бюрократизованности министерств, отсутствия достаточного количества грамотных преподавателей, которым было бы интересно в этом разбираться, и их начальников в разных ведомствах. Поэтому такой подход, при всей его привлекательности, внедрить возможным не представляется. Максимум пригодится для того, чтобы учить своего собственного ребёнка (что тоже не плохо).


Во-первых, никто и не говорит, что нужно изучать только ФП. Просто императивщина должна идти после функционального введения. Это нужно, чтобы человек осознал простую истину: программист пишет не КАК нужно делать, а ЧТО нужно делать. В идеале, мейнстримовые языки к этому должны приближаться. Но пока на том же C++ можно писать как в стиле "сделай ТАК", так и в стиле "сделай ЭТО". Опытный программист выберет первый подход, новичок — второй. Однако, новичка можно сразу ударить по рукам, чтобы он ценил эстетику кода. Если преподаватель гениальный, то он это сможет сделать и на примере C++. Но в большинстве случаев разумнее просто обучать человека основам ФП.

Про преподавание здесь никто и не говорит. Человек решил заняться самообразованием. Т.е. у него есть воля почитать какую-нибудь книжку. У него, при этом, сознание не замутнено догмой "компьютер делает всё в точности как я скажу". А следовательно, пока есть интерес и свежие мозги, лучше не портить их.

K>>А как насчёт Smalltalk? Как на нём будет писать сишный программист?

Z>Не видел Smalltalk вживую, насколько себе представляю, это полностью объектный язык высокого уровня. Те книги, что я читал по правилам написания хорошего кода, утверждают, что перед тем, как осваивать Java, dotNet, прочее высокоуровнее безобразие, необходимо освоить Си, чтобы разобраться, как функционирует компьютер на более низком уровне — работа с памятью, указателями... (Ассемблер\Машинный_код в качестве первого языка всё же пока не предлагаю ). Если же начинать сразу с ООП, то Java\C#. Если Smalltalk на них похож, хоть с него.

Как там в биологии: филогенез есть краткое повторение онтогенеза (если я их не перепутал местами). Это применяется по отношению к живым организмам — развитие эмбриона на разных стадиях повторяет эволюцию, проделанную живыми организмами за милионы лет. Но я заметил, что закон выполняется не только в биологии. В частности, если мы хотим обучить человека чему-то, то лучше его обучать в соответствии с историческим развитием дисциплины. Думаете, почему люди в школе изучают производные и кое-как упоминают о пределах, а затем в вузах формализуют пределы, дают аксиоматику Кантора, Пеано и Дедекинда? А потому, что производные были выдуманы Ньютоном, который не смог дать чёткого определения пределам. Понадобилось 200 лет, чтобы пределы смогли формализовать. Вообще, полезно, чтобы учащиеся не знакомились с сухими фактами, но и могли проследить ход мыслей учёных.

Это я к чему? Первым классическим по-настоящему ОО (я пропускаю Симулу, т.к. она была первым опытом) был Smalltalk. С него бы и стоило начать изучение ОО. Он хорош ещё и тем, что в нём простой синтаксис и человек не забивает голову ненужными деталями, как в случае с Java. Кстати, Лисп я по той же причине считаю языком, который стоило бы изучить одним из первых; правда накладывается ещё тот факт, что он не чистый ФЯ, что есть хорошо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Помогите новичку!!!
От: FunnyRabbit Россия  
Дата: 17.10.06 05:46
Оценка:
Здравствуйте, 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>Ну не всем же сортировку писать, кому-то надо и работать.


Плохо понимая, что он делает. Блин, нельзя называть программистом,
того кто не знает дискретной математики, хотя бы на уровне понимания основных
алгоритмов и концепций.
Re[11]: Помогите новичку!!!
От: Lloyd Россия  
Дата: 17.10.06 08:20
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Плохо понимая, что он делает. Блин, нельзя называть программистом,

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

Отнюдь, очень даже можно. 90%-ов рынка труда — это задачи не связанные со сколь-либо сложной алгоритмикой. Такова реальность, сколь бы ни было это печально осознавать.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Помогите новичку!!!
От: Аноним  
Дата: 17.10.06 09:24
Оценка: :)))
Здравствуйте, Senjer, Вы писали:

S>По С++ литература встречается чаще!

S>Да и большенство с кем мне приходилось общаться, программируют на С++!

Матёрые программисты ни на чём не программируют. Они пишут стандарты.
Re[6]: Помогите новичку!!!
От: Аноним  
Дата: 17.10.06 09:46
Оценка: +1
Здравствуйте, konsoletyper, Вы писали:

K>А где тут потеря самообладания? Человеку просто хватает наглости говорить вещи как есть, не соблюдая политкорректность и не боясь оскорбить чьё-то ИМХО. По-моему, очень адекватные мысли.


Просто этот человек или сам В.С. Луговский, что сомнительно --
матом не ругается и никому еще не предлагал суицида для очистки
генофонда или что, более вероятно, начитался его.
Re[5]: Помогите новичку!!!
От: Аноним  
Дата: 17.10.06 10:01
Оценка:
Здравствуйте, Senjer, Вы писали:

S>Пользоваться переменными я умею!

S>Функциями то же!
S>Но С++, это же совсем другое в плане синтаксиса!

Изучи Lisp, Haskel и SmallTalk и ты поймёшь, что синтаксис
паскаля, дельфи, си, си++, бейсика, Java и C# почти не
отличаются.
Re[9]: Помогите новичку!!!
От: zheleza Беларусь  
Дата: 18.10.06 20:36
Оценка:
Здравствуйте, konsoletyper, Вы писали:

K>Про преподавание здесь никто и не говорит. Человек решил заняться самообразованием. Т.е. у него есть воля почитать какую-нибудь книжку. У него, при этом, сознание не замутнено догмой "компьютер делает всё в точности как я скажу". А следовательно, пока есть интерес и свежие мозги, лучше не портить их.

Стоит попробовать Вот хотя бы на младшем брате

K>>>А как насчёт Smalltalk? Как на нём будет писать сишный программист?

Z>>Не видел Smalltalk вживую, насколько себе представляю, это полностью объектный язык высокого уровня. Те книги, что я читал по правилам написания хорошего кода, утверждают, что перед тем, как осваивать Java, dotNet, прочее высокоуровнее безобразие, необходимо освоить Си, чтобы разобраться, как функционирует компьютер на более низком уровне — работа с памятью, указателями... (Ассемблер\Машинный_код в качестве первого языка всё же пока не предлагаю ). Если же начинать сразу с ООП, то Java\C#. Если Smalltalk на них похож, хоть с него.

K>Это я к чему? Первым классическим по-настоящему ОО (я пропускаю Симулу, т.к. она была первым опытом) был Smalltalk. С него бы и стоило начать изучение ОО. Он хорош ещё и тем, что в нём простой синтаксис и человек не забивает голову ненужными деталями, как в случае с Java. Кстати, Лисп я по той же причине считаю языком, который стоило бы изучить одним из первых; правда накладывается ещё тот факт, что он не чистый ФЯ, что есть хорошо.

Будем применять, посмотрим, что выйдет
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Помогите новичку!!!
От: serra  
Дата: 19.10.06 19:57
Оценка:
> Я не знаю ни одного человека который бы это сделал

Будет желание — обращайся.
Re[8]: Помогите новичку!!!
От: Аноним  
Дата: 20.10.06 09:02
Оценка:
Здравствуйте, serra, Вы писали:

>> Я не знаю ни одного человека который бы это сделал


S>Будет желание — обращайся.


Ирси, неужто это вы? На LORе вас вспоминают в каждой новости про Gimp, вот в нём уже и CMYK и LAB есть и
цветовые профили, правда пока только в девелоперской ветке 2.3. Все предвкушают что вы сделаете, когда
и 16 битный цвет добавят.
Re[11]: Помогите новичку!!!
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 24.10.06 20:49
Оценка:
Здравствуйте, Lloyd, Вы писали:

L>Генадий, неужели вы согласны с коржиком, что начинающему программисту зачем-то нужен Кнут?


Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[11]: Помогите новичку!!!
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 24.10.06 20:58
Оценка: +1 :)
Здравствуйте, night beast, Вы писали:

NB>не мешайте мальчику самовыражаться.

NB>

Нефиг.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Помогите новичку!!!
От: Niemand Австралия  
Дата: 24.10.06 21:26
Оценка:
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
Re[12]: Помогите новичку!!!
От: Андрей Хропов Россия  
Дата: 24.10.06 21:56
Оценка: 1 (1) +2
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Здравствуйте, Lloyd, Вы писали:


L>>Генадий, неужели вы согласны с коржиком, что начинающему программисту зачем-то нужен Кнут?


ГВ>Да, согласен. Нужен. В обязательном порядке. Если ты этого не понимаешь — это не моя проблема.


Ну наверное Кнут — это крутовато. Объем все-таки большой и слишком много деталей, это скорее энциклопедия — справочник.

Но вот Ахо, Хопкрофт, Ульман или Седжвик или Кормен, Лейзерстон, Ривест — то, что надо ИМХО.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Помогите новичку!!!
От: AVC Россия  
Дата: 24.10.06 23:01
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

АХ>Ну наверное Кнут — это крутовато. Объем все-таки большой и слишком много деталей, это скорее энциклопедия — справочник.


АХ>Но вот Ахо, Хопкрофт, Ульман или Седжвик или Кормен, Лейзерстон, Ривест — то, что надо ИМХО.


Вообще-то жалко было бы отказаться от любой из перечисленных книг.
Но, все же, в качестве первого шага, ИМХО, предпочтительнее Ахо, Хопкрофт и Ульман.
Она и по объему меньше, и читается легче.
А главное — там четко проводится генеральная линия с использованием АТД (как отображения в программировании математических моделей).
Т.е. сразу правильно "ставится рука".
Это одна из любимых "моих первых книжек" по программированию.
Ну, и про старика Вирта забывать не стоит ("Алгоритмы + структуры данных = программы" — в вариантах для Паскаля, Модулы-2 и Оберона — и т.п.).

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

Хоар
Re[3]: Помогите новичку!!!
От: AVC Россия  
Дата: 24.10.06 23:10
Оценка:
Здравствуйте, Senjer, Вы писали:

S>Да и большенство с кем мне приходилось общаться, программируют на С++!


А многие еще и ругаются матом...

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

Хоар
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.