Как стать автором
Обновить

Комментарии 76

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

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


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

>Вся статья о том что конкретный выбор не имеет значения.
Вот я и сомневаюсь. Если вы выберете в качестве первого языка Хаскель, или скажем Lisp (любой из), у вас в итоге будет совсем другой набор базовых навыков, чем если вы выберете тот же javascript (и пойдете в сторону веба). Психологические барьеры зачастую очень сложно преодолеть, я не думаю, что все люди такие же, как вы или я, и им легко свой выбор в любой момент поменять, и взяться за другое направление.

Выбор не имеет значения (почти) только если вы выбираете между очень похожими, и скажем так, обычными языками. Ну там, Java или C# — наверное все равно, переход на другой не будет так уж сложен (хотя экосистемы уже очень разные).

Ну то есть, в целом наверное можно согласиться, что начать можно с чего угодно — но результат все-таки будет отличаться. Если меня спросить, то я бы пожалуй сказал, что стоит взять сразу два или даже три языка, возможно разных, и попробовать с ними поиграться. В мое время это были скажем Алгол-60, Фортран, PL/1, ассемблер S/360 (причем три из них де-факто процедурные, и похожие), а сейчас можно и что-то поинтереснее найти для начала.
Главное — пробудить и развить интерес. Потом можно будет повторить первый этап и найти язык который кажется лучшим с учётом полученного опыта.
Да, именно так.
Я ничего не имею против интереса. Просто автор, если вы заметили, предлагает начинающему _самому_ выбрать язык. По интересу, да — как его описывают в интернете другие люди.

Мне вот далеко не очевидно, что это не будет результатом просто хайпа вокруг языка. То есть будет выбран язык не самый подходящий, а тот, о котором больше шумят. Модный, по-простому говоря. Более того, начинающий просто не сможет сам оценить, что на самом деле важно и интересно, а что — словесный мусор.

Как раз в этом направлении я бы ожидал, что начинающим дадут более конкретный совет — пусть даже не слишком детальный. Ну типа «Попробуйте Rust, если хотите писать что-то близкое к железу, но не на C», или «Попробуйте Хаскель, если вам нравится математика» (я тут упрощаю и утрирую, конечно же).
Статей которые говорят что именно с этого нужно начать — миллион. Я же хотел рассказать о более важных вещах. Я не верб в новичка на расте, простите но нет. Пусть новичёк выберет хайповую штуку и чувство участия в хайпе поможет ему в нелёгком пути. Ничего страшно, всё равно потом брать руль в свои руки и рулить в нужно направление. Когда учишься трогаться на машине нужно трогаться в том напроавлении в котором автомобиль стоит, крутить его на завадя — плохая идея. Тронешься, потом руль будешь крутить.
Не, ну тут я не вижу особых причин для спора. Одного точного ответа все равно нет, и люди все разные. Я свой взгляд изложил, то что он от вашего отличается — нормальное явление.

Ещё важный момент, чтобы была IDE, которую можно скачать и начать пользоваться, а не танцевать вокруг неё с бубном.
И чтобы эта IDE не была хуже блокнота и консоли, как, например, то, что поставляется с Питоном.

А как же PyCharm?

Это уже другое дело.

НЛО прилетело и опубликовало эту надпись здесь

Ну, когда программа измеряется первыми сотнями строк — можно и так.

НЛО прилетело и опубликовало эту надпись здесь
С моей точки зрения для начала все языки подходящие, вообще слово подходящие сразу вызывает вопрос «подходящие для чего?»

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

