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

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

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

Вместо монастыря вполне подойдет кампус Школы 21, если он есть в вашем городе. Там, кстати, начинают обучение именно с чистого C.

Чистый Си это круто, но года не хватит. Нужно два, лучше — все 5.

Да ладно. Не так уж страшен черт, как нам его малюют.

Правда, неплохо бы цифровой схемотехникой владеть. А это не на год в монастыре или как там ее - а, ну да - Школы 21 работы. Потому как к ней без аналога подойти сложно, а аналог безграничен. За то тогда С прост. Почти как ассемблер.

вполне подойдет кампус Школы 21

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

У них там самый худший кодстайл, что видел в своей жизни:

  • жёсткий лимит на количество локальных переменных (целых 5 штук),

  • жёсткий лимит на количество параметров у функции (4 штуки),

  • жёсткий лимит на длину функции (20 строк),

  • жёсткий лимит на количество функций в файле (5 штук),

  • запрет на цикл for и switch,

  • запрет на пустые строки внутри функции,

  • запрет на объявление переменных не в начале функции,

  • запрет на объявление переменных с инициализацией,

  • выравнивание кода табами в середине строки,

  • избыточные (для языка C) префиксы для структур и энумов.

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

Это что за 42?

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

Да, я в курсе, что Школа 21 франшиза Ecole 42. По слухам сейчас эту франшизу целиком перекупили американцы. Моя рекомендация основывается на личном опыте прохождения интенсива (бассейна) в Школе 21, более чем 20 летнего опыта в IT индустрии и более чем 10 летнего опыта преподавания в вузах. Поначалу, поступив на интенсив я хотел посмотреть изнутри на эту разрекламированную школу. Ну и хотел на уровне современных требований реанимировать свои навыки программирования, изрядно изуродованные работой на руководящих должностях. Я думал что со своим-то опытом, я легко пройду этот интенсив без отрыва от основной работы. Не тут то было. Уже в конце первой недели, я пришел к своему руководителю, рассказал о своем обучении и попросил чтобы меня "не кантовали" еще три недели. Это оказался действительно очень интересный челендж.
Да, действительно, ограничения по кодингу были, но как правило не жесткие, скорее рекомендации, если только того не требовало конкретное задание. Не забывайте, что это учебные задачи, на которых цель - обучить находить решения в нетривиальных условиях.
Институт Школа 21 не заменит. Однако, тем не менее, отличная практика для людей которые хотят связать свою жизнь с программированием.
Что интересно, на интенсиве который я проходил, втихую обучались несколько топ-менеджеров Сбера. Не относящиеся по своему основному роду деятельности к IT. Не с целями поступить в Школу, а только пройти этот интенсив. "Проплыть бассейн" - как говорили в Школе. И они старались изо всех сил. На равных с молодыми студентами. И на мой взгляд, действительно демонстрировали, что на свои должности были назначены прежде всего за интеллект.
На мой взгляд - супер практика со стороны руководства Сбера, направленная на повышение степени понимания топами внутренних механизмов IT.

Может они это какой-то индустриальный стандарт пытались адаптировать? Есть вообще объяснение зачем вот это вот всё?

Школа 21 взяла идею Ecole 42, но уже давно идет своим путем. И этот путь сильно отличается от Е42.
По поводу кодстайла в Школе 21: споры возникают и затухают, но никогда не заканчиваются. Однако они не такие жесткие, как в Е42.

  • жёсткий лимит на количество локальных переменных (целых 5 штук)
    - нет лимита

  • жёсткий лимит на количество параметров у функции (4 штуки)
    - нет лимита

  • жёсткий лимит на длину функции (20 строк)
    - нежесткий лимит Google C++ Style Guide — 80 символов для ширины и 40-50 строк в длину

  • жёсткий лимит на количество функций в файле (5 штук)
    - нет лимита

  • запрет на цикл for и switch
    - нет запрета

  • запрет на пустые строки внутри функции
    - одобряются для разделения логических блоков

  • запрет на объявление переменных не в начале функции,
    - нет запрета

  • запрет на объявление переменных с инициализацией
    - нет запрета

  • выравнивание кода табами в середине строки
    - нет такого

  • избыточные (для языка C) префиксы для структур и энумов
    - не очень понятно требование, такого тоже нет (либо я не понял требование)


Рад слышать, что не потащили весь этот бред от французов. Хотя мне почему-то казалась, что я читал про эти дурные правила именно в контексте российской «Школы-21», буквально несколько лет назад.

либо я не понял требование

У них там есть такие пункты:

  • A structure’s name must start by s_.

  • An enum’s name must start by e_

Если им следовать, то, например, каждое упоминание типа структуры оказываются сразу с двумя префиксами — struct (требуется грамматикой C) и s_ (требуется кодстайлом E42).

нет, есть какие-то условности, например, добавлять префикс s21_ к именам функций, если они называются так же, как стандартные функции языка, но в общем и целом требование сводится к одному - соответствие Google C/С++ Style Guide.

по 10 часов в день в течение года

Прощайте, здоровье и кукуха. Здравствуйте, лишний вес, проблемы с опорнодвигательным, зрением и нервной системой.

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

Ну да, я честно предупредил о возможных рисках. «No pain, no gain» — по‑другому не бывает.

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

Даже самый тупой тренер в самом затрапезном фитнес зале знает, что если появились боль и стресс -- можно начинать считать. Вот это "следует немедленно прекратить занятия" -- это для новичков, чтобы они не сдохли и не подали в суд на тренера.

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

вместо этого там кукуха едет (не совсем пример в тему, но вон посмотрите на Илона).

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

Илон вообще не изменился за последние 15-20 лет.

В разных монастырях разные правила. Приятель много лет болтался по монастырям. Где-то вполне пользовался ноутом.

Джаву-то выучил?

Считаю самый разумный выбор в качестве первого языка это Java.

тут мне показалось, что читаю какую-то дичь

Единственное что Java от вас скроет это работа с памятью, но для современной разработки это не очень важно.

нет, всё-таки не показалось

Если владеете английским

дальше читать не стал

Ваш вариант? Сразу Haskell?

Go? Kotlin (окей, не далеко от джавы)? Swift?

Да и мир программирования явно шире. CS образование даёт общую концептуальную базу (даже если ты фронтендер до мозга костей, но хотя бы слабо должен понимать каким образом бэк организован, какие там сложности, проблемы и т.п.), а дальше надо смотреть на то, что нравится и интересно, тогда и будет прогресс. И не надо закрываться в деревне и все эти аскетичные привычки заводить.

Если нравится UI, то не надо его писать на Java, пожалуйста. Хоть это и мой основной язык, и UI было дело писал, но есть куча альтернатив. Хочется пописать веб-приложения выбор вообще огромный.

Go? Kotlin (окей, не далеко от джавы)? Swift?

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

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

Go уже 16 лет, как по мне его можно назвать достаточно зрелым. У языка большое коммьюнити, он оброс основными нужными фичами, стабильно в топ 10 самых популярных языков.

И чем Java стабильнее? Очень резво добирает концепции из более молодых языков. Да и за ООП составляющую Java ругали кажется с самого начала. При этом в языке такая каша из легаси решений, которые не решились отрезать во имя поддержания обратной совместимости, что зачастую понять идиоматический способ решить какую-то задачу невозможно.

Но мой посыл был в другом. По-моему вообще не важно с какого языка начинать. Важно какие задачи тебе нравится решать и какие языки и экосистемы для этого подходят. И когда учишь, надо не просто учиться писать код на Java/JS/Rust/C++/подставь своё, а пытаться осознать смыслы, понять почему используется какой-то подход, а верный ли он, какие есть альтернативы. Задавать вопросы, вглядываться, всматриваться, экспериментировать, ставить под сомнение авторитетное мнение, ошибаться. Вот он творческий процесс, о котором ты сам упомянул в статье. А если этого нет, то явно стоит задуматься о том, надо ли вообще "идти в IT".

Кстати, если посмотреть на тот же Гарвардский CS курс, там учат JS + python. Дэвид Малан вряд ли сделал такой выбор просто так. Ты сам отметил в статье, что после такого курса понятно, почему люди хотят в Гарварде учиться :)

если посмотреть на тот же Гарвардский CS курс, там учат JS + python

Курсов много разных, но про этот не знал и слегка офигел от масштабов:

CS50 (Computer Science 50)[a] is an introductory course on computer science taught at Harvard University by David J. Malan. The on-campus version of the course is Harvard's largest class with 800 students, 102 staff, and up to 2,200 participants in their regular hackathons.[7][8] 

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

Других объяснений нет.

Разумеется PhD такого масштаба сможет преподавать хоть на Форте с Коболом и не мне с ним спорить о выборе, но как объяснять типизацию на примере Python или ООП на Javascript — лично я не представляю.

Go уже 16 лет, как по мне его можно назвать достаточно зрелым. 

Поскольку только вчера закончил бекпорт Golang 1.24 на Windows 7, думаю чего-то в нем понимаю.

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

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

Java времен Гослинга это единственный язык, который был спроектирован а не просто написан с накидыванием внутрь фич. То что сейчас ее превратили в цирк в погоне за C# — ну что тут сделаешь. Да, я тоже не в восторге, что ныне бесполезно спрашивать про новые фичи на собеседованиях — путаются вообще все.

Тем не менее правильной литературы про Java больше (это там где не про хаки и трюки а про проектирование), примеров больше, материалов больше.

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

Дело как раз в том, что решаемые задачи — одни и те же. Методы разные и уровень погружения.

Java времен Гослинга это единственный язык, который был спроектирован

Ada и Erlang на эти слова только улыбнулись.

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

А Java живет.

А Java с тех времён мутировала в монстра, насосавшего в себя фич, и не слишком похожа на то, что было изначально спроектировано.

