Сучасна диджитал-освіта для дітей — безоплатне заняття в GoITeens ×
Mazda CX 5
×

Pascal... Быть или не быть

Доброго времени суток всем. Хочу поднять вопрос и посоветоваться на тему изучения языков программирования. На тематичных ресурсах (Dou, Habrahabr ) не однократно упоминается точка зрения:
Изучение программирование нужно начинать с pascal, так как:
— дисциплинирует мышление и написание кода
— так проще понять необходимые основы (язык изначально создан для обучения)
— дает алгоритмическую базу и проч.
— повышает вероятность того, что обучаемый с самого начала будет есть радугу и какать бабочками избегать «быдлокода»

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

Суть вопроса — насколько целесообразно начинать изучения с этого языка и что это даст для человека:

— с не техническим (математическим) образованием
— уже знакомым с html , CSS и базовой версткой
— интересующимся web направлением (JavaScript, Ruby, Php)

Также нигде не встречал, во время многочасового серфинга, каких либо конкретных данных по —
1) Продолжительности
Понятно, что у каждого свой порог обучаемости, но существует же ориентированный временной коридор ( минута — бесконечность, два месяца — три года) необходимых для получения нужной базы, после которой можно приступать к тому JS. При условие занятий каждый день от 2 до 3 часов.

2)Измеримости конечного результата
После чего можно почувствовать себя просвещенным подаваном и отложить freePascal (или другую версию) в сторону. Что-то похожее на ответ по этому пункту было прочитано на Хабре

... освоив на паскале метод пирамидальной сортировке можно переходить на другие языки...

Заранее спасибо всем за изложением своих мыслей по этому вопросу. Упоминать такие само разумеющиеся вещи, как английский и желание нет необходимости.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Большое спасибо участникам за развернутые ответы и высказывание своего мнения. Благодаря вам вопрос с паскалем решен.

Теперь в независимости, от выбора Python ( предпочтительный и наиболее вероятный) или JS можно приступить к более интересной задаче — составить план изучения и практических действий на полгода.

JS первым не советую, очень уж на мозги влияет, потом низкоуровневый язык ты просто не поймёшь. Хотя с JS и современными тенденциями, знание другого языка будет не особо нужно.

С программированием как с иностранным языком — с какой стороны его не изучай, а зубрить слова придется.

Изучение с Pascal’а было оправдано когда-то, в 70ые, когда Си был совсем для профи, PL/I — слишком насыщен «железячными» фичами, а вот с бейсиков и Cobol’а, начинать да, не очень.

Сейчас нет смысла. Потому что основная парадигма — ООП. Модная — ФП. Так что сразу, если фундаментально начинать нужно с Smalltalk(может Ruby) и Scheme (может Lisp).

Если для практического программирования то — Python и Java, C#. И plain C будет полезен, чтобы понятно было как оно там в процессоре и памяти крутится, все эти джава и питоны (чтобы не путаться в шнурках: «как передать ссылку чтобы по значению, ведь если я ее перезапишу то объект исчезнет?»)

html , CSS, javascript — это вообще отдельный разговор. Мне трудно представить как они выглядят для совсем начинающего (не знающего ни одного ЯП, и вообще программирования). Наверное как для впервые столкнувшегося с версткой в полиграфии?

дисциплинирует мышление

не язык программирования. Здесь тоже самое что и с обычным языком — есть понимание, иерархичность знаний, — будет связная речь. Нет — будет «поток неструктурированного сознания»

дает алгоритмическую базу и проч.

то же самое. Алгоритмы можно записывать как угодно. Если ты их понимаешь — то способен и обычными словами рассказать. А нет — то никакой язык программирования не поможет тебе их записать. «Быдлокод» — туда же — понимания нет, а не знания языка программирования плохое.

Подумалось еще

Поможет ли в изучении английского языка изучение вначале эсперанто?

html , CSS, javascript — это вообще отдельный разговор. Мне трудно представить как они выглядят для совсем начинающего (не знающего ни одного ЯП, и вообще программирования). Наверное как для впервые столкнувшегося с версткой в полиграфии?

Для начинающего это выглядит тем же «мифическим» программированием или проектированием космических кораблей — одинаково не понятно и вызывает жуткое уважение к тем, кто этим занимается .

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

Если желаете отказаться использовать свой багаж, математическое образование (оно у Вас есть, я правильно понял?), то можете следовать любому совету.

Если же желаете использовать как рычаг, то выглядит всё драматично, как если бы выпускник инженерно-механического факультета искал работу рабочего по окраске кузовов машин, так как сегодня ему платят больше...

Почитайте вопросы, за которые можно браться математику:

cstheory.stackexchange.com Чтобы оказаться сразу в теме, возьмите такой пример. На любом языке из советованных, пишите процедуру целочисленного деления. Назовем эту запись в терминах из конечного алфавита и с конечным числом шагов формулой. Проверьте на частном примере, допустим, что 13/3=4+1(Rem). Докажите математически, что для любого числа Ваша формула справедлива.

А вот рыночная мода на красильщиков может внезапно кончиться :)

К сожалению не смогу воспользоваться вашим советом в ближайшем будущем, так как раз образование у меня утрированно-гуманитарное (художественноя экспертиза). Правда могу «оправдаться» что прошлая деятельность была далеко не гуманитарной.

В хроме нажимаеш Ctrl-Shift-I. Вкладочка Console и пишеш JS.

А вообще, учите Библию. Попы зарабатывают в разы больше программистов.

Ничто не мешает свою собственную религию на основе Библии основать.

Лучше С или Python наверное, если так уж хочется что-то выучить перед JS, но JS всё равно другой, его прийдётся учить заново, а не на базе Pascal/C/Java.

Можно сразу с JS начинать, на его фундаментальное изучение правда может уйти гараздо больше двух месяцев, особенно уделяя этом 2-3 часа в день.

Есть еще одна причина, по которой

но обычно это советуется учащимся старших классов и студентам

Паскаль преподавателям известен, под него есть метод.база, зачем напрягаться?
В свое время у Паскаля были те плюсы для обучающихся, которых не было ни в одном другом языке.
Сейчас... таких языков хватает.

Другое дело, что есть ли смысл ВСЕМ начинать обучение с одного языка (сейчас обычно это Бейсик или Паскаль)? Я бы честно говоря, сделал бы сразу право свободного выбора языка для учащихся и процесс обучения ориентировал бы не на теорию языка, а на решение конкретных задач учащимся на выбранном языке. Но тут значительная часть преподавателей просто не потянет %). Хотя многие из моих знакомых как раз так и поступают — если студент хочет, он выбирает другой язык.

ПС: если освоить метод пирамидальной сортировки на ассемблере, то... Шутка. Хотя из личной истории — как-то сдавали зачет по МПтаС. Так как я был заядлым ассемблеристом, мне преподаватель подкинул «задачку» (прикололся в общем). Я ее сделал (текст писался на бумаге, так как на стендах она вбивалась бы часами), страниц 10 + ссылки на пакет прикладных подпрограмм. Он поверил на слово %)), что она работает.

Паскаль в топку. Джава или Шарп. А потом на джава скрипт + 5 хтмл)

Учите C# или другой .NET язык. Скоро выйдет Win 8 для Arm(WARM) и всякие андроиды и iOS-ы займут долю Линукса на десктопе.

После С# можно изучить С++ в стиле (С-с-классами). По оригинальной модели использовать C++ - изврат, в стиле С-с-классами, получается легкий код с отличной производительностью для высоконагруженных системных вещей, который можно будет легко подключить к C# проекту.

С трудом верю, что Win 8 потеснит андроид. Скорее всего очередной мертворожденный проект мелкомягких.

Качество будет такое же, как WP 7.5. Скорость отклика как у iOS. А если учесть требования к оборудованию и софту от мелкомягких, то из 100 скачанных программ запустятся без глюков не менее 98. Вот когда андроид не будет тормозить на гаджетах, и пропадут глюки из-за того, что гаджеты выпускаются на версиях ОСи 2.3 в тот момент когда старшая версия уже имеет индекс 4.*, вот тогда можно будет ставить на андроид.

Скоро выйдет новая винда, и все еще больше разочаруются... Не более того.

По моему мнению нужно смотреть на проблему по другому... А зачем вам программирование? Чего вы хотите добиться в жизни? Какие у вас цели? Где и как вы хотите работать? Вот исходя из этого уже выбирать что учить.

Смотрите — en.wikipedia.org/...mming_languages

Языков много, поэтому думаю важнее выяснить куда вы идете...

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

Python => C => C#/Java => Lisp

Начинайте с Си, многие языки имеют Си — подобный синтаксис. Сразу с JS начинать не стоит, там много спецефичных фич, но если что — «JavaScript» Флэнагана — отличная книга.

в задницу этот Паскаль, не трать время
JS очень спецефичный язык и новичек в програмировании с него 100% офигеет в процессе.

учите как уже советовали Python — его даже в MIT ввели вместо их милого диалекта лиспа Scheme

По моему мнению, все просто — смотрите за что деньги платят, а потом выбираете что из этого понравилось и учите :-)

лучше учите Python, очень много вакансий.
Не ООП язык вообще не советую учить, меня это сильно сбивало.

Лучше сразу мозги настраивать на работу с объектами.

p.s Как раз два тома в электронном виде на торренте лежат в отличном качестве. Даже тратиться не нужно. Эккель (автор) Философия Java писал, что пайтон легче язык. Не могу ничего утверждать, но мне предлагали уже две конторы учить Python, т.к. очень востребуется язык сегодня.

Я очень жалею, что меня рано подсадили на ООП. Сейчас я изучаю C и Lisp, но продожаю мыслить абстракциями ООП.

Советую начинать изучать программирование со Scheme (SICP).

Заранее спасибо всем за изложением своих мыслей по этому вопросу. Упоминать такие само разумеющиеся вещи, как английский и желание нет необходимости.

Не совсем понял — при чем тут изучения программирование на паскале к изучению английского.?

Когда искал информацию по интересующему меня вопросу, практически все время попадал на ветки — «как стать программистом». В которых, не менее 2-3 участников дискуссии утверждали, что самое главное английский и желание. Не было не одной ветки обсуждения где бы не упоминались оба сабжа.

Заметте, я не спросил — «при чем тут успех в ИТ индустрии и профессиональное развитие как личности/программиста и изучение английского»... я спросил — «при чем тут изучение паскаля и изучение английского»...

Не имеет отношения, видимо мне нужно было абзац с упоминанием и английским оформить отдельным блоком.

паскаль учить — время тратить, поэтому лучше сразу учить, то что нужно. Все базовые понятия и без паскаля будут поняты. Насчет языка это уже на любителя, у каждого есть плюсы. Тоесть, делаем вывод, что не важно с какого языка, только ради бога, не с паскаля. Если веб — ява-скрипт востребована на рынке, jquery, питон никто не запрещает параллельно учить. Если после прочтения 20 страниц книги по пхп нету отвращения, то пхп. Щас все востребовано. К чему душа тянется, то и учите. Скачайте книг по всем основным технологиям, почитайте и сделайте выводы.

плюсую, паскаль оправдано учить только если предстоит пять лет писать на нем лабы в вузе.

HTML (не скажу за html5, этого не знаю) — никакого отношения к программированию не имеет.

Если есть «программистская жилка», то по большому счету пофиг на каком языке обучаться основам, хоть на бейсике — все равно легко сможете перейти к синтаксису другого языка, а если её нет — то все равно ничего путного не выйдет.

Однако лучше это все таки делать на «живом» языке, который может пригодится в будущем. Например, всегда полезно знать какой-нибудь скриптовый язык — вроде Python-а. Рекомендую отличный учебник Python Programming: An Introduction to Computer Science 2nd Edition — это базовый курс для изучения основ алгоритмов и программирования в вузах.

This book is designed to be used as the primary textbook in a college-level first course in computing. It takes a fairly traditional approach, emphasizing problem solving, design, and programming as the core skills of computer science. However, these ideas are illustrated using a non-traditional language, namely Python. Although Python is used as the language, teaching Python is not the main point of this book. Rather, Python is used to illustrate fundamental principles of design and programming that apply in any language or computing environment.

Книгу легко найти в инете.

На мой взгляд отлично подойдет именно для ваших целей. Английского не пугайтесь — во-первых он там очень легкий, а во-вторых его все равно учить надо. :)

P.S. Категорически не согласен с советом выбрать Delphi: IDE зло, а особенно делфийское IDE, когда речь идет о первых шагах в изучении программирования.

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

Чем, простите, синтаксис Паскаля принципиально отличается от синтаксиса Си? Как по мне, так все то же самое, все взаимозаменяемо. Где то даже видел, как при помощи директив #define в Си определяли ключевые слова, которые есть в Паскале.

Процедура на java или других языках с си-подобным синтаксисом


void print(int value) {}

и она же на паскале


procedure print(var value: integer);
begin
end;

По сути одно и то же, а вид совершенно различный. Причем первый вариант использует большое количество широко распространенных языков, второй — только мертвый паскаль и постепенно умирающий Delphi. Так не лучше ли начать изучение сразу с первого варианта? Тем более что и объем кода в нем поменьше будет за счет выброса ненужных ключевых слов.

Неверно. В процедуре на си у вас передача параметра по значению, а в паскале — по ссылке. В остальном соласен.

повышает вероятность того, что обучаемый с самого начала будет есть радугу и какать бабочками избегать «быдлокода»

Полный бред. Как раз делфи и паскаль — это основа быдлокодинга.

А с чего оптимально начинать с вашей точки зрения?

С/С++ или Джава. А адгоритмическая база — это отдельно.

Спасибо за ваше мнение, по уже «бородатому» вопросу. Если не сложно уточните с чего начинать алгоритмическую базу.Также, если не секрет, вы рекомендуете

С/С++ или Джава

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

Уточняя так как меня, на данный момент интересует web направление (JavaScript, Ruby, Php). Хотя как показывает опыт прошлой деятельности, что бы не интересовала вначале в выбранном направление, точный выбор специализации делаешь спустя полгода, год реальной работы.

Как бы берёте базу: списки, массивы, деревья и смотрите как их можно отсортировать, как найти элемент и т.д. Для начала — достаточно. По поводу веба или не веба — я очень сомневаюсь что хоть что то из перечисленного похоже на паскаль. Тогда смысл его учить?

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

По настоящему разлагает мозг PHP и как раз C++.

основа делфи — формошлёпство. Перетёнул кнопку, ей он клик и понеслось. В итоге ООП в топке. Очень мало народа пишет на делфи нормальный код.

Делфи не становится более формошлепским оттого, что там можно быстрее склепать форму и настроить события UI, чем например в VisualC++\MFC.

А что касается ООП — имхо по этой части делфи гораздо проще и продуманнее, чем С++.

Pascal изначально создавался как учебный язык, на нём можно классно научится алгоритмировать. FreePascal фтопку, бери Delphi 7, и в атаку.
Постольку первый язык программирования обязательно должен быть не тем на котором ты собираешься зарабатывать, то паскаль вполне подходит.
Бегло потренируйся на нём, потом попробуй немного Си (НЕ СИ ++!). Благодаря СИ ты лучше поймёшь как работают компьютеры. Сильно долго на наём не задерживайся и потом уже переходи к тому языку который тебе нужен.
Примерно так и обучают в институтах и по такому пути выросло уже не одно поколение программистов.

Удачи.

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

ето с какого перепугу?

Это мнение Лева Валкина, и я его считаю авторитетным и полностью разделяю.

а аргументы какие?

И в чем преимущество Паскаля перед Си (C#, Java) для первоначального обучения? Если уж собираться смотреть Си, то лучше с него и начинать, а потом глянуть и на Ассемблер для лучшего понимания устройства компьютера)

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

Приведу пример:

Для того чтобы написать хелоу ворлд на Си нужно понять что такое функция, что такое импорт, что такое функция main и аргументы программы и errorCode. Нужно понять что такое возврат из функции. И это ещё не всё habrahabr.ru/...x_coding/75971

А теперь это всё на паскале:
begin
WriteLn(’Hello World’);

end.

Чтобы написать хелоу ворлд на C# или Java нужно кроме всего этого ещё знать что такое классы и объекты.

вообще то знаю) и потому не понимаю надуманой сложности обучения сразу с Си, C#, Java, там только немного выше начальный порог.

к примеру на C# Hello World
public class Hello1
{
public static void Main()
{
System.Console.WriteLine("Hello, World!");
}

}

что такое паблик? что такое класс? что такое Хело1, что такое фигурные скобочки? что такое статик? что такое меин? что такое систем? что такое точка? что такое консоль?

Как по мне, многовато для человека которому пока нужно понять что такое цикл.

Новичок может сие временно проигнорировать. Я когда то не понимал, что такое потоки ввода-вывода, но мне это не мешало использовать cin и cout, изучая базовые возможности С++.

Да, и мне это не мешало создавать довольно мощные программы на делфи. Только я их не писал а всего лишь использовал :)
И у моих знакомых изучающих яву часто истерики когда они не могут побороть багу вызваную недопониманием таких вот вещей.

Я даже им маленькую заметку накидал на первое время stokito.blogspot.com/...ate-static.html

Какие истеричные знакомые. Просто даём новичку шаблон типа:

#include «stdio.h»
void main()
{
##ТутТекстПрограммы##

}

И но проблем.

Во во, так и приходется двигатся всё время приговаривая «так не делай», «просто пиши так», «ну на самом деле это можно сделать но не надо».
И вот в Си например такие вот моменты на каждом шагу от объявления константы до проверки двойного инклуда. Причём это всё тоже полезно знать и понимать, но для начало такого лучше избегать.

Первоклассников начинают учить с азбуки а не использовать деепричастные обороты.

Вы считаете свои советы полезными?

Лично я не нашёл ни одного полезного совета.

да они полезны новичкам, но не вам точно. Если у вас есть замечания оставьте конструктивный комментарий к статье, я буду только признателен.

Почему не мне? Я новичок. Я прочитал две книги, но нигде таких замечаний не было. Мне интересно, чем полезны этим советы? Может я последую им.

Ну, 3 и 4 в общем полезные. Не знаю уж, каким образом это защитит от багов, но так действительно принято делать.

Спасибо за пожелание и ответ, буду благодарен уточнению

Бегло потренируйся на нём

сколько это может(должно) занять времени (ориентировочно). Все таки время время веский фактор целесообразности. До какого момента требуется «бегло тренироваться» к примеру, говорю сразу утрированному, добрался до циклов — все бросай?

попробуй немного Си (НЕ СИ ++!)

. Опять таки, что означает немного? )

сложновато ответить но в целом:
паскаль: пока не поймёшь предназначение всех операторов, чем repeat от wile отличается. Идеально это решить сложные задачи математического плана или обработка строк. Они хорошо алгоритмизируются и на них ты набьёш понимание что когда применять.
си: да в принципе те же задачи на нём. Тебе прийдётся вкурить выделение памяти, пляски с указателями и работу базовых системных функций.

Спасибо еще раз за развернутый ответ. Занудно попрошу еще одно уточнение, пример ( название типа задач или ссылка). Все таки для меня

сложные задачи математического плана

— размытое понятие.

Пойдёт любая задача из линейной алгебры (первый курс высшей математики).
Все задачи хорошо алгоритмируются и не очень сложны.
1. Вычисление числа Фибоначи через цикл а потом через рекурсию.
2. решение системы линейных уравнений методом Гауса.
Для этого задания тебе прийдётся организовать два цикла по строкам и рядам.
3. напиши программу которая будет переводить из любой системы счисления в любую другую.
4. напиши программу которая может складывать и отнимать бесконечно большие числа.
5. Вычисление числе е через сумму ряда ru.wikipedia.org/wiki/E_(число
6. У тебя есть список (массив) слов, соедини их всех в одну строку через запятую и пробел. В конце запятой не должно быть.

7. Проверка чисел на чётность/нечётность

Бери любые лабораторные первого второго курса и клипай. Найми репетитора или договорись с преподавателем ВУЗа чтобы приходить на лекции. Есть много студентов которые готовы за пожрать тебя обучить, просто оставь объявление на форуме.

Підписатись на коментарі