Возможно у вас нет тех 40+ лет опыта, как у меня? Я таких людей видел и вижу постоянно, которым тяжело переучиваться. Они изучили что-то одно, и пытаются на этом тянуть годами и десятками лет. Если у вас не так — это же не значит, что всем это легко?
Такие люди есть, с этим ничего нельзя сделать. Но вот угадать нужную через 20 лет технологию сегодня вевозможно даже имея опыт, а мы говорим об обучении. Кому-то повезёт больше, кому-то меньше. Но тот кто начал делать добьётся больше чем самы везучий давитель дивана.
Насчет угадать — согласен. И насчет того что лучше начать хоть что-то, чем выбирать бесконечно — тоже. Собственно, чтобы не гадать (без опыта), можно было бы дать какие-то советы поконкретнее, скажем, описать некоторые группы языков, которые внутри более-менее похожи. Но я прекрасно понимаю в тоже время, что давать такие советы сложно.
Ну не совсем, мне крайне сложно было справиться с lisp, Forth и тот легче пошел.
НЛО прилетело и опубликовало эту надпись здесь
Вы будете долго смеяться но 5 или 6 моих первых языков я действительно никогда уже не использую, да их и вообще почти никто не использует
НЛО прилетело и опубликовало эту надпись здесь
Дела давно минувших дней, предания старины глубокой…
Лично у меня: машинные коды(в восьмиричной системе!) Урал-1, потом Алмир, фортран-4, ассемблер 8080, Бейсик в нескольких инкарнациях, Алгол-60, ассемблер Электроника-60, Паскаль, а вот дальше уже Lisp(это для AutoCAD), Forth(это для обработки измерений в реальном времени), Си и разные ассемблеры, Lua. Я пишу довольно редко и всегда для управления каким-либо железом, почти всегда в реальном времени, поэтому С++ никогда не пользуюсь, хотя знаю конечно, и вообще ООП с железом плохо дружит. Более высокие уровни я всегда сплавляю другим, сам смотрю только архитектуру и дизайн
НЛО прилетело и опубликовало эту надпись здесь
Ошибиться в чем? Если о том, что будет ненужен — 99,9% будет не нужен, но ПОТОМ! а сейчас если понравился — хватай и смотри, потом разберешься и это гораздо лучше чем тебя будут водить за ручку и говорить «Сначала учи это, а потом это» — ну не интересно это! Потом разберусь что надо, а сейчас запустить свое «Hello world» да еще с ошибкой и исправить ее тут же! Вот где кайф, а матрицы я уж как нибудь и потом подсчитаю
>Ошибиться в чем?
В своем будущем. И потом не разберетесь, не надейтесь. Потеряете интерес, и уйдете в эффективные менеджеры. Хотите сказать, что такой сценарий невозможен?

>«Сначала учи это, а потом это» — ну не интересно это
Я совершенно согласен, что интерес (для начала) — это очень важно. Но обучение не может строиться на одном интересе, потому что ему свойственно пропадать. Иногда нужно усвоить некоторые фундаментальные вещи, возможно сложные для понимания. Или когда сразу не очень понятно, зачем они нужны.

Фактически, автор предложил пустить все на самотек. Я не могу доказать, что такой подход верный, или наоборот. Вряд ли такое вообще можно доказать. Но я считаю, что учить (и учиться) можно и нужно иначе. Скажем, нужно давать человеку принципиально разные языки. Даже если он никогда не будет писать на лиспе — нужно попробовать, как это делается. Нужно посмотреть на язык с реально мощными типами данных, желательно статически типизированный. И на другой язык, типизированный динамически. Попробовать разные подходы. Во-первых, это как раз реально интересно. А во-вторых, понимание, что одни и теже вещи можно делать разными способами — это очень полезно в перспективе.
Потеряете интерес, и уйдете в эффективные менеджеры.

Значит судьба такая.


Но обучение не может строиться на одном интересе, потому что ему свойственно пропадать.

Если интерес пропал — значит он не настоящий.

Так зачем это еще и стимулировать? При обучении стоит создавать его искусственно. В том числе — путем внесения разнообразия в языки.

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

А можно простой вопрос — у вас дети есть? Они учатся в школе? И изучают там только те предметы, что им интересны? Хотел бы я на такое посмотреть.

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

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

Человек хочет стать программистом по зову души или сугубо ради денег?

Обычно в одном программисте прекрасно сочетается и то, и другое. Но не суть важно, этот самый зов души возникнет не на пустом месте. Профессия — это не девушка, к ней не бывает любви с первого взгляда за счёт выброса гормонов. Сначала надо как раз заинтересоваться с чьей-то помощью, потом опять же таки попробовать с чьей-то помощью, а уже после этого может возникнуть «зов души».
Сначала надо как раз заинтересоваться с чьей-то помощью

И почему это мне ничья помощь не потребовалась? Читал книжку про компьютеры, узнал, что бывает такой BASIC. Решил попробовать — понравилось. Всё.
Сам процесс разработки и написания кода доставляет удовольствие. Это необходимое и достаточное условие, чтобы стать программистом.

И почему это мне ничья помощь не потребовалась?

Таких как вы, среди миллионов программистов, в пределах статистической погрешности. И половина из них тут на Хабре :)

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


Помощь в обучении — это понятно, это нужно. Но помощь в поддержании интереса — это что-то выходящее за рамки моего понимания.

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

Потому что человеческое восприятие, оно не полярно. Да, бывают исключения, когда кто-то сам загорелся идеей, сам разобрался, сам довёл до конца. У меня, например, было точно так же, я вырос в семье горного мастера и химика, безнадёжно далекой от электроники в целом, и от вычислительной техники в частности. Но мне как-то случайно мама три с лишним десятка лет назад купила детскую книжку про кружок программирования на калькуляторах, я «загорелся», и отец, нифига не понимая собственно в этом деле, но видя мой интерес, подарил мне на день рождения МК-61.
А все остальные вокруг меня пришли в программирование другим путём. Кто-то просто пошел в институт, потому что специальность была популярная, кто-то курсы закончил, у кого-то семья ИТшников. И они хорошие программисты, никто себя не насилует, но без человека, который их заинтересовал, будь-то родители, преподаватели и так далее, они не стали бы программистами. И даже я сам, не будь той книжки (или какой-то другой такой же), чёрта с два стал бы программистом.
>Человек хочет стать программистом по зову души или сугубо ради денег?
Это вопрос сложный. У меня ребенок вообще не думает про деньги. Хотя пора бы уже думать, на что собирается жить уже совсем скоро. Если деньги при выборе не единственный стимул — то это не самый плохой вариант, мне кажется.

Я учился программировать, потому что мне этого хотелось. А потом я случайно узнал, что за это хорошо платят и сделал это своей профессией.

Если пропал интерес на любом этапе то это очень плохо, поэтому (как мне кажется, я не настаиваю на своем, возможно ошибочном мнении) если обучение не строится на интересе как на фундаменте, то не будет результата.
А что касается разных языков, то да, это безумно интересно когда встречаешь что-то абсолютно новое, и пока хоть что то не сделаешь на этом языке (для себя, исключительно для себя) не успокоишься. Лично у меня одно из самых ярких воспоминаний, как я сражался с обратной польской нотацией и таки справился с нею.
Технологии и подходы меняются очень быстро

Ну как «очень быстро»? Только в период интенсивного роста в каком-либо направлении. Например, недавно так росла веб-разработка, но пик уже пройден, сейчас идёт стабилизация. Во многих остальных сферах ИТ вы будете спокойно использовать технологии и подходы десятилетней давности ещё лет пять-десять. Поэтому эта «аксиома» — нифига не аксиома
Вот представье что человек учится в 7 классе школы и хочет программировать, очень много кто начинает в этом возрасте. До того как он пойдёт искать работу, это минимум второй курс, пройдёт 7 лет. Всё поменяется даже там где не меняется.
А самое главное, что интересного там делать в 7м классе?
Ну, это самый важный вопрос, если вообще говорить о 7 классе.
Как что? Игрульки какие-то спрайтовые.

Любые расчёты по интересующей его теме. Я, вот, в Бейсике на ДВК орбиты рассчитывал.

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

+1.

С посылом статьи в целом согласен. Я учился программировать на BASIC на спектруме во времена выхода пентиумов 3 и 4, то есть это было не актуально совсем. Ни разу на практике не пригодились те знания, но навык программирования от языка зависит мало, и он спокойно был перенесён сначала на Паскаль, C, а потом и C++.
К списку полезного в вузе я бы добавил теоретическую информатику: алгоритмы, конечные автоматы, машина Тьюринга, методы оптимизации и всякие P = NP. Не то чтобы оно было нужно постоянно, детали все давно забыты, но знание о принципиальной возможности или невозможности решения задачи весьма полезны. Помогает не биться линий раз в стену невозможного и не сдаваться перед преодолимыми сложностями.
Вот тоже хочет написать об этом.
Согласен с автором. Если начинать учение, то только с того, что нравится. Поменять язык/профиль/технологию потом будет не так уж сложно. А вот со сложностями справиться поможет только увлечение. Если его нет, то очень сложно будет. Возможно, но сложно.
Было бы полезно добавить обзор популярных языков. Статья выглядит так «Выбирайте область которая нравится и берите популярный там язык который нравится, все». Где же перечисление этих областей и языков в общих чертах?
Я понял что не могу дать хорошего совета таким образом и сознательно не рекомендовали ничего конкретного. Посыл в том что конкретика менее важна чем продвижение.
Я понял что не могу дать хорошего совета

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

Перечисление есть во всех остальных статьях для новичков, а в этой ценный совет про получение удовольствия от процесса.

Я скорее согласен с автором — хватай что нравиться а не то что полезнее. Язык это все таки другая сущность, например если нравиться физика, то совсем не обязательно понравиться С++
НЛО прилетело и опубликовало эту надпись здесь
А это важно? И, кстати, не с пунктуацией а с орфографией :-))
НЛО прилетело и опубликовало эту надпись здесь
И, кстати, в моей фразе слово «скорее» не является вводным словом, попробуйте для ясности заменить его словом-синонимом «полностью»
Пусть монетку бросит. Орел C# если решка то Java. Остальные языке далеки от этих двух. Почему именно они? Потому что 1) Можно сделать вообще что угодно. 2)Куча народу у кого что-то можно спросить. 3) Куча библиотек и гайдов. 4) Статическая типизация. Человек сразу научится с типами данных работать. Если к играм больше тянет то однозначно C#. Ну а С++ имхо слишком сложный и проблемный для первого ЯП. Все остальные либо динамические типизированные либо малопопулярные поэтому лучше эти два.
Просто начните с Паскаля, как и многие пацаны из 90-х, не зря же его преподавали практически везде где нужно было научить программированию. Бейсику тоже учили он здох совсем и на мой взгляд Паскаль все таки понятнее Бейсика. Вторым языком учите бессмертную классику — С или С++, т.к. большинство языков С-подобные и произошли именно от них. Ну а потом учите любые извраты. Если вы начнете с Пролога, то вы явно будете каким то не заурядным программистом и вам тоно не помогут никакие советы…
Выбирать надо не язык программирования, а качественный учебник программирования — который будет учить не особым случаям и исключениям из правил в модном языке, а основам алгоритмики. Будет учить сравнивать эффективность и применимость разных алгоритмов для решения одной задачи… А язык будет тем, который используется в этом учебнике для объяснения алгоритмов.

Первый язык программирования оказывает очень серьёзное влияние на формирование стиля написания кода. После JavaScript или Python придётся долго и больно отвыкать от вседозволенности, провоцируемой языками с динамической типизацией, а после C — от трюкачества и повсеместного использования побочных эффектов и адресной арифметики.

