2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5  След.
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 19:56 
Заслуженный участник


27/04/09
28128
Я собираюсь овтечать только на адекватные сообщения. Вот, например,
Maslov в сообщении #521368 писал(а):
arseniiv,
Lua -- это все-таки экзотика, причем, экзотика с динамической типизацией; начинать, на мой взгляд, лучше с чего-нибудь построже.
Это ответ о простоте. Если уж подбирать язык по простоте, то этот будет куда лучше бейсика.

Цитата:
А почему Вы против Бейсика настроены? Что в нем такого ужасного?
В каждом из видов свой ужас. Я уже упоминал, что слишком много надо писать слов, без которых синтаксис вполне мог бы обойтись, в VB и VB.NET. Программы на ранних версиях языка типа Q-BASIC мне вообще кажутся страшными. По-моему, предлагавшийся Pascal значительно лучше. Мне кажется, с него проще переходить на самые разные языки.

techmanforever в сообщении #521380 писал(а):
с того языка который уже 25 лет входит в 10 лучших языков
Это ужасно.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 20:02 
Заслуженный участник


26/07/09
1559
Алматы
2arseniiv
Цитата:
Вот и не можете после такого начала принять что-либо получше.

Я вот тоже в школьные годы с бейсика начинал (VBA, потом MS VB), но сейчас предпочитают C++. Не думаю, что начало увлечений программированием с бейсика имеет столь уж катастрофические последствия. Впрочем, может быть именно бейсик виноват в моих бесконечных неудачах по устройству на работу, связанную с программированием -- последний раз даже на позицию actionscript-кодера не взяли. :) Хотя, в тоже время знаю немало весьма успешных программистов, начинавших именно с VB; сейчас они конечно же им не пользуются, но миф о вреде бейсика очевидного подтверждения не находит.

В контексте обсуждаемой темы могу лишь сказать, что изучение нескольких языков неизбежно (об этом уже говорилось), а желание топикстартера определиться с конкретным языком для начала знакомства с программированием может быть удовлетворено простым анализом используемых на данный момент учебных программ в университетах -- когда-то может быть могли изучать и бейсик (в качестве языка общего назначения), не так давно преобладал паскаль, сейчас наблюдается переход на C/C++. Конечно, в специфичных курсах изучаются свои языки, ассемблер, лисп, пролог и т.д. Всё это можно и нужно учить, теория конечности объема естественной памяти сомнительна. :)

В общем, наверное именно универские силлабусы неплохо подходят на роль факторов сдвига при выборе очередного языка для начинающего программиста; во всяком случае хуже-то не будет. Ну в крайнем случае, если с самого начала волнуют карьерные вопросы, то вместо учебных программ может подойти и сбор статистики из газеток с объявлениями о вакансиях. :)

Подозреваю, что у многих первый язык был выбран спонтанно -- либо в соответсвии с учебной программой школы/института, либо в результате экспериментов с первым попавшимся пакетом разработки (коим мог быть случайно заинтересовавший диск с компилятором или sdk любимой игрушки), либо как естественное продолжение увлечений, ну скажем, web-дизайном. Например, если человек предпочитает редактировать текст в emacs'е, то рано или поздно в мозг этого человека таки проникнет зараза под именем лисп (ok, пример не очень удачен, обычно причинно-следственная связь здесь направлена в другую сторону). :)

Огромную роль в выборе языка может сыграть (настоятельно рекомендуемое, кстати) чтение чужих исходников -- грубо говоря, какие исходники наиболее понятны, вот на таком языке и проводятся первые попытки самовыражения.

Это личные наблюдения; все обсуждаемо. Кто знает, может быть ТС, полистав в книжном магазине определенную книжку, сразу же заинтересуется используемым в ней языком и начнет учить именно его, а потом начнет слать патчи в сообщество какого-нибудь opensource-проекта; таким образом его вопросы отпадут сами собой. :)

