Следует ли начинать изучение программирования с BASIC (VBA)?

Автор Тема: Следует ли начинать изучение программирования с BASIC (VBA)?  (Прочитано 15331 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Согласен, пожалуй, следовало записать урок, почему следует начинать именно с VBA.
Неоднократно читал в книгах и статьях у разных авторитетных программистов, что по их мнению VB\VBA калечит мозг и что этот язык ни в коем случае нельзя выбирать в качестве инструмента, особенно тем, кто только начинает изучать программирование. Причём некоторые из них считают, что мозг калечится необратимо (мышление в стиле VB\VBA в последствии, зачастую может существенно влиять на стиль программирования на языках, изучаемых после него). Во всяком случае их практика общения с такими программистами свидетельствует об этом. Я склонен им доверять (сам когда-то начинал изучать программирование именно с VBA, правда под Access).

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Это утверждение принадлежит Эдсгеру Дейкстре (тогда конечно это был просто бейсик) - с моей точки зрения - величайшему гению и одновременно профессионалу своего дела - что бывает вместе не часто.

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Андрей Бушман, Дима_, даже и не знаю, что Вам ответить, ребята?
Вообще, если задуматься о мотивах Ваших постов, то я могу предположить 2 варианта:
1. Предостеречь;
2. Внести смуту.
Представим, что есть идеальный расклад/методология изучения программирования и он/она никак не подразумевает начало с VBA (вот тут я накатал много-много предложений, потом перечитал и удалил :)). Нет, не представим. Такого быть не может! Ведь здесь столько факторов, особенностей и индивидуальных качеств каждого человека - настоящий черный ящик. Причем, легко может так случиться, что стиль из VBA окажется самым эффективным. А, если эффективность не важное, то что важное? То есть появляются еще и критерии "идеального программирования". И сколько таких? Под каждую ситуацию, которых бесконечное множество.
Я, как инженер-проектировщик строительных конструкций, позволю себе не согласиться с утверждениями авторитетных программистов (наши цели просто в разных плоскостях). Я пишу код для того, чтобы автоматизировать/оптимизировать свою работу, причем это еще и приносит мне удовольствие. А видеоуроки AutoCAD VBA пишу для таких же, как я. Считаю, что VBA вполне сойдет за такого рода ступеньку.
А, вообще, немножко пустословие все это. Было бы очень интересно увидеть пример, на каком-нибудь "идеальном" (с точки зрения методологии изучения программирования), языке в двух вариантах:
1. От человека с поколеченным мозгом после VBA;
2. От человека, который выбрал язык не подбросив монетку, а у которого батя разрабатывал ту самую методологию.
Все написанное - личное мнение. Просто хочу выразить несогласие.
Цитата: Максим Маркевич от 23-08-2016, 00:36:36
Согласен, пожалуй, следовало записать урок, почему следует начинать именно с VBA.
Думаю, мне следовало написать вот так:
Согласен, пожалуй, следовало записать урок, почему следует начинать именно с VBA, как я считаю.


Оффлайн Владимир Шу

  • ADN Club
  • *****
  • Сообщений: 611
  • Карма: 155
    • ПГСу Бложик
Максим Маркевич, думаю, что Андрей и Дима, пытаются предостеречь. Переучиваться потом сложно.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1096
  • Карма: 172
Off-Topic: показать
... но не невозможно :)
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
2. Внести смуту.
Воспринимай как хочешь. У каждого есть голова на плечах и все видят, к какому именно утверждению относится мой комментарий.
Ведь здесь столько факторов, особенностей и индивидуальных качеств каждого человека - настоящий черный ящик.
А бейсик-то здесь причём? Каким бы талантливым человек не был, но если в качестве инструмента у него рогатка, то вряд ли он с её помощью сможет запустить спутник в космос. Кому действительно интересно, почему не рекомендуют начинать изучение программирование с бейсика - гугл в помощь.