Потому, если говорить об императивных языках, для начального обучения нужен предельно простой язык с минимумом «магии» (например, this в ООП — это уже «магия») и максимально жёсткой статической типизацией. В первой редакции учебника Вирта использовался Pascal, во второй — более простой (и при этом более мощный) Modula-2, в актуальной — ещё более простой (и, опять же, более мощный) Oberon-07.
Выбирать надо не язык программирования, а качественный учебник программирования — который будет учить не особым случаям и исключениям из правил в модном языке, а основам алгоритмики

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

Вот как раз перейти с С/Паскаля на что-то менее строгое (не знаю, можно ли термин «строгий» применить к С, конечно) намного проще, чем наоборот.
Боюсь, любой учебник с основами алгоритмики в качестве старта для программирования напрочь отобьёт желание программировать у кого угодно.
Если даже предельно простой Вирт может отбить желание, значит реального желания и не было.
Вот как раз перейти с С/Паскаля на что-то менее строгое (не знаю, можно ли термин «строгий» применить к С, конечно) намного проще, чем наоборот.
Паскаль (если это именно классический Pascal, а не PascalABC.Net) — отличный учебный язык. Но С таковым не является: практически любой ЯВУ со статической типизацией будет строже, чем C; плюс придётся учить те базовые вещи, которые в С отсутствуют: начиная с передачи по ссылке и представления о том, что массивы — полноценный тип данных, а не синтаксический сахар для адресной арифметики.
Если даже предельно простой Вирт может отбить желание, значит реального желания и не было.

Понимаете, желание программировать никогда не бывает желанием сортировать массивы или делать бинарный поиск. Желание программировать — это всегда желание создать что-то конечное, будь-то игрулька, мессенджер, бот и так далее. Основы алгоритмики, это лишь одни из многих инструментов для достижения цели. Поэтому надо сначала учить именно язык, среду разработки и библиотеки, на примерах создания чего-то осязаемого, а в процессе — заглядывать на нужные для этого алгоритмы.
если это именно классический Pascal

Давайте исходить из того, что реализаций классического Паскаля не существует. Паскаль, на котором человек будет учиться, это либо FreePascal/Delphi, с указателями и прочим добром, либо PascalABC.Net.
плюс придётся учить те базовые вещи, которые в С отсутствуют

О, это как раз намного проще. Я не считаю, что С — такой уж хороший язык для обучения, тот же Паскаль намного более подходит. Но изучив С, человеку очень легко изучать другие языки. Как раз за счёт того, что появляется полное понимание, как внутри работают более сложные типы.
Понимаете, желание программировать никогда не бывает желанием сортировать массивы или делать бинарный поиск.
Желание написать роман никогда не бывает желанием выучить правила грамматики русского языка. Но без знания этих правил любой текст превратится в нечитаемый набор букв.
Основы алгоритмики, это лишь одни из многих инструментов для достижения цели
Нет, основы алгоритмики — это те базовые знания программирования, без которых любой проект превратится в кучу кривых велосипедов.
реализаций классического Паскаля не существует
FreePascal/Delphi прекрасно понимают код, написанный на классическом Pascal. Тогда как на PascalABC.Net этот код вызовет кучу предупреждений. Но главное даже не этом, а в том, что в Pascal/FreePascal/Delphi присваивание — оператор, а в PascalABC.Net — операция (как и в C, кстати) и одно это разрушает принципы, на которых построены и классический, и объектный Pascal.
с указателями
В классическом Pascal указатели тоже есть, только там они всегда явные. Что намного лучше для обучения, чем «здесь играем, здесь не играем» Delphi.
изучив С, человеку очень легко изучать другие языки. Как раз за счёт того, что появляется полное понимание, как внутри работают более сложные типы.
Изучив C первым языком, человеку придётся долго и мучительно переучиваться писать качественный код на языках, в которых C'шного трюкачества нет. Что касается понимания работы сложных типов, то для этого куда полезнее вторым языком изучить основы ассемблера.
Желание написать роман никогда не бывает желанием выучить правила грамматики русского языка. Но без знания этих правил любой текст превратится в нечитаемый набор букв

Сейчас, в 21 веке, несложно быть успешным программистом, не прочитав ни единой книги по алгоритмике. Хорошо это или плохо, вопрос отдельный. Но несложно, это факт. Есть какие-то исключения, области, где алгоритмика до сих пор нужна, но это именно исключения. В 99% случаев вам, чтобы софт нормально работал, надо просто знать «кирпичики» библиотек, которые есть на вашей платформе. И метод sort() будет для вас прекрасно сортировать, даже если вы понятия не имеете про алгоритмы сортировки.
Изучив C первым языком, человеку придётся долго и мучительно переучиваться писать качественный код на языках, в которых C'шного трюкачества нет.

Наоборот, если человек приучен писать качественный код на С, он везде будет писать качественный код. А если не приучен, то совсем не важно, на каком языке он пишет :)
Сейчас, в 21 веке, несложно быть успешным программистом, не прочитав ни единой книги по алгоритмике.
Можно быть успешным кодером, умеющим собирать из готовых библиотек код, решающий шаблонные задачи. Только вот к программированию это никакого отношения не имеет.
И метод sort() будет для вас прекрасно сортировать, даже если вы понятия не имеете про алгоритмы сортировки.
Только до тех пор, пока решаемые задачи позволяют более-менее эффективно использовать встроенную сортировку. Как только попадётся что-то нетривиальное, выбивающееся из «средней температуры по больнице», под которую делаются стандартные библиотеки, о встроенном методе sort придётся забыть.

Впрочем, сортировки надо изучать не для того, чтобы каждый раз писать свой велосипед, а для того, чтобы на их примере учится понимать применимость алгоритмов для разных входных данных, учиться оценивать эффективность собственного кода.
если человек приучен писать качественный код на С, он везде будет писать качественный код
Проблема только в том, что научиться писать качественный код на C, как первом языке, многократно сложнее, чем на Pascal или на Go. Качество кода — это прежде всего дисциплина кодера. И чем больше вольностей позволяет первый язык, тем сложнее привить эту дисциплину. А в плане бесконтрольности и вседозволенности хуже С только ассемблеры и модные языки с динамической типизацией.
И чем больше вольностей позволяет первый язык, тем сложнее привить эту дисциплину.

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

Дело не в размере кода. Классическая конструкция
while (*b++ = *a++);
содержит три!!! побочных эффекта в одном простейшем выражении. Так не получится написать ни в Pascal, ни в Go. Но в C это абсолютно нормальная и даже поощряемая практика.

Язык, в котором можно написать
a ^= b ^= a ^= b;
, провоцирует учащегося писать именно так. А там, где более «строгие» языки выдадут сообщение об ошибке, в C будет никак не отображаемое UB — при котором ошибочный код может выдать правильный результат: учащийся даже не поймёт, что совершил ошибку.

Да, вы правы. На этапе обучения такими приколами лучше не пользоваться.

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

Разделение на «кодеры» и «программисты» — штука совершенно надуманная. Причём надуманная, как правило, чуваками, которые хотят выделить свою значимость и профессионализм в сравнении с кем-то, пишущим нечто более примитивное. На самом деле все они программисты, и те, кто тензорные вычисления для задач ИИ сочиняет, и те, кто формы для главбуха Марьи Ивановны шлёпает.
Как только попадётся что-то нетривиальное, выбивающееся из «средней температуры по больнице», под которую делаются стандартные библиотеки, о встроенном методе sort придётся забыть.

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

… тем вероятнее юный падаван, приступив как-нибудь к разбору собственного кода, написанного полгода назад, поймёт, что он сделал не так, и начнёт писать нормально. А язык, который сам по себе не позволяет писать говнокод, не научит и понимать, почему говнокод — это плохо.
НЛО прилетело и опубликовало эту надпись здесь
А может быть первого языка, идеально подходящего для обучения программированию (с ноля) вообще нет среди существующих? Может быть нужен спецаильный ЯП специально и только для для обучения?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации