LINUX.ORG.RU
ФорумTalks

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

 ,


1

2

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

Ответ на: комментарий от quickquest

Все языки просты

«Ага, конечно.» (c) Вот вам, братишки, на вскидку покушать простых языков: asm, C++, haskell. Хотя насчёт C++… я бы пожалуй рискнул, разумеется начиная с простых вещей (string вместо указателей и т.п.).

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

«Ага, конечно.» (c)

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

quickquest ★★★★★
()

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

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

нет такого языка «лисп»

это семейство языков

точно так же как питоны, сиплюсплюсы и джавы можно назвать «алгол»

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

Ещё есть как минимум 3 текстовых редактора, написанных на object pascal, которые до сих пор разрабатыааются.

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

Устаревшее семейство языков это алгол, да. Мейнстрим так и не вылез из 70х.

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

Тот же самый сраный алгол только в профиль.

Ну так если таким образом рассуждать, так все языки эквивалентны. А вот вы сможете отличить Algol 60 от Algol 68? Некоторые специалисты считают их разными языками.

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

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

Анекдот вспомнился про мамашу, которая ищет для своего сына вакансию в КБ. Но перед этим просит написать для него дипломную работу.

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

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

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

  1. Лисп(MacLisp, InterLisp, ISLISP, Lisp Machine Lisp, ZetaLisp, Emacs Lisp, Common Lisp, Scheme, Clojure, тысячи их) - основан на нетипизированной лямбде плюс homoiconicity (Хотя опциональная типизация в лиспах в принципе бывает)

  2. ML (SML, OCaml, F#, Haskell, итд) - типизированное лямбда-исчисление

  3. Forth(также Factor итд) - Стековая виртуальная машина, плюс регистровое homoiconicity

  4. APL (J, K и так далее) - в основе лежит SIMD

…И так далее

lovesan ★★
()
Ответ на: комментарий от no-such-file

Жабаскрипт менее дефектен, чем питон? Вот это новость!

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

как

@rupert

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

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

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Спасибо за развернутое описание недостатков удава, но мой вопрос был не об этом. Как можно сравнивать удава и js ?

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

Как можно сравнивать удава и js ?

ЖС такой себе средний язык без особенностей. Для целей обучения это то что надо. Плюс его доступность, использование в разных сферах, возможность плавно перейти к typescript и рассказать ученикам про ООП с дженериками. Либо продолжать в сторону ФП: rescript, ocaml и т.д. После ЖС легко пересесть на жабу, кресты и другие языки т.к. когнитивный диссонанс будет намного меньше. В общем ЖС идеальный язык чтобы вкатиться.

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

no-such-file ★★★★★
()

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

  • с изучения C++;
  • с изучения алгоритмов и структур данных (оно полезно для общего развития, но почти ничего из этого не пригодится);
  • паттерны проектирования. когда заходит речь о шаблонах, то вспоминают банду четырех и шаблоны, которые применимы для Java… так же ненужная херня - пустая трата времени, если, конечно, ты не пишешь на Java… в каждом языке программирования свои шаблоны можно вывести, например, шаблон Module в JavaScript и тп, а в Python огромное количество их встроена либо реализована в стандартной библиотеке (изучение стандартной библиотеки, где всей этой явадрочи нету - прямое свидетельство о ненужности и вредности паттернов). Да и такие паттерны как одиночка и прототип , особенно последний - абсолютное зло… Отдельно стоит упомянуть начинающих разрабов, которые пихают эти паттерны куда не следует (что сродни попытке окунуть член в кастрюлю с кипятком)

С чего нужно начать?

  • изучение командной строки, основных команд, пользования Git;
  • с изучения английского языка.

С какого языка начать?

  • Python;
  • JavaScript;
  • PHP;
  • Go;
  • …и как ни странно Java, потому как она не сложнее PHP, но тогда придется выучить паттерны (зачем? - сам язык накладывает серьезные ораничения на рхитектуру программ, вот тут тебе и пригодятся всякие фабрики, одиночки)
qanon
()
Ответ на: комментарий от anc

Вы с js что ли начали

Нет, я начинал с МК-61.

Какой в попу это яп? Это так прослойка.

Прекрасный, мощный, выразительный язык. С быстрыми реализациями. Из соперников в своём классе у него только пых. Но пых для обучения менее пригоден из-за известных особенностей. Кроме того у пыха сложнее с асинхронщиной.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от anc

Как ведро перепишут на js так и поговорим

Какое отношение ведро имеет к учебному процессу? Или ты считаешь, что джун должен как минимум написать своё ядро? Надеюсь ты сам уже написал, а иначе ты не программист и вряд ли имеешь право рассуждать на эту тему.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

JS хорошо пока не захочешь сделать что-то типа этого:

class Foo {
  foo() { this.bar() }
  bar() { console.log(`bar`) }
}
let fn = new Foo().foo
fn()

Лечится так:

let o = new Foo()
let fn = o.foo.bind(o)
fn()

Из-а кучи таких особенностей - это плохой язык в качестве первого

qanon
()
Ответ на: комментарий от no-such-file

Я про то что js к погромированию не имеет никакого отношения.

Надеюсь ты сам уже написал, а иначе ты не программист и вряд ли имеешь право рассуждать на эту тему.

Написал и много на ц и на ц++

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

Нет не эквивалентны.

Вы совсем не поняли мою фразу. В теории программирования есть такая теорема, она доказана. Детали - на факультет математики серьезного ВУЗа.

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

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

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

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

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

let fn = new Foo().foo

ССЗБ. Это везде через жопу нетривиально. Если вообще есть возможность брать ссылки на члены класса.

кучи таких особенностей

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

no-such-file ★★★★★
()
Ответ на: комментарий от qanon

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

В какой класс пошли?

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

Написал и много на ц и на ц++

Вопрос был про ядро. Ты ж ядро предлагаешь писать как учебное задание. Ну так что, где твоё ядро-то, покажешь?

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Ааа, тут ам сорри, только правил код некоторых модулей.

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

никого вообще не волнует тьюринг полнота, вообще вот

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

только на них никто не пишет, дебилов нет.

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

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

макросы без homoiconicity ты нормально не сделаешь

а критерий нормальности - это чтоб как в лиспе?

так-то макросы и в сишке есть.

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

макросы и в сишке есть

Только номинально, по факту это просто директивы компилятора. Настоящие макросы под названием «шаблоны» есть в крестах, но это кровавый ужос по сравнению с реализацией в ЛИСПе.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 2)

На нечёткий вопрос получаете неверные ответы. Уточняющий вопрос: умеет ли чел программировать? Если нет, то он СНАЧАЛА должен научиться программировать, а затем выбрать ЯП, использование которого требуется для устройства на работу «рядом с домом».

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

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

Но можете расстроить человека сразу. Нулевику изучить программирование до уровня прохождения испытательного срока на работе быстрее чем за 2-3 года просто нереально. Причём реальнее лет 5ть, поскольку сам язык, алгоритмы на нём и структуры данных, это даже не половина необходимого, а едва ли 1/5 часть, остальное – библиотеки, среды разработки, проектирование, пр.

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

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

а вот макросы без homoiconicity ты нормально не сделаешь

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

qanon
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)