Причем, легко может так случиться, что стиль из VBA окажется самым эффективным.
Я так не думаю.
А, если эффективность не важное, то что важное? То есть появляются еще и критерии "идеального программирования".
Не нужно заниматься софистикой, извращая смысл моего комментария. Я не писал о том, что эффективность не важна. Тех, кто в литературе не рекомендовал начинать изучение с программирование с бейсика, трудно уличить в том, что они летают в розовых облаках и оторваны от реальности.

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

Я пишу код для того, чтобы автоматизировать/оптимизировать свою работу, причем это еще и приносит мне удовольствие.
А бесик-то здесь коим боком? Вопрос риторический. Вряд ли А. Кулик мучается на лиспе или А. Ривилис - на C++.

Считаю, что VBA вполне сойдет за такого рода ступеньку.
Да ради Бога, разве я против, считай.


Было бы очень интересно увидеть пример, на каком-нибудь "идеальном" (с точки зрения методологии изучения программирования), языке в двух вариантах:
У меня нет ни желания, ни свободного времени заниматься подобным. Тебе выше _Дима обозначил одного из тех, кто смотрит на бейсик отрицательно. Если тебе действительно интересно узнать, почему он так думает, то гуглом сможешь найти это.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Андрей Бушман, Дима_, Максим Маркевич
Чтобы тема не скатилась в холивар настоятельно рекомендую оставаться в рамках названия темы. Обсуждать какой язык программирования лучше в этой теме не будем.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Предлагаю авторы темы подправить своё сообщение, цитируемое мною в #36 - т.е. добавить в него уточнение, которое он позднее указал в #38. Кроме того, неплохо было бы там же упомянуть, что существует диаметрально противоположное мнение в отношении того, стоит ли начинать изучение программирования с бейсика (для полноты картины, дабы не создавать у неискушённого читателя однобокую иллюзию в отношении этого языка). Либо просто убрать свою рекомендацию.

В этом случае админ\модератор может спокойно удалять сообщение #36 и все последующие, имеющиеся на данный момент, т.к. их содержимое станет неактуальным.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Здесь можете спорить на эту тему сколько считаете нужным, но согласно Правил форума.  ;)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Здесь можете спорить
Спорьте, если хотите. У меня такого желания нет. Видимо вы не читали моё предыдущее сообщение или читали невнимательно.

Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
Андрей Бушман, послушай, ну мне совсем некомфортно с тобой спорить, ведь ты для меня, как учитель. Большой вклад в мое изучение c# в данный момент вносят твои коды, статьи, твой блог. Я просто пытаюсь хоть как-то защитить то, что помогло мне в свое время, и я уверен, что это поможет некоторым людям типа меня.
Ещё раз прочитай фразу о "розовых облаках" выше. Уж извини, но ты несколько из другой "весовой категории" по сравнению с теми, чьё мнение я обозначал выше.
Не извиняйся. Я отдаю себе отчет о своей весовой категории!
У меня нет ни желания, ни свободного времени заниматься подобным. Тебе выше _Дима обозначил одного из тех, кто смотрит на бейсик отрицательно. Если тебе действительно интересно узнать, почему он так думает, то гуглом сможешь найти это.
Ну вот как тебя понимать? Затравочку ты бросил, а вот пояснить - "У меня нет ни желания, ни свободного времени заниматься подобным".
Но посыл Ваш, уважаемые, Андрей Бушман и Дима_, я понял. Я дико извиняюсь перед Вами и всеми теми, кто посмотрел мои уроки. Извиняюсь за то, что не дал им выбора, не предупредил о возможных последствиях "красной" и "синей" таблеток.
Когда появится время, я запишу видео с подкорректированным названием и учту совет от Андрея Бушмана:
Предлагаю авторы темы подправить своё сообщение, цитируемое мною в #36 - т.е. добавить в него уточнение, которое он позднее указал в #38. Кроме того, неплохо было бы там же упомянуть, что существует диаметрально противоположное мнение в отношении того, стоит ли начинать изучение программирования с бейсика (для полноты картины, дабы не создавать у неискушённого читателя однобокую иллюзию в отношении этого языка). Либо просто убрать свою рекомендацию.
Также дам ссылку на пищу для ума:
Неоднократно читал в книгах и статьях у разных авторитетных программистов, что по их мнению VB\VBA калечит мозг и что этот язык ни в коем случае нельзя выбирать в качестве инструмента, особенно тем, кто только начинает изучать программирование. Причём некоторые из них считают, что мозг калечится необратимо (мышление в стиле VB\VBA в последствии, зачастую может существенно влиять на стиль программирования на языках, изучаемых после него). Во всяком случае их практика общения с такими программистами свидетельствует об этом. Я склонен им доверять (сам когда-то начинал изучать программирование именно с VBA, правда под Access).
Спорьте, если хотите. У меня такого желания нет. Видимо вы не читали моё предыдущее сообщение или читали невнимательно.
Аналогично, никакого желания спорить.
Думаю, мы могли бы договориться о том, что необходимо подкинуть людям такую вот корректировочку и пищу для ума. и без использования стольких слов.
А проблема в том, что я неправильно отреагировал на сообщение #1 данной темы (защитная реакция на пост о бессмысленности моих трудов, как мне тогда показалось). Еще раз извиняюсь!

Оффлайн trir

  • ADN Club
  • ****
  • Сообщений: 470
  • Карма: 63
Я с бесика начинал, с нумерацией строк и GOTO, а потом был Pascal.
Особенность VBA в том, что он есть по умолчанию - запустил Excel и есть
Ну прост он конечно. Только я категорически не советую на нём задерживаться. Я вот двигался VBA=>VB.NET=>C# и последний мне нравится всё больше и больше. А ещё есть Python! Сейчас мне просто неприятно связываться с VBA.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Максим, у меня нет никаких претензий к тому, что ты  делаешь. Более того, я считаю, что создаваемые тобой видео-уроки наверняка  будут очень полезны многим VBA-программистам. Т.е. дело это хорошее, однозначно. Правда я не смотрел их (честно признаюсь) т.к. (во первых) не пишу на VBA и (во вторых) нахожусь сейчас в отпуске на море, а в интернет (в снимаемом номере) выхожу, судя по его скорости, через какую-то китайскую (или российскую) зажигалку (видео она попросту не потянет, во всяком случае в данный момент времени)... Да что там видео... У меня клики по клавишам идут с задержкой в секунду-две...

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

Уточнение насчёт VBA я обозначал в виду того, что сам в прошлом очень сильно на нём обжёгся и выбор того, на какой язык переходить с VBA (и по чему именно на него) для меня не был столь очевиден. Идеального языка программирования не существует. Но  среди тех, которые имеются, бейсик - не самый лучший выбор. После VBA какие-то моменты мне в C# было в своё время очень сложно понять, т.к. я всё время пытался проецировать их на то, как это было бы сделано (в моём понимании) на VBA.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Я вот двигался VBA=>VB.NET=>C# и последний мне нравится всё больше и больше. А ещё есть Python! Сейчас мне просто неприятно связываться с VBA.
После VBA первый вариант, который я смотрел, был VB.NET (конечно же). Однако, посмотрев примеры его кода в книжных магазинах понял, что VB.NET имеет синтаксис схожий с VBA, но на этом все сходства заканчиваются (это совсем др. язык). Т.е. после VBA код VB.NET был мне так же непонятен как и код C#. В то время VB.NET был более ограниченным чем сейчас.  Да и книг по шарпею было больше, примеры в инете так же в основном на шарпее. В виду этого я выбрал C#, а не VB.NET.  И не пожалел. Синтаксис шарпея мне понравился. Сейчас синтаксис VB\VBA\VB.NET для меня выглядит очень неудобочитаемым, я бы даже сказал уродливым (этакая клинопись гоблинов). Возможно у др. людей такого ощущения после перехода с VBA нет.

Это позднее макрософт решила развивать VB.NET более активно, добавляя в него новые фичи, появившиеся в предыдущей версии шарпея (эффект резинового жгута). Но когда я выбирал язык, этой информации ещё не было. Я думаю, что бейсик до сих пор живёт в первую очередь потому, что это детище Б. Гейтса.

Помнится не так давно, автодеск настоятельно рекомендовала прекращать под автокад писать на VBA, и переходить на .NET. Это после выхода VBA 7-й версии вроде как напряжённость несколько спала. Но всё равно это напоминает бег по минному полю - не понятно, что в автодеске по поводу VBA вдруг решат завтра\послезавтра.

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
уважаемые, Андрей Бушман и Дима_, я понял. Я дико извиняюсь перед Вами ...
Я то тут причем - я скорее Андрея подправил - кто "родоначальник" этих высказываний (и не только их). Что лично по мне - мне и C# не нравится, хотя на С мне иногда все-же приходится (в самом прямом смысле этого слова - хорошо это не часто) писать, но это "мои тараканы" - не факт, что они приживутся у других.
з.ы. аналогия которая приходит мне на ум с бейсиком и Ко - это трехколесный велосипед - он вроде и поустойчивей, но после 5-ти лет на нем ездить уже не стоит.


Оффлайн Максим Маркевич

  • ADN Club
  • ****
  • Сообщений: 254
  • Карма: 29
  • Skype: evthisrel
нахожусь сейчас в отпуске на море
Сейчас подключаюсь к удалённой машинке (на сервере в офисе) и сижу в инете через неё (в надежде, что это хоть как-то ускорит процесс). Но не сильно помогает, т.к. всё равно нажатия клавиш доходят буквально через раз и при этом с задержкой в секунду для каждого нажатия ( т.е. в слепую не попечатаешь). Соотвественно и поиск в гугле для меня сейчас - сплошное мучение.
Это очень круто! Лучше отдыхай. :)
Я вот двигался VBA=>VB.NET=>C# и последний мне нравится всё больше и больше. А ещё есть Python! Сейчас мне просто неприятно связываться с VBA.
После VBA первый вариант, который я смотрел, был VB.NET (конечно же). Однако, посмотрев примеры его кода в книжных магазинах понял, что VB.NET имеет синтаксис схожий с VBA, но на этом все сходства заканчиваются (это совсем др. язык). Т.е. после VBA код VB.NET был мне так же непонятен как и код C#. В то время VB.NET был более ограниченным чем сейчас.  Да и книг по шарпею было больше, примеры в инете так же в основном на шарпее. В виду этого я выбрал C#, а не VB.NET.  И не пожалел. Синтаксис шарпея мне понравился. Сейчас синтаксис VB\VBA\VB.NET для меня выглядит очень неудобочитаемым, я бы даже сказал уродливым (этакая клинопись гоблинов). Возможно у др. людей такого ощущения после перехода с VBA нет.
Я понимаю, о чем Вы говорите. Согласен на 100%. Лично сам взялся за VBA, потому что увидел пример, чего добился человек при помощи VBA(был очень впечатлен), проработал на нем около года (ничего супер сложного: манипуляция блоками в AutoCAD, создание таблиц, связка со сторонними приложениями и прочие мелочи - по сути перебрал всю книгу AutoCAD VBA Joe Sutphin). И вот уже 2-2.5 месяца как решил изучить C# (даже не раздумывал о переходе на VB.Net, просто выбрал C#, потому что полно примеров и информации), да и кореш программист (С++, Ruby) посоветовал уходить от Бейсика - хотя аргументированно так и не пояснил почему). Ну и вот за это время (2-2.5 месяца), я сделал на C# в раза 2 больше, чем на VBA за год.. Во-первых, потому, что у меня куча свободного времени было летом. Во-вторых, потому что это было мегаинтересно - словно игрушка компьютерная из детства. Мне очень нравится делать что-то на C#, чувтсвую себя полноценно. Сейчас я и сам никогда бы не вернулся на VBA. Я начал совершенно иначе относится ко всему процессу программирования. Когда я начинаю замечать в своем коде "костыли" из моего прошлого, мне всегда хочется сделать четче и эффективней, сделать меньше строк, а больше толку - добиваюсь этого либо просто "сидением" и "разбиранием", либо форумчик, либо обращаюсь к корешу-программисту. Мне кажется, что именно вот это желание стать лучше и никогда никому не позволит "подпортить" свой мозг предыдущим опытом.
Так вот, желание записать уроки по VBA пришло именно тогда, когда я решил, что никогда больше к нему не вернусь. Это было жесткая революция (в один момент я просто решил, что не буду делать ничего на VBA, а только при помощи C# и .Net - при этом было много работы, пришлось ускоряться, в итоге, результатами более чем доволен).
Запись уроков - это попытка сохранить немного знаний. В какой-то момент понял, что хотелось бы это оставить, возможно, кому-то поможет, да и для себя - ветка о проделанной работе, какой-то период жизни, зацепка в этой суете сует.
НО! Для себя отмечаю, что на VBA разогнался, что писать сразу на C# мне было бы очень сложно, что это необходимый для меня этап. Возможно, я еще не вижу последствий (выше я уже описал, что желание стать лучше, уверен, если что, все поправит), но сейчас считаю именно так.
Я то тут причем - я скорее Андрея подправил - кто "родоначальник" этих высказываний (и не только их).
Извини :) Я не пытался тебя втянуть. Просто ты так вдохновленно сказал о родоначальнике, что я был уверен в твоей 100%ной солидарности. )
Что лично по мне - мне и C# не нравится, хотя на С мне иногда все-же приходится (в самом прямом смысле этого слова - хорошо это не часто) писать, но это "мои тараканы" - не факт, что они приживутся у других.
А почему? Если есть время, не мог бы ты пояснить, что лучше C# и почему (именно с позиции твоих тараканов)?
з.ы. аналогия которая приходит мне на ум с бейсиком и Ко - это трехколесный велосипед - он вроде и поустойчивей, но после 5-ти лет на нем ездить уже не стоит.
Потому что все пацаны во дворе уже ездят на двухколесных и ты не маленький. Но, если сесть сразу на двухколесный, можно дольше учиться. Это, если продолжать аналогию. ;)
Ведь и на канате сразу учатся ходить со страховкой. ))

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Потому что все пацаны во дворе уже ездят на двухколесных и ты не маленький.
Просто тебе не надо шуршать лишним колесом, и терять в маневренности.
Цитировать
Если есть время, не мог бы ты пояснить, что лучше C# и почему
Почему - см. опять-таки наш диалог с Андреем здесь и далее по теме
Что лучше C# - это вопрос провакационный. На чем предпочитаю вести разработку? - на это могу ответить.
Если рассматривать только язык (не зависимо от платформ, библиотек и пр. - а только возможности языка) - с моей точки зрения лучшим языком является Scheme - если есть сложный алгоритм, то я вначале анализирую его на scheme - а уже потом, матерясь, перевожу его на "мейнстрим". Если рассматривать в комплексе - то это безусловно платформа .Net - лучшим языком на .Net - по сумме факторов (поддержка, возможности, производительность) - это F# (95% всего что я сейчас пишу - на нем). Основная причина - что парадигма языка гораздо шире и  все что сейчас потихоньку вводят (и что черт знает сколько лет уже есть в scheme - по причине, что там добавить любую "фишку" в язык может не только Microsoft - а любой кто в нем программирует - и что главное средствами самого языка) гораздо лучше на нее "ложится". На C# можно "доступно" описать только код - он очень императивно заточен. Никакой декларативности там нет и в помине.
з.ы. по моему я это  уже писал, но все же - по сути C# и VB.Net - это один и тот-же язык просто с разным синтаксисом - скорее всего они компилируются в одном проекте, но у C# синтаксис конечно более читабелен и юзабелен.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
с моей точки зрения лучшим языком является Scheme
А почему Scheme, а не Common Lisp?

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Тут уже на уровне вкуса - scheme по дефолту более чистая - но это больше отговорка - комфортнее мне она.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
имеется в виду принятая чистота функций + по умолчанию функции замкнутые - по мне это более правильная модель.