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)
Ответ на: комментарий от Obezyan

того что было описано в справочнике по настройке и использованию 1С для ПОЛЬЗОВАТЕЛЯ

Уже: поиск по регулярным выражениям. Простой поиск с выдачей более 50 позиций. И т.д. Собственно, уже сказано: дана «1С Торговля» в торговую точку «розничный магазин» и начались забеги по граблям с совпадениями названий и разными ш/к и наоборот, с минусованием позиций без предупреждений и пр. Т.е. без грамотного интегратора, без обучения персонала БД приходилось «прочёсывать» вручную, даже накладные вводить вручную, поскольку минимальное отличие в названии и даже при совпадении ш/к – новая запись.

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

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

Если целью учебы является «зарабатывать» то в России надо учиться на специальности в области нефтегазодобычи или управления бизнесом. А в США больше всего получают врачи,адвокаты и пилоты если верить тому что в интернете пишут.

А сто тысяч - это курьер в Москве,образование не требуется.

Учиться на программиста имеет смысл только если интересно именно программирование. Ибо за последние десятка полтора лет программистов расплодилось столько что они «локтями толкаются».

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

В малом я и работал и ни одна 1С (подаренная, унаследованная и спираченная) не подходила. Для того, чтобы подходила, её необходимо настроить под хотелки пользователя/оператора.

Подтверждаю. Лично наблюдал это,работал в фирме на сотню человек народа. Я там управлением станками занимался и параллельно за линуксовым сервером присматривал. Хотя было это пару десятков лет назад, там версия 1С 7.Х была. То ли двух,то ли трех настройщиков выгнали со скандалом,причем один из них гордо именовал себя официальным «франчайзи» и ходил всегда в костюме с галстуком. Работал я там года три,когда увольнялся - настраивать 1С продолжали. Они хотели добиться чтобы 1С соответствовал их бизнес-процессам,а не менять бизнес-процессы под 1С.

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

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

Так ведь удобные кирпичики точно также надо создавать и на своём языке. Которые еще надо сам по себе создать.

В качестве примера создания удобных кирпичиков на встроенном Питоне приведу FreeCAD.

(б) возможно в те далёкие годы погромисты 1С не знали ни Луа, ни вообще про существование Луа или Питона.

Вот это скорее всего.

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

нынешний питон даже на Windows 7 уже не работает

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

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

Makefile’ы — это инструмент. Кому нужно, тем нужно.

Это общеупотребительный распространенный инструмент. И поэтому надо иметь представление о нем. Не знать о make это все равно как если бы оператор роботизированного станка не знал о существовании молотка.

Ваши навыки с Makefile’ами будут абсолютно бесполезны при работе с Github Actions. Хотя по сути — одно и то же.

Вот именно потому что по сути одно и то же - навыки не будут бесполезны.Под навыками имелось в виду понимание что вообще такое этот класс инструментов. А выучить нужные команды - много времени не надо.

Я вот в начале 90х вобщем-то случайно наткнулся на программный продукт для управления версиями называвшийся RCS. Он показался мне удобным и я стал его использовать. Хотя вокруг вообще никто не понимал что это и зачем оно надо. Когда через много лет стал входить в моду git - положенные в его основу идеи небыли для меня неожиданностью - я уже понимал что это и зачем. Хотя он конечно и сильно избыточен для программиста,работающего над небольшим проектом в одно лицо.

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

Горбачёв никого не убивал и ничего не крал

То что он «не крал» не помешало ему в старости жить с комфортом аж в Лондоне (не самое дешевое место обитания).

Вы блатных романов начитались что ли?

Нет,в реальности насмотрелся. Напомню,что моя молодость пришлась на конец 80х-90е годы когда можно было много чего такого увидеть.

А построили то, что есть сейчас.

Нет,они построили то,что было в 60х годах. То что есть сейчас - строили уже разного рода околокриминальные дельцы после них. Ничего не имею против бизнесменов, собственноручно создавших своё дело. Но когда «прихватизируют» то что было построено народом - это у нормальных людей называется не бизнес,а воровство.

Для этого и горшечник, и математик должны стать «политическими животными»

Не все хотят вести себя как животные. Лозунг «человек человеку - волк» не лучшая основа для построения человеческого общества.

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

Это общеупотребительный распространенный инструмент.

Один из инструментов в одной из ниш. Кому нужен и так выучит. Кому не нужен — спокойно обойдётся.

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

Ну, тогда у меня есть навык игры на рояле, скрипке и пилотирования боевых вертолётов.

Когда через много лет стал входить в моду git

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

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

минимальное отличие в названии и даже при совпадении ш/к – новая запись.

Ну это не 1С-специфичная проблема к сожалению. Способы борьбы есть,но они всё равно «полу-ручные». Как пример - алгоритм Левенштейна при сравнении записей. Тогда можно выводить похожую запись и спрашивать у операторы - а это точно не вот это,нужно создать новую запись?

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

Один из инструментов в одной из ниш.

Мало того что инструмент весьма распространенный,так еще он и представитель целого класса подобных инструментов.

Кому нужен и так выучит.

Чтобы начать учить - надо сначала вообще узнать о существовании класса подобных инструментов. И вот неплохо если во время обучения об этом расскажут. А синтаксис мэйкфайлов конечно можно оставить и для самостоятельного изучения по потребности,с этим нисколько не спорю. Абсолютно аналогично с системами управления версиями - надо откуда-то узнать что они существуют чтобы потом выбрать наиболее подходящую к своим задачам и ее изучить.

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

у 1С есть не устранимое преимущество

они предвидят юридические иннованиции области пременнимости их софта

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

дэк не все и не всегда :)

а так это классическое «быстро(реализация а не использование) и дёшево» приснопамятное «а дальше трава не расти» «здесь и сейчас»

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

последний абзац касается сложной(NP?!) задачи о характере рельефа области значений по критерию оптимальности(глоб экстремума) на максимизацию(кста чего) распределея досуга всех людей и траектории к раю всего человечества ;)

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

ещё смешнее

«хотящие» через денги чутку оттирают от не очень держащихся за кормушку от этой самой кормушки -

при том что в программирование зашли ещё до текущего хайпа - но во время хайпа до бума дот-комов

и любовь(может и не расделённая) к программированию(а может к решению задачек) всё ещё пылает

:)

вопрос как всегда комплексный и мнимая его часть интересней реальной

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

по последнему абзацу -

это очень сложная задача на оптимальное распределение ресурсов

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

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

эх https://cat-v.org/

make сами Викторы Франкенштейны за место табов «почти сразу» пользовались mk

та же фигня с rc

«достаточно хорошие» затеняют

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

Вот для этого и существует в Аде типы для которых можно задать диапазон значений,который не пропустит отрицательный НДС.

Так отрицательный НДС ведь может быть. Если есть отрицательная сумма (встречается в корректировочных накладных). Поэтому как-то контролировать, что знак суммы и НДС совпадает, придётся тестами. А вот строку точно не умножишь без ошибки.

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

если утрамбовывать семантику в задданое(кратное словам)битовую последовательность у которой есть исчислимые то флаги(али перечисления али вообще какое нечно) в ведущие биты -

врядли весь расчёт при публикации законов спецом затачивался под 16/32/64 али ещё какое общераспространнённое число бит

популярность -1

это все единицы в доп-коде по факту это крайнее у безнаковых

так то если отрезать пространство для то выставлением ведущего(если размер стабилен) тот же utf-8 ровно из той же логике

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

если утрамбовывать семантику в задданое(кратное словам)битовую последовательность у которой есть исчислимые то флаги(али перечисления али вообще какое нечно) в ведущие биты -

В языках с динамической типизацией так и делают. Несколько битов тэг типа, остальное - число или указатель.

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

по последнему абзацу:

нужда(бытовая) залогичела

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