да ладно вам не смотрите так критично, давайте исходить из безопасности, выбираем java, потомучто устоявшийся момент в мире ООП, нет никаких моментов, изучающи java, интересуясь какими-то фичами хотябы поверхностно подходим к сути от которую пытается решить ява, а именно то что сегодня обсуждается о безопасности и всё, не нравится ява выберете тот язык который безопасен на стерте и понятен! что не мало важно, а ява имеет пускай иногда и с оговорками, но С синтаксис

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

Java времен Гослинга

Все равно что старофранцузский. Забавно, но мало где востребовано.

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

C# и .NET привяжет вас к Windows и надолго

Можете развить эту мысль? Почему вы так считаете?

Потому что на других платформах (автор в курсе насчет портируемости современного.NET) дотнет выглядит дико: набор запускаемых файлов с расширением .exe и разделяемые библиотеки .dll на линуксе — ну ок, опытному разработчику это не помешает и вопросов не будет.

А что делать новичку?

Дальше сам процесс разработки, вне Windows придется разбираться с подключением отладчика (что непросто) и средой разработки — новичок все это не осилит. А если и осилит, то потратит кучу времени на ненужную сейчас ерунду.

Ну несерьезно это. .NET это Windows, по крайней мере на сегодняшний день.

Давно уже не так. Сервисы изумительно легко пишутся и работают под линуксами. API всякие - вообще как родные. Да вообще бакэнд очень прямо заходит на C#. Единая кодовая база с фронтом, хоть десктоп хоть вэб. Полное благорастворение воздухов. Вообще не думаешь под что пишешь.

Это если не вдаваться в детали, вы ведь не на стандартном тестовом вебсервере ваши сервисы разворачиваете?

Да самые разные окружения и задачи. В основном, API конечно. Микросервисы, базы какие-то, вплоть до скраперов условных по расписанию или условных CDN'ок. А вообще, в целом, именно стандартное. Ubuntu + Apache + dotnet. LAMP, только наверное LAMPD (D for dot net :) )

вне Windows придется разбираться с подключением отладчика (что непросто) и средой разработки — новичок все это не осилит

а как существование Windows влияет на то что вне Windows придется разбираться с подключением отладчика(что непросто)?

То что может осилить новичек зависит только от новичка (который курит новичок, шутка :) )

Ну в Windows оно просто "из коробки", без приседаний с VSCode.

Visual Studio теперь бесплатный, ставится быстро и просто.

По получаемому мной полу-спаму от Микрософт судя, как раз сейчас .NET в лице Blazor - универсальное кросс-платформенное решение, свет в окошке и будущее всего что не ИИ. На сколько это не преувеличение - другой вопрос, но идти в C# через Интернет можно и к Windows точно ничего не привяжет. И через Unity тоже можно и это тоже мимо Windows.

Нет, C# рекомендавать я не намерен, просто отвергать его нужно как-то иначе.

Нет, C# рекомендавать я не намерен, просто отвергать его нужно как-то иначе.

«Решетка вместо крестов — неправославно» :))

Так решётка, это не решётка, а 4 плюса.

MS всегда быди амбициозны

Почему-то никто не замечает, что C++ — это C, который улучшается после его использования. C, который улучшается до его использования — это ++С!

А там точно "улучшается"? Может, просто утяжеляется?

Ну это было типо официальное объяснение, почему он так называется: «++ — означает „увеличение на 1“, поэтому С++ — это язык, который делается лучше, чем просто C!»

В чем ценность такого специалиста который не осилит задать вопрос в поисковую систему для решения проблемы, на мсдн всё прекрасно расписано, . Net прекрасно работает за пределами винды. Или запрос в поиск уже выше чем pain - gain и не укладывается в эти рамки?

В чем ценность такого специалиста который не осилит задать вопрос в поисковую систему 

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

Поисковик и ChatGPT голову и ее содержимое не заменят.

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

Да, но нет.

Поисковик и ChatGPT голову и ее содержимое не заменят.

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

какая разница что там у него в голове?

Ключевая.

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

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

Как часто от знаний программиста здесь и сейчас зависят жизни людей?

Чаще чем хотелось бы.

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

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

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

И точно не стоит пытаться заменять базу на подключение к ChatGPT или поисковикам.

База в голове - это что имеется в виду? Когда постоянно пишешь код - в голове оно постоянно откладывается. Пять раз спросил у чатгпт, как работать с std::variant, на шестой уже незачем спрашивать, сам помнишь все способы.

Лучший путь в программирование - это сразу начать писать полезные программы (хотя бы лично для себя) вместо сферической херни в вакууме вроде "найдите наибольший общий делитель", которой изобилуют учебники. Я не понимаю, как можно писать полезные программы без доступа к поисковикам. Я вот в числе прочего писал что-то вроде системного монитора для своего Линукса, чтобы он ещё и приоритетами рулил и делал ряд прочих действий. Не представляю, сколько времени бы я убил на эту прогу без чатгпт и гугла, копаясь в манах линуксовых внутренностей. И главное - нахрена, если можно на порядки быстрее? В голове оно всё равно откладывается, если оно тебе интересно.

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

Это с точки зрения как не потерять интерес. А если рассматривать, как получить полный набор необходимых навыков, начиная с азов - то надо по такому учебнику.

В хороших технологиях обучения пытаются найти нечто среднее - чтобы и поучительно, и интересно.

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

Это совсем другой класс задач. А именно для "найти НОД" поисковик не нужен, как и для, например, "добавить глаза нарисованному персонажу", если API рисования вмещается в одну страничку учебника.

А именно для "найти НОД" поисковик не нужен,

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

Если у вас в голове откуда то взялись все необходимые алгоритмы.

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

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

База в голове - это что имеется в виду?

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

Лучший путь в программирование - это сразу начать писать полезные программы

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

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

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

Представьте что лежите на операционном столе со вскрытым пузом

Какого черта программист попал в операционную ? кто дал ему скальпель ? ;)

решает задачи правильно

Это важно. Да, если у хирурга есть возможность уточнить через chatgpt что-то неимоверно редкое, но важное - это замечательно.

Я прям представляю сюжет в стиле "Пилы", где над вами висит камень и если вы не напишете быструю сортировку с первой попытки на Ассемблере(а на чем ещё писать тру прогеру 99 уровня, попавшему в такую ситуацию), то он рухнет на вас.
С таким подходом стоит брать в IT исключительно людей с картографической памятью, которые наизусть будут помнить всю документацию мира, а потом уедут в дурку.
ИМХО, если человек помнит - хорошо. Если не помнит, но знает где найти - тоже хорошо. Если не помнит и не знает, где найти, кроме как спросить у соседнего Васи - тогда это уже клиника. Да и даже если глупый человек найдет доки/нужную информацию - чтобы понять зачем оно нужно и как применить тоже необходим мозг и умение его использовать.

 если человек помнит - хорошо. Если не помнит, но знает где найти - тоже хорошо

Видимо вы не очень понимаете что подразумевается обычно под термином "погуглить":

"как написать программу"

"как написать программу на java"

"как скомпилировать java"

"как запустить java"

Вам правда нужен такой коллега на рабочем проекте?

Видимо вы не очень понимаете что подразумевается обычно под термином "погуглить":

Далее ваши примеры - это какое-то передёргивание и преувеличение. Под "гуглингом" подразумевается поиск информации, и 99% программистов( в т.ч. и вы, что сами сказали в ответе другому человеку выше) гуглят что-то, так или иначе. Что каждый гуглит - это уже другой вопрос. Если вы имели ввиду поиск каких-то абсолютно примитивных вещей,которые в первую неделю/месяц осваиваются то так и пишите. Иначе вы выставляете любого прогера, который что-то ищет в интернете, профнепригодным.

Вам правда нужен такой коллега на рабочем проекте?

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

Я не опровергаю ваше утверждение о том, что поисковик может заменить мозг и умение. Я опровергаю то,ценность специалиста с навыком поиска информации нулевая. Поиск информации с помощью него это такая же часть работы(и обучения) программиста и наличие этого навыка очень желательно, потому что всегда появится то, что ты не знаешь/не запомнишь в моменте. И что даже с наличием информации из поисковика без мозга человек наврятли осилить её использовать

Поисковик и ChatGPT голову и ее содержимое не заменят.

Но многие не верят и продолжают попытки.

Пишу бэкенды запускаемые под линуксом на .net последние 7 лет.
Восславим же netcore, братья!

Вот уж чего не ожидал так того что на Хабре будут топить за дотнет на линуксе)

Воистину последние дни наступают!

Так а что не так то с дотнетом на линухах? И на маках еще, кстати. Ну по вашему мнению?

Все с ним нормально, рад что активно развивается, но как выбор в качестве первого языка — перебор.

Имхо, на нём начать будет даже проще, чем на java.

А Ява так 10 из 10. Первоначальный тейк был о том, что шарп привяжет пользователя к винде. А оказалось, что не привяжет. Теперь вы говорите, что шарп ну это перебор просто потому что. Жирно, жирно

А что делать новичку?

Принять как данность.

Возьмём предлагаемую вами же Java. И открылась бездна.

Почему "компилятор"? Это слово, описывающее склеивателя из разных источников, больше подходит линкеру, а не преобразователю из одного java файла в один или несколько class файлов - ему оно аж никак не в тему. (Кто не верит - прямая цитата из etymonline: "to collect and present information from authentic sources, to make or form by putting together in some order written or printed material from various sources," early 14c., from Old French compiler "compile, collect" (13c.) and directly from a Medieval Latin special use of Latin compilare "to plunder, rob," probably originally "bundle together, heap up;"...)

Почему представление чисел называется 2ʼs complement, хотя по факту должно быть 0ʼs complement? Ожидается рассказ про историю создания этого жаргонизма и переход его в стандарт?

Почему в Java члены класса, но не объекта, зовутся static? В них нет ничего статического, они глобальные. static - следствие реюза слова из C++, где оно получило аж 4 разных значения, имеющих мало общего.

Почему float и double, а не single и double?

Почему есть public, protected и private, но нет отдельного слова для умолчательного package-internal? (В C# есть, для сравнения.)

Это я ещё не начал, полное перечисление займёт много страниц. Всё это требует освоения и запоминания по принципу "здесь так принято". По сравнению с этим какие-то несчастные exe это не стоящая упоминания мелочь.

Всё это требует освоения и запоминания по принципу «здесь так принято».

Запоминания-то зачем?

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

Вам даже дебаггер с точками останова не понадобится в первый год.

Тормоза придумали тру́сы, а отладчики — ламеры!

«Документацию читают только трусы»

из аннотации к настоящему руководству по АБС "Афина".

Почему float и double, а не single и double?

Ответ такой же, как и на большинство вопросов, начинающихся со слов «это что здесь за бред???»: «Так исторически сложилось...»

«Так исторически сложилось...»

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

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

Когда я вынужден был заговорить на немецком, я просто ходил по улицам Берлина и читал вывески (и телевизор смотрел). Клянусь, ни разу мне в голову мне не приходил вопрос: «Чё это за фигня? Почему оно называется именно Lebensmittelgeschäft?»

Как-то все сильно изменилось. В начала 00х я стал штатным программером не отказывая себе ни в пьянках-гулянках ни в женщинах, еще и институт параллельно закончил без троек. Веселое было времечко!

Ну так, когда-то и без собеседования брали на работу )

И трава зеленее была. И молоко жирнее. И девочки-сверстницы были красивее и как-то помоложе...

И работать было не надо, только за деньгами приходить.

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

зарплаты небольшие

Не знаю, я в 1996 пришел на зарплату $500, это было в разы больше, чем сейчас платят рок-звёздам.

А у меня первая з.п. была 35 рублей в час, в 2003 году. Это чуть больше 1 доллара по тем временам. И работал я не полный день - итого долларов 150 в месяц. Для студента без опыта - было неплохо.

90е, когда еще не было крупных аутсорсеров, у народа тогда даже резюме не было в основной массе.

Сам я немного моложе, но как-то общался с "директором по кадрам", который набирал людей в те годы.

«корочки» все также не являются определяющим фактором для найма

Только пока вы не попробуете устроиться на работу в Европе на постоянку. Почему-то про этот фактор все обычно забывают.

В Европе если и котировались дипломы отечественных ВУЗов то лишь самых топовых, вроде МГУ или Бауманки. Чтобы это являлось определяющим фактором при найме никогда не слышал.

Для получения рабочей визы — да, но это другое дело и к работодателю отношения не имеет.

Это имеет отношение к «устроиться на работу в Европе на постоянку». Работодатель может мечтать вас взять, но не сможет, если у вас нет диплома.

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

Ну не знаю, мне мой Тюменский "Нефтегаз" не помешал поработать в Сингапуре архитектором.

Ничего не понял, пардон. Это к чему вообще?

К этому:

имеет отношение к «устроиться на работу в Европе на постоянку». Работодатель может мечтать вас взять, но не сможет, если у вас нет диплома.

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

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

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

Полагаю там есть места, где устроиться в принципе можно только с определенным дипломом, например из Оксфорда )

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

Это имеет отношение к «устроиться на работу в Европе на постоянку». Работодатель может мечтать вас взять, но не сможет, если у вас нет диплома.

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

Ну как? Кто-нибудь уже рванул с рюкзаком подальше от цивилизации чтобы через год порвать интервьюиров-нанимателей своими улетными навыками программирования на Java?

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

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

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

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

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

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

ИТ — для фанатов, оно всегда таким было и врядли когда‑нибудь это изменится.

Под полным запретом на весь год:

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

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

Порнуху тоже под запрет
Столько времени и сил отнимает...

Статья годная
Но лучше программированию учиться с детства

 вы должны быть в максимальном фокусе.

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

Это зависит от подхода. Если человек в фокусе, потому что «менеджеру нужно, чтобы я сделал.....», то возможно. А если человек в фокусе, потому что «я строю великолепный новый мир (в смысле программу), в котором всё происходит по моему желанию...» — то кукухе тоже интересно, она ещё и детальки подкладывает!

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

Вот это уже похоже на реплики поехавшей кукухи. Нельзя отрываться от реальности. А тот кто вам ставит задачи (или пользователь, дающий обратную связь) - и есть ваша ниточка связи с реальностью. Если связи нет - есть риск родить чудовища вроде BolgenOS

чудовища вроде BolgenOS

не скучные обои - что в том чудовищного? ;)

Вот это уже похоже на реплики поехавшей кукухи.

«Дура, не дура — а три сотни в день имею» ©

Я вначале хотел удивиться с какой стати нужно тратить больше 3 тысяч часов на то чтобы стать джуном, а потом перечитал, увидел что "аналитики, девопсы - обслуживающий персонал" и понял, что статья - троллинг)

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

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

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

Вам нужен минимум один год чистого времени, без каких-либо отвлечений. Вообще и совсем.

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

У вас должны сформироваться нейронные связи в мозгу, отвечающие за «связное изложение мысли в виде кода».

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

 программирование это вообще‑то творческий процесс.

И то верно. Из этого следует, что важны эмоциональная вовлечённость и рефлексия, о которых ничего не написано. То есть, с самого начала писать код для чего-то лично нужного и/или интересного, от рисования картинок до игр, размышлять на темы типа "почему не понял сразу", "можно ли было сделать дучше или быстрее", "как так получилось что у меня баг"...

Считаю самый разумный выбор в качестве первого языка это Java.

Может и так, а может и нет. Тут есть зависимость от водораздела с которого я начал. Есть зависимость от физиологии, например от того, как долго нервная система позволяет ждать пока написанное заработает или что кажется красивым и что - омерзительным и на сколько эстетика важна.

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

Вы надо делать два типа задач:

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

божественный SICP,

Они оба божественные, и на Scheme и на JavaScript? Если в груди горит пламень веры без которого деяния наши были бы преступлением, то напрашивается первым объектом для изучения или EMACS + Racket, или VS Code + Node.js + JavaScript + таки Web технологии...

Если владеете английским

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

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

Или не будете если перешли водораздел иначе. И по началу это выбор - либо писать в стол, либо выставлять себя на посмешище. Наборы в предыдущем абзаце позволяют тренироваться на плагинах к текстовому редактору, как по мне - по (самому) началу так лучше, да и dog fooding. Можно и другие наборы рассмотреть, вот Neovim свежий приглашает скриптовать себя практически на чём угодно.

Концепция менторства, наставничества и всех этих видеокурсов напрямую противоречит идее самообучения

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

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

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

Статья в свое время вызвала живейший интерес и дискуссию

Ну да, ну да. Захотелось прочитать внимательно, пописав код комментарии.

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

Не до такой степени, чтобы влиять на суть.

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

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

Официальная работа это не более чем антураж.

Тут бы хотелось если не диаграмму Ганта, то бюджет времени.

Для чего?

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

но для этого совершенно не обязательно пахать как лошадь.

Меня спрашивали неоднократно как стать программистом, я вдумчиво ответил в виде этой статьи. Сложно и тяжело? Безусловно.

Но если вы начинаете «срезать углы» и искать короткий путь — к вашим услугам всегда три кита накопления серьезного капитала: торговля нефтью, оружием и наркотиками. Ну и уже упомянутая проституция да.

Не надо «входить в ИТ» без фанатизма, если у вас не горят глаза и не свербит в одном месте — разочаруетесь, тем более в нынешние непростые времена.

Идея первого единственного языка - как минимум спорная

Начинать в любом случае придется с чего‑то одного, речь ведь про самые основы — структуры и типы данных, управляющие конструкции и тд.

А если не владеете - овладейте.

Этот важный момент понимают и принимают очень далеко не все желающие.

ИТ = английский язык, без вариантов в обозримом будущем.

Группенфюрер СС Мюллер, в «17-ти мгновениях весны»:
«Никому верить нельзя, – мне можно!

Классика!

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

Я бы сказал по-другому, программист решает задачи, свои или чужие – неважно, с помощью программирования. Ибо кому нужен код, ради кода? Только, ради решения поставленной задачи – это же очевидно!

Вам нужен минимум один год чистого времени, без каких-либо отвлечений. Вообще и совсем.

Глупости! Вам нужно быть молодым и умным, если хотите – вундеркиндом. И, мало иметь задатки, нужно еще получить фундаментальное образование, желательно университетское, связанное с точными науками и программированием.

Я видел на мехмате МГУ десятки вундеркиндов, читающих сложнейшую математическую литературу как художественные книги – легко и непринужденно, которые успевали всё – и по девочкам бегать и на дискотеки ходить. При этом были отличниками и большими умницами. А учиться на математика, в МГУ, было ой как не просто – до пятого курса дошло лишь половина первокурсников. При этом, и в программировании, отдельные уникумы проявляли недюжинные способности. Например, Ильфак Гильфанов – автор «широко известного в узких кругах» «народного» дизассемблера «IdaPro». Он тоже учился на мехмате и у него тоже был тот же самый научный руководитель, что и у меня. Разница между нами только в качестве мозгов, они у него на порядок лучше.

Но, разве у него все сводилось только к кодированию? Он как-то сказал: «Пол-царства за идею!». Точнее, перефразировал эту фразу из русских сказок: «Хотите, чтобы ИдаПро был лучше? Дайте идею! И я ее реализую!». Наш герой собрал небольшую команду талантливых программистов и создал продукт мирового уровня, в своей собственной фирме. Один его плагин, по восстановлению полноценного Си-кода из машинного (бинарного) кода чего стоит! Гений в программировании – однозначно! Я даже статьи писал, в свое время, по его программному продукту: https://erfaren.narod.ru/ (тогда ЛНР был в составе Украины, сейчас в России). Кстати, Ильфак просматривал этот мой сайт и вносил определенные коррективы в свою программу (чтобы защитить её от «лишних» возможностей, для простых смертных).

