Когда пишешь на perl - это свобода. Старый добрый принцип «Есть больше способов сделать это».
Но при этом есть чёткие ограничения. Про которые не знаю те, кто никогда не писали на perl. Потому что они привыкли, что в их языках, это делают за них. А тут ты сам это включаешь. Но толпы быдлокодеров включать не умеют и бегают по тырнетам и кричат о том, что perl устарел. Ога, да. Удачи им.
Я почему-то искренне верю, что уж сильно от человека самого зависит.
Если человек откровенно упоротый и ему необходимо обсессивно-компульсивно понимать как всё и вся работает — Си прекрасно должен пойти. Особо поехавшим можно сразу дать железку, программатор и ассемблер, хай светодиодами мигают.
Если одержимости нет, но хорошо с дисциплиной — пачкаль отлично учит структурному подходу. Вполне отличным вариантом считаю голанг: структурности там меньше, но оно идейно похоже на Си с чуть более высоким уровнем абстракции.
Если человек хочет уметь всё и сразу и ему нудно до бесконечности писать всякие хелловорлды на Си (а уж среди программистов таких адэхэдэшников достаточно) — тут проще сдаться и дать ему Python. Особенно среди мелкоты распространена мотивация «шобы писать игрушки» — чё бы сразу PyGame, а потом и Godot не дать. Лишь бы мотивацию как-то поддерживать.
Вот это - мне-то, не звизди. Создавал он... Трепло. Я тоже типо «создавал» в молодости, только нифига «не взлетело». Не потому что я такой, шизанутый, а просто рынок устроен по другому.
И даже если ты сейчас, изобретёшь в гараже супер-пупер экономичный двигатель на водороде - то скорее всего, тебя просто убьют. Представители нефтяных корпораций.
Да ты ж понимаешь, что кто в том-же Delphi или Lazarus умеет создавать обьекты, тот может и на Godot что-нить сотворить. Дело вовсе не в возможностях, а в желании.
Скажем так, прямо: Возможностей - дофигища. Комп, интернет, фсё такое... Но блин идей, для реализации, ровно - ноль. Хоть в мошенники иди, чтобы заработать на хлеб насущный.
Дык понимаю. Потому вопрос и стоит не «в какой последовательности изучать» (потому как универсальной последовательности не существует), а «как заинтересовать конкретного человека в программировании».
Да, у того кто начнёт с Python база первое время будет поменьше, чем у того, кто начнёт с условного Lazarus. С Python переходить на что-то с другой парадигмой и другим уровнем абстракции будет больновасто. Но если уже за время обучения Python сформировалась сильная внутренняя мотивация — и так нормально, справится.
А вот если не тому человеку этот твой Lazarus дать, он в целом может не дойти до сотворения чего бы-то ни было на Godot, банально потому как дисциплины не хватит и то и дело в голове будет вертеться мысль «а нафиг мне это старьё полумёртвое нужно».
Знаешь, у меня есть практика, что те кто начинают с сишки, вообще никогда не станут программистами в принципе. Вот бы вернуться на 30 лет назад и начать хотя бы с бейсика.
Кстати, да. Бывает важно в один момент уйти в админы БД, и программировать исключительно на их, бд-шных, языках ;)
И даже если ты сейчас, изобретёшь в гараже супер-пупер экономичный двигатель на водороде - то скорее всего, тебя просто убьют. Представители нефтяных корпораций.
Я-бы, наверное нифига так и не понял-бы, если бы не Рэй Конопка со своей книжкой «Создание компонент в среде Дельфи». Вот только после этого начал ООП понимать. Хорошая блин штука, но опасная. В том смысле, что если безконтрольно наследовать функции - количество недокументированных багов каждой из них, растёт в даже не в геометрической прогрессии, а по экспоненте. Сам с этим сталкивался. Не скажу, что уж сильно дохрена кода наработано, но иногда поделки 5-10-летней давности, приходилось править. Ну там как, ёпта? Лежит-валяется себе модуль, написанный лет 10-15 назад, работает. И тут - внезапно. Ебёшься с мелкой незначительной проблемой вторые сутки. И обнаруживается, что это ты сам прокосячил в модуле, написанном собственными ручками, 10-25 лет назад. Ну не обидно-ли, а? А теперь представь, что этот модуль или динамическую библиотеку писал не ты, и в твоём личном архиве исходников чтобы исправить нет.
Поздно, блин. Выпендриваться-то. Шестой десяток уже пошел. Что своё - я могу и так. С высоты накопленного опыта на самом деле ёпта. А вся остальная «возня в песочнице» мне уже давно неинтересна.
Давай отвечу тебе сразу, чтобы всему подрастающему поколению было понятно. Это общий совет, я не читал конкретно ЛэтАс и какие-то другие книги по ключам, которые иные люди читали. Думайте сами.
Так вот, читать можно всё, что видишь, и на что хватает времени. Проблема для начинающего въезжать в программирование в том, что многие ЯП - это результат многих десятилетий (а если строгие формальные модели вычислений брать, то, сцуко, уже скоро один век стукнет) исследований и практики программирования, и сразу невозможно лезть на эту гору со всех направлений одновременно. Т.о. применяется метод градиентного спуска. Ушел вглубь по одному направлению, потом остановился, обошел эту сраную одиночную скалу, и пошёл слегка в другом направлении, но всё равно наверх.
В случае с С++ у тебя не будет более менее плавного подъёма. Тебя будет колбасить от ООП до ФП, спотыкаясь об абстрактные типы данных и аспекты. А когда пойдешь до параллелизма, ты просто не удержится, и улетишь в пропасть, ну или провалишься в чертову расщелину, которой нихрена не видно.
Учащийся в первую очередь хочет не просто ЯП изучить, но и построить какой-то рабочий алгоритм, который что-то делает, а не продираться через десятки лет эволюции хотелок профессиональных коллективов и индивидов.
Конкретно по С++ - лучше начинать с простых книжек, страниц на 400, но не сильно больше, если там сжато материал изложен. Если растекание мыслью по древу, с картинками и кучей упражнений, такие 400 страниц можно запросто растянуть на 600-700.
Самое главное - игнорить комменты умников (в том числе лоровских) о какой-то там «чистоте подхода», «засорения мозгов изучением того или иного языка» и проч. Это прокрастинирующие профи. Они сами нихрена не вдупляли в свое время, и ночами не спали, букварь разглядывая. А теперь говорят «да там же всё элементарнА!»
В случае с С++ у тебя не будет более менее плавного подъёма. Тебя будет колбасить от ООП до ФП, спотыкаясь об абстрактные типы данных и аспекты. А когда пойдешь до параллелизма, ты просто не удержится, и улетишь в пропасть, ну или провалишься в чертову расщелину, которой нихрена не видно.
Полностью согласен. Но считаю, именно поэтому лучше начинать с С++.
Не все получают удовольствие от постижения абстрактных языковых конструкций. Некоторым нужны эндорфины от рабочих программ, алгоритмов. Как можно быстрее, без непонятных ошибок компиляции.
Таким образом мы приходим к непреложной истине, данной нам многолетним чтением Лора и размышлением о бренности этой жизни. Истина в том, что если ты выбрал своею профессией программирование, то это значит, что до конца работы по профессии ты будешь изучать кучу разных языков. А раз так, и раз времени навалом, почему бы не начать с простого? Ведь на сложное всегда можно переключиться при желании.
<здесь вставлена анимация, превращающая скуфа в Ктулху>. Это, типа, ну мы нихрена не готовы к подъему на Эверест, но просто возьмём с собой 100 шерпов, и они за нас всё понесут, и кислород, и хавчик, и теплую одежду".
Видишь-ли какая штука, в народе бытует мнение, что тот кто начинал с Бейсика и Паскаля - никогда не станет крутым программистом на Си. И знаешь, впрошествии многия лет, я этому - верю. В частности - указатели.
Я начинал с Бейсика и Ассемблера. Бейсик оказался слишком медленным. На ассемблере написал пяток игр под К580 серию. Естественно, в машкодах у этого проца заботливо присутствовали команды косвенной адресации, я ими активно пользовался, с ними все было понятно, никаких проблем.
Но когда начал изучать Си, я ужаснулся: как можно было сделать такой ублюдочный синтаксис указателей? Почему звезду прилепляют то к типу, то к имени? Зачем звезду используют и при определении и при разыменовывании, чтобы еще больше людей запутать? Почему имя массива является указателем на первый элемент, но чтобы в него что-то записать, его не нужно разыменовывать? Такое впечатление, что авторы языка сделали как могли, сами поняли что это шняга, но переделывать и переосмысливать, конечно же никто не будет, давайте эту хрень развивать дальше, как-нибудь устаканится.
То, что делает bash хорошей оболочкой, делает его беспримерно мерзким языком. Буквально любой другой язык для скриптов будет лушче любого представителя семейства posix shell.
Звонили админы шаред хостингов из 90-х, просили вернуть их панельки на место. А ещё передать, что когда количество серверов переваливает за дюжину, правильным интерфейсом управления становится Ansible.
И даже если ты сейчас, изобретёшь в гараже супер-пупер экономичный двигатель на водороде - то скорее всего, тебя просто убьют.
Вообще-то люброй бензиновый ДВС может вполне себе супер-экономично работать на водороде. Так же как и на любом другом горючем газе типа метана, пропан-бутановой смеси или вообще на синтез-газе.
Проблема с водородом вообще ни разу не в двигателе, а в бензобаке для этого топлива.
C++26 (concepts + constexpr + consteval + meta) для вещей, где нужен нереально космический перформанс. Геймдев - Odin, C#. Быстро накидывать MVP - Python. Для фронтенда - Typescript. Для мобилки - Kotlin + Swift. C - для поддержки старого кода. Rust для всего остального.
Видишь-ли какая штука, в народе бытует мнение, что тот кто начинал с Бейсика и Паскаля - никогда не станет крутым программистом на Си.
а ещё в народе бытует мнение, что программирование - это про изучение ЯП…
Давай мой пример рассмотрим. Никто и никогда не преподавал нам сишку в институте, просто потому что на это не было академических часов. А паскаль преподавали. В итоге все смогли как-то сдать лабы на фрибсд по на предмет использования юниксового API. Но у нас специальность компютерная была, а не математическая, поэтому из других курсов мы прекрасно понимали, что такое косвенная адресация, стеки и прерывания. Во всяком случае, на базовом (программистском, а не железном) уровне там особо сложного-то и нет ничего. Всё понимание «ой каких сложных указателей, стеков, куч и прочей ерунды» приходит после курса типа «Архитектура ОС» и совершенно вводного варианта «Микропроцессорных систем».
Дальше, из этих, кто смог сдать лабы, были программисты, конечно, но из тех, кого я знал, был только один, и тот дельфист.
Не знаю, может, сейчас он разрабатывает софт для космических станций на C++ с кучей драйверов на C, но больше никого из нас кроме нас двоих из явных программистов я не знаю. Ещё был какой-то челик-второгодник, которому было до фонаря матаны, физики и вообще диплом он кое-как получил, нахваливавший продукты рейшнл роуз и ЮМЛ. Парень был с мозгами, хоть ему по психотипу больше подходили менеджерские должности. Но вот, что-то мне подсказывает, что никакая сишная лабуда не была для него каким-то существенным барьером.
Конкретно мой код на сишке, написанный мозгами, «испорченными паскалем», хоть и очень небольшого размера, но работает в проде. В буквальном смысле, в заводских условиях.
Никто не жаловался пока.
С учетом ситуации на рынке труда, я бы советовал 1С. Туда вся эта чепуха ещё не скоро придет. И платят там годно и вырасти в небольшого рабовладельца можно проще чем по другим направлениям.
и это в самом ушибленном и нижнерейтинговом ВУЗе, который разогнали в конце концов за убогость.
Т.е. где средняя мотивация как студентов, так и преподов - ниже плинтуса.