Странная логика создателей «языка 1С» - операция умножения работает правильно,ругается на аргументы разных типов,а операция сравнения почему-то аргументы разных типов пропускает.

Вообще, так во многих языках с строгой динамической типизацией

Python 3.12.7 (main, Nov  8 2024, 17:55:36) [GCC 14.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a = 3.1
>>> b = "ok"
>>> a * b
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't multiply sequence by non-int of type 'float'
>>> a == b
False
Добро пожаловать GNU CLISP 2.49.93+ (2018-02-18) <http://clisp.org/>

[1]> (setq a 1.1 b "ok")
"ok"
[2]> (* a b)

*** - *: "ok" не является числом
Имеются следующие варианты продолжения:
USE-VALUE      :R1      Input a value to be used instead.
ABORT          :R2      Прервать главный цикл
Break 1 [3]> :r2
[4]> (equal a b)
NIL
monk ★★★★★
()
Ответ на: комментарий от qulinxao3

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

А когда в голове вместо мозгов песенник Окуджавы, ПСС Стругацких и накрепко усвоенная таблица интегралов и производных, тут всё, амба, капут и фиаско. Что и произошло.

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

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

А какова целевая функция?

как устроено общество, в котором живёшь, какие есть ограничения, какие действия к каким последствиям приводят и что теперь со всем этим делать

А зачем? Вот нравится человеку ловить рыбу. Или исследовать математические функции. Зачем ему это общество? На тот свет его с собой не заберёшь.

песенник Окуджавы, ПСС Стругацких и накрепко усвоенная таблица интегралов и производных, тут всё, амба, капут и фиаско. Что и произошло.

Многие из той плеяды вполне успешно продолжили изучать свои интегралы и производные. Даже без вузов.

monk ★★★★★
()

А что тут думать? Java а потом перейти на Kotlin или Scala

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

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

Моя любимая история про SAP: у LIDL (местная Пятёрочка) была самописная система для раскладывания товаров по полкам. Внутри, как водится, Ад и Израиль. Все выли. Решили перейти на SAP/Hana. Потому как SAP — гордость немецкого IT и там всё самое лучшее (и самое немецкое). Семь лет тысяча инженеров ваяла новую систему для раскладки, каждый семь клавиатур железных раздолбал, семь мышей железных извозил, потратили пол миллиарда евро и поняли, чтобы доделать, нужно потратить минимум ещё столько же. Плюнули, вернулись на старую. Не такая уж она и плохая была.

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

То что он «не крал» не помешало ему в старости жить с комфортом аж в Лондоне (не самое дешевое место обитания).

Жить в Лондоне — не преступление. Жить с комфортом — тоже.

Нет,в реальности насмотрелся.

В реальности гопота живёт жизнью самой мизерабельной: ест плохую еду, пьёт плохой алкоголь, постоянно влипает в неприятности. Временами сидит, что ни радости не даёт, ни здоровья не прибавляет. Женщины бывают и у таких, но — такие же.

Нет,они построили то,что было в 60х годах.

Чем моложе в интернете собеседник, тем лучше ему жилось при Сталине. 60-е, полагаю, это время детства ваших родителей?

То что есть сейчас - строили уже разного рода околокриминальные дельцы после них.

Ай-яай-йай. А как же это получилось? А кто это допустил?

Но когда «прихватизируют» то что было построено народом

Народ не является субъектом имущественных отношений. Советский технарь, это человек, который искренне не понимает: чем отличается его велосипед, от велосипеда, на котором ему дали покататься. Т.е. в своём развитии находится ниже детей младшего школьного возраста.

Лозунг «человек человеку - волк» не лучшая основа для построения человеческого общества.

Ну, да. А строчкой выше вы же рассказываете как у ваших чудесных человечков, которые ничего плохого не хотели, завелись «околокриминальные дельцы» и страну покрали. Тут бы и вывод какой сделать, не связаны ли эти вещи.

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

Мало того что инструмент весьма распространенный,так еще он и представитель целого класса подобных инструментов.

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

Чтобы начать учить - надо сначала вообще узнать о существовании класса подобных инструментов.

Я согласен с этим, но тут достаточно одной обзорной лекции про полезные инструменты в современном IT.

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

А какова целевая функция?

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

Зачем ему это общество?

А гравитация ему зачем? Может ему бы без неё лучше было? Может бы и было. Но она есть, как есть и общество в котором он живёт. Соответственно, эти факты: гравитацию и общество, нужно как-то учитывать в своей жизни.

Многие из той плеяды …

А об этом вы лучше с @watchcat382 поспорьте. Он, кажется, считает что в 90-е что-то плохое произошло у людей.

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

электронный калькулятор нельзя,а его механический аналог можно.

механический аналог калькулятора арифмометр, но никак не абакус

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

ээээ возмём такую продажную науку как демография

вообще разрыв хозяйственных связей сыграл основную роль в очень плохих трендах 90ых

а теперь вопрос = а на фейхуа именно случались так - не самый плохой но очевидно и даже не вполне хороший :)

что же обусловило что не СССР вступил в ЕС от лисабона до владика да даже просто на основе эко(нических) связей со старушкой Е-пой не оказался первым прынцем а «новая»(восточная)- осталось бы так мостом меж центрами — что вообще обусловило тот вариант выхода згв :)

реально слишком всё както многомерно произошло :)

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

В R так и сделано

и пришлось «сделать необязательным», оказалось как ни странно «ослиным мостиком» еще тем (((

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

Зубрить таблицу умножения вредно

правильно, для этого дела есть «таблица квадратов до 100»

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

вообще разрыв хозяйственных связей сыграл основную роль в очень плохих трендах 90ых

Могли ли люди немножко подумать об этом заранее?

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

Обычно люди хотят жить и жить хорошо.

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

Соответственно, если в результате ваших действий вы жить немножечко перестали

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

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

Зачем собирать бутылки, если есть уйма работы, не требующая квалификации и оплачиваемая в разы больше, чем можно получить от собирания бутылок?

Но она есть, как есть и общество в котором он живёт. Соответственно, эти факты: гравитацию и общество, нужно как-то учитывать в своей жизни.

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

Он, кажется, считает что в 90-е что-то плохое произошло у людей.

Самое плохое, что у них произошло — это полный переворот мировоззрения. Мораль изменилась, историю переписали, … не все любят жить в эпоху перемен.

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

посмотрим как следую ща по земшару подумают

ибо всё интересней и интересней время вскач

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

Если брать бытовой комфорт, то нынче …

А ещё можно лопатой человека по спине ударить, а лет через 30 подкатить с «ну чего ты дуешься, сейчас-то у тебя ничего не болит».

Зачем собирать бутылки, если есть уйма работы, не требующая квалификации и оплачиваемая в разы больше, чем можно получить от собирания бутылок?

Вернитесь в прошлое и спросите у людей зачем они это делали.

он должен воздействовать на окружающее общество.

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

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

Линтер это лечит. И ругается если это не так.

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

лял

История Востока в 2ух Васи-лева

WIRD - Самые странные люди

- последний абзац при всей его правоте попахивает замшелым яжматьством

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

А ещё можно лопатой человека по спине ударить, а лет через 30 подкатить с «ну чего ты дуешься, сейчас-то у тебя ничего не болит».

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

Вернитесь в прошлое и спросите у людей зачем они это делали.

В прошлом это было надо, сейчас уже нет. Времена стали лучше.

Соответственно, если он пустил процесс на самотёк и результат ему не понравился, то это не «само насралося», а его личная, персональная вина.

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

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

Лоль последнее у Шелеста Щелинское как раз про франшизу

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

Не понял к чему это.

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

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

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

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

Так и обсуждается дееспособность советских НТР. На индивидуальном уровне, да, бывает всякое. А вот если социальный слой из нескольких миллионов людей

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

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

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

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

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

влияние ширнармасс на политику равно примерно нулю.

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

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

Абсолютно с вами согласен. Я о том третий день и вещаю.

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