Кстати, кто что думает о пользе/вреде начала пути программиста с визуальных сред быстрой разработки? Это же очень спорный вопрос... С одной стороны, написание кода "от яиц до яблок" развивает интуицию, моторику, стиль и другие хорошие качества; с другой -- визуальное разбрасывание кнопочек позволяет предельно сократить расстояние от идеи до прототипа, т.е. обеспечивает некоторую дополнительную обратную связь, важную при самостоятельном изучении программирования. Вот этот момент для меня абсолютно неясен; также как и в случае с бейсиком, я сам не считаю такой выбор критичным, но встречал и другие мнения...

2techmanforever
Цитата:
тогда тогда почему Intel поддерживает фортран ...а не дельфи или еще чего. Интересный вопрос ... правда

Как насчет тривиального груза унаследованного кода? Ну, т.е., понаписали мат.алгоритмов на фортране (исторические причины), вот и пользуются, мол, зачем портировать. :) Паскаль intel'ом не поддерживается наверное все-таки из-за, скажем так, учебного статуса языка. А успех разработчиков turbo pascal'я и delphi обеспечен немалым риском.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 20:15 
Заслуженный участник


09/08/09
3438
С.Петербург
arseniiv в сообщении #521398 писал(а):
Я уже упоминал, что слишком много надо писать слов, без которых синтаксис вполне мог бы обойтись, в VB и VB.NET. Программы на ранних версиях языка типа Q-BASIC мне вообще кажутся страшными.
На мой взгляд, у Вас несколько "религиозный" подход. Кроме некоторого многословия, что еще "ужасного" в Бейсике? (Про QBasic не спрашиваю: он слишком стар и неразвит, чтобы его всерьез рассматривать).

Наверное, страшную вещь скажу :), но я бы начал с Java: он универсален, очень широко распространен, по нему куча литературы, в нем нет ничего особо сложного (если не лезть в дебри), в нем не надо возиться с ручным выделением/освобождением памяти и в программах на Java не возникают ошибки типа "Memory access violation".

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 20:29 
Заслуженный участник


27/04/09
28128
Maslov в сообщении #521405 писал(а):
На мой взгляд, у Вас несколько "религиозный" подход.
Может быть. :? Вообще, я тоже начинал с VB6. И думаю, начинай я не с него, было бы всё же немного лучше. VB мне кажутся недостаточно гибкими, чтобы начинать с них с желанием продолжить (имею в виду, что, когда доизучаешь до некоторого уровня, библиотека кажется ограниченной, функции и структуры WinAPI импортируются/пишутся вручную, и прочее, и прочее с неудобствами написать какой-нибудь необычный интерфейс или поведение (реестр, например) — и хочется перейти на другой язык, а там стандартная библиотека другая; а пока это только второй язык, её довольно трудно изучить, и бывшее знакомство с VB тормозит). VB.NET намного хуже (опять же, по мне) выглядит, чем C#, компилирующийся туда же и обладающий, следовательно, не меньшей выразительностью.

Circiter в сообщении #521400 писал(а):
Кстати, кто что думает о пользе/вреде начала пути программиста с визуальных сред быстрой разработки? Это же очень спорный вопрос...
Кстати, есть же программы, которые в оконном интерфейсе выглядят не очень, а в текстовом нормально. Практически все учебники (их мало), которые я читал по разным языкам с RAD, почти не упоминают, что в той же среде с той же удобной отладкой можно писать консольные программы (и как это делать). Мне кажется, обзор этого в учебнике был бы полезным.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 20:32 
Заслуженный участник


26/07/09
1559
Алматы
2Maslov
Цитата:
Наверное, страшную вещь скажу :), но я бы начал с Java

Кстати. Вот есть различные курсы вышивания крестиком, стрижки животных и т.д. :) Среди подобных образовательных предложений есть некоторое количество компьютерных курсов, и большая часть курсов программирования основаны на Java. Наверное же это неспроста. Я имеют ввиду, что организаторы, выдумывая свою бизнес-идею, тоже ведь задавались вопросом выбора "универсального" языка... Что-то в этом есть.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 20:38 
Заслуженный участник


27/04/09
28128
Кто-то тут и не тут говорил, что ООП лучше сначала не трогать — вот по этому поводу я наконец-то умно ( :lol: ) молчу, даже не знаю, можно ли что-то сказать. Никак не могу представить ситуацию, чтобы оценить, сложнее или нет.

-- Чт дек 29, 2011 23:38:59 --

А если начинать с функционального языка, точно плохо будет?

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 21:02 


29/12/11
5
arseniiv в сообщении #521412 писал(а):
А если начинать с функционального языка, точно плохо будет?
Думаю будет не просто плохо, а вообще застрелиться. Там голову совсем в другую сторону ломать надо.

А начинать можно и с ассемблера. Вначале тяжело, но потом всё остальное покажется детским лепетом. :D

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 21:11 
Заслуженный участник


26/07/09
1559
Алматы
2arseniiv
Цитата:
А если начинать с функционального языка, точно плохо будет?

Видите-ли, на том же haskell'е писать "обычный" софт, довольно сложно. Не говоря уже о необходимости неплохой мат.подготовки (Ok, ТС учится в физ.мат.школе, но не все же такие). Можно вот так и дальше рассуждать, брать конкретный функциональный язык и в конце концов приходить к выводу о его неоптимальности для новичка (аргументы примерно одни и теже). Единственное универсальное решение -- лисп. :)

Но. А как же такой программист, вскормленный на лиспе будет общаться с внешним миром-то? Кто-же его понимать будет? :) Уже обсуждавшиеся языки, типа python'а, имхо, имеют довольно приличный пласт функциональщины. Не лучше ли в качестве компромисса все-таки рекомендовать такие языки?

Ну не пришло ещё время глубокого проникновения функциональных языков в начальное программёрское образование. :) Или есть прецеденты?

(Оффтоп)

Ассемблер вообще обсуждать боюсь, а то ещё в Hardware перенесут. :)

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 21:19 
Заслуженный участник


27/04/09
28128
Circiter в сообщении #521424 писал(а):
Не говоря уже о необходимости неплохой мат.подготовки
Вот я бы не сказал. :-)

(Оффтоп)

Circiter в сообщении #521424 писал(а):
Ассемблер вообще обсуждать боюсь, а то ещё в Hardware перенесут. :)
:mrgreen:

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 21:40 
Заслуженный участник


09/08/09
3438
С.Петербург
arseniiv в сообщении #521408 писал(а):
VB.NET намного хуже (опять же, по мне) выглядит, чем C#, компилирующийся туда же и обладающий, следовательно, не меньшей выразительностью.
У VB.NET есть свои достоинства, например, inline-XML или условие when при обработке исключений. По своей воле я бы на нем ничего писать не стал, но когда были проекты, в которых VB.NET был условием заказчика, работал без всякого отвращения.

Все что вы сказали про VB6 -- конечно, правда, но ведь и на C# приходится иногда прописывать интерфейсы к функциям WinAPI вручную. Если принципиально важно полное отсутствие ограничений при работе с WinAPI, то выбор однозначен -- C++ :-)

Но я говорю немного о другом: на мой взгляд, сейчас считается хорошим тоном не любить Бейсик на том основании, что кто-то из великих 40 лет назад сказал, что Бейсик калечит мозг. 40 лет назад, может быть, так оно и было, но по нынешним временам -- язык как язык, со своими достоинствами и недостатками, как и любой другой.

arseniiv в сообщении #521412 писал(а):
А если начинать с функционального языка, точно плохо будет?
Не знаю, я бы не рекомендовал...
Но что точно бесконечно полезно, так это по прошествии некоторого времени поработать на чем-нибудь функциональном (на самом деле, все равно на чем). Просто чтобы до конца прочувствовать, что такое рекурсия и функции высших порядков.

arseniiv в сообщении #521435 писал(а):
Circiter в сообщении #521424 писал(а):
Не говоря уже о необходимости неплохой мат.подготовки
Вот я бы не сказал. :-)
А я бы сказал. Математика не нужна, пока не возникает желания понять логику таких вещей как монады, функторы, катаморфизмы и т.п. А когда возникает, без нее обойтись довольно трудно. Да и без математики Хаскель, на мой взгляд, довольно сложен. Я бы даже сказал, излишне сложен; одна система типов чего стоит.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 21:59 
Аватара пользователя


01/03/11
119
Какой-такой Бейсик? Python? Да ладно? Для начинающего программиста??
Да вы что? Haskell - можно вырыть себе могилу при его изучении без мат. подготовки.
C/C++ - бесконечные segmentation fault и остальная лабуда с памятью, куча приколов с ООП.
Java - для начала? да вы что? Изучать очень мощный язык сразу? не зная всех особенностей простого ООП C++?По-моему, вы сами хотите навязать свою т.з. начинающему программисту. Кто-то уже постов 10 про Luа вещает, кто-то Бейсик в массы несет.
Может вы подумаете немного о том, КАК будет обучаться автор и ЧТО он получит от каждого рекомендуемого вами языка?

Почему не взять для начала самый оптимальный канонический Pascal?
область объявления переменных, явные и хорошие begin..end, простая работа со строками, прекрасное описание функций, наиболее оптимальный синтаксис ( do();this();empty();code();faster_faster(); - какая гадость! ( для начала ) )
Раз уже все такие программисты, выложите, пожалуйста, ваши коды для таких учебных задач:
--Вывод n чисел Фибоначчи
--Подсчет факториала числа n
--Вывод всех делителей числа n.

И, пожалуйста, постарайтесь как можно более выразительно применить ваш рекомендуемый язык.
( не забываем про те самые составные операторы, кстати )

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 22:08 
Заслуженный участник


27/04/09
28128
loldop в сообщении #521458 писал(а):
--Вывод n чисел Фибоначчи
--Подсчет факториала числа n
--Вывод всех делителей числа n.
Ну в таком случае я буду рекомендовать Mathematica. Ну и пусть для неподготовленного это некоторая каша из разных вещей, зато на ней легко написать ваши примеры. :D

-- Пт дек 30, 2011 01:09:10 --

loldop в сообщении #521458 писал(а):
явные и хорошие begin..end
При отступах фигурные скобки читаются так же легко, как и begin...end. Правда-правда.

-- Пт дек 30, 2011 01:09:58 --

loldop в сообщении #521458 писал(а):
прекрасное описание функций, наиболее оптимальный синтаксис
Ну хватит уже. Я ведь так его разлюблю. :-( Рекламный стиль какой-то.

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение29.12.2011, 22:19 


15/01/09
549
loldop в сообщении #521458 писал(а):
И, пожалуйста, постарайтесь как можно более выразительно применить ваш рекомендуемый язык.

Я бы уточнил немного. Надо ограничиться сравнением хотя бы императивных языков. На функциональных скорее всего получится выразительнее (на том же Хаскеле), но понятно, что их нельзя учить первыми.

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

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение30.12.2011, 00:00 
Заслуженный участник


09/08/09
3438
С.Петербург
loldop,

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

Если у Вас есть, что сказать по существу, было бы интересно почитать (рассуждения о преимуществе "begin ... end" перед "{ ... }" ничего, кроме недоумения, вызвать не могут).

 Профиль  
                  
 
 Re: Программирование для начинающих
Сообщение30.12.2011, 00:17 
Заслуженный участник


27/04/09
28128

(Итак, мой пример на Mathematica.)

Код:
> n = 10;
> Table[Fibonacci[i], {i, 1, n}]           (* можно даже {i, n} *)
>> {1, 1, 2, 3, 5, 8, 13, 21, 34, 55}
> n!
>> 3628800
> Divisors[n]
>> {1, 2, 5, 10}
Как просто! :lol:

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 75 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group