|
Мои овации- мужчина умеющий мыслить и подать себя - редкость. (не колкость- наблюдение и комплимент)
Люблю логические и математические задачи, чем сложнее тем лучше
В клуб мне рановато, знаний в этой сфере мало, но за приглашение спасибо. А вот от подсказки и помощи не откажусь
фи...
Это к современному программированию относится опосредованно. Нужно конечно, но составляет только часть.Люблю логические и математические задачи, чем сложнее тем лучше
Как начнутся конкретные вопросы по конкретным проблемам, так сразу и обращайся. Тут обретается около сотни действующих программистов, кто-то обязательно поможет.В клуб мне рановато, знаний в этой сфере мало, но за приглашение спасибо. А вот от подсказки и помощи не откажусь![]()
Просто хотел сказать, что часто ситуация бывает как с йогой: многие считают, что всего-то и надо, что одеть белую одежду, сесть на пол и сразу воспаришь на 40см над полом. Потом выясняется, что это физический труд и что "йога не пошла как-то". Программирование как профессия - это точно такая же профессия как и другие. С рутиной, с начальством, с проблемами и прочим. Просто держи в уме, что может быть программирование как хобби и развлечение, а может быть как повседневный труд и обязанность.
Вот я и спрашиваю совета- какие книги можно почитать по С++ и PHP, JavaScript, в нете много книг, но, в основном,мусор, нужен совет, что из литературы написано знающим, опытным учителем (умею писать, не значит, умею учить). Почему такой выбор? Неплохо пишу на С, хочу идти дальше. Интересен WEB - PHP, JavaScript отсюда, кстати, с чего посоветуете начать?
С++ очень объемный и сложный язык. О его роли в современном программировании в последнее время идет множество споров. Я его начал изучать тогда, когда особой альтернативы не было. Не могу ничего сказать о целесообразности его изучения, могу назвать десяток "за" и десяток "против". К вебу он перпендикулярен.
PHP и Javascript - языки семейства С-синтаксиса, как язык там изучать нечего, так как важно знание стандартной библиотеки. То есть тут способ постижения - это практика. Хороших книг, к сожалению, практически нет, любой стоящий РНР-проект требует знаний помимо самого языка. Надо уметь конфигурировать веб-сервер, знать спецификации различных протоколов, понимать основы теории БД.
Мой совет - начать решать небольшую задачу. Хорошо, если ее до тебя уже сто раз решили - можно поработать самостоятельно и сравнить с другими вариантами решения.
Как по мне спор с чего начинать долгий и не очень перспективный.
Переменные, условия, циклы, массивы и т.д. и т.п. есть в разных языках.
И базовая цель начинающего программиста освоить эти понятия, а синтаксис дело двадцатое.
Хотя конечно лучше всего изучать тот язык в котором структура программы и синтаксис строги, логичны и относительно просты.
Я бы наверное не рекомендовал начинать например с Perl'а или тем более с Ассемблера.
Но опять же это имхо, хотя могу обосновать.
Как по мне вполне идеальным логичным и самое главное потенциально перспективным стартом являются Си-подобные языки (С,C++,C#,Java).
С точки зрения книг можно начинать с книг Герберта Шилдта.
Они обычно у него детально проработаны и написаны простым языком.
Viva La Barca !!! We are the champions :)
Juss
http://www.dialektika.com/
http://www.williamspublishing.com/
ИМХО, лучшие на сегодняшний день издательства. Смотри каталог книг по тематике, есть содержание к каждой книге и выбирай...
А если не стёб?
Пожалуй лучшая книга по программированию “Структура и интерпретация компьютерных программ” оно же SICP, оно же преподавалось на первых курсах MIT.
Lisp может REPL, который есть разве что в python. Всё работает из коробки.
Самый простой синтаксис, сотоящий из имени функции и аргументов(вместо разнообразия инфиксных, префиксных и постфиксных записей с си-подобных языках, в которых конечно же все инфиксные + - * / распространяются только на простые типы, а для скажем, векторов нужно использовать vector_add(a1,(vector_sub(a2,a3)))).
и совершенно все конструкции(биндинги переменных, циклы) строятся на лямбда исчислении и средствами более простых конструкций
Есть несколько чётко определённых типов, включая простые дроби. Нет никакого копания и перекладывания байтов и косвенной адресации с просчётом смещения. только основные структуры данных и работа с ними. Любое задание для "школьников" которое бы делалось кучей уродливых циклов делается банальными map, fold, filter, tail recursion. любая логика делается cond, if и многим другим.
Хаскель же интересен системой типов, прекрасным синтаксисом и натуральностью и простотой карринга/замыканий. но да, наверное полезнее для уставших от императивщины, чем новичков.
Хорошая привычка - читать новости. Но давай на чистоту.
Лично ты SICP прочитал? Упражнения сделал? Все десять часов лекций просмотрел? Рекомендации и HTDP тоже прочитал? Ты обратил внимание, что это первый курс MIT, куда приходят примерно в 27-30 лет?
REPL есть не только в LISP и Python. И это не самая сильная их сторона. Про лямбда-исчисление вообще не буду, анонимная функция - это далеко еще не все лямбда-исчисление. И в любом случае это явно не аргумент "за" для человека, который не может даже с языком определиться.
Кстати, с каких это пор свертка и отражения стали "банальными"? Ты на мехмате учишься, что ли? Задания для школьников с помощью "банальными map, fold, filter, tail recursion"? Robocop, ты перегрелся?
Какая еще "чистота карринга\замыканий"? Между ними разница, как между пенисом и пальцем, "карринга/замыканий" - написать это через дробь мог только тот, кто понятия об этом не имеет. Система типов Хиндли-Милнера - интуитивно понятна для начинающего? Вместе с теорией категорий?
Интересно, это ты, что ли - утомленный императивщиной? Не объяснишь ли на пальцах монады и стрелки?
То, что ты увидел знакомые слова и что ты имеешь хотя бы представление, откуда ноги растут - это хорошо. Но вот то, что пролистав первые странички по диагонали, считаешь себя компетентным в этой области - нехорошо. Я не зря спросил про количество кода на языках, о которых люди рассуждают. По факту, я знаю только троих одесситов, писавших на LISP (elisp не в счет,иначе напишу себе 10 лет в опыт), слышал однажды про поиск erlang-кодеров в саппорт четыре года назад, на местных ресурсах данные темы не поднимаются вообще. Отсюда мораль: эксперты по Haskell тут не водятся, программистов на LISP ничтожно мало, а совет - стеб, я гарантирую это.
Prove me wrong.
Последний раз редактировалось glyph; 20.03.2009 в 10:40.
>Лично ты SICP прочитал?
прочитал.
>Упражнения сделал?
те что были интересны. символьные вычисления приглянулись, лямбды те же.
>Все десять часов лекций просмотрел? Рекомендации и HTDP тоже прочитал?
не знаю как это поможет и не знаю вообще зачем. мы говорим о том на чём легче учиться, а не о том кто круче. мне нравится Scheme как некий полигончик для плюшек и интересных не прикладных задач. те же lazy evaluations, замыкания, свои синтаксические поделки. этот язык интересен как обьект изучения, а не как инструмент. Прикладное на нём я бы не писал.
REPL есть не только в LISP и Python. И это не самая сильная их сторона.
>Да. проще поднять апачи и прикрутить к ним пхп чтобы начать писать на пхп. Или изучить тонны материала о обьектных файлах, линкерах, прототипах, областях видимости, чтобы начать с Си. Тут опять вы путаете удобство разработки и удобство изучать поведение языка, играясь.
>Про лямбда-исчисление вообще не буду, анонимная функция - это далеко еще не все лямбда-исчисление. И в любом случае это явно не аргумент "за" для человека, который не может даже с языком определиться.
Еще и абстракция, аппликация, то же каррирование. Это неважно. Я тем не менее склоняюсь к тому что проще понять что программа это набор функций как обьектов, и можно применять к ним операции аппликации, комбинировать, применять на каждом элементе из списка, фильтровать ими элементы из списка.
Кстати, с каких это пор свертка и отражения стали "банальными"? Ты на мехмате учишься, что ли? Задания для школьников с помощью "банальными map, fold, filter, tail recursion"? Robocop, ты перегрелся?
Научится мыслить терминами ФП не так сложно. Мне действительно проще описать кучу уныленьких заданий для паскаля с помощью этих инструментов. И циклы для меня красивее выглядят в виде хвостовой рекурсии. Учусь не в техническом вухе. Математика давно закончилась.
Какая еще "чистота карринга\замыканий"? Между ними разница, как между пенисом и пальцем, "карринга/замыканий" - написать это через дробь мог только тот, кто понятия об этом не имеет.
>Какой ужас. и как же вы понимаете карринг и замыкания ? да, это даже не из одной области вещи. карринг это концепция, замыкания - приём. Тем не менее и то и другое это практически partial application а с практической точки зрения - захват окружения.
>Система типов Хиндли-Милнера - интуитивно понятна для начинающего?
Она интересна.
>Вместе с теорией категорий?
всё что до монад довольно просто и интересно. Впрочем как я уже гвоорил я не настаиваю на хаскеле.
Интересно, это ты, что ли - утомленный императивщиной? Не объяснишь ли на пальцах монады и стрелки?
ФП это значит монады. ООП это паттерны чтоли ? обьясни абстракт фактори. стрелки не очень понимаю какие )
ФП не сложнее ООП. для тех кто испугался страшных слов: в ООП есть полиморфизмы, рефлекции, интерфейсы, инкапсуляции, куча Java приблуд типа IoC. и в конце концов речь о том с чего проще постигать азы.
>Я не зря спросил про количество кода на языках, о которых люди рассуждают.
Зря. Десятки лет опыта писания энтерпрайза на java делает человека замкнутым. надо развиваться и учить что то новое. А из качеств он приобретает только понимание как стоятся сложные системы, технологии java платформы, модели разработки и прочие энтерпрайз прелести. А как использовал простые конструкции, так и использует. качество кода расти не будет.
А знаете почему нет специалистов ? Потому что люди не хотят. Потому что не советуют относится к программированию как к творчеству и решению интересных задач, а как к профессии. Хотя разочароваться человек еще успеет. "Сейчас Шарп в моде. выучи и можешь пойти на работу сразу..." а типа руби/питон/чтото другое не востребованно и ненужно.
я ничего не понял.
Уже можно писать "слив засчитан" ?
Ты ждешь, что я начну указывать тебе на фактические ошибки в твоем ответе?
одно это выдает тебя с головой. Ну а поскольку ты еще и упорствуешь в своей ереси, то лучший вариант предоставить тебя самому себе.Интересно, это ты, что ли - утомленный императивщиной? Не объяснишь ли на пальцах монады и стрелки?
ФП это значит монады. ООП это паттерны чтоли ? обьясни абстракт фактори. стрелки не очень понимаю какие )
>Ты ждешь, что я начну указывать тебе на фактические ошибки в твоем ответе?
ну да. Вы же первым начали считать меня каким то дилетатном, и первым указывать на какие то мелочи и неточности в вашем понимании которые я уточнил.
>одно это выдает тебя с головой.
ну ваши старые предрассудки, непонятно октуда взявшиеся, тоже можно списать на возраст. Монады никогда и не являлись ярким аттрибутом ФП. это только средство сделать "чистым" его в хаскеле.
По вашему отношению практически невозможно вести нормальную беседу, так как вы слишком привыкли к своей правоте, и будете отрицать всё самыми абсурдными способами, как и сейчас.
Я отвечал на тему почему лисп и хаскель это неплохие языки для того чтобы понять что это, с перечислением того что там интересно и что там есть. Я уже описал своё виденье вопроса. а вы думаете что я так просто кому то что то доказываю.
Есть люди, считающие что ФП достойно внимания при обучении как и структурное и ООП, и они вовсе не выпендриваются, как вы думаете.
Вики какбы намекает нам
http://en.wikipedia.org/wiki/Educational_programming_language
Социальные закладки