А есть еще один гений программирования – Олег Яшук, если я правильно помню, со своей программой, любовно называемой в народе: «Оля Дебаговая». Этот парень, очень скрытный, из Германии, но, похоже, у него русские корни.

А на какие задачи у вас заточен абсолютный отшельник – программист-одногодка? Ну, «не смешите мои тапочки!». Без реального целеполагания, он может, с таким же успехом и десять лет «кодировать», с весьма сомнительным успехом.

Ребята, вашим смыслом жизни должно быть не столько, конкретно, программирование, сколько учеба вообще, а лучше, в крутом университете. Учиться, учиться и учиться! Как завешал «дедушка Ленин». Выберите крутую специальность и крутой университет и «вперед и с песней!». А работа вас потом сама найдет…

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

Оо какие люди ) Неужели он еще жив?

найдите цель в программировании, которая вам нравится и попробуйте её реализовать, хотите в комманде, хотите соло, какая разница

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

Я бы сказал по-другому, программист решает задачи, свои или чужие – неважно, с помощью программирования. Ибо кому нужен код, ради кода? Только, ради решения поставленной задачи – это же очевидно!

Не поверите, но существует такое понятие как "recreational programming".

PS: Код ради кода нужен Гитхабу для обучения ChatGPT.

PS: Код ради кода нужен Гитхабу для обучения ChatGPT.

Вы придумали красивую отмазку, но кто в нее поверит, даже если это правда?

Когда Мюллер сказал Штирлицу, что завтра все едим на дачу Гитлера копать картошку, Штирлиц ответил, что, мол, не могу. – Почему? – Потому, что русский шпион! На что Мюллер сказал: «Я, конечно, ценю вас, штандартенфюрер, за сообразительность, но на картошку вы все равно поедите!».

Я бы, лично, на вашем месте, возразил бы по-другому: «Код, ради кода, можно писать ради самообучения! Сам этим, иногда, балуюсь. У меня, здесь, есть статья, про модульное программирование на С++. Но, там только идет речь про плагины. В свободное время, пишу демо-программы на ту же тему, но, с немного другим подходом. Максимум, что из этого выгорит – статья на Хабре, не более, но, что не сделаешь, ради удовольствия? :)»

на картошку вы все равно поедите!

А почему бы и не поесть?

А почему бы и не поесть?

Вы меня рассмешили до слез. Что мне нравится в наших людях, так это чувство юмора. Например: «Из любой ситуации есть, как минимум, три выхода, даже, если вас съели.».

Я видел на мехмате МГУ десятки вундеркиндов

А я видел на собеседованиях дестяки "вундеркиндов" из МГУ, Бауманки и прочих физтехов с красным дипломом, огромной короной, но без опыта, требующих с порога 100+ зарплаты за свою первую работу. От которых в первые полгода-год отрицательный выхлоп - только лишняя нагрузка на тимлида и ФОТ.

А я видел на собеседованиях дестяки "вундеркиндов" из МГУ, Бауманки и прочих физтехов с красным дипломом, огромной короной, но без опыта, требующих с порога 100+ зарплаты за свою первую работу. От которых в первые полгода-год отрицательный выхлоп - только лишняя нагрузка на тимлида и ФОТ.

Ну, да! А, через полгода – год, они станут конкурировать с вами. А через пять, вообще, станут круче вас. Может быть, вас это больше пугает, чем «нагрузка на ФОТ»?

Вообще-то, я бы на их месте шел бы госкорпорации. Там копейки не экономят, Мыслят масштабно, на перспективу и в интересах страны и государства. И на месте руководства, я бы смотрел на потенциал, а не на сиюминутные результаты. Откуда они у вчерашнего студента? Если, допустим, вы смогли получить диплом математика МГУ, т.е., вас ни разу не отчислили за неуспеваемость, то уже за одно это вам можно давать «звезду героя». Ибо учиться там нереально тяжело (если вы, конечно, не вундеркинд)!

Знаете, в чем состоит главная «военная тайна» «Красной Армии»? Враги наши знают, но не верят и правильно делают. Мы никогда не жалели сил и средств на обучение лучших из лучших математиков. Только на первом курсе мехмата МГУ, в мое время, было триста человек! Хотя, до пятого курса дошли только половина из них. А математики наши, «золотые головы», делают нам «Посейдоны» и «Авангарды», «Ярсы» и «Орешники» и много-много чего еще. А этому на мехмате не учат, как и программированию, по большом счету. До этого они доходят своим умом, когда «Родина просит». После университета они, как слепые котята, ничего не знают и не умеют, ибо пять лет витали в абстрактных облаках. Жизни не знают совершенно, и это правда. Но, если их направить в правильное русло, дать возможность хорошо работать и учиться дальше (но, уже технической специальности, в соответствующем ВУЗе, заочно или на вечернем, в интересах фирмы, где они работают), то, со временем, вы их не узнаете.

А Трампусик, наш, ненаглядный, закрывает Федеральное Министерство Образования, в своих любимых Штатах. И правильно делает! Конкуренты в математике нам не нужны. А частники, тоже все сделают правильно – оптимизируют джунов, заменят их ИИ («Искусственными Игрушками») и т.д. и т.п.

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

Слишком толстый троллинг.

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

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

Ну начиная от того что вы предлагаете ехать в деревню учиться по книгам, заканчивая стеками Java/C++ что так же не всем подходит (да и устарело, чего уж там, тот же бэк сейчас чаще на Golang пишут, даже джависты на него переучиваются)

Особенно позабавила ваша цитата (которую кроме как троллинг воспринимать нельзя):

Весь «обслуживающий персонал» в виде менеджеров, аналитиков и тестировщиков с девопсами сегодня идут мимо. Со всем уважением к их сложным профессиям — дело делают не они.

Хоть я и программист, но считаю что они вносят вклад в общее дело не меньше чем мы. Как можно считать иначе - не понимаю.

Ну начиная от того что вы предлагаете ехать в деревню учиться по книгам

Альтернатива это 7 лет полноценного обучения в хорошем профильном ВУЗе, желательно иностранном. Из «лиги плюща».

Если у вас есть время и деньги на такое — вопросов нет.

 заканчивая стеками Java/C++ что так же не всем подходит (да и устарело, чего уж там,

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

тот же бэк сейчас чаще на Golang пишут, даже джависты на него переучиваются)

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

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

Хоть я и программист, но считаю что они вносят вклад в общее дело не меньше чем мы. Как можно считать иначе - не понимаю.

Стоит перестать пить соевые коктейли, полагаю, еще возможно понимание придет позже — с годами и опытом.

Весь «обслуживающий персонал» в виде менеджеров, аналитиков и тестировщиков с девопсами сегодня идут мимо. Со всем уважением к их сложным профессиям — дело делают не они.

На деревне самый важный - тракторист, в супермаркете - кассир, в цирке - клоун. Остальные - так, персонал.

Необходимые жертвы

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

А вот если вам нравится… вам не нужны специальные гайды, способы, ускорения обучения, подходы. Вы просто возьмете и изучите это сами. Потому что это круто. Потому что это искусство. Искусство достойное вас.

частично согласен) мне в кайф было написать текстовый редактор ) ииииии я его мало мальски прикрутил с документацией и прочим и чувствую, что это не такая сложная задача ), но блин работает прикольно, осталось на С++ как-нибудь повторить )

Помню в одном проекте джун-аналитик кинул джунам-разработчикам эпик, запилить WYSIWYG редактор интерфейсов с бэкендом и тестировщицами, и это как-то пролетело мимо заваленного делами главного архитектора. Так эти ребята взяли и запилили за месяц реально сносно работающий редактор, просто потому что не знали что это сложно!

Так эти ребята взяли и запилили за месяц реально сносно работающий редактор, просто потому что не знали что это сложно!

Взять всем известный Monaco и приделать к нему бекэнд для сохранения — это не «запилили за месяц реально сносно работающий редактор», не надо вводить в заблуждение.

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

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

Взять всем известный Monaco и приделать к нему бекэнд для сохранения — это не «запилили за месяц реально сносно работающий редактор», не надо вводить в заблуждение.

Надо было уточнить, что дело было где-то в 2010-11 году и проект пилили на C++ для десктопа

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

Спасибо, кэп.

Java это шлак! Начинать нужно именно с ассемблера и со знакомства с устройством машины (процессор, память, I/O, кэш, MMU), постепенно переходя к Си и вникая в устройство современных операционных систем. А вот когда настанет понимание того, что Си недостаточно (хотя как его может быть недостаточно?), вот тогда можно пробовать различные языки со встроенным менеджментом памяти и прочие REPL. Перед тем как переходить к Java, обязательно нужно попробовать "Си с классами". C++ в его современном виде трогать не стоит - эта куча плохо пахнет.

Ну и еще. Перед тем как начать обучаться программированию, сначала следует обучиться работе в коммандной строке, развить навык работы в терминальных текстовых редакторах, научиться использовать как основные тулы из GCCLLVM, так и сопутствующие - ssh, bash, grep, sed, awk. Наверное это можно делать параллельно с написанием первых программ.

Начинать нужно именно с ассемблера и со знакомства с устройством машины (процессор, память, I/O, кэш, MMU), постепенно переходя к Си и вникая в устройство современных операционных систем. 

Да да, особенно если начать в этом ковыряться лет с 12 на Амиге, затем пойти в хороший технический ВУЗ, на хорошие CS‑курсы. А затем еще потратить лет 10 на получение PhD степени — будет идеально для «вкатывания в ИТ».

Почему бы и нет ?

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

Потому что не у всех есть даже один свободный год времени — выше уже посчитали статью шуткой из‑за этого.

А у вас про семь лет профильного обучения.

Откуда семь лет ? В Российских вузах везде бакалаврат - 4 года в лучшем случае. Да и последний (4-й) год обучать студентов чему-то бесполезно, у них одна цель - сдать госы и написать выпускную. А первые два - физика, матан и куча бесполезной гуманитарщины. Получается, то учить их профессии можно только на третьем курсе. Не вижу тут принципиального отличия от "вкатывающихся" через он-лайн курсы.

1.ВУЗы бывают не только российскими и думаю очевидно что по CS лучшее образование все также не у нас.

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

Это единственный вариант при котором курс по SICP пройденный в возрасте 22-23 (а не в 40) даст осмысленный результат.

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

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

Скрытый текст

Интересно, без таблички "сарказм" кто-нибудь поймёт что это красненьким написано?

Мне кажется в качестве проекта для обучения лучше взять Spring framework, потому что большинство вакансий Java программиста требуют именно знаний спринга, и шанс впечатлить будущего работодателя пониманием как та или иная магия работает под капотом в Spring, куда больше чем понимание работы полноценного сервера приложений который сейчас только в легаси проектах остались, или тем более Netbeans где придется еще солидный кусок времени потратить на изучение вероятно Swing (поправьте если я не прав, знаю что Idea по крайней мере раньше была на Swing-е написана, насчёт Netbeans не уверен)

P.S. при всем уважении к серверам приложений и Swing-у. Я люблю и JavaEE и Swing, и у меня периодически течет ностальгическая слеза, что сейчас их редко где встретишь, но мне все же кажется что при ограниченных ресурсах надо их тратить на самое эффективное, что позволит устроиться на работу с наибольшей вероятностью. И тут знания Spring-а вне конкуренции

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

В качестве основы нужны именно основы: структура программы, конструкции, процесс сборки и запуска.

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

К тому же Spring давно уже просто общий термин, под которым собрано слишком много разных проектов. Слышали например про Spring AI?

 что позволит устроиться на работу с наибольшей вероятностью

Не стоит ориентироваться на текущую повестку в вакансиях (тем более на начальном этапе) — она слишком часто меняется.

Не надо всем рассказывать как стать программистом. Тут и без этого тесно стало. Кому надо - тот сам найдет путь.

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

Даже если обучать принудительно.

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

Весь «обслуживающий персонал» в виде менеджеров, аналитиков и тестировщиков с девопсами сегодня идут мимо. Со всем уважением к их сложным профессиям — дело делают не они.

В целом дальше можно не читать, потому что как если человек свысока и снисходительно смотрит на кого-то - это уже красный флаг, и к его словам стоит относиться с недоверием. Но я прочитал... и что могу сказать? Мощно! Отличный ироничный псевдо-мануал с наигранным пафосом и "вредными советами", дословное следование которым сделает из человека не программиста, но невротика (в лучшем случае). Если это было целью - мои поздравления, вышло шикарно, хотя я такие вещи и не одобряю.

самый разумный выбор в качестве первого языка

Зависит от того, куда ты нацелился изначально. Если ты хочешь в системщики или в ембеддед, то непонятно, на кой чёрт тебе Java. Если во фронтенд - тоже непонятно.

Я вот начал с С++ и не жалею.

Вам нужен минимум один год чистого времени, без каких-либо отвлечений. Вообще и совсем.

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

Интернет должен быть либо медленный и плохой либо вообще отключенный — самый идеальный вариант.

Воу-воу, палехчи. А как мануалы и статьи читать? Одними книжками не обойтись, это проверено. Как на форумах спрашивать более опытных товарищей? Как спрашивать у чатгпт, наконец?

Интернет должен быть либо медленный и плохой либо вообще отключенный — самый идеальный вариант

Чувствуются мотивы сев-корейской школы программирования

Ой, не жили Вы в СССР в 1980-х...

А как мануалы и статьи читать?

Вы, наверное, не поверите, но когда я вкатывался в эту вашу ойтишечку — интернета вообще не было. Никакого. Нигде. Ну, если ARPANet не считать, но туда меня не допускали. ФИДО по части мануалов — тоже так себе источник.

И ничё.

А состояние айтишки каково было на тот момент? 3,5 языка программирования и 4,5 технологии? :)

Сейчас совсем другое положение дел.

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

Кроме того, все осмысленные языки к тому моменту уже были в полном здравии и расцвете (ну, кроме джавы).

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

ахаха.

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

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

Доктор, откуда у вас такие картинки?

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

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

Я ни за что особенно не топлю.

А чтобы отличать хороший код от плохого — достаточно просто спросить совет (вот автор показал ссылки на код, которого с лихвой хватит надолго).

А чтобы отличать хороший код от плохого — достаточно просто спросить совет

Внезапно, у всех разные представления о хорошем коде. Я знаком с одним кодером, который вот прям стереотипный зубр из 80-90-х годов, начинавший с ассемблеров. Так он хорошим кодом считает императивное write-only спагетти с кучей грязных хаков, а ООП ненавидит религиозной ненавистью. Сомневаюсь, что его "хороший код" может научить чему-то хорошему современного программиста.

 а ООП ненавидит религиозной ненавистью

ООП — инструмент, применять эмоции к инструменту это признак чего угодно но не хорошего специалиста.

Это примерно как ненавидеть молоток или отвертку.

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

ООП — инструмент

Конкретнее — молоток. И в ситуации, когда у меня в ТЗ — тяжелая полочка, кирпичная стена и четыре шурупа — любого, кто произнесет вслух «молоток» хочется этим самым молотком stick long pale metal into.

Так-то у ООП есть свои области применимости, конечно, и религиозно ненавидеть его глупо. Круды, например. Ну да и всё, пожалуй.

Круды, например. Ну да и всё, пожалуй.

ООП идеально для начального моделирования любой логики работы: объекты, свойства и операции — все это конструкции из ООП.

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

Если у вас нет задачи повторить сложную формулу (для чего и придумали FP), нет заранее четкого технического ТЗ и есть возможность выбора — начинать проектирование стоит как раз с ООП.

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

объекты, свойства и операции — все это конструкции из ООП

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

Объекты, данные и сообщения — это действительно конструкции ООП, только не того говна, которое реализовано в джаве, а того, которое подразумевал автор термина, а именно — Алан Кай. Дальше я буду использовать «ООП» в том извращенном смысле, в котором его принято использовать сейчас: объекты со свойствами и методами (типа, кружка, красного цвета, с методами «налиться чаем» и «помыться мылом», да).

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

Так вот, акторная модель. Объект — это процесс, долгоживущая хрень с состоянием. Данные — ну, это просто данные. Сообщения — это как ваши методы, только с гарантированной на уровне парадигмы инкапсуляцией.

Смолток не взлетел, но в современном мире есть эрланг (и эликсир, и LFE, и даже Gleam для инвалидов, которые без строгой типизации не могут писать внятный код).

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

Такие дела.

Современный программист — это что за зверь? Я вот тоже не особо жалую ООП (хотя оно меня исправно кормило лет 15), и императивное спагетти — тоже недолюбливаю.

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

Покажите пожалуйста куски "блистательного кода" из опенсорса? Можно пару ссылок?

В статье есть ссылки на проекты Jetty, WildFly, Netbeans — можете глянуть. Другое дело что кода там очень много и далеко не весь он подпадает под термин «блистательный».

Но базовые вещи про организацию большого проекта - как это вообще выглядит можно оценить.

Это точно лучше ответов ChatGPT.

Запросто.

  • elixir: Access (да и вообще весь код компилятора)

  • c: src/interfaces/libpq/fe-auth.c в постгресе (прямой ссылки дать не могу, они не предоставляют веб-интерфейс к https://git.postgresql.org/git/postgresql.git

  • scala: Akka (джава там тоже неплохая)

  • ruby: Sidekiq

  • idris: FizzBuzz

Если надо на каком-то другом языке, кроме пяти выше — маякните.

Узнал про Idris, что там из интересного?

Кроме прыжка с Хаскелла на Scheme между версиями )

Это единственный прикладной язык в мире с завтипами.

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

Я на нём иногда доказываю корректность нетривиального кода, а потом портирую на эликсир (да, теряя формальную доказательность, но я умею переводить код с языка на язык).

https://serenityos.org/ кстати почему-то про нее было написано в топике С++ посмотрите если интересно)

понял там 89 процентов С++

блин по скринам и описанию крутая ОСка

Я выучил значительное количество неплохих разработчиков, просто показывая куски кода

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

И что?

Кроме того, красивый велосипед — это оксюморон, он с успехом заменяет предыдущий трёхколёсный.

> он с успехом заменяет предыдущий трёхколёсный.
Но в проекте уже может быть готовый двухлитровый харли-дэвидсон

И что?

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

(Я как-бы намекаю на архитектурный аспект обучения, если не очевидно)

(Я как-бы намекаю на архитектурный аспект обучения, если не очевидно)

Несмотря на «погоны» архитектора и опыт работы архитектором заграницей, считаю что программы все таки пишутся а не проектируются.

Можно спроектировать ИТ-систему, но не программу.

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

от того что вы не рисуете "архитектуру" в виде разноцветных квадратиков, а сразу отливаете в коде, она не перестаёт существовать.

Открою страшный секрет:

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

Внутренняя красота и логичность это конечно замечательно, но оценить ее могут единицы, которые обычно имеют отдаленное отношение к бизнесу.

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

За меня на этот вопрос уже блистательно ответил Джо Армстронг более 20 лет назад:

Make it work, then make it beautiful, then if you really, really have to, make it fast. 90 percent of the time, if you make it beautiful, it will already be fast. So really, just make it beautiful!

Я с ним абсолютно согласен.

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

Например, я абсолютно убежден, что невозможно быть хорошим архитектором, если не владеть на уровне выше среднего джавой/дотнетом, js/ts, haskell/idris, erlang/elixir, ruby/perl/python. (Я не упоминаю c/c++, потому что с таким багажом — само собой разумеется.) Это пять разных парадигм, и если архитектор не понимает, как устроена каждая из них — решение будет с вероятностью по -⅕ на каждую незнакомую парадигму — неверное.

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

А я и не Уголовный кодекс, чтобы со мной во всём соглашаться.

Люди разные, и именно это делает мир прекрасным.

