Владимир Шахиджанян: Соло на клавиатуре онлайн

Настоящая забота о будущем состоит в том, чтобы отдать всё настоящему!

← Поместить свой девиз
Наши сайты:
ergosolo.ru, 1001.ru
Есть вопросы или предложения?
Пишите нам.
Я, ты, он, она — вместе целая страна!
Гонки на клавиатуре

Размышления : Программирование: 1

Поднять запись

    Чтобы комментировать запись, войдите на сайт, используя свой адрес электронной почты и пароль, или зарегистрируйтесь, если вы этого ещё не сделали.
    Начинаем рубрику: "Программирование". Итак, многим интересно, как начинать изучение программирования. 1) Определитесь, что бы Вы хотели сделать. Создать сайт? Запрограммировать беспроводную сеть? Автоматизировать рассылку приглашений ВКонтакте? 2) Посмотрите существующие продукты. Есть ли у Вас идея, которая будет отличать Вашу программу/сайт/сеть от аналогичных продуктов? 3) Избавьтесь от мысли: язык программирования - набор непонятных символов. Язык программирования всего лишь формализует те инструкции, которые Вы собираетесь дать компьютеру, чтобы он выполнил Вашу задачу. 4) Многие задают один и тот же вопрос: "Какой язык программирования изучать?" Для начала рекомендую прочитать книгу "Моя первая программа на C/C++" (для чайников).
    Нравится
    1
    Не нравится
    0
    Вы не можете голосовать за посты.
    734 просмотра
    14 комментариев

    Мне было бы очень интересно научиться применять Джаваскрипт в Фотошопе. Я нигде конкретно на эту узкую тему информации для начинающих не находил, так как я ещё вообще не умею работать с Джаваскриптом. С чего лучше начинать изучать Джаваскрипт?
    Вот хорошее объяснение почему не С:
    "Этот текст http://www.stolyarov.info/pvt/anti_c представляет собой мой ответ на вопрос, почему язык Си категорически недопустимо использовать в качестве языка начального обучения программированию."
    От себя скажу, что изучающие C/C++ будкт писать на "суржике". Нет такого языка программирования. Конечно же С++ нужно изучать по книге Срауструпа. А Си по книге Кернигана и Ричи. Си можно вообще не изучать, если такой потребности нет. Всё-таки его роль, это база всех языков с Си-подобным синтаксисом. Там более, что если знаешь С++, для изучения Си нужно понять, что придётся не использовать
    в том числе, 2 основных вещи С++. Это ООП и generic programming. С другой стороны, если интересы программиста лежат в области железа, микроконтроллеров, ядра ОС, то тут важно разбирать в тонкостях именно Си. Но в любом случае, программировать надо начинать с чистого, красивого языка. Я бы предложил Python. но подойдут и Виртовские языки(Паскаль,Модула, Оберон) и scheme с великолепным учебным пособием SICP для тех кто хочет стать профессиональным программистом.
    Можно ли начать изучение программирования с VB.NET?
    Да, с VB.net можно начать изучение, чтобы потренироваться в разработке приложений под ОС Windows, не тратя на это много времени.
    Согласен, Евгений Олегович, средств разработки много.
    Но один мой знакомый, взяв в руки Страуструпа, ничего не понял и решил, что C++ - плохой язык программирования ("раз я ничего не понял, значит, он плохой").
    Я же советую начальные, простые книги.
    Ваш знакомый совершенно прав. Раз он ничего не понял, значит он плохой (программист). :)
    Напоминаю, это должен быть второй язык программирования. Книга Страуструпа не учит программировать, она учит языку. Для совершенствования понимания С++ подойдёт Александреску.
    Для изучения программирования, неплохо подходит SICP или Кнут. обе книги (Кнут так вообще многотомник, пишется уже лет 30, и написано менее трети) содержат описание языка, который используют для иллюстраций алгоритмов.
    А вот начинать программировать с бейсика можно только если цель изучения программирования лежит в области VB.NET Но всё же бейсик, как бы Микрософт над ним не издевалась, остается бейсиком, а ДотНет слишком всеобемлющая библиотека/фреймворк для начального обучения. К тому же, если уж учить именно дотнет, то нужно использовать C# как основной язык. И, самое печельное, всем этим изучением вы намертво приковываете себя к микрософту, виндам, и биллу гейтсу.
    VB это частная разработка, "стандарт" на который менялся в каждой версии. А сам фреймворк обновляется чуть ли не раз в год.
    Соглашусь с предыдущими ораторами и добавлю немного от себя.
    Вопрос "Хочу научиться программировать. С чего начать?" слишком расплывчат, чтобы советовать что-то конкретное. Все, конечно, зависит от целей, ради чего это затевается.
    Более конкретное "С чего лучше начинать изучать Джаваскрипт? (при условии, что я имею навыки программирования на другом языке)" подразумевает ясный ответ: "С мануала по JavaScript, конечно же". Изучив мануал "от корки до корки", перейдите к практике (путь настоящего "воина-программиста"). Технология она и есть технология.
    А программирование как науку, конечно, нужно понимать шире, чем просто овладение какой-либо частной технологией. Все и упирается в computer science, Кнута и теорию алгоритмов. Знаете вычислительную сложность, потребление ресурсов и прочие характеристики разных алгоритмов сортировки (да еще и можете обосновать теоретический предел сложности) - значит, знаете computer science, и вы, вроде бы как, и "настоящий программист".
    Однако, если зайти "с другого края баррикад" - а куда девается армия верстальщиков и XSLT-кодеров? Никак нельзя их назвать "не-программистами". Хотя им-то сортировка "по барабану", что называется. Сортировка-то как бы и есть, но она одна, причем неизвестно какая :) Они что, тоже должны читать Кнута?
    Евгений Олегович!
    Понятно, что Страуструп всего-навсего учит C++, но я имею в виду, что надо иметь объектно-ориентированное мышление, чтобы его понимать, поэтому человеку с начальным уровнем сей труд может быть непонятен.
    Однако, если зайти "с другого края баррикад" - а куда девается армия верстальщиков и XSLT-кодеров?
    Вероятно, сейчас технология создания сайта с разделением его на вёрстку и логику не очень совершенна. Напомню, что HTML считается очень простым языком (изначально он и задумывался как простой язык) - не для программиста, а чтобы каждый мог сверстать себе сайт, кто захочет. Позже в него стали "въезжать" другие технологии (Javascript, Flash), получилась "каша".
    Сейчас всё это напоминает автомобиль, который собирают из неродных запчастей. В серверных языках - одно, в javascript - другое, xslt/HTML - третье. Настоящей "логической красоты" нет.
    Давайте в пылу спора, не смешивать языки программирования, и язык разметки. html остаётся простым языком разметки. Причем с каждым новым стандартом его упрощают и он становится всё краше. С другой сторны, нормальный современный сайт не мыслим без javascript, который мало того, что в каждом браузере немого свой, но и сам по себе обладает очень диковенными свойствами. При этом есть тенденция делать серверный javascript, что уже совсем перебор. А вот XSLT довольно интересная технология, но я с ней не сталкивался, кажется это вплоне полный язык программирования, хоть и специфичный.
    Но вернёмся к начатой теме, перечисленные веб технологии вряд ли годятся для первичного обучения программированию.
    Если уж следовать собственному опыту, и, наверное, традиционному опыту, языки программирования мне давали в такой последовательности:
    1. Традиционный BASIC (1988-1989 гг) - 9-10 кл. средней школы
    2. MSX Basic + Pascal (1988-1989 гг) - ФМШ МГИЭМ
    3. Pascal (1990-1991 гг) - МГИЭМ, 1 курс
    4. С/С++ (1991-1994 гг) - МГИЭМ, 2-4 курсы
    5. Prolog (1994 г) - МГИЭМ, 4 курс
    6. ASM PDP (1994 г) - МГИЭМ, 4 курс
    7. Clipper (это такой забытый язык под базы данных) - 5 курс
    Чтобы не следовать собственному опыту, стоит вспомнить что сказал Эдсгер Дейкстра: «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». Впрочем по слухам он это говорил в контексте критики большинства современных языков.
    Да, я тоже начал с бейсиков. Так что высказыввание и про меня тоже.С каким же трудом потом шёл паскаль! Я 3 раза брался за изучение указателей, и постиг их только благодаря очень хорошему учебнику паскаля. В книге был классический паскаль, с русскими идентификаторами, но это не сильно мешало. Потом появился Турбо Паскаль с объектами. Практически ООП. И снова, непонимание, почему в примерах, прямоугольник(который можно задать двумя точками) наследуется от точки, а не от двух точек. (Только через много лет, я узнал, что прямоугольник вообще не надо наследовать от точки. :) ) А ведь по сути, программа на Паскале это и есть объект. И если именно так, излагать материал, то у учеников не возинкнет никаких непониманий:
    Вот данные.
    Вот алгоритмы их обработки в виде процедур, функций или методов...
    Вот другие данные с другим набором процедур.
    А вот похожие данные, но немного различные. Давайте вынесем общую часть (И только тут появляется наследование)
    Мне кажется такой подход позволит на ранних этапах отучить захламлять программу статическими переменными с глобальной областью видимости.
    попробовать что-ли создать курс начального обучения программированию? Только на ком его испытывать?
    Как на ком, Евгений Олегович? Даже здесь, в блогах nabiraem.ru, масса желающих. Вы, главное, напишите курс, а желающие найдутся.
    Эти блоги (пока, надеюсь) не предназначены для общения. Вот например, сколько людей увидят это сообщение? То есть разводить долгую дискуссию здесь невозможно. А писать всё время новые темы, это разрывать контекст.
    Прямой эфир



    Наверх
    Владимир Владимирович Шахиджанян прислал Вам письмо с очень важной информацией. Пожалуйста, прочтите сообщение.
    Прочитать