[СММ-2024] Интеллект-стек

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

Сам список дисциплин интеллект-стека мне знаком, так уж вышло. И я не помню где он мне первый раз встретился, в “Практическом пособии по усилению интеллекта” у Прапион Медведевой или всё-таки где-то по дороге в ШСМ (в ОДО). Поэтому, что в списке было, то и в курсе присутствует. Постепенно меняется восприятие дисциплин.

В бытовом айтишном - стек это прикладные мастерства, которыми я работаю. Я работаю на стеке - backend Elixir. Там множество общих для всех bаckend разработчиков (базы данных, клиент-сервер и т.п.) знаний и навыков. И это множество меняется, в какой-то части сильнее, в какой-то меньше. Условно сколько лет реляционным базам данных? Это не значит что другие типы баз данных не появляются, но они резко не врываются. Если мы остаёмся в рамках “простых” компьютеров (не квантовых). А всякие окружения времени выполнения скачут. В 2018 году что ли на работе внедряли docker (контейниризацию). В 2024 уже вакансии без знания Kubernates (который поверх docker) не встретишь. И кусок специфичных для ЯП мастерств. Тут как язык меняется, так и мы за ним. Но тоже как будто, из функционального резко куда-то не переходит. Хотя вот типы недавно притащили в каком-то виде. При этом товарищи фронтендеры отмахиваются, мол моё дело красивый интерфейс наклепать, а чего у вас там стенд из-за инфраструктуры не разворачивается, я знать не хочу. Подумала сейчас, что фронтедер это айтишный гуманиратий) Но они же как будто из смеси дизайнеров с верстальщиками выросли, что с них взять.

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

Я легче вспоминаю о существовании “начало” стека: понятизация, собранность, онтологика, алгоритмика. И более привычно-бытовых, но не глубоко знакомых: этика, эстетика, риторика. Про физику и математику не помню вовсе. Остались они в районе третьего курса университета. При этом с началом стека в силу хождения по мукам (МиС) стало понятнее, что это не какие-то “Знания по предмету”. И уж точно не “история знаний по предмету”. А набор фундаментальных навыков/мастерств. После прочтения первой главы СМ и пробежки по первой главе Интеллект-стека, фиксируется понимание, что это мастерство/метод мышления/вычислитель. И тут как раз контринтуитивно видеть “метод мышления - математика/физика”. Но тоже на прошлой неделе обсуждали, что это не про знание всех разделов науки физики. Это некий движок/framework - физическое мышление. И математическое мышление туда же. И да, этому всё ещё особо нигде не учат.

Доходит до курьёзов, когда один из лучших в мире курсов по развитию вычислительного мышления SIPC пришлось убрать из вузовской программы ещё в 1997 году. В основе курса SIPC лежала функциональная парадигма, как очень удобная для размышлений о вычислениях. Самая популярная сегодня парадигма в программной инженерии — объект-ориентированное программирование.

Мне тоже забавно. В университете по SIPC не учили (2005-2010). При этом в “современности” есть целые курсы аля “SICP на ruby/javascript/python”. Т.е. кто-то откопал и доносит важность! При этом я первую и следующие работы программировала на ООП. А сейчас как раз уже на функциональном языке (и можно сказать более-менее чистом функциональном). Потому что за эти годы в условно объектно-ориентированные языки понатащили функциональщины, а где-то и процедурного. И теперь у нас много где “мультипарадигменное” нечто. Книжка SIPC лежит на столе у меня, советь говорит, что наверно надо дочитать. А воспоминания про LISP из универа говорят, что ничего там особо нового и нет. И в целом спасибо ВУЗу, было разнообразно, чтобы не казалось, что программирование это “пошаговая инструкция делай раз, делай два”. Был и ассемблер, и LISP, и C, и Prolog, и интерпретируемые языки.

все эти Software 2.0 (код пишет алгоритм) и даже 3.0 (код пишется на естественном языке как языке программирования, то есть «код» вообще не пишется!)

У нас “код пишется на условно естественном языке (domain-specific)” сейчас появилась потребность реализовывать. Любопытно, что первоначально была идея сделать вычисление на основе формул. Но они стали такими громоздкими, что в них сложно находить ошибки (отлаживать сложно). Языковые конструкции на псевдокоде, который преобразуется всё-таки в код на языке программирования, должны быть сильно легче в отладке. Да и в понимании для людей…

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

Эх, я начинаю к этому постепенно привыкать.

Почитать курс целиком будет интересно. По этике так и нет книги, чтобы можно было взять. Про эстетику я заякорила себе “не красиво, не полетит”. Про рациональность и объяснения слышала краем уха уже. Дойч лежит в списке для прочтения. Канемана кажется нет смысла читать. Уже S1 и S2 невозможно развидеть.

3 лайка

По этике - написать надо книжку. Когда будет много-много мастеров, они сделают лабораторию, и будет курс))

Про физику-математику, сейчас “обратным ходом” иду: институт → курс интеллект-стек → курс математики для взрослых (1/3 пройдено, дальше физика).
Промежуточный результат: как много красивых и компактных способов есть, чтобы описывать идеи. И мне - это все рассказывали и в школе и в институте, но тогда непонятно было что с этим делать, и ни красоты ни пользы увидеть не удалось. Ну, кроме маленьких фрагментов))

1 лайк

Мне нравится вот этот рейтинг. Не то, чтобы истина, но вполне себе разумно DB-Engines Ranking - popularity ranking of database management systems тут видно, что SQL по прежнему в топе, хотя и NoSQL решения подбираются, что наверное, говорит о том, что применение в системах им есть и неплохо бы этим инструментом уметь пользоваться.

я думал это верстальщики? А хороший фронтенд это на самом деле сложно, с пересечением многих компетенций UI/UX/верстка/программирование/психология и т.д.

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

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

А что за курс? Вузовский какой-то, можно ссылку?

Я когда вспоминаю, что специальность моя: математик минус программист (математик-программист), думаю, что надо бы математику подтянуть. Но натыкалась пока только на курсы математики для желающих дальше податься в data science (skillfactory такие курсы делает).

Физтех собирается инженеров Шанинки учить – но они там вроде ж гуманитарии? Ну, как сказать. Промышленный дизайн, “чтобы было ешё и красиво” )))

вот да. Прикладные курсы есть, а вот такое чтобы “движок” запустить…

Про движок сказано читать интеллект-стек…

1 лайк

Орууууу =)

Я тоже так думал, но нет, там есть достаточно сложные в плане программирования вещи - управление состоянием в redux, управление асинхронностью при запросах к бекам и тд. Там кажется, что все банально-тривиально, но там очень легко обломаться =)

Шучу-шучу. Я не всмысле балбес. У нас опять же почему-то прижилось восприятие “гуманитарий = не соображает толком”. Как Саша выше писал, мол значит пары прогуливал.

Так же как JS не язык или php. Потому что ты в JS можешь сделать 1 + “1” = “11” и у бекендеров от этого подгорает. Это ж разные типы, нормальный язык запрещает операции с неподходящими типами (хоть сколько-то уважает онтологику). Более предметная притензия к фронтам в том, что они не инженеры. Они действительно выросли как смесь дизайнера, верстальщика и ux кодера. Это не отменяет сложность. Я знаю что есть не только микросервисы, но и микрофронтенды. И ещё миллион страшных слов BFF, SSR. Но как будто необходимость “лезть под капот машины” так и не появилась. Никто из фронтов не думает, что есть какие-то базы данных, какие-то кубернетисы. Всё что вокруг немного остаётся магией. Но это тоже общая проблема. Так же для бекендера из одной команды, остаётся черной магией бекенд другой команды (особенно когда там язык программирования другой). И для меня тот же бекендер из соседней команды, который не может разобраться с технологией, который мы пользуется, выглядит гуманитарием. Т.е. чего-то инженерного ему не додали (в вузе, на курсах?). Но если он в универе и не был. А просто курсы прикладные закончил, то и что с него спросишь…

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

У меня как у программиста это подгорает, так что на TS =)))

То есть ассемблер - это не нормальный язык? =)))

По мне это боль всего web-dev, там и в беке мало инженерии. Более того, в универе “железные” инженеры не считают прогеров инженерами: “железки нет - нет инженерии”.

1 лайк

Вот это очень интересно, отложил себе в копилку вопросов на будущее =)

1 лайк

"Утиная типизация" в онтологике - надо разработать тему! )))

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

На мой вкус “утиная” это не типизация как раз. Это behavior/поведение.

Есть языки, где есть такой тип behavior, мы задаём поведение (уточка ходит, крякает), а модуль реализует/implements поведение. Я тоже могу попытаться ходить и крякать. Уточкой я не стану, но поведение буду демонстрировать утиное (сколько перья не цепляй цыплёнком не станешь). В ООП языках аналогом поведения можно считать интерфейс/interface/контракт. И он тоже реализуется/воплощается/implements классом. Какой-нибудь класс движка баз данных, будет вынужден реализовывать похожие функции для всех видом реляционных БД (MySQL, Postgres, Oracle). Каждый конкретный класс. “MySQL data-base driver” implements “Database driver”.

Я прогал под ARMv6 какие-то куски на ассемблере, чтобы ускорить выполнение на Си, там был отдельный криптопроцессор для DES AES RSA ECC операций (компилятор о нем не в курсе обв), вот там не помню, чтобы были типы. Ну да ладно, этих ассемблеров туча, наверяка есть и с типами и без.

Хммм, вот я сейчас подумал, что в JS/TS implements может применяться не только к интерфейсам, но и к абстрактным классам.

1 лайк