Да ладно уж — существует целая категория граждан, которые и с Уголовным кодексом не согласны!

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

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

Кроме того, не забывайте про время. Осваивать программирование по засаленной книжке "Язык ассемблера х86" с вырванными на самокрутки страницами - это круто, когда тебе 13 лет, особых забот нет и вся жизнь впереди. А когда тебе 30+ и надо что-то есть - это уже роскошь, для многих непозволительная.

А когда тебе 30+ и надо что-то есть - это уже роскошь, для многих непозволительная.

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

Да, нужны определенные усилия и жертвы, о чем я честно сразу написал.

Чтобы не было иллюзий возможности обучения по "видеокурсам в интернете".

Чтобы стать программистом, нужно делать две вещи: читать материалы по теме (книги, статьи и даже флеймы в комментах) и писать код.

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

Есть подтвержденная опытом гипотеза, что лучше читать код (который можно однажды выкачать целиком, зайдя в кафе, все-таки 2025 год на дворе) и пытаться писать свой код (плохой), чем штудировать книжки написанные инфоцыганами типа Мартина и Фаулера.

Есть подтвержденная опытом гипотеза

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

чем штудировать книжки написанные инфоцыганами типа Мартина и Фаулера

Ахахха, такого презрения к авторитетам я еще не встречал!

Я бы не был столь категоричен, просто важен порядок:

  1. пытаемся решить задачу, получается так, что сами недовольны

  2. Пытаемся сделать лучше, добиваемся кое-какого прогресса

  3. Читаем Фаулера, Мартина, Александреску, банду четырёх.

  4. Смеемся и плачем, думаем что ухватили Бога за бороду, переписываем всё заново с блекджеком и, ну вы поняли

  5. Всё стало красиво, по канонам, но сложнее на порядок.

  6. Доходим до стадии прямого общения с бизнес-заказчиком

  7. Выбрасываем из головы 80% Фаулера и Мартина, переписываем заново, попроще да получше.

Не нужно читать Мартина и Фаулера. Вообще. Никогда.

Кто такой Александреску, я просто не знаю.

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

Ахахха, такого презрения к авторитетам я еще не встречал!

Рад, что мы тут не одни:) Я с cupraer@ не согласен почти ни с чем, но в этом - согласен на 101%.

3,5 языка программирования

Да шо ви такое говорите. С, BASIC, Pascal, FORTRAN, PL/1, LISP, Forth, ALGOL, COBOL, PROLOG...

А чё, ассемблер — уже и не язык?

С тем багажом знаний, с каким вы вкатились 30 лет назад, сейчас вам бы мало что светило.

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

Так что не нужно за меня переживать. Я за всю жизнь прочитал две книги по специальности (Бради и Маккорда) и ни разу не читал документацию (максимум — заглянул и пробежал пару абзацев глазами).

И работаю на позиции Principal Engineer.

Ну, у вас такая же нога, но не болит, и вы воще молодец. Возможно, даже у 18-го воробья лапка не соскальзывает;) И курс линейной алгебры вы за выходные изучаете, если понадобится. Но таких талантов мало : вы, Чак Норрис, Линус Торвальдс, и наверное всё.

Но лекция для колхозников.

Курсу линейной алгебры неплохо учат в институте.

В институте и дурака программированию можно обучить.

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

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

Я не знаю, что такое «EQ» и не очень-то стремлюсь договариваться с людьми.

Возможно вы упускаете огромные возможности, но безусловно это ваш выбор

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

Возможностей у меня было столько же, сколько у остальных, наверное. Для себя — я их реализовал.

Еще вот второй альбом с песенками на мои стишки выпущу — и буду вообще весь в закрытых гештальтах.

Я добился в жизни практически всего, чего хотел.

«Но табличку не снимай!» ©

Да я, честно говоря, и от трубки отвыкнуть никак не могу.

Доктор?! Простите, я не узнал Вас в гриме!

не их багажом знаний ..., — но их образованием, общей эрудицией

А образование и эрудиция - и есть багаж знаний

И да и нет.

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

Так что важны не знания а динамика: навыки их получения и применения.

Еще далеко не все знания устаревают с концами — устройство ОС, компиляторов, базовые принципы построения ПО не изменились и врядли когда‑либо изменятся.

Так что даже на марсоходе будет черная консоль с bash.

Еще далеко не все знания устаревают с концами 

Нужны ли программисту алгоритмы и высшая математика, кстати ;) что-то про фундаментальное никто не вспоминает.

Нужны ли программисту алгоритмы и высшая математика, кстати 

Не поверите, они нужны вообще всем. Матан — единственное что отделяет человека от животного.

Я как-то на какой-то пьянке сообщил положившей на меня взгляд барышне: «Мне не о чем разговаривать с человеком, если он не читал „Julio Cæsar“ Шекспира и „Алгебру“ Ван дер Вардена».

Барышням такое знать не обязательно )

Согласен, Шекспира я бы ей, может, и простил.

Базовые принципы построения ПО менялись минимум дважды: когда Алан Кай придумал свои объекты и когда Гослинг это понятие извратил до неузнаваемости.

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

Акторная модель появилась в эрланге в 80-е

У Ерланга вообще какой-то свой особенный закрытый мир большого телекома, из которого нет ни входа не выхода.

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

Биллинги, для телекома и собственно все, другим такое не надо.

на одном сервере — без кластеризации и горизонтального масштабирования

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

другим такое не надо

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

Вот это не знал, снимаю шляпу )

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

То что его еще и кластеризуют - не знал.

Вы думали, что вотсап работает на одном сервере? Я бы месячную зарплату отдал, чтобы посмотреть на этот сервер.

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

Вы думали, что вотсап работает на одном сервере?

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

Тогда, наверное, вам будет интересно узнать, что ¾ всех роутеров в мире работают на эрланге.

Это в виде прошивки? А как же Cisco IOS, она же на С и на базе BSD была?

Не, тут вы путаете эрланг и эмакс, названия похожие, согласен, но это разные вещи: эрланг не умеет превращаться в операционную систему :))

https://news.ycombinator.com/item?id=17218190

Cisco IOS никогда не была на BSD. Там голый C с самодельной недо-RT OS и даже ассемблером, где нужно.

Есть IOS XR и IOS XE, к которым изолентой и палками прикручивали разделение привилегий, что-то даже получилось.

FreeBSD в основе это у Juniper, и то до какого-то момента (есть частичная миграция на Linux), с собственными драйверами и целевыми демонами всяких BGP.

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

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

Не работают "¾ всех роутеров в мире" на эрланге. Не представляю себе, откуда вы такое взяли, но у Cisco, Juniper, Arista, Extreme Networks и десятка прочих - ассемблеры, C, C++ в основном коде, а отдельные управляющие блоки могут быть написаны хоть на nodejs (недавно такое видел, жуть).

Ну или приведите авторитетный URL с указанием, что это именно так.

Единственное, где в современных технологиях более-менее массово бегает эрланг, это какая-то YANG база (я уже даже забыл, какая именно - не гуглится), там, где используется YANG (например, 5G инфраструктура - я сталкивался именно там). Ещё используют поделки для DIAMETER на нём, в основном самописки - за счёт качественной opensource реализации в Erlang. И всё.

WhatsApp, RabbitMQ и Discord — не в счет?

Ссылку на доклад Cisco я уже приводил.

WhatsApp, RabbitMQ и Discord — не в счет?

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

Ссылку на доклад Cisco я уже приводил.

Между "Erlang controlled" (каким именно образом?) и "работают на эрланге" - "дистанции огромного размера" (ц). Первое допускает, что, например, там что-то на эрланге в той роли, что в обычном Linux занимает systemd. Хотя я больше поверю в его использование в SNMP управлении, там эрлангу вполне место. Второе предполагает основную работу, что для раутера это хотя бы существенное участие в обработке каждого проходящего пакета, и это абсолютно невозможно, учитывая современные раутерные проблемы и технологии.

Единственное, где в современных технологиях более-менее массово бегает эрланг […]

Вы начали апеллировать к современным технологиям per se, не я.

Меньше всего я хотел что-то вам доказать, поверьте.

Вы начали апеллировать к современным технологиям per se, не я.

OK, согласен на поправку, что у одной Cisco (которая уже далеко не властелин, прошло лет 20 со времён её владычества) есть аж SNMP демон в раутерах. Уже два примера. Вместе с Whatsapp и ещё парочкой наберётся на пальцы пары рук - на весь огромный мир.

А учитывая несколько факторов кривизны эрланга, которую его управляющая команда не хочет лечить, и массового ухода от него начиная с ~2008 и дальше - существенного прогресса в этом не предвидится.

Меньше всего я хотел что-то вам доказать, поверьте.

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

существенного прогресса в этом не предвидится

Нет, конечно. Но на мой век хватит.

можете не продолжать дискуссию

А никакой дискуссии нет. В мире не существует другой технологии для высокосвязного кластерного решения под нагрузкой, го — смешно, в джаве — ну попробуйте в 100К процессов в каждой из десяти нод в кластере. Даже Акка не сильно выручит.

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

Эликсир, который работает в BEAM, предоставляет распределенные ноутбуки типа юпитера, умеет компилироваться в CUDA и близок по производительности в ML задачах к си — никакого прогресса с 2008 года.

Ну и «несколько факторов кривизны эрланга, которую его управляющая команда не хочет лечить» — они все сводятся к «мы написали свой обработчик message queue, потому что не осилили понять, как работает встроенный», их не лечат, потому, что они существуют только в мозгу не очень умных людей.

Но на мой век хватит.

А чего-то более прямого хватило бы в разы больше.

Ну и «несколько факторов кривизны эрланга, которую его управляющая команда не хочет лечить» — они все сводятся к «мы написали свой обработчик message queue, потому что не осилили понять, как работает встроенный», их не лечат, потому, что они существуют только в мозгу не очень умных людей.

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

попытка воспроизвести деревья супервизоров эрланга

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

ну попробуйте в 100К процессов в каждой из десяти нод в кластере. Даже Акка не сильно выручит.

В моём проекте было поступление что-то вроде 50 сообщений в секунду в каждую из 10k сущностей. И вот этого переключения нода уже не держала (2011 год, соответствующие мощности). Пришлось костылить машину состояний внутри одного процесса, а таких процессов делать примерно по количеству ядер. Вся красота ушла, зато стало работать. Пока не начались проблемы с теми же очередями процессов, там пришлось включать суперкостыли.

чего-то более прямого хватило бы в разы больше

А мне больше не надо. Я вообще неприхотливый. Если в чеке семизнак, балкон выходит на Средиземное море, и не нужно никогда видеть то, что люди, лишенные эстетического вкуса, называют «код» — на го, джаваскрипте, питоне и джаве с дотнетом — я практически удовлетворён.

У Ерланга вообще какой‑то свой особенный закрытый мир большого телекома, из которого нет ни входа не выхода.

Записывает в блокнотик: «не приставать к эрланговцам — они умеют в телепортацию!»

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

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

До PVT.VIRII дело не дошло? )

после книг уже). На даче небыло компа.

Какая-то ОЧЕНЬ странная статья. "Как за год выучить джаву? Писать год на джаве и не отвлекаться". Кажется (я не программист, а аналитик и код, который я пишу, довольно однобокий, конечно), что программиста программистом делает вовсе не знание языка, а более глубоки штуки в духе понимания парадигм или, например, знания алгоритмов. Даже не так, не просто знания, а умения эти алгоритмы распознать в реальной задаче. Поэтому (опять же, только кажется), но ваш совет "закройтесь наглухо, отрубите все и начинайте кодить по 10 часов в день" - ну такой себе. Наверное, так можно делать при а/ понимании "зачем" или б/ страстной любви к процессу нажимания кнопок на клавиатуре. В этом понимании "зачем" обычно у новичков есть проблемы - в силу незнания, они не знают, что именно нужно знать (или - иначе - не знают, что именно можно, а что - нет). И поэтому "хотелки" летят в разные стороны, доходя до "сделаю свою игру", полагая, что там "че там сложного". А потом выясняется, что там какая-нибудь геометрия ого-го какая и вообще математику вспоминать надо на каждом шагу (кстати, где она у вас внутри этого года?).

"Отрубите интернет" - тоже совет скорее всего понятный. Надеюсь, автор имел ввиду "отрубите все развлекухи". А то тот же гитхаб как смотреть? Ну и да, про кукуху написали не раз. Не выйдет так "оптимизироваться" на год, чтоб вообще как монахи - концентрировать мысль только на одном. Какая бы мотивация бы ни была.

Пусть умные люди скажут, что за специалиста вы получите через год таких советов - я таких просто людей не встречал (да и, повторюсь, я не программированием на работе занимаюсь, а данные анализирую). Но интуитивно кажется, что а/ через год вы получите (вероятно) беглое умение "писать код" только на Джаве (мы же, по условиям советов, внутри этого года вокруг не смотрим, да?) и б/ не факт, что будет глубокое понимание того, что там внутри вашего кода происходит (тут, кстати, не факт, что всегда нужно это знать, но разработчикам все-таки нужно, вероятно).

Мысли такие.

что за специалиста вы получите через год таких советов 

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

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

Найти их можно вот таким запросом в поисковых системах:

github "название книги" code samples



либо вообще отключенный (интернет) — самый идеальный вариант.



Извините, а как?

Извините, а как?

Заранее, не поверите.

Когда будет хорошо получаться - вот тогда в бассейн воду нальют (ц)

Вы не поверите, но существует целое поколение людей, которые научились. Сами. Без ентих ваших ынторнетов с коучами.

Пожалуй, самое главное, что сформулировано в данной статье и за что имеет смысл зацепиться:

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

И вот тут известная мне практика показывает, что вариант самообучения методом кидания в кипящую воду работает для 1-2% от всех. Остальным, даже когда они успешно выходят в итоге на режим, что у них нормально работает самообучение всю профессиональную жизнь, начальный толчок нужен в виде учителей, которые умеют объяснять так, чтобы дошло до большинства, регулярной обратной связи на все ошибки, общения с коллегами, помощь в преодолении самых тупых затыков - и так первые пару лет, пока не выйдут в самостоятельность. Автору повезло? ok, "anecdotal evidence" в полный рост.

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

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

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

чтобы запустить любознательность, которая на каких-то теоретических основах, но не понятна

Ну тут от возраста ученика зависит. В 12, 16 и 25 интересно разное.

поэтому иногда видео туторы полезны, потом всё равно документация перевесит потомучто она первоисточник

Это просто разная форма подачи для разного. Документация индексируется и описывает просто текстом. Видео показывает то, что удобнее описывать именно как "ткнуть здесь" или "смотри, на экране должно быть именно такое (в движении)". Про абьюзинг методов я не говорю.

Тенденции последних лет с чрезмерным упором на видео это неприятно. Люди плохо пишут документацию, увы. Кстати, маны - плохая документация. Хорошая выглядит или в стиле BSD документов групп PSD и USD, или типовое описание в MSDN с разделением на overview, tutorials и reference, или GNU info с аналогичной структурой.

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

Тяжёлые концепции - они разные бывают. Многие, наоборот, в тексте проще понять.

Симуляция процесса - да, для неё видео очень часто действительно полезнее.

что вариант самообучения методом кидания в кипящую воду работает для 1-2% от всех. 

Даже не буду спрашивать как вы это выясняли, честно )

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

Это называется высшее образование, только занимает оно 7 лет.

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

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

Это называется высшее образование, только занимает оно 7 лет.

7 - это специалист плюс аспирантура до уровня кандминимума? Интересная цифра, непонятно, откуда вы её такую взяли. А то базовый бакалавр сейчас 4 года, и это уже вполне себе высшее образование.

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

И почему за чужой счёт?

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

Он вообще не нужен. Ну опять же кроме мелкой группы особых.

7 - это специалист плюс аспирантура до уровня кандминимума? Интересная цифра, непонятно, откуда вы её такую взяли. А то базовый бакалавр сейчас 4 года, и это уже вполне себе высшее образование.

Я ВУЗ закончил в 2005м году, тогда было 5 лет. 7 лет это действительно «плюс аспирантура». От современных реалий высшего образования несколько далек, собственно даже в родном Нефтегазе лет 15 не был.

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

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

Если вы не можете писать код без чьей‑либо помощи — вы не являетесь программистом. Все просто и банально.

И почему за чужой счёт?

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

Чаще всего это родители.

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

Я подрабатывал разработкой софта — и не отвлекался, и денег хватало.

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

CS огромен. Я до сих пор чудовищно плаваю, например, в веб-разработке, оставаясь на уровне чуть выше чем HTML 3.2, у меня шарики за ролики заходят в попытке понять статьи по межтредовой синхронизации со всякими synchronized-with и happens-before, я только недавно перезаучил особенности плавающей точки (ну, простительно с учётом того, что в 90-е местное обучение ещё было ориентировано на ЕС 10xx и лучшей книгой по теме был FMM), и прочая и прочая. И что, это сильно мешает работе?

Стоит ли жаловаться на незнание проктологии тому, кто 20+ лет работает стоматологом?

Никогда не понимал, зачем «осваивать дисциплины». Потребуется? — Разберусь. Разобрался же я как-то с испанским языком в 40+.

Разобрался же я как-то с испанским языком в 40+.

Полагаю поэмы на испанском вы врядли начали писать?

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

Приходится постоянно дергать сервисы проверки орфографии на каждое отправляемое письмо.

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

Правила пунктуации в деловом английском очень простые, на самом деле: составных предложений нет, длинных предложений нет, знаков препинания, кроме точки, — нет. И всё.

Еще надо помнить, что двух подряд эпитетов тоже не бывает, потому что внезапно в английском эпитеты ordered (sic!), и сказать «long pale metal stick» — можно, а никак иначе — нельзя.

и сказать «long pale metal stick» — можно, а никак иначе — нельзя.

stick your long pale metal into.. ;)

Сложно вообщем без мата.

потому что внезапно в английском эпитеты ordered (sic!)

В русском, внезапно, тоже. В вашем примере и порядок совпадает.

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

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

Это вы говорите про низшую разновидность - кодера на "чего изволите?"

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

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

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

Для 90% случаев - скорее да, но это не абсолютное правило.

Это вы говорите про низшую разновидность - кодера на "чего изволите?"

Вот не надо всех этих увиливаний «мы проектируем, кодирование — для низших видов» и все в таком духе.

Если что и Марк Цукерберг и Илон Маск и Билл Гейтс считали и считают себя программистами и всегда гордились тем что своими руками писали код.

Несмотря на все их состояния и должности.

Если что и Марк Цукерберг и Илон Маск и Билл Гейтс считали и считают себя программистами и всегда гордились тем что своими руками писали код.

Это ничуть не противоречит тому, что я говорю.

Вот не надо всех этих увиливаний «мы проектируем, кодирование — для низших видов» и все в таком духе.

Не знаю, у кого вы это вычитали, но мне не интересно.

Если что и Марк Цукерберг и Илон Маск и Билл Гейтс считали и считают себя программистами и всегда гордились тем что своими руками писали код.

Но любят их не только за это ;)

Писать код - просто. Читать его - вот что сложно.

Полноценный программист - вымирающий вид. То же ChatGPT уже сейчас пишет неплохой код при подробном детализированном ТЗ - пользуюсь каждый день результатом в целом доволен- особенно если включать туда еще и test cases.
Ближайшее будущее за консультантами, которые и с бизнесом могут поговорить, и код могут читать. А вы предлагаете затворничество, которое убьет зачатки когнитивных навыков.

ChatGPT уже сейчас пишет неплохой код

Для задач сложности простейшей джейсоноукладки. Более-менее сложный код оно не пишет, и никогда не напишет, оно не на это натренировано.

"Пожалуйста создай класс который построит балковую диаграмму на основе данных из testDuration.json.
Каждая балка должна быть построена как среднее выполнения каждого теста за день. Максимум 30 балок на диаграмме. Подписи снизу в формате dd-mm-yyyy. Вертикальная ось в секундах. результатом должна быть картинка в jpeg."

Это ужасное ТЗ , за которое программист съел бы мне мозг. Не определен размер картинки, надписей, в файле с данными данные по всем тестам в перемешку.
ChatGPT создал пару классов, с возможностью опционально исключать failed тесты, сам добавил надписи на график, и самое главное не стал засовывать внутрь чтение из файла. Все за 20 сек и оно заработало сразу.

Уже на этом уровне ChatGPT покрывает 70% задач написания кода.

Ошибки в файлах он тоже прекрасно ищет и исправляет по описанию из тикетов.

 Все за 20 сек и оно заработало сразу.

Ну а результат-то вы догадались проверить? Что корректно отрабатывают дроби и отрицательные значения, например?

Ну а результат-то вы догадались проверить? Что корректно отрабатывают дроби и отрицательные значения, например?

Ну вот зачем Вы ему так сразу с ноги хрустальную мЯчту разбили?

В моём комментарии первым предложением было согласие: «Для задач сложности простейшей джейсоноукладки».

Такие задачи даже для стажера — не проблема, и да, автодополнение сделает их быстрее даже джуна. Я просто с подобными задачами уже лет 25 дел не имею.

 То же ChatGPT уже сейчас пишет неплохой код при подробном детализированном ТЗ

Юмор в том, что язык на котором пишутся те самые запросы — промпты это нифига не естественный человеческий язык, а точно такая же искусственная лингвистическая конструкция, как и обычный язык программирования.

По-сути вещей, промпт это программа, просто написанная в декларативном стиле запроса и на высокоуровневом языке, а все занятие с ChatGPT это фактически мета-программирование.

г.н. Луговский наверное в гробу вращается со всех этих нейросетей теперь.

г.н. Луговский наверное в гробу вращается

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

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

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

Хм, Лурк говорит: дата рождения 7 февраля 1978 г. Вы явно промахнулись.

Дальше копать пока не стану.

Да, но промпты будут писать аналитики-консультанты, они же будут придумывать данные для тестов, общаться с бизнесом, быть прослойкой , чистые программисты здесь не нужны.
Для упоротых 5% случаев будут привлекать фрилансера - узкого специалиста, как впрочем, делают уже сейчас.

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

Какая красивая сказка.

Видите ли, такие же промпты, просто в чуть другом виде, например в виде графической схемы эти ваши «аналитики‑консультанты» рисовали еще 10 лет назад.

Под мантры о замене дорогих программистов. Только воз и ныне там.

Хм, не кидая ни единого камня в огород, но вот возьмём, к примеру, питон. Это просто высокоуровневая обертка над. Вы ведь в процессор / память напрямую не лезете? Такты его не считаете? Поэтому кажется, что гпт-модельки - это просто ещё один уровень абстракции, когда код пишется не на ЯПе, а промтами.

но вот возьмём, к примеру, питон

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

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

Промт в модель — это еще один слой абстракции, не более.

Что-то я никогда не сталкивался с ситуацией, когда компилятор вдруг ушел в астрал и накидал несуществующих инструкций в результирующий машинный код.

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

спросите у ГПТ как сделать такой редактор на свинге и опишите это

Скрытый текст

это как я щас понял у меня джуновское решение, но я уже могу докрутить стиль до подсветки java кода, и докрутить каретку по вставке \n и всё мой редактор начальный готов, да даже без каретки я могу уже им пользоваться, командную строку я могу скрыть, вьюшку папки могу скрыть, ну можно еще настроить отключение подсчета строк, и можно добавить режим PlAIN текста без подсветки, который будет работать jtextarea, командную строку могу регулировать, а и еще настроена сборка проекта под мейкфайл по приколу ), в консольке реализовал простенькую функцию очищения консольки )

SICP это кажется (перехрестился - не прошло) про LISP?! А по учёбе Java, правильно: зайти в уединённое место, взяв с собой чашечку кофе, и толстый учебник, желательно в мягкой обложке.

зайти в уединённое место, взяв с собой чашечку кофе, и толстый учебник

Имхо в любом раскладе нужно выбрать 2 из 3. 1 по любому лишний;)

SICP это кажется (перехрестился - не прошло) про LISP?!

С какого-то момента они сдали позиции и есть как минимум версия для Python.

SICP это классика, если вы метите в PhD по CS — вам надо ее прочесть, как минимум знать о ее существовании. То что в качестве примеров был взят Lisp не делает сами изложенные принципы устаревшими.

Также как и Java, взятая в качестве первого языка — не приговор или «родовое проклятие». Это просто язык, удобный для начального обучения, не более того.

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

Полагаю его вариант подобной статьи был бы на порядок жесче.

Боюсь, Вы не совсем верно поняли. Про "жёстче" — да, но не только. Смотрел давно, что-то уже запамятовал, но суть, насколько я понял,

в следующем.

Паренёк очень сильно хотел играть на барабанах (суть мечта, неважно, в чём именно она заключается), репетировал денно и нощно, и в итоге, да, добился признания. Но какой ценой? Девушка бросила (личной жизни нет), кроме джаз-бэнда ни с кем не общается (ноль друзей), да и общение лишь по работе.

без жертв успеха не бывает

Да, согласен. Вопрос только в том, что это за жертвы.
Я к тому, что жизнь достаточно, даже весьма, многогранна и разнообразна, чтобы заниматься исключительно одним, и только одним, делом всю жизнь. Да, несомненно, при таком (фанатичном) подходе можно стать очень и очень знаменитым (в достаточно узких кругах) и успешным\богатым, но многим ли такое нужно? Также возможен вариант "поехать кукухой", что неоднократно озвучивалось в комментариях выше.

И ещё один момент.

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

реалистичный вариант — старая дедушкина дача в какой‑нибудь очень далекой деревне

Интернет должен быть либо медленный и плохой либо вообще отключенный — самый идеальный вариант

Речь ведь идёт про молодых людей? Возник вопрос, а кто будет платить за деревню, интернет, ноутбук, рюкзак, еду на год?
Скажем, у меня в институте, была какая-никакая, но стипендия, плюс какие-никакие, но подработки. Просто я не мажор, и не представляю кто бы захотел мне оплачивать сей "праздник" в течение года.

но многим ли такое нужно? 

Ну я честно спрашивал желающих «войти в ИТ»: чего вы хотите.

Они именно этого и хотят: успеха, денег и быть знаменитым.

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

Так в чем проблема-то?

Так в чем проблема-то?

Баланс. Компромиссы. Нет? # Разумеется, нет.

Ну, балансируйте, кто мешает.

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

Это помимо самой обычной бытовухи, в виде необходимости добывать себе пропитание здесь и сейчас и на что-то жить.

Балансируйте )

помимо самой обычной бытовухи, в виде необходимости добывать себе пропитание здесь и сейчас и на что-то жить

В комментарии выше под спойлером "И ещё один момент."

Некоторое противоречие, не находите?

I.M.H.O, какой-то юношеский максимализм, "всё или ничего".

какой-то юношеский максимализм, "всё или ничего".

я уже объяснял, что ИТ — для фанатов и гиков, если вас интересует осознанность и планирование — идите в продажи, финансы или проституцию.

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

Вот так выглядят подобные претензии со стороны.

Представьте что вы пришли в деловом костюме на сходку ролевиков‑реконструкторов ...

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

идите в продажи, финансы или проституцию

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

И сразу плюсик.

Это частный случай и вообще неправильный подход, тем более для BSD‑шника — нельзя решать проблему установкой огромного лимита по памяти.

Я специально ставлю лимит в 512Мб памяти и смотрю что и где отлетит, в качестве одного из тестов. Рабочие проекты везде с лимитом в 1 максимум 2Гб памяти.

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

у меня редактор если сравнивать с емаксом, отьедает 4гига - верх я не указываю покачто, а его ресурсы занимают редко когда доходит покачто до 200мб - это с GC, а емакс занимает в высоту 129, а по низу как мой редактор

на с++ с сдл from scratch такой же редактор займёт покачто как емакс даже чуть по-больше, если линковать в статику, около 150 мб с шрифтом со всеми штуками

там в новых версиях я недавно читал добавили ZGC какой-то я не читал технические описания, просто бегло смотрел

Автор явно работает офисником либо троллит) Ну ничего, когда-нибудь станет программистом) В последнее время много джунов учат как надо и как не надо)

Вообще кроме шуток, такой вариант сработает для любой деятельности, в которой вы хотите добиться совершенства, будь то программирование или спорт или рисование, пение — да что угодно. Другой вопрос, что этот вариант очень вакуумный, я тоже порой мечтаю «вот бы запереться в келье с самоучителями и выбросить телефон на год, ух, каким специалистом бы я стала»)) но можно начать хотя бы с часа в день, постепенно увеличивая время предельной концентрации. На личном опыте, даже 5 часов без социальных сетей, посвященных определенной задаче с перерывом на поесть-размяться, дают ощутимый буст.

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

Наконец‑то, спустя 300 комментариев пришло понимание что «сказка про 10 000 обязательных часов практики» это внезапно не сказка.

Ничё, что 300 комментариев — они были от разных людей, у многих из которых с этим тезисом и в мыслях не было спорить?

Не хватает только ссылки на знаменитую копипасту «Высшее образование в IT своими руками...»

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

Не хватает только ссылки на знаменитую копипасту

Мне годами выносили мозг этим сакральным вопросом "как вкатиться", я просто вдумчиво ответил.

чень хочется сорвать и делать всё что угодно кроме обучения

Именно так, назвается "дисциплина" и если ее нет, то никакой самый сказочный талант и генетика не помогут.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации