LINUX.ORG.RU

ЛОР, помоги выбрать ЯП для обучения

 , , , ,


1

3

Часто слышу просьбу научить программированию. Хотя пока я этим не занимаюсь, мне стало интересно, какой ЯП выбрать для введения в программирование.

Вот к каким мыслям я пришёл:

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

Не Си и не современные коммерческие языки (Java, C#, Go). Си, хотя примитивный в основе, усложнён из-за окружения, в котором используется. Современные коммерческие языки были созданы для решения проблем индустрии. Проблема общая: я хочу преподавать материал по мере нарастания сложности. Если в языке неизбежно приходится использовать классы или printf, то это затруднит объяснение (не хотелось бы слишком часто говорить «потом узнаешь для чего это нужно»), напугает студента (ему придётся писать код, используя возможности, которые он плохо понимает), создаст неправильное восприятие основ (как будто printf — это какая-то важная часть компьютера или ОС).

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

Языки, между которыми я выбираю: Pascal и Python.

Pascal устарел и денег не принесёт (обидно), но это и не является основной целью. Целью является программирование, а не современное окружение.

В частности, я не собираюсь задрачивать студента на Delphi или любой «продвинутый» диалект языка. Это противоречит цели. Я рассчитываю на то, что после должной тренировки “bare bones” нужно перейти на современный язык и это будет легко.

Важно упомянуть, что спека языка Oberon (Виртовский язык, тот же Паскаль, только упрощённый и доработанный) составляет 17 страниц.

Питон мне сложнее оценить, потому что я избегал работы с ним.

Если ограничиться императивным подмножеством, без ассоциативных массивов, классов и мета-классов, list comprehensions, HOF, исключений, то выглядит как альтернатива Паскалю. Хотя меня беспокоит динамическая типизация. Типы — очень важная вещь, хотелось бы чтобы язык помог это донести, а не быть типа «ну да, это важно, но ты забей».

Это все мои мысли.

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

Edit: дальнейшие пояснения по теме:

  • Подробнее про то, почему я считаю, что изучение основ и Паскаль хорошо сочетаются: 1
  • Почему не Си и не ассемблер: 1 2
  • Почему Паскаль: 1 2
  • Почему не Питон: 1
  • Целевая аудитория: 1
  • Почему такая размытая аудитория: 1 2
  • Про важность иерархии: 1


Последнее исправление: kaldeon (всего исправлений: 10)
Ответ на: комментарий от watchcat382

А бесплатному можно подумать выгодно.

Бесплатному выгодно, чтобы вы вообще не болели, потому в СССР развивали здравоохранение в ущерб медицине, а на Западе СТРАХОВЫМ компаниях ПРИШЛОСЬ создавать жесткие протоколы оказания медицинской помощи, вне рамок которых они не оплачивают услуги врачей. И то находятся ловкачи, оказывающие ненужные услуги и получающие за это денежку.

У платных хотябы условия обитания в больницах человеческие.

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

mister_VA ★★
()
Ответ на: комментарий от watchcat382

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

наплевательство на экологию в Китае и качество воздуха в Пекине.

Это и есть не мочь в логику. В Германии экология улучшилась, потому что вредные производства перенесли из Германии в Китай. Как это помогло экологии ПЛАНЕТЫ? С учётом необходимости везти товар из Китая в Германию?

mister_VA ★★
()
Ответ на: комментарий от watchcat382

Вообще-то в классическом программировании тип это именно свойство переменной.

Только тип переменной определяется как возможные значения переменной и возможные действия с ними. А не «выберите строку или число в разрядности 8/16/32/64 или структуру или массив».

monk ★★★★★
()
Ответ на: комментарий от watchcat382

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

Сравнивая программы на Lisp/Smalltalk против C, в C незамеченных вовремя ошибок, приведших к ущербу на порядок больше.

monk ★★★★★
()
Ответ на: комментарий от mister_VA

ПЛАТНОМУ врачу совершенно не выгодно, чтобы больной поправился … Бесплатному выгодно, чтобы вы вообще не болели… . [на Западе] находятся ловкачи, оказывающие ненужные услуги и получающие за это денежку.

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

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

в СССР развивали здравоохранение в ущерб медицине

И вы будете считать это достоинством, осознавая всю степень унижения медработников? Вы, возможно, слышали что говорят люди, работавшие в медицине при СССР? Если вы считаете, что они, в основном, желают чтобы никто не болел, видимо, вы с ним не были знакомы.

Слова «развитие» и «ущерб», пардон, не описывают всю степень несправедливости.

«Бесплатное» здравоохранение и медицина, во имя красивой фразы «общественное благополучие», разрушают частные права, в нашем случае врачей. Но без врача люди даже подорожник не смогут правильно приложить, о чём свидетельствует вопиющее состояние медицины в регионах РФ. На мой взгляд, это куда более красноречивый факт, чем ваше отношение к платным клиентам как к взяточникам, а к врачам как к мошенникам. Выгоду получают только те, кто побольше сможет уместить в свой план. К сожалению, их выдаваемая благонамеренность до сих пор ослепляет людей.

kaldeon
() автор топика
Ответ на: комментарий от kaldeon

«Бесплатное» здравоохранение и медицина

И тут мы вспоминаем о существовании бесплатной медицины в Британии и Канаде, а так же социального страхования в США…

mister_VA ★★
()
Ответ на: комментарий от mister_VA

Я знаю историю штатов с 1776 года, пока ничего не забыл.

kaldeon
() автор топика
Ограничение на отправку комментариев: