Здравствуйте, yenik, Вы писали:
S>>>На бейсике я освоил простейшие алгоритмы, циклы, ветвления. На паскале — функциональное программирование, структуры данных, рекурсию. На с++ — ООП.
S>>Структуры данных и рекурсию на паскале — вполне могу представить. Но функциональное программирование??!??!?! С трудом.
Y>Наверно, коллега имел в виду процедурное программирование. И еще структурное програмирование, после бейсика с его GOTO 50. Паскаль — как раз для этого.
Здравствуйте, sharpcoder, Вы писали:
S>Теперь есть знакомая, 20 лет, учится на финансиста, хочет освоить профессию программиста но не может подступиться. Все книжки которые я знаю, дают скорее тонкости конкретного языка и платформы, а не сам навык программировать. Так, попытка изучить c# по рихтеру у нее провалилась.
S>Что можно посоветовать?
Не нужно торопиться. Студенты лучших профильных специальностей начинают работать примерно через 2-3 года. За это время они успевают получить кучу довольно полезных вещей.
Не надо нацеливаться на работу имея бекграунд слабее таких студентов. Будет долгий и мучительный рост с крайне невысоким потолком
Девушке нужно начинать с самого нуля. Скромный минимум
1 программирование — полгода-год, не меньше. Результат — не выше уровня первокурсника. Не выше — потому что первокурсник прокачивает дополнительно математику и физику, а бывает и еще кучку вещей. В инженерии такие вещи косвенно, но пригодятся.
Книг, готовых к применению очень мало. Абельсон, но он устерел.
2 базовые алгоритмы и структуры данных — полгода-год. Результат — не выше уровня второкурсника, ибо у второкурсника есть кучка полезных вещей — теорвер, дискретка и тд.
всякие олимпиадные задачи и тд.
3 конструирование, ооп — полгода-год. Результат — не выше уровня третькурсника. У тех будет кучка вещей навроде 'сети, ос, бд и тд'.
Здесь надо выполнить несколько 'больших' работ. Обязательно, иначе сложнее верстки и обработки кнопок ничего не поднять. Упрощенные реальные задачи.
Самое главное — п1 и п2 без внешней помощи освоить мало кому удается.
Целая куча, за что хвататься не надо
1 за технологии
2 за инструменты
3 за визуальности навроде верстки и тд
Вместо этого нужно получить самый минимуму, который позволит решать хотя бы простые задачи и даст понимание, как подходить к сложным.
Здравствуйте, smeeld, Вы писали:
S>Если может, то почему тогда не может? Даже тупо погуглить про азы программирования двадцатилетняя чувиха, да ещё с ВО, не способна? Может по себе судить и неправильно, но в свои 11-12 лет, когда только начал постигать програмирование компов, азы эти самые были просто очевидны, все, начиная с циклов и условий и заканчивая функциональщиной, процедурщиной (гы-гы), и прочим ООП. Уверен, что так было у всех здесь, если у кого-то это не так, то значит то самое "не дано".
То есть, начав программировать в 11-12, не имея никаких социальных обязанностей, фактически в идеальных условиях, на шее у родителей, ты затратил не менее 8 лет что бы зарабатывать этим деньги. Это если ты работать пошел на втором-третьем курсе университета.
У этой девушки нет 8 лет что бы повторить твой путь. Ей максимум за два-три года надо уложиться. Кроме этого у ней есть социальные обязанности, возможно есть или появится семья и тд и тд.
А вот как за 2-3 года догнать тех, кто тренировался 8 лет — вот эти никак не гуглится, хоть с ВО, хоть без.
Здравствуйте, smeeld, Вы писали:
S>>Теперь есть знакомая, 20 лет, учится на финансиста, хочет освоить профессию программиста но не может подступиться. Все книжки которые я знаю, дают скорее тонкости конкретного языка и платформы, а не сам навык программировать. Так, попытка изучить c# по рихтеру у нее провалилась.
S>Если сходу не получилось даже ЯП освоить, то тогда это точно не её. Там ничего сложного нет вообще, это проще чем школярниковский курс математики. Если не даётся, то просто нет определённого образа мышления. Обучаться можно по любому источнику, хоть по википедии, если не лезет, пусть не парится.
Здесь противоречие — сложного ничего нет, просто нет определенного образа мышления Так можно сказать про любую сложную вещь, которую ты освоил.
Все вещи становятся простыми, когда потратишь на них лет 10.
Ну так а чем сложность-то?
По мне задействовать функциональный подход не сложнее, чем объектно-ориентированный.
Пусть даже их поддержка в самом языке сильно ограничена.
int PurePlusOdin(int const value){return(value + 1);}
вот вам сходу пример чистой функций без побочных эффектов. Чем не функциональный подход?
Добавьте какую-нибудь абстракцию для единообразного представления величин и функций, реализацию списка для таких представлений и ленивость в вычислених — так вообще можно отращивать бороду и делать лямда-татуировку как хардкорый функциональщик.
Допустим у хаскеля интерпритатор вроде на С написан — вполне императивный язык.
Портировать на паскаль проблемы не составит.
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Финансисту неплохо научиться не c# по рихтеру а для начала отлично освоить VBA для офиса. Даже если и в программирование не уйдет, то навык бесценный приобретется. Работодатели с большей вероятностью возьмут девочку-"финансиста", которая может макросами-скриптами данны обработать. Книжек по этому делу валом, а ведь там тебе и программирование и классы есть и вообще все дела.
Здравствуйте, qqqqq, Вы писали:
Q>Финансисту неплохо научиться не c# по рихтеру а для начала отлично освоить VBA для офиса. Даже если и в программирование не уйдет, то навык бесценный приобретется. Работодатели с большей вероятностью возьмут девочку-"финансиста", которая может макросами-скриптами данны обработать. Книжек по этому делу валом, а ведь там тебе и программирование и классы есть и вообще все дела.
Правильно, ей надо учить не сферическое программирование в вакууме, а что-то такое, что она может применить к сфере своей деятельности. Ехель там какой автоматизировать и тому подобное.
Здравствуйте, VTT, Вы писали:
VTT>Ну так а чем сложность-то? VTT>По мне задействовать функциональный подход не сложнее, чем объектно-ориентированный. VTT>Пусть даже их поддержка в самом языке сильно ограничена. VTT>
int PurePlusOdin(int const value){return(value + 1);}
VTT>вот вам сходу пример чистой функций без побочных эффектов. Чем не функциональный подход?
Вполне почти функциональный. Только, боюсь, ограниченно функциональный. VTT>Добавьте какую-нибудь абстракцию для единообразного представления величин и функций, реализацию списка для таких представлений и ленивость в вычислених — так вообще можно отращивать бороду и делать лямда-татуировку как хардкорый функциональщик.
Ага, и сборку мусора. Так я и говорю о том, что реализация функциональных абстракций на императивном языке не имеет отношения к функциональному подходу практически вообще. Не больше, чем реализация перебора шахматных ходов имеет отношение к игре в шахматы.
VTT>Допустим у хаскеля интерпритатор вроде на С написан — вполне императивный язык.
Это который? VTT>Портировать на паскаль проблемы не составит.
То же самое касается реализации интерпретатора на императивном языке.
S>реализация функциональных абстракций на императивном языке не имеет отношения к функциональному подходу практически вообще
это вообще как? по-вашему тогда и реализация объектно-ориентированных абстракций на императивном языке не имеет отношения к объектно-ориентированному подходу что ли?
или для функционального подхода обязательно нужен кошерный синтаксис для максимально краткого изложения?
Говорить дальше не было нужды. Как и все космонавты, капитан Нортон не испытывал особого доверия к явлениям, внешне слишком заманчивым.
Здравствуйте, sharpcoder, Вы писали:
S>Что можно посоветовать?
Она прямо финансит-финансит? Это те которые риски считают и квантами становятся? Может лучше vba/питон/Haskell + тевер и матстат хардкорный?
Здравствуйте, sharpcoder, Вы писали:
S>Я учился кодить сам. Вначале бейсик, потом паскаль по книжке, потом уже с++ по книжке. S>На бейсике я освоил простейшие алгоритмы, циклы, ветвления. На паскале — функциональное программирование, структуры данных, рекурсию. На с++ — ООП.
Ты ошибаешься, в паскеле нет функционального программирования даже близко.
Рекурсия есть, да. Ну ладно...
S>Теперь есть знакомая, 20 лет, учится на финансиста, хочет освоить профессию программиста но не может подступиться. S>Вот думаю, какую стратегию и литературу ей порекомендовать? S>Что можно посоветовать?
0) ВУЗ, второе высшее обр.
1) Найти хорошую книгу по введению именно в программирование. Я не смогу сейчас на шару её дать,
у меня бы это был SICP (Schema), или Луц (Python). А, кстати, С.Прата -- введение в С -- хорошая книге.
Но может быть ты найдёшь что-то ещё.
Лучще всего найти какой-то учебник для ВУЗа для введения в программирование. SICP собственно такой и есть, но он на зарубеж ориентирован.
Можно найти наш.
2) в конце концов, учи сам...
VV>>Питон. LVV>>И писать проги по простым финансовым задачам. MZ>Да, согласен про python, кстати, SICP теперь на Python вроде бы и переводят, но на русском нового издания нет.
На Питоне еще и куча книжек для начинающих — я в отдельном посте приводил.
Одна — вообще блеск!
Это которую папа с сыном написали.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, VTT, Вы писали:
S>>реализация функциональных абстракций на императивном языке не имеет отношения к функциональному подходу практически вообще
VTT>это вообще как? по-вашему тогда и реализация объектно-ориентированных абстракций на императивном языке не имеет отношения к объектно-ориентированному подходу что ли?
верно. По-моему так. Реализуя абстракции, которых нет в языке, какие абстракции вы собираетесь использовать в реализации? Очевидно, что не те, которые собираетесь реализовывать. Если не очевидно, предлагаю идти от противного. VTT>или для функционального подхода обязательно нужен кошерный синтаксис для максимально краткого изложения?
Причем тут синтаксис и краткость? Функциональный подход противопоставляется императивному отсутствием инструкций по изменению состояния значений.