Комментарии 282
Для начала скажу, что мне 31 и я учился в ННГУ в Нижнем Новгороде на соседней специальности. И знаете что, вы поспешили с уходом и выводами…
Сразу скажу, если вы с ВМК, то вообще ничего не изменилось за почти 10 лет, как вы закончили обучение.
А вот в IT, вроде как, много всего произошло.
И я не говорю, что ничего хорошего не было, нас даже чутка учили MySQL.
Просто это все оооочень медленно преподается и есть серьезные проблемы, которые я описал выше.

Лично я с удовольствием бы учился в ВУЗе, если бы там давали то, что мне необходимо
Лично я с удовольствием бы учился в ВУЗе, если бы там давали то, что мне необходимо
Проблема в том, что то, что необходимо вам совершенно не нужно Университету.

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

Однако это теоретически. А практически… Университетов слишком много, желающих «двигать науку» мало, а главное — совсем нет ПТУ, где всё что вы описали имело бы смысл.

Что с эти делать — неясно: создавать ПТУ, где обучать людей пользоваться Babel'ем — не имеет смысла, так как работодателям нужны корочки ВУЗа (если им вообще что-либо нужно), менять программу ВУЗув так, как вы предложили, никто не даст — так как это идёт вразрез с их основным предназначением… в общем как выправить ситуацию — не особо понятно…

А вот в IT, вроде как, много всего произошло.
А что, собственно, с научной точки зрения, произошло? На ум приходят разве что кой-какие достижения, связанные с нейронными сетями. Но про «P = NP?» По прежнему никто ничего не знает, квантовые вычисления остаются экзотикой и вообще — по большому счёту всё, что умеет Rust (новый модный, молодёжный) — с научной точки зрения было исследовано лет 10-20-30 назад, а то, что происходит в C++ или PHP, с точки зрения науки вообще интереса не предоставляет: всё было изучено в LISP полвека назад…
Здесь, конечно, соглашусь.
Сейчас любое здание, где хоть чутка учат, готовы назвать университетом.

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

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

А что вы ждёте от такого птунивера, что вам не даст обычный интернет?

А что вам даёт обычно универ, что не даст интернет? Все учебники же в свободном доступе.


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


Кстати, мы тут определились, что не птунивер, а институт :)

А хороший вопрос, кстати.


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


Книжки действительно есть в открытом доступе. Можно самому построить себе программу, задачи чуть более популярных учебников (какой-нибудь Шелдон Росс) проверять по публично доступным решебникам для студентов, чуть менее — спрашивать на math.stackexchange (я так делаю, мне даже часто отвечают, иногда даже по интерпретации самих учебников).


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


А институт… Ну я Московский физико-технический закончил, вам бы не понравился, а универ там только в скобочках сиротливо :)

Между ПТУ/лицеем (выпускники программисты) и вузом (выпускники инженеры-программисты) по "табелю о рангах" находятся техникумы/колледжи (техники-программисты)

Теоретически в дипломе инженер-программист, что довольно прикладно должно быть.

А что вам необходимо? Откуда вы знаете в свои 20 лет? Если вы мечтаете долбить сайты на вьюхе или реакте до конца жизни то вам уже указали направление — ваш уровень пту, ну или курсера, здесь же речь о фундаментальном образовании.
Насчет «изменилось», давайте кратенько пройдемся по преподаваемым предметам на вашей специальности из того что вспомню:
Матанализ — преобразования фурье, то на чем строятся аналогово-цифровые преобразования, то есть обработка сигналов.
Геометрия и алгебра — матрицы поворота, вектора — активно используется в геймдеве
Дискретка — это вообще фундамент вычислительной техники
Теория алгоритмов — очень приятно когда можно прикинуть что за говнокод ты планируешь накатать еще до того как осознаешь что творишь какую-то дичь
Сетевые технологии — фундаментальные понятия стека ISO/OSI и того как компьютеры вообще между собой могут обмениваться информацией.
Теория вероятностей — у меня ее как-то раз спрашивали на собеседовании, контора занималась компьютерным зрением, мне кажется неспроста :)

Что из этого принципиально изменилось того, что вы можете осознать со своего уровня? Это вещи которые пока просто работают вне зависимости от того сколько лет прошло. Вам-то понятно в ваши 20 лет надо дать клавиатуру и сказать «запили мне гугл», и вы запилите (нет). Тем не менее, изучив эти предметы вы выходите человеком который нихрена не умеет делать руками, но при этом может эти знания приложить к области которая ему интересна и развить их, если потребуется, и если надо то взять листочек и бумагу и за пару вечеров восстановить, просто потому что это уже есть в голове, у меня так за 10 лет профессиональной карьеры случалось, и не раз.

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

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

Отсталые предметы — ну куда ж без них, мы в свое время сеть настраивали между MS DOS и WINNT3.1 :)), еще было 3д моделирование, генетические алгоритмы и вот такое вот все, но это проходные предметы, на них в целом можно забить если лень или неинтересно.

А так, что там в айти изменилось то глобально? Выкинули клиркейз/свн стали юзать гит, ну да гитхаб сделали, но мержи чекауты и коммиты никуда не ушли. В линуксе был менеджер пакетов теперь менеджер пакетов есть в любом популярном языке, просто потому что это удобно и вообще переиспользование кода. Перестали юзать tcp потому что медленно, напихали reliable udp где можно. Допинали js до состояния когда видя код на нем не хочется креститься. Осознали что функциональщина это иногда хорошо и потащили в мейнстрим. Поняли что монолиты неудобно, начали распиливать на микросервисы, oh, wait, в эрланге это уже 20 лет как есть из коробки, зато теперь все думают как этим управлять. Поняли что железо под столом неудобно, сделали виртуализацию, да с оверхедом, зато не надо бояться что соседи сверху сервер зальют, зашел в авс зачаржил машину с убунтой и сервис готов. языки на VM — медленно, зато писать быстро, с++ — быстро, зато писать медленно. Докер — просто модное слово, алиасы — chroot/lxc (да я знаю что все немного сложнее)

Кирпичики то все те же остались. Поэтому пока есть время — начинайте с основ, а имя_вашего_фреймворка_здесь всегда успеете изучить. Удачи.
Насчёт не нужно бояться, что сервер зальют — ещё как зальют. Просто если раньше это был просто один сервер, то теперь один реальный сервер и на нём с десяток виртуальных. Это тоже фундаментальщина. :)
В нормальном дц он автоматически реплицируется на географически разнесенные ноды.
Пока репликация не развалится… или кто-то из провайдерских админов виртуалки не удалит. Надеюсь, учитывать возможные отказы подобного рода тоже учат при проектировании систем…

Как правило ДЦ или классические провайдеры вообще не реплицируют виртуалки или железные сервера на обычных тарифах. Этим занимаются облачные провайдеры.

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

Я программированию (вернее Джаве, опыта до этого не было) учился на джавараш. Потребовался год. После этого я получил работу в спб с зп 120.000 чистыми.

НЛО прилетело и опубликовало эту надпись здесь
А в вашем Питере джава-июни сколько получают?
В моем — примерно так и есть. 80-120.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Есть три вида лжи.

По статистике я получаю как QA TeamLead, а по факту — я простой синиор.

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

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

Я не НЛО, но давайте воздержимся.
Как обычно «в идеале».
Да, нам нужны спецы, которые будут двигать всю индустрию вперед, зная самые основы всего IT.
Вот только сейчас они не делают ни того, что хочу я, ни того, что хотите вы :)
Так я сказал, в идеале.
Что имеем на практике… Сноска про НЛО
В идеале, ВУЗ учить решать проблемы, решения которых еще не придумано.

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

Вы бы еще на медицину замахнулись. Контекст статьи — IT, потому речь только про IT.
Про остальное я судить не возьмусь.

Возможно я Вас неверно понял, комментарий не однозначный легко подумать что речь идет про все ВО в целом.
Однако и для IT это более чем верно — информационные технологии почти полностью инженерная специальность. Конечно каждый второй мнит себя Лейбницем после первой лекции по матанту, но вот вопрос с подвохом: какой процент сложившихся и успешных разработчиков с ВО имеют оригинальные публикации представляющие хоть какую-нибудь научную ценность? Только давайте не будем назыывать фреймворки ответом на «решать проблемы, решения которых еще не придумано.» Тех кто развивает информатику как академ. науку абсолютное меньшинство, остальные же специалисты (которых не подготовить в ПТУ за годик) эти знания эксплуатируют, т.е. в широком смысле ствят эти знания на службу человеку.
Вообще наука не может быть целью в себе, т.к. получение знаний для еще большего количества заний лишено смысла. Это как плохой пример плановой экономики: производить больше металла для создания тяжелой техники с помощью которой добывать больше металла. Знания человеку, человеку в широком понимании, нужны для того чтобы так или иначе менять себя и свою жизнь в лучшую сторону, т.е. находить этим заниям различные применения. Чем и занимаются большинство профессионалов после ВО. И специалистам этим нет числа: та самая медицина с ветеринарией, строители, юристы, редакторы\корректоры, инженеры. И пусть меня закидают помидорами, IT специалисты тоже по большей части используют знания, но не преумножают, то есть являются инженерами, но не учеными.
Наука есть фундоментальная, а есть прикладная. И без первого второе не будет жить. Для примера — вся современная криптография основана на тероиях, которым по 300-400 лет (могу и ошибаться, но это даже не 19-й век точно).
Итого, если применить к чисто инженерной области (IT), я вижу следующее:
Есть ученые фундоментальные. Их задача — наука ради науки, больше знаний ради больше знаний. Алгоритмы, концепции, etс. Кони в вакууме, чистая математика и полет разума.
Есть (не знаю как назвать, ученые прикладные?). Их задача — накуриться и понять, что понаписали алкаши, понять, как полученные выше алгоритмы и т.д. впихнуть в реальный мир и реальные задачи. Частично — сделать инструменты для применения.
Есть инженеры. Если надо вычислить объем красного шарика — возьми справочник объемов красных шариков. То есть применить нужный инструмент в нужной ситуации. Если шире: провести анализ ситуации, провести анализ доступных решений, выбрать лучшее, идти дальше.

Ну и конечно же, обратная связь.

В данном случае — в моем видении первых двух учат ВУЗы, где лучшие становятся учеными. Инженеров готовят же ПТУ.

Однако, это идеализированный мир. В реальном же мире раздолбаи вроде меня не имея ВО занимаются вторым и третьим и хотят в первое, люди с ВО занимаются тем, что берут микроскоп и забивают им гвозди, потому что знают только про микроскоп и не хотят учить что-то другое, а ПТУ медленно вымирают, потому что каждая небольшая фирма занимающаяся написанием простых сайтов или поддержкой мнит себя гуглом и хочет обязательное ВО.
Для примера — вся современная криптография основана на тероиях, которым по 300-400 лет (могу и ошибаться, но это даже не 19-й век точно).

Как раз как минимум 19-й век, Галуа это все начал.

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

Как пример — планы продаж.

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

Инженер же хитрее, если тоже совести не имеет. На эту тему тоже пример: Мы делаем автомобили которые не ломаются по 10 лет. Мы молодцы, но скоро у каждого будет наш автомобиль и прибыли упадут =(. Что же делать? Просто спроектируем автомобиль, который будет выходить из строя раньше, чтобы простимулировать покупку новых. Теперь у нас стабильный денежный поток. Т.е. мы сумели в стратегию, хотя по части тактических действий (собственно впаривания покупки) у нас могут быть большие пробелы.
К слову — инженеров раньше не готовили в ВУЗах (во всяком случае большинство).
Их готовили в институтах.
Потому что инженер придумывает новые вещи, но использует уже относительно готовые предметы, которые придумали люди, которые учились в ВУЗе.
А уже потом то, что сделал инженер, используют те, кто из техникума.
И заканчивают все это ПТУшники, которые просто используют совсем конечный продукт.

Изначальная иерархия была такой ВУЗ>Институт>Техникум>ПТУ

Это сейчас все поломалось и ничего не понять. Но говорить, что программист — это ПТУшник, как-то грубо.
Программист программисту рознь =). Кто-то сайтик пишет, а кто-то ОС. Говорить что профессия «программист» это только ПТУ, будет некорректно. Поэтому у себя в примере я написал «кодер». Рабочая лошадка, которая не особо осознает архитектуру приложения но прекрасно пилит отдельные функции по заданию от инженера. Человек — функция.

А поводу того что все поломалось, согласен. Я учился, когда смешались ВУЗ и институт. Теперь же из ВУЗ-а делают ПТУ %). И судя по вашим высказываниям, вы этот путь поддерживаете.
В случае, если прямо совсем рабочая лошадка, то да, может и хватит ПТУ (и то не факт).

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

В какое "раньше" институты не были вузами?! До революции 1917-го?

Мне кажется или Вы хотели вместо слова "ВУЗ" написать слово "университет"? Дело в том, что [образовательный] институт — это разновидность высшего учебного заведения, к коим ещё относятся: университет, академия, высшее военное училище, были и другие, в общем-то Бауманка — изначально именовалась высшим техническим училищем, но потом этот термин вышел из употребления. Если говорить о "крутизне", то что университет, что академия, что институт — одинаково заведения где даётся высшее образование, разница только в широте охвата — университет готовит всех специалистов и преподавание несколько более разностороннее, институты — узкоспециализированные, ну вот, например, физтех и мифяга — изначально институты, хотя там прежде всего готовили именно физиков :-)

Поздравляю, вы только что придумали ПТУ.
Да, это огромная проблема. В 95% вакансий по факту нужно именно ПТУ, но корочку требую университетскую, потому что ПТУ «некруто».
Ну не знаю. Я универ бросил на 6м курсе и у меня лишь иногда был подобный диалог:
— А у вас ВО есть?
— Нет.
— Ну ладно.

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

P.S. Да, ВО все таки крайне желательно иметь для миграции в другую страну.
А может и проканать.
Вот его отсутствие точно плюсов не добавит при миграции.
У нас на 1 курсе (а было это аж в 1992 году) такая вот тетенька 50-60 лет сказала — кому курс кажется «фигней», приходите сдавайте экстерном, но пока еще никто не пришел.
И потом 2 года эта тетенька клала нас на лопатки в написании алгоритмов.
Нас «на лопатки» клал прикольный мужик в плане практики матана.
Правда он еще денег вымогал с нас за зачет, мотивируя тем, что ему мало платят.
Часто преподы, отлично разбирающиеся в узкой сфере, требуют от студентов тоже отлично разбираться в этом. И когда таких преподов штук 6, то начинается неподдельное веселье

Но, например, к дискретной математике претензий нет, это можно понять как связано с IT. И алгоритмы тоже.
Когда придется в чужом коде разбираться (а это будет часто), вспомните матан, он вам цветочками покажется :)
Если серьезно, такие предметы приучают не бояться долгих вдумчивых исследований, это плюс.
А было бы еще лучше, если бы вы со старших классов школы были бы готовы ко «вдумчивым исследованиям»?
Это, конечно, уже другая тема, но мне просто кажется, что в ВУЗ стоит приходить уже готовым учить кучу всего и разбираться в куче всего, а не на ходу привыкать.

Поздравляю, вы изобрели техникумы, где из вас за несколько месяцев сделают кодера. Зачем тогда вообще нужны ВУЗы?
А можно посмотреть, где, в дипломе хоть какого-нибудь ВУЗа указана специальность "Программист"? А нет, там почти всегда указано " Инженер" или "Специалист по...", ну или на худой конец сейчас уже " Бакалавр", что как бы наводит на мысли о других целях вузовского обучения.

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

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

И нигде толком не сказано, что на «Программиста» не учат. Хотя все ищут где можно.
Если так подумать, то у нас вообще нигде не учат на программиста.
Собственно, статья отчасти об этом :)
Но так ли это плохо?

На мой взгляд, приведение ВУЗов к уровню СПО — плохо. ВУЗ учит заниматься исследовательской и аналитической работой. Верстальщику и сисадмину такое не нужно. Но если идти работать в крупный бизнес, то эти навыки помогут. Исследовательская работа — чтобы проводить всякие перфоманс тюнинги, R&D и выбирать из нескольких фреймворков подходящий. Аналитическая работа помогает в анализе бизнес-процессов.
Если человек хочет просто кодить, то курсов или СПО достаточно. Если же хочется повыше, то увы — дисциплин для аналитиков и архитекторов в СПО не дают.


И нигде толком не сказано, что на «Программиста» не учат. Хотя все ищут где можно.
Если так подумать, то у нас вообще нигде не учат на программиста.

Сейчас есть великое множество онлайн курсов. Если хочется только кодить, то можно не тратить 4 года в ВУЗе. Год плотных тренировок по программированию, пол года — по СУБД и можно идти джуном устраиваться. Но выше джуна расти будет сложнее.

У нас многие ВУЗы так или иначе потихоньку сползают по уровню образования и это, безусловно, ужасно.
Я о том, что если считать многих программистов как людей с СПО, то это не плохо.
Еще небольшая проблема — да, вы выучите много вышмата и будете его знать. А скажут ли вам, как это применить в IT? Скорее всего нет и если так, то это тоже стоит исправить.

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

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


А скажут ли вам, как это применить в IT? Скорее всего нет и если так, то это тоже стоит исправить

Смотря какого вышмата. Дискретка и теорвер понадобятся везде. Линал в обработке данных со всяких датчиков. Интегрирование — в машиностроении. Мат.статистика применяется сама по себе в BI.


Онлайн курсов много, а сколько из них достойных?

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


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

Зачем?

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


Субъективное мнение, основанное на знакомых, в том числе закончивших Бауманку и МГУ на хороших специальностях на красный диплом, на том, что большинство компаний не смотрят на ваши дипломы при найме.

Смотря какого вышмата. Дискретка и теорвер понадобятся везде. Линал в обработке данных со всяких датчиков. Интегрирование — в машиностроении. Мат.статистика применяется сама по себе в BI.


Да, есть то, что пригодится.
А сколько направлений в мире IT, где вам никогда не пригодится Линал или интегрирование?
Это похоже на собирательство, когда выкидываешь на балкон кучу вещей с мыслью «А вдруг пригодится»

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


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

Зачем?


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

В комментариях к моей статье Alexeyslav высказал интересную точку зрения:


Ты вибираешь, казалось бы вот оно выбрал и точно это то что тебе нужно! Потратил 10 лет на свой выбор, узкая специализация. И вот оно неизбежное — ВЫГОРАНИЕ. Считай, все усилия потраченные это то самое «лишнее» а сейчас бы уметь вышивать крестиком…

Широкая специализация обеспечит вам устойчивость в дальнейшей жизни. Вы же видите как трудно универ выбирать. А ведь место работы выбирать никак не проще. Вы вряд ли будете всю жизнь работать в одном месте.


Чтобы люди могли обучаться не только потому что их родители постарались чуть лучше других родителей.

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

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

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

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


Я безмерно горжусь людьми, которые достаточно хороши, чтобы так делать.
Но если сделать все вокруг платным — зачем тогда вообще нам ВУЗы, ПТУ и прочее?
Сделаем повсюду курсы платные и так и будем жить.
И пусть молодежь вместо того, чтобы тратить свое время и силы на учебу, параллельно горбатится на «рабской» работе.
Но если сделать все вокруг платным — зачем тогда вообще нам ВУЗы, ПТУ и прочее?
Сделаем повсюду курсы платные и так и будем жить.
И пусть молодежь вместо того, чтобы тратить свое время и силы на учебу, параллельно горбатится на «рабской» работе.

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


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

Посмотрите мой UPD в статье, там по поводу курсов как раз.

А так же в статье одна из проблем — что нигде точно не говорят, что же именно будут преподавать.
То есть вы просто не знаете, что лезете за яблоком в коробку с апельсинами, потому что там написано «фрукты»
То есть вы просто не знаете, что лезете за яблоком в коробку с апельсинами, потому что там написано «фрукты»
Вы уверены? Вы, вообще-то, в ВУЗе, вроде как учились.

Вы́сшее уче́бное заведе́ние (сокращённо — вуз; в соответствии с нормами русского языка пишется строчными буквами), образовательная организация высшего образования (ООВО) с 2016 г. — учебное заведение, дающее высшее профессиональное образование и осуществляющее научную деятельность

Задача ВУЗа — готовить к научной деятельности, в первую очередь. Какой именно «научной деятельностью» вы сможете заниматься в ВУЗах, перестроенных по вашим рекомендациям???
Не вижу где там сказано про «подготовку к научной деятельности».
Про то, что они осуществляют — несомненно. У нас так достаточно отделов с исследованиями.

Правда вот в плане IT… Скажем так, там не все так хорошо. В плане математики отлично. А вот с IT не очень.

И вы уверены, что сейчас они готовят к «научной деятельности», а не просто реализуют устаревшие стандарты обучения?
И вы уверены, что сейчас они готовят к «научной деятельности», а не просто реализуют устаревшие стандарты обучения?
Нет, не уверен. Более того — уверен, что это не так.

Но если ВУЗы не выпускают учёных — то это не значит, что они должны начать выпускать верстальщиков.
Не вижу где там сказано про «подготовку к научной деятельности».

Просто надо было дальше по ссылочке пройтись

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


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

В общем инженер должен либо создавать что-то совсем новое.
Ну вот знайте, хорошим примером инженера-программиста являются Безье и Кастельжо — это люди которые независимо работали в Рено и Ситроене изобрели за 50-60ые годы кривые Безье, стояли у истоков компьютерной графики, придумали и реализовали первые системы автоматизированного проектирования. Первый по образованию инженер-механик и инженер-электрик — выпускник Национальной Высшей Школы Искусств и Ремёсел (очень камерное такое заведение, всего 4000 студентов), второй физик и математик — выпускник Нормальной Высшей Школы Парижа, которую в свое время заканчивал Луи Пастер или Борель например. Проблема была в том, что их никто не учил компьютерной графики — ну потому что тогда её еще не существовало никакой компьютерной графики — сам термин был только вот придуман инженером Боинга в 1960 году. Были только какие-то более ранние научные изыскания типа Скетчпада Сазерленда, но что это такое CG и чего там делать никто не знал, а к компьютерам выстраивались в очередь, на которых никто бы не дал изучать все методом тыка в удобненьком дебаггере. Но при этом уже была хорошо известна и развита геометрия и теория программирования. Так что эти чуваки, основываясь исключительно на своих фундаментальных знаниях по физике, математике и инженерному делу, изобрели целый класс кривых и алгоритмов для их построения, а также разработали одну из первых САПР. И вот это инженерная работа. Инженеры это не про то как кнопки нажимать и гайки крутить, а именно что разрабатывать новые продукты и технологии, подсмотреть которые ни у кого не получится.

Второе направление инженерной деятельности — это оптимизация. Внезапно, задачами оптимизации занимается математическое программирование — очень зубодробильная штука, которая мало того что требует экспертных знаний в области применения, так еще и всю математику в себя вбирает. Например, работа САПР по физическому дизайну всяких там PCB и СБИС завязан на Markov chain Monte Carlo (MCMC) которое вообще уходит своими корням, например в статистическую физику и даже в такие аццкие штуки как модель Изинга. При этом если PCB-designer еще как-то может отбрехаться от Марковских цепей (у него зато будет куча другого геммора), то вот инженеру-программисту — уже нет, т.к. ему это и реализовывать в виде программы :-)

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

Ну а если нужно «просто программировать» без изысков и просто писать простенькие jQuary-запросы, ну внезапно есть курсы и сертификации, которые по затраченным человеко-часам и ПТУ не догонят. Другое дело что горизонт, конечно же, будет очень сильно ограничен, в тот же RockStar уже будут спрашивать за PID-регуляторы и метод множителей Лагранжа, например :-)
А почему тогда мы не делаем курсы инженеров, медиков и других специалистов?

Смотря каких медиков. В медицине на уровне сисадминов и верстальщиков находятся массажисты и фитнес-тренеры. На эти специальности есть курсы примерно на 2-3 месяца.
Естественно, есть очень крутые массажисты и очень крутые фитнес-тренеры, но точно так же есть крутые веб-мастера. Разница — в сложности решаемых проблем.


Что, кстати, вы понимаете под словом "инженеров"? Есть например сетевой инженер — прокладка кабеля, настройка подключения к Интернет у пользователей и прочее. Вполне можно на курсах вроде Cisco обучиться.

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

Там сказано, а тут кто должен сказать куда вам идти?
Что мешало изучить программу вуза перед поступлением:
www.itmm.unn.ru/studentam/raspisanie/raspisanie-bakalavriata-i-spetsialiteta-ochnoj-formy-obucheniya
В плане программистов выходит, что идти просто некуда.
И потому многие выбирают ВУЗы не осознавая, что они идут не туда, куда надо.

Буквально в 5 минутах ходьбы от ННГУ:
nntc.nnov.ru/obrazovanie
niu.ranepa.ru
Для начала — это ссылка не совсем на программу.
Программа обучения в другом месте находится.
И в статье я в том числе говорю о том, что на это стоит обратить внимание.

А насчет НРК и РАНХиГСа — есть основания не особо верить в качество образования

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

А сколько направлений в мире IT, где вам никогда не пригодится Линал или интегрирование?


Ну я вот с 10+ опытом работы не знаю таких направлений где не требуется Линал :-) Даже сидя тихо пописывая всякие веб-морды на CSS и никого не трогая, то все равно от линейной алгебры и аналитической геометрии убежать не получиться

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

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

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

Можно, конечно, но я хочу узнать, повлиял ли на успешность человека ПТУ или нет.
Или он мог бы дома все выучить и получить тот же результат :)

Про старых преподов. Был у нас один такой. Его так и называли — Дед. Человек был хороший, но как препод казался чем-то доисторическим. У него был колоссальный практический опыт, но ещё при совке, лет 15 назад (дедуля долгое время был, как сейчас бы сказали, начальником IT-отдела одного из крупнейших металлургических предприятий, если не ошибаюсь, это был Норникель). Но это когда было… Казалось, что дед впал в маразм ещё тогда и с тех пор маразм только прогрессировал. Он нёс какую-то чушь и ахинею про построение информационных систем, архитектурные компоненты, метадокументирование и т.д. и т.п. Он вёл одновременно несколько предметов (которые в общем так и называли — «дед»), мог не дочитать лекцию по одному предмету, придти на пару по другому и продолжить ту же лекцию. Это было настолько уныло, что и представить себе невозможно. Казалось, это было максимально бесполезно потраченное время в моей жизни.

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

Так что старые преподы штука сложная. Они не всегда могут заинтересовать, но стоит хотя бы попытаться пересилить себя. Может оказаться гораздо полезнее, чем представляется поначалу.
У нас тоже были хорошие преподы и возраст совершенно не говорит, что человек хороший или плохой.
Да, с пожилыми рискованнее, но и молодые могут быть ужасными.
Но уж точно хороший программист не пойдет в универ за 20к рублей работать нон-стоп каждый день.
Ну вот опять.
Вы поступили на «информатику» и возмущаетесь, что Вас учат информатике, а не программированию. Да, это не одно и то же. Информатика — это наука, для понимания которой нужны и матанализ, и остальные «лишние» предметы. А для понимания верстки они не нужны, согласен. Другое дело, что если Вы будете заниматься чем-то более замысловатым, то актуальность хотя бы дискретки и алгоритмики поймете моментально.
По поводу Вашего подхода:
1) Ага, а первоклашкам надо за пару-тройку месяцев показать все школьные предметы, а дальше пусть сами выбирают, какие им учить. Или думаете, что успеете во всем разобраться, а потом сможете сделать взвешенный выбор?
2) Убрать лишнее — это хорошо, но как я уже сказал, действительно излишней обычно бывает гуманитарщина, а не матан и т. п.
3) Только не помоложе, а по-проффесиональнее — это вообще то ни разу не одно и то же.
4) Это уже есть очень много где, и оно не только по поводу практики. Иногда сотрудники компании приходят читать некоторые предметы. Возможно, стоило поискать такой вариант.
5) Думаю лучше не сократить а заменить ненужные предмет на нужные. Особенно учитывая такой замечательный фактор, как армия :)
Первое — я прекрасно понимаю, что информатика != программирование.

А теперь про пункты
1) В 17-18 лет вы уже не первоклассник. В 17-18 лет от вас сейчас требуют выбрать ВУЗ и направление, в котором вы, возможно, будете двигаться всю жизнь. Нам часто говорили, что это почти самый важный выбор в жизни (Само собой это не так). Но все же выбор важен. И вы считаете, что если вы можете из ВСЕХ возможных работ и занятий человека выбрать нужное, то не сможете выбрать направление в программировании, попробовав их?

2) Спорный момент, если вам каждый день дать по 4 пары матана — вы не скажете, что это избыточно? Конечно, я утрирую, просто хочу сказать, что не стоит говорить, что «матана излишне не бывает».

3) Я на всякий случай повторю — претензия не к возрасту. Недавно была новость про деда, который в 78 лет занялся кодингом и вышел в полуфинал на каком-то Хакатоне.
Тут вопрос, конечно, именно в компетентности и профессионализме.

4) У нас (в ННГУ) подобные события редки, а если и случаются, это почти гарантированно будет Intel.
Это не камень в огород Интела, это я о том, что мало желающих, видимо.
Но слышал, что в некоторых ВУЗах это более развито.

5) К сожалению, растянуть процесс учебы до 27 лет, скорее всего, не дадут :)
1) Если я попробую их за пару месяцев — конечно не смогу. У меня в голове будет каша из разных парадигм, систем, типов продуктов и всего прочего. И она меня только запутает. Что я могу сделать — это выбрать направление после тех самых 4-5 лет.
2) Опять же, если Вы верстальщик — то да. А мне вот хотелось бы побольше матана на первых курсах.
4) Ну ясное дело, что этим занимаются только большие компании, и далеко не все.

Ну и вообще не эйджизм если что, но мне кажется, что со временем Ваше отношение к ВО слегка поменяется.
1) Время было выбрано условно. Но если вы действительно пробуете, не по 1-2 часа в день, а хотя бы по 6, то за полгода то большинство поймут, что лучше.
Конечно, нужно предусмотреть возможность смены направления, если что.

2) Если хотите матан — то вы там, где нужно :) Но ради интереса спрошу — зачем? Просто интересно? или знаете, где применить?

4) Тут важно, что не просто «далеко не все», а «почти никто».

Про отношение к ВО возможно, но сейчас упадок ВО не заметить сложно, с этим стоит что-то делать. Я ценю ВО, но просто не совсем такое :)
1) За полгода Вы не перепробуете действительно всего, что можно попробовать в ИТ. Люди за всю жизнь не успевают, а Вы собираетесь направления менять. Так Вы вообще ничему не научитесь.
2) Занимаюсь компьютерной графикой. Признаю, не слишком распространенная отрасль, но матан нужен не только здесь. Да и на матане клином не сошлось, для той же алгоритмики проще сказать где она не нужна.
1) Я и не говорю вообще все перепробовать, но определиться примерно уж точно можно. Особенно, если грамотно время тратить.

Конкретно по второму пункту. Просто интересно, и жаль, что алгебру и матлог приходится осваивать сейчас в 28, а не тогда в 18.

В 17-18 лет от вас сейчас требуют выбрать ВУЗ и направление, в котором вы, возможно, будете двигаться всю жизнь.

В ВУЗах можно переводиться с одного направления на другое. Еще можно из одного ВУЗа в другой. Придется повоевать с бюрократией, но это в целом возможно.


Я на всякий случай повторю — претензия не к возрасту.

Однако в статье вы сказали, что нужны именно "помоложе", а не "более профессиональные".


К сожалению, растянуть процесс учебы до 27 лет, скорее всего, не дадут :)

Как то странно высказывать претензии к учебному заведению, если оно вам нужно как социальный холодильник для избежания армии. Зачем тратить 4.5 года на "ненужные" по вашему мнению предметы, если можно потратить всего 1 год и до начала третьей мировой войны не беспокоиться по этому поводу?

В ВУЗах можно переводиться с одного направления на другое. Еще можно из одного ВУЗа в другой. Придется повоевать с бюрократией, но это в целом возможно.


А вы пробовали? Я да.
Уже после 1 года обучения разница в образовательных программах по сравнению с «Прикладной информатикой» в ИЭП была внушительной. А через 1.5 года мне сразу отказали.

Однако в статье вы сказали, что нужны именно «помоложе», а не «более профессиональные».


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

Как то странно высказывать претензии к учебному заведению, если оно вам нужно как социальный холодильник для избежания армии. Зачем тратить 4.5 года на «ненужные» по вашему мнению предметы, если можно потратить всего 1 год и до начала третьей мировой войны не беспокоиться по этому поводу?


Нет, я не переждать туда пошел. Сейчас я в академе, а пока ищу, есть ли в моем организме что-то, что позволит не тратить год жизни впустую.
А ушел я как раз потому что тратить 4 года, а потом еще 1, вместо того, чтобы потратить 1 — глупо.
Так что я не просто откладывают неизбежное :)
А вы пробовали? Я да.

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


Уже после 1 года обучения разница в образовательных программах по сравнению с «Прикладной информатикой» в ИЭП была внушительной.

В чем она выражалась?


В тексте я так же указывал, что претензия не к возрасту, так что если вы читали — несложно поверить, это так.

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


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

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

В чем она выражалась?


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

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


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

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


Пока я чертовски здоров. Одновременно чертовски рад и в то же время в армию неохота.
Желаю вам здоровья, потому что если вдруг найдете, то оно испортит вам следующие пол века.

С этим и армия прекрасно может справиться.

С этим и армия прекрасно может справиться.

За год? Ой вряд ли.
То чему Вас научат сейчас за один два года, нужным по вашему мнению навыкам и знаниям через пять лет максимум будет делать ИИ.
Уверен, этим грозились уже пару-тройку лет назад.
Пока я не слышал о нормальных изобретениях в этой области, так что я, как Frontend-разработчик, скорее всего, еще буду нужен :)
В начале двухтысячных собирал «на коленках» компьютеры. С каждого имел полторы сотни долларов. И тоже думал, что это надолго. :)
Времена меняются, придется подстраиваться, если что.
В конце концов кто-то же должен говорить, как настраивать ИИ, чтобы он делал хорошие сайты :)
Примерно уже на первой паре меня напрягло, что нам преподает C


А мне вообще численные методы толкнули на информатике в ЛЭТИ. И знаете что? Они пригодились. :)

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


Проблема в том, что языки развиваются, а толку я что-то не замечаю. Что вы будете писать на том же ожидаемом Си++ 20? Для чего вам все его новые навороты? То же, что писали 10 и 20 лет назад на ёщё тех редакциях этих языков. «Не вижу никакого прогресса. Современные часы идут ничуть не быстрее, чем хронометры во времена моей юности» (с) Бернард Шоу.
К слову, про численные методы часто говорили, что полезно.
Правда у нас они должны были быть только на 4 курсе.
Без ВУЗа, если будет нужно, я, конечно, сильно не уверен, смогу ли их выучить. Скорее нет, чем да.

Сказать, что JS, например, не меняется уже лет 10, будет непросто :)
Впрочем, конечно циклы, переменные, массивы и т.д. не меняются.
Как и базовые принципы, алгоритмы и подобные вещи.

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

Бернард Шоу, конечно, хорош, но не смотря на то, что время идет так же, способы его считать улучшаются. Эдак можно было бы и на ассемблере прогать, только это не годится :D
Сказать, что JS, например, не меняется уже лет 10, будет непросто :)
Он меняется, но это всё синтаксический сахар, по большому счёту. Математика, за этим стоящая, та же, что и 20-30-40 лет назад.

Но неужели нельзя преподать это более адекватным способом, не как сейчас?
Понятия не имею. Я вообще мехмат оканчивал — и желания перевестись на ВМК не возникало ни разу. Особенно после рассказа моих одноклассников оттуда про «отрицательную сложность» хеш-мапа.
Но неужели нельзя преподать это более адекватным способом, не как сейчас?


А на чём основана ваша оценка адекватности? ;) У вас свои интересные проекты есть? Может быть, большой опыт разработки? Вот почему вы думаете, что новомодная штучка будет более адекватным способом? Потому что модно? Ну так вы откройте же книжку и там все/большинство этих наворотов вы найдёте. Только на ваших программах это никак не скажется — это будут всё те же самые программы, что и без наворотов.
А тот же Си вам пригодится, если вы займетесь микроконтроллерами.

А я C++20 очень жду и буду на нем писать все то же, от гуевых приложений до всякого лоу-летенси. И навороты его нужны весьма. Не все, конечно, но почти все.


И C++23 я уже тоже очень жду.

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


Что это?

constexpr union


Почему бы компилятору всё constexpr не считать по-умолчанию?

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


Опять, что это? Зачем это?

тройное сравнение (three-way comparison)


Э… кому это вдруг надо-то? И о чём это?

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


Это я тоже не понял, о чём речь.

Нет, видно в мои 36 мне не понять, что происходит с программированием…
Что это?

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


Почему бы компилятору всё constexpr не считать по-умолчанию?

Я про constexpr union в C++20 сам не особо знаю, но на этот вопрос ответить могу.


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


Опять, что это? Зачем это?

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


Тестовые макросы — судя по всему, это. Полезно для написания обратно совместимого кода. Нужно было раза полтора за всё время.


Преобразование в битовые представления объектов — наверное, это. Более прямой способ делать преобразования типов без type punning'а (который почти всегда UB) и без memcpy (надеясь, что компилятор этот memcpy поймёт и соптимизирует). Джва года такое жду, особенно в лоу-летенси-ерунде.


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

Снова полезно при метапрограммировании и написании эффективных библиотек. И мне бы ещё условный delete и default не помешал (не далее, чем на прошлой неделе), надо бы написать пропозал.


Э… кому это вдруг надо-то? И о чём это?

Это тот самый operator spaceship, джжва года жду. Надо, чтобы печатать не 6-12-18 членов для сравнений, а 1-2. И косвенно надо, чтобы поддерживать class non-type template arguments (что тоже полезно при метапрограммировании).


Это я тоже не понял, о чём речь.

Если у вас есть лямбда без захвата, например, auto foo = [](int a, int b) { return a < b; };, то вы можете сделать decltype(foo) bar;. Полезно, если такая стейтлесс-лямбда оказывается компаратором, например, в std::map, чтобы не передавать её в конструкторе. Тоже бывает полезно.

Это функции, которые гарантированно вычисляются на этапе компиляции.


Всё это отлично, но почему задача оптимизации перекладывается на программиста? Тем более, что ещё не факт, что эти функции хоть как-то повлияют на скорость работы программы. А если повлияют, значит, что-то неправильно делает программист (возможно, даже в плане подхода), раз требуется для оптимизации такое извращение. :)

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


А если я всё объявлю constexpr, то компилятору от этого легче решать разве станет? :)

Снова полезно при метапрограммировании и написании эффективных библиотек.


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

Надо, чтобы печатать не 6-12-18 членов для сравнений, а 1-2.


Ещё операторы «примерно равно», «намного больше» и «намного меньше» не помешали бы. ;)
Всё это отлично, но почему задача оптимизации перекладывается на программиста? Тем более, что ещё не факт, что эти функции хоть как-то повлияют на скорость работы программы.

Это вопрос семантики, а не оптимизации. Если у вас есть функция constexpr int bar(int n), то в её теле вы не знаете, является ли n константой времени компиляции или нет, и, скажем, засунуть n в static_assert или в аргумент шаблона не можете. Если же у вас эта функция consteval, то n гарантированно константа времени компиляции.


А если я всё объявлю constexpr, то компилятору от этого легче решать разве станет? :)

Абсолютно верно, легче не станет. Поэтому constexpr-функция, которая никогда не может быть constexpr — ill-formed, no diagnostic required.


В частности, на


constexpr int foo(int n)
{
  throw std::runtime_error { "meh" };
}

clang какой-нибудь ругнётся, что она никогда не производит constexpr-значения, поэтому сорян, не скомпилирую, а на


constexpr int foo(int n)
{
  if (n > 0)
    throw std::runtime_error { "meh" };
  if (n <= 0)
    throw std::runtime_error { "meh" };

  return 0;
}

которая имеет очевидно ровно такую же семантику — нет.


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

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


Производительность тут вообще ни при чём.


Ещё операторы «примерно равно», «намного больше» и «намного меньше» не помешали бы. ;)

То есть, писать ручками все определения для < <= == > >= != вам очень нравится и интересно?

Производительность тут вообще ни при чём.


А зачем тогда ещё нужно метапрограммирование? Для чего ещё вам всё переносить в стадию компиляции из стадии выполнения? Просто потому что можете?

То есть, писать ручками все определения для < <= == > >= != вам очень нравится и интересно?


Чемоданчик Вирта сдох от зависти. :) И много вы пишете сравнений такого вида? ;)
А зачем тогда ещё нужно метапрограммирование? Для чего ещё вам всё переносить в стадию компиляции из стадии выполнения? Просто потому что можете?

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


Ну и у вас там ещё где-то ложная дихотомия, но я сегодня уже наформализовывался.


И много вы пишете сравнений такого вида? ;)

Да. Каждый раз, когда описываю новый value-тип. Хотел бы вообще иметь возможность писать deriving (Eq, Ord, Generic, Hashable), как в хаскеле, но и так сойдет.

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


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

Да. Каждый раз, когда описываю новый value-тип.


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

Это у вас просто типов нормальных не было. Типы помогают отлавливать ошибки в логике в том числе.


А зачем его описывать?

Ну вот хочу описать типы FirstName и LastName, например, чтобы их случайно не перепутать и не оперировать голыми строками.


Или хочу описать фиксед-поинт тип для цен.


Да мало ли.

Это у вас просто типов нормальных не было. Типы помогают отлавливать ошибки в логике в том числе.


Нет, тут логика иная. :) Вот вы когда-нибудь управляли, например, Шаттлом? Как думаете, если снизилась тяга на левом движке, нужно добавить топлива или вообще его нафиг отключить, потому что с ним что-то странное? А может, нужно добавить топлива на правый? Или наоборот, убрать? Или выключить сразу все двигатели немедленно? Какое решение правильное? Такие же проблемы с устройствами возникают постоянно — какие-то параметры выходят из допуска и нужно это отрабатывать.

Ну вот хочу описать типы FirstName и LastName, например, чтобы их случайно не перепутать и не оперировать голыми строками.


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

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


А, понятно.

А чего? Это, конечно, не зависимые типы, но некоторый класс ошибок избегать они помогают.

А чего? Это, конечно, не зависимые типы, но некоторый класс ошибок избегать они помогают.


Ну, здесь тонкая грань между «крайне желательно» и «да используется-то всего два-три раза — зачем плодить новую сущность?».

Меня вот что в шаблонах интересует. Вот есть у меня класс матрицы произвольного размера. Размеры матрицы задаются в шаблоне. И всё отлично, но есть операция =, которая как бы должна копировать матрицу одного шаблона в другой. Что невозможно, если размерности не совпадают. Это вообще неустранимо. А ещё есть операция умножения, там получается матрица иной размерности в общем случае. И вот тут возникает прикол с перегрузкой оператора с указанием его другом внутри класса (который уже шаблонный). VS2010 съел переопределение шаблона. А вот gcc нет. Как бы это изящно решить, чтобы оно тоже ошибки отлавливало на этапе компиляции.
Ну, здесь тонкая грань между «крайне желательно» и «да используется-то всего два-три раза — зачем плодить новую сущность?».

Ну так можно сказать, что плюсы вообще не нужны как класс, есть же С и вообще ассемблер, на нём тоже можно писать.


Как бы это изящно решить, чтобы оно тоже ошибки отлавливало на этапе компиляции.

Я, если честно, не успел за переходом от первой части этого абзаца ко второй. Что именно решить-то хочется?

Что именно решить-то хочется?
Функцию, которая «дружит» с классами Matrix<M, N>, Matrix<N, P> и возвращает Matrix<M, P>.

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

Так а в чём проблема-то с обычной свободной функцией типа такой?


template<size_t M, size_t N, size_t P>
Matrix<M, P> operator*(const Matrix<M, N>&, const Matrix<N, P>&) { ... }

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

Проблема в том, что я хочу делать вот так:
CMatrix<3,2> cMatrixA;
CMatrix<2,3> cMatrixB;
CMatrix<3,3> cMatrixC;

cMatrixC=cMatrixA*cMatrixB;

Так а в чём проблема-то с обычной свободной функцией типа такой?


Она мне нужна в друзьях класса. А сделать так нельзя:
template<size_t row,size_t col>
class CMatrix
{
template<size_t M, size_t N, size_t P>
friend Matrix<M, P> operator*<size_t M,size_t N,size_t P>(const Matrix<M, N>&, const Matrix<N, P>&) {… }
};

Точнее, VS2010 такое дал сделать (впрочем, я не удосужился проверить на разных матрицах — может, он просто не проверяет то, что не я не использовал). А вот gcc не дал.

Ну так делайте.


А если написать там


    Matrix<3, 4> matrixD;
    matrixD = matrixA * matrixB;

то компилятор ругнётся:


prog.cc:21:13: error: no viable overloaded '='
    matrixD = matrixA * matrixB;
    ~~~~~~~ ^ ~~~~~~~~~~~~~~~~~
prog.cc:4:8: note: candidate function (the implicit copy assignment operator) not viable: no known conversion from 'Matrix<[...], 3UL aka 3>' to 'const Matrix<[...], 4>' for 1st argument
struct Matrix {};
       ^
prog.cc:4:8: note: candidate function (the implicit move assignment operator) not viable: no known conversion from 'Matrix<[...], 3UL aka 3>' to 'Matrix<[...], 4>' for 1st argument
struct Matrix {};
       ^

Вам это не нужно.


Если вы хотите написать действительно эффективную библиотеку, то у вас operator* должен возвращать не Matrix, а MatrixExpr, позволяющий оптимизировать выражения в компилтайме, и принимать не Matrix, а концепт MatrixLike (либо Matrix, либо другой MatrixExpr). Тогда и вопросов таких не возникнет.


Но если хочется вот прям напрямую с матрицами, и публичного API не хватает, то тоже ничего сложного.

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

Но если хочется вот прям напрямую с матрицами, и публичного API не хватает, то тоже ничего сложного.


то тоже ничего сложного.


Вот именно так и не компилировалось. В VS2010 компилировалось. А как перенёс под Linux, то был послан компилятором.
Мне нужно в операторе напрямую работать с элементами матрицы. От этого скорость работы зависит. Я, может, это запустить на очень слабом железе хочу.

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


Вот именно так и не компилировалось.

Ну, как видите, теперь компилируется. Даже на gcc 4.4.7 компилируется. Я бы и старее компиляторы проверил, но их на wandbox'е нет.

Компилятор с радостью заинлайнит ваши операторы для доступа к элементам.


Там вообще-то проверка на диапазон, которая в данном случае лишняя.

Ну, как видите, теперь компилируется.


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

Э, у вас нет функции для доступа без проверок?


Поэкспериментирую.

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

Э, у вас нет функции для доступа без проверок?


Тогда нет смысла вообще в методе доступа — открыть доступ public и дело с концом. :)

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


Попробую восстановить класс на шаблонах.
Тогда нет смысла вообще в методе доступа — открыть доступ public и дело с концом. :)

Тоже вариант в некоторых условиях.

Переставил строчки и оставил один оператор умножения, почти как у вас -компилируется и исходный класс. Тогда я чего-то не понимаю. Вот как тут написано.

То есть, требуется предварительное объявление (у вас его нет). Ещё требуется для оператора-друга указать в классе шаблон класса после операции * как <N,M> (и этого у вас тоже нет). У меня, разумеется, сделано так, как написано в статье. А вот почему ваш фрагмент работает без всего этого — я не понимаю. Хотя, почему оператору * не нужно <N,M> догадываюсь — перед его функцией ведь указан template, то есть, она уже шаблонная.

То есть, получается, делать надо так:

template<size_t size_y,size_t size_x>
class CMatrix;

template<size_t size_y,size_t size_x>
CMatrix<size_y,size_x> operator*<size_y,size_x>(const CMatrix<size_y,size_x>& cMatrix_Left,const double& value_right);//оператор "*"

//класс матрицы произвольной размерности
template<size_t size_y,size_t size_x>
class CMatrix
{
 private:
  double Item[size_x*size_y];//массив компонентов матрицы
 public:
...
  template<size_t size_left_y,size_t size_left_x,size_t size_right_x>
  friend CMatrix<size_left_y,size_right_x> operator*(const CMatrix<size_left_y,size_left_x>& cMatrix_Left,const CMatrix<size_left_x,size_right_x>& cMatrix_Right);//оператор "*"
...
  friend CMatrix<size_y,size_x> operator*<size_y,size_x>(const CMatrix<size_y,size_x>& cMatrix_Left,const double& value_right);//оператор "*"
};
...

//----------------------------------------------------------------------------------------------------
//оператор "*"
//----------------------------------------------------------------------------------------------------
template<size_t size_left_y,size_t size_left_x,size_t size_right_x>
CMatrix<size_left_y,size_right_x> operator*(const CMatrix<size_left_y,size_left_x>& cMatrix_Left,const CMatrix<size_left_x,size_right_x>& cMatrix_Right)
{
...
}

...
//----------------------------------------------------------------------------------------------------
//оператор "*"
//----------------------------------------------------------------------------------------------------
template<size_t size_y,size_t size_x>
CMatrix<size_y,size_x> operator*(const CMatrix<size_y,size_x>& cMatrix_Left,const double& value_right)
{
...
}


Так компилируется и работает.
Опечатался.
Должно быть так:

template<size_t size_y,size_t size_x>
CMatrix<size_y,size_x> operator*(const CMatrix<size_y,size_x>& cMatrix_Left,const double& value_right);//оператор "*"

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

А без него придётся каждую функцию внутри класса делать с template.
Потому что без предварительного объявления не компилируется:
'friend' not permitted on data declarations


А если убрать <> после знака операции в классе линкер не может собрать проект — не находит функцию.

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

Так, я запутался. «data declarations» к функциям отношения не имеют. Покажете код?

То сообщение из VS.

Ну, вот, например.

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

А вот тут старая моя проблема всплыла. Но этот же кусок в VS2010 отлично компилируется.

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

Видимо имелось в виду вот это.

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

Но этот же кусок в VS2010 отлично компилируется.
Visual Studio вообще очень вольно к стандарту относится. Этот вариант чётко запрещён: 17.7.1 (6): A template-parameter
shall not be redeclared within its scope (including nested scopes). A template-parameter shall not have the same name as the template name.


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


Не-е-е-т. :) О том и речь, чтобы не описывать предварительно шаблон, как это сделано было у 0xd34df00d.

И вам о ней человеческим языком написали. Думаю хотелось написать вот это.


Нет, не это. То есть это, но не менять имена. Проблема в том, что если имена пересекаются это вызывает ошибку не в VS2010.
Проблема в том, что если имена пересекаются это вызывает ошибку не в VS2010.
Потому что, извиняюсь, об этом чёрным по белому написано в стандарте. То, что Visual Studio не отлавливает ошибку — его проблемы. Но написать неправильную программу, а потом бегать и кричать на всех переулках «а почему у меня неправильная-то программа не компилируется»… глупо.

Хотя в случае с operator+ всё вообще просто — час вас самый банальный вариант не устраивает?
час вас самый банальный вариант не устраивает?


Почему не устраивает? Устраивает. Просто выясняю, как правильно, чтобы всем компиляторам нравилось.
Ну, вот, например.

Вот у вас там


friend CMatrix<size_y,size_x> operator+<size_y,size_x>(const CMatrix<size_y,size_x>& cMatrix_Left,const CMatrix<size_y,size_x>& cMatrix_Right);//оператор "+"

Во-первых, <size_y,size_x> после operator+ не нужно.
Во-вторых, конкретно эту функцию можно и не френдом делать, а как обычно (если только вам не нужны неявные преобразования аргумента слева от +, но я не уверен, что это для суммы матриц полезно).
В-третьих, тут можно воспользоваться injected names и писать просто CMatrix вместо CMatrix<size_y, size_x>.
В-четвертых, даже если хотите делать функцию вот так вот френдом, то можно (и даже, по идее, нужно) её тело описать там же, а не выносить отдельно.

Во-первых, <size_y,size_x> после operator+ не нужно.


Так если это убрать, линкер не найдёт оператор внутри класса. Если только перед оператором внутри не накатать template с новыми именами параметров шаблона. Тогда да, работает.
Но если хочется вот прям напрямую с матрицами, и публичного API не хватает, то тоже ничего сложного.
Дык не работает ведь!

Какое отношение матрица 10x10 имеет к оператору умножения матрицы «3x2» на матрицу «2x3»?

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

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

А что-нибудь подобное — это уже кража со взломом, фактически…
Какое отношение матрица 10x10 имеет к оператору умножения матрицы «3x2» на матрицу «2x3»?

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

Ну так можно сказать, что плюсы вообще не нужны как класс, есть же С и вообще ассемблер, на нём тоже можно писать.


Так смысл С++ и классов в уменьшении сложности, за счёт инкапсуляции — не нужно помнить детали работы класса, используя его как чёрный ящик. А созданием большого количества сущностей мы увеличиваем сложность опять — нужно помнить, что это за сущность, какое у её назначение, ограничения и применение. Поэтому и тонкая грань польза/вред.

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

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

Зачем их помнить? Они все торчат в API нужных функций, компилятор сам напомнит.


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

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


Или вот писал слой для работы с БД, сделал специальные тегированные типы, чтобы primary key разных таблиц различать и не перепутать (и чтобы не перепутать ID строки в таблице с ID строки на хабре).

Зачем их помнить? Они все торчат в API нужных функций, компилятор сам напомнит.


О, хорошо, что API напомнили! Вот есть у нас Win32API, где буквально всё сделано своими собственными типами. Ну и как? Удобно? ;) Каждая сущность имеет свои значения и диапазон (в том числе запрещённые состояния типа INVALID_HANDLE_VALUE). Так как сделано было просто через typedef и структуры, то компилятор часто допускает подстановку одного вместо другого. Хрен с ним! Но всё равно требуется часто лезть в справочник, чтобы понять, что там вообще за значения допустимы.

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


Никогда не стрелял себе в ногу в С и С++ из-за языка. Стрелял из-за особенностей ОС, нюансов многозадачности с захватом GUI (в QNX), но из-за языка — никогда.
О, хорошо, что API напомнили! Вот есть у нас Win32API, где буквально всё сделано своими собственными типами.

Да, это, конечно, образец типобезопасности.


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

Так это не типы, а ерунда.


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

Дважды ерунда, а не типы.


Никогда не стрелял себе в ногу в С и С++ из-за языка. Стрелял из-за особенностей ОС, нюансов многозадачности с захватом GUI (в QNX), но из-за языка — никогда.

Хорошо вам там. А я при расчётах терял точность там, где не хотел.

Так это не типы, а ерунда.


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

Если бы вы, как многие, поработали с языками, где это место сделано «по уму» (скажем с тем же «никому не нужным» Turbo Pascal'ем), то у вас бы ни вопросов, ни претензий не возникало.
Если бы вы, как многие, поработали с языками, где это место сделано «по уму»


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

В любом случае, любая сущность требует её держать в голове. В этом их минус. А так удобно, да.
Тем более, что ещё не факт, что эти функции хоть как-то повлияют на скорость работы программы.
Для того, чтобы они не влияли нужно, чтобы компилятор умел осознать, что размер std::vectorа никогда не меняется и умел его, прозрачно для программиста, превратить в std::array — но только в тех случаях, когда это приведёт к выигрышу, а не к проигрышу.

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

Только вот раньше как-то всё это решалось, а теперь поменялся подход и уже не решается.
Никогда не решалось. Во всех «старых» проектах полно кодогенерации — lex, ragel, yacc и bison и так далее — ровно по этой причине.

Это, как бы, тоже метапрограммирование — и родилось оно раньше, чем C++.
Для того, чтобы они не влияли нужно


Нужно не использовать стандартную библиотеку, а делать для конкретного случая конкретную лучшую реализацию, как раньше и делали. А то нынче это «велосипед», сделаем всё через stl, всё десять раз перегрузим, допилим семантику переноса, придумаем вычислять на стадии компиляции, но зато теперь делаем стандартным способом (правда, обвешанным костылями, так как, оказывается, без подсказок компилятор сам не понимает, как это оптимизировать). Ну что сказать? Приплыли. Кто-то тут недавано магические квадраты через std::set решал и удивлялся просадке быстродействия. Способ, к слову сказать, очевидный и формально стандартный. Вот только std::set гораздо медленнее работает из-за своих особенностей, чем простое сравнение переменных в цикле. Тормозит? Да. Но зато задача решена стандартным и универсальным способом. Завтра вместо цифр будут цвета и программа и с ними сможет работать.

Никогда не решалось. Во всех «старых» проектах полно кодогенерации — lex, ragel, yacc и bison и так далее — ровно по этой причине.


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

Кодеки, впрочем, и сейчас примерно так пишут. Благо там кода мало. А вот уже что-то более объёмное — времени нет на «конкретную лучшую реализацию», увы.
Более прямой способ делать преобразования типов без type punning'а (который почти всегда UB) и без memcpy (надеясь, что компилятор этот memcpy поймёт и соптимизирует). Джва года такое жду, особенно в лоу-летенси-ерунде.
Проблема не в том, что memcpy не будет соптимизирован (никогда проблем не было), проблема в том, что в constexpr нельзя использовать memcpy, а std::bit_cast — можно.

Если у вас есть лямбда без захвата, например, auto foo = [](int a, int b) { return a < b; };, то вы можете сделать decltype(foo) bar;.
Дык и сейчас вроде как можно.
проблема в том, что в constexpr нельзя использовать memcpy

Это, кстати, тоже можно было бы ослабить.


Дык и сейчас вроде как можно.

Ну камон, плюсик-то уберите. И как думаете, какой тип у bar и почему туда компилятор ноль положил?

Это, кстати, тоже можно было бы ослабить.
А зачем? Все известные мне практические потребности и std::bit_cast покрывает, а думать что там произойдёт, когда вы с помощью memcpy перепишите VTbl в constexpr функции — никому не интересно.

Ну камон, плюсик-то уберите.
Я что — себе враг?

И как думаете, какой тип у bar и почему туда компилятор ноль положил?
Указатель, а ноль — потому что оно в BSS должно идти, раз неинициализировано.
Все известные мне практические потребности и std::bit_cast покрывает, а думать что там произойдёт, когда вы с помощью memcpy перепишите VTbl в constexpr функции — никому не интересно.

Да, memcpy портит имеющееся значение, биткаст создаёт новое. Хороший аргумент, согласен.


Я что — себе враг?

Да, так сложно создаете указатель на функцию, а не инстанс конкретной структуры с конкретным operator(). Вы ж понимаете разницу в семантике?

Да, так сложно создаете указатель на функцию, а не инстанс конкретной структуры с конкретным operator(). Вы ж понимаете разницу в семантике?
Понимаю, но не понимаю что мне это даст. Вот если бы можно было любую лямбду в тип превратить (ну Ok, пусть даже только если захвачены переменные с операциями копирования/перемещения) — это было бы круто.

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

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


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

Ну и безотносительно этого, как вы указателями на функцию-компаратор параметризуете тип std::map так, чтобы значение не нужно было передавать в ее конструктор?
Никак — но это, как бы, и не проблема на практике. Если реально сильно приспичит — можно и глобальную функцию завести, если лямбда ничего не захватывает. Хотя да, со статическими переменными неприятно будет.

А мне на практике это как раз было бы полезно и существенно сократило объём кода где-то месяцев пять назад. Правда, согласен, это бывает достаточно редко.


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

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

Вещи, которые ты используешь часто — ты начинаешь воспринимать довольно быстро. Какими бы сложными они бы не были.

А вот вещи, которые нужны бывают очень редко… Тут всё не так просто…

А как они там что-то затрудняют, если, ну, вы просто можете создать объект данного типа с конструктором по умолчанию, не думая, что у вас там под типом, C++03-структурка или моднявая лямбда? Больше унификации — не меньше унификации.

Описанное в решениях очень похоже на то, что я слышу от своих немецких коллег-практикантов/недавно бывших практикантами. Однако у них это не ВУЗ, это курсы 1.5 года + 6 месяцев практики на предприятии + экзамен — web-разработчик на выходе.
Бывший коллега, закончивший бакалавриат по направлению информационной безопасности, уже рассказывал про "общеобразовательные" предметы что-то приближенное к тому, что было у нас (матанализ, линейная алгебра и т.д.), но он и в web-разработчики не планировал идти, закончив универ пошёл по специальности куда-то.

Конечно, это больше уже похоже на курсы.
Ту же School 42 до сих пор не аттестировали в США, потому что не подходят по стандарты.
Но они готовят хороших специалистов.
Получаются, что такие вещи упираются в стандарты и потому вроде как не считаются «официальным образованием».
Вот только я не уверен, что работодателей волнует, какая там у вас бумага есть. Быстро можно будет понять, умеете вы что-то или нет.
Вот только я не уверен, что работодателей волнует, какая там у вас бумага есть.
Работодателей не волнует, а вот вас — очень даже может. В ту же Германию вышеупомянутую, имея диплом, вы спокойно по «голубой карте» поедете, а без образования… Тоже можно, конечно, но процесс будет куда как сложнее и запутаннее…
Именно так.
И потому я бы, конечно, предпочел получить знания в учебном заведении.

Не погружалась глубоко в тему, однако в Берлине чтобы получить корочку курсов, коллега сдавал отчет с практики, что-то вроде дипломной работы (веб приложение) и экзамен перед комиссией. Насколько я понимаю, эти курсы — аналог ПТУ, дают Berufsausbildung, вполне официальное образование. Если человек безработный, то его оплату, как и деньги на проживание, можно получить от центра занятости. Но путь это доступен только местным/людям с ПМЖ, не уверена, что можно под них получить визу (и точно нельзя оплату курса от центра занятости).

Нет никакого смысла сидеть там 4-5 лет.

За 2 года не накопить столько денег, чтобы уехать из этой страны.

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

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

И вы еще скажите, что Сингапур, Германия и Великобритания не имеют отношения к продвижению ИТ
И вы еще скажите, что Сингапур, Германия и Великобритания не имеют отношения к продвижению ИТ
Имеют. Но гораздо меньшее, чем США, Корея и Китай. Которые в том самом рейтинге на 22м, 46м и 86м местах, соответственно.
Китайские специалисты не слишком хороши, пока еще.

И я бы не стал говорить, что те 3 страны «гораздо меньше» делают, чем Корея и Китай
И я бы не стал говорить, что те 3 страны «гораздо меньше» делают, чем Корея и Китай
А я бы сказал. Какой последний значительный проект вы можете назвать, который бы обошёлся без фирм из Кореи и Китая?

Ну, может быть, Raspberry PI… и то смотря как смотреть и считать…
чисто моё имхо по прочитанному, проблема не в описанных пунктах, а в том, что автор пришел в ВУЗ будучи совершенно уверенным, что он знает, умеет и понимает всё гораздо лучше чем те кто его учат, при таком что то усвоить крайне сложно, как показывают опыты этологов на обезьянах, последние при таком вообще ничего не усваивают
Знания свои я, скорее, наоборот занижаю. Это проблема многих людей.
Когда я пришел в ВУЗ я знал от силы Паскаль и тот слабо. И был полон надежд, что вот сейчас то мне точно дадут нужные знания.
Я неплохо впитывал в себя вышмат, но прочитав, в том числе, немало споров на Хабре по поводу необходимости его в IT, я решил самому начать учиться.

И вы, кажется, упустили момент, когда я рассказывал, каким именно языкам и как нас учили.
да я из своего опыта как раз не вижу никакой проблемы если бы учили даже на бейсике, претензия к языку имхо как раз первый признак что дао не понято :)
Ну, я бы посмотрел на то, как вы на бейсике изучаете Web-программирование.
Почему бы не на ассеблере или не на машинном коде?
в этом деле инструмент не то что вторичен, а скорее четвертичен имхо, это примерно как изучать строительство кораблей, сконцентрировавшись на материале кувалды которой надо заклепки забивать
Я бы не согласился, что он совсем не важен.
Да, сменить язык, часто, не слишком сложно, ведь они похожи в плане основных вещей.
Но я бы хотел учить WEB на JS, PHP и других вещах, которые действительно используются.

Если вы делаете только калькуляторы, то, конечно, язык совсем не важен
Нет. Можно и микроскопом, конечно, гвозди забивать.
Но системщикам — ассемблер, а вебостроителям — различную скриптуху.
Чтобы была понятна суть, а не чтоб заколебывались бойлерплейтом.
Ну, я бы посмотрел на то, как вы на бейсике изучаете Web-программирование.
Смотря что вы понимаете под Web-программированием… Работу с гипертекстом и прочие подобные вещи можно и на Бейсике рассказать, а последний визг моды в области фреймворков — это вот совсем не то, что в ВУЗе должны рассказывать…

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


Почему же нет?
Или так и надо 4 года решать все задачи в VB?
Почему же нет?
Потому что к науке это всё отношения не имеет.

Или так и надо 4 года решать все задачи в VB?
Можно на VB, можно на Python, можно на MathLab… так ли это принципиально? Математика за вашими программами от этого не изменится.

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


Для последнего даже мой любимый хаскель так себе.

Хотел написать, что каждому овощу — своё время. Что бейсик — это чтобы втянуться. «10 CLS». Но понял, что совсем эту тему не знаю.
Так вышло, что у меня задачи для компа появились раньше, чем сам комп. Как учатся люди, у которых наоборот — для меня, увы, не представимо…

Вы, кажется, не имеете хобби, помимо программирования? Можете рассказать, с чего Вы начинали?
Вы, кажется, не имеете хобби, помимо программирования?

Ну, почти. Они там все в окрестности, да.


Можете рассказать, с чего Вы начинали?

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

Других доступных языков на полуизолированной от интернета машине в 2001-м году не было

Ну делфи же, ну ) в 1996 еще пятеркой баловался, которую на CD продавали, на развалах.
автоматизация MS Agent — весьма забавная штука была тогда )
куча утилиток была написана на этом языке, вплоть до управления жизненным циклом виртуалок VMware/Virtual PC еще до всяких там devops, VDI, vApps и иже с ними.

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

BASIC, если не ошибаюсь, в комплект ms-dos входил. И в самом начале 90-х школьники далёкой провинции доставали TurboPascal, TurboC, dBase, FoxPro и т. п.

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

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

Ну и про преподов по-профессиональнее я тоже писал :)
если они хотят стать сисадминами и верстальщиками.

то им не впёрлось высшее образование.

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

И честно пиши потом, что у тебя «среднее специальное».

придется уменьшить время обучения до 1-2х лет.

Во-о-о! И я о том же! Техникум!
Я же и не против «Среднего специального».
Вот только ПТУ сейчас совсем плохо себя чувствуют, так что нужно что-то получше.
Но да, уже много раз писал — это может и не считаться ВУЗом.
Вот только ПТУ сейчас совсем плохо себя чувствуют, так что нужно что-то получше.
Проблема курицы и яйца. ПТУ сейчас выпускают «разработчиков», который вообще нифига делать не умеют, потому работодатели «воротят нос»… А люди, которым, на самом деле, нужно ПТУ — идут в ВУЗ, потому что в ПТУ они совсем ничему не научатся…
В целом да, именно так.
Умные люди идут в ВУЗ, не понимая, что к чему (см. Проблема_1).
Те, кто поглупее, дискредитируют ПТУ.
Потому и говорю — нужно бы что-то между ПТУ и ВУЗом.

Кстати, спасибо за такую активность.
В том числе из-за вас я заметил и исправил несколько вещей, чтобы грамотнее изложить идею. Правда ценю это, значит вам тоже не плевать на IT-образование в РФ
Потому и говорю — нужно бы что-то между ПТУ и ВУЗом.
Теоретически посредине — должны быть институты (кстати американская «кузница кадров» для индустрии, знаменитый MIT — это «типа институт», не университет).

Но в России в 90е почти все они «перекрасились» в университеты и теперь делают вид, что наукой занимаются.
Я сейчас тоже пообщался с людьми постарше и да.
По идее кроме ВУЗов и ПТУ еще были техникумы и институты.
И большая часть программистов относилась бы именно к ним.
Но сейчас решительно непонятно, где кто, ведь эти 2 вида влились в другие два.
Дело в том, что в СССР институты и даже некоторые училища были по факту университетами. А «перекрасились» — чтобы за рубежом МАИ «ракетным колледжем» перестали обзывать.

Техникумы никуда не делись. У меня, одноклассник после школы в техникум на программиста поступил (не знаю, правда, выучился или нет).
Дело в том, что в СССР институты и даже некоторые училища были по факту университетами.
Бауманка, в частности.

Но конечный результат: появление кучи «типа университетов», которые «типа занимаются наукой» — и полнейшее отсутствие каких-либо учебных заведений, готовящих «программистов для производства».
Именно, а потому правильного ответа на вопрос «Куда же идти будущему программисту?» толком нет.
Бауманка, в частности.

Это та, после которой выпускники не могут нарисовать принципиальную схему и УГО диодного моста, как тут один товарищ, их собеседовавший, жаловался?
«Подколодный жопозвезд мы сожгли диодный мост».
Это та, после которой выпускники не могут нарисовать принципиальную схему и УГО диодного моста, как тут один товарищ, их собеседовавший, жаловался?
Вы не поверите, но я тоже не смогу нарисовать «принципиальную схему и УГО диодного моста». Хотя когда-то изучал…

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

Вы тоже не поверите, я вообще не электронщик, и у меня вообще вышки нету, но как DIY-шник я этот самый диодный мост я вам ночью с закрытыми глазами нарисую )
Вы тоже не поверите, я вообще не электронщик, и у меня вообще вышки нету, но как DIY-шник я этот самый диодный мост я вам ночью с закрытыми глазами нарисую )
Это прекрасно — но ничего не говорит о том, должны ли все выпускники бауманки быть DIY-шниками и его рисовать…
Если специальность связана с электроникой — должны.

Мне в Физтехе пожаловалось, что студенты нифига не знают ничего. Пришёл к ним выпускник с красным дипломом кафедры наноэлектроники ЛЭТИ. Так он даже выводы биполярного транзистора назвать не может! У нас сейчас работает студентка 4 курса такой же каферды наноэлектроники только ГУАП'а. Без 5 минут бакалавр направления наноэлектроника (бывшая микроэлектроника :) ) отвечает:
1) Что такое запрещённая зона? Ответа нет. Такого слова тоже не помнит.
2) Доноры и акцепторы? Тоже не слышала.
3) Уровень Ферми? Не слышала.
4) Физику твёрдого тела проходили? Э… Вроде бы да. На втором (!) курсе. А квантмех? Нет, не проходили. А как же вы ФТТ без квантмеха изучали?! Ну ладно, оптические и акустические спектры в кристаллах слышала? Нет. Волна Блоха? Вроде бы да, но не помнит.
5) Схемотехника была? Да, и много. Выводы транзистора полевого и биполярного? Не помнит. Но слова «эмиттер», «коллектор» и «база» знакомы. УГО (условное графическое обозначение) биполярного транзистора? Что-то со стрелкой, но нарисовать не может.
6) В дипломе электронное устройство. На микроконтроллере stm32f407 (опрашивает кнопки матричной клавиатуры и управляет реле если введённый код верный (экрана, кстати, нет) — 168 МГц частота и 192 КБ ОЗУ — отличный выбор для такой задачи. Почему взята плата с этим МК? А именно её изучали.). На базе стандартных блоков из Китая. Вся схемотехника диплома сводится к проводам. Единственное своё — матричная клавиатура. Но это не электроника вовсе.
7) Какое напряжение падает на p-n переходе кремниевого диода при прямом включении диода? Не в курсе (что там вообще что-то падает?).
8) Говорит, что советские учебники слишком сложны и непонятны. Преподают плохо, так как студентам надо больше делать что-то руками — например, паять матричную клавиатуру. Почему это считается достижением — я не понял.
9) Какие известны полупроводники, кроме кремния? Через минуту раздумий неуверенно: германий, наверное. Всё. Остальных не встречали.
10) Что такое триггер? Регистр? Мультиплексор? Ответа нет.
11) А что вообще помнишь из изученного? Что вообще изучали? Ничего не помню… Я сразу забываю…

Напомню, что это кафедра наноэлектроники. Прикольно, да.
8) Говорит, что советские учебники слишком сложны и непонятны. Преподают плохо, так как студентам надо больше делать что-то руками — например, паять матричную клавиатуру. Почему это считается достижением — я не понял.
Ну дык тот же подход, что и у автора статьи: зачем на все эти «скушные» предметы, если можно бац-бац и в продакшн?

Напомню, что это кафедра наноэлектроники. Прикольно, да.
Да уж. Я паяльник в руках последний раз держал лет 10 назад, но и то кой-чего вспомнить могу… и уж точно не освежив знания по таким банальным вещам не стал бы лезть в «железо».
Черт, побери, khim, ты читаешь текст, а видишь лишь то, что нужно тебе.

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

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

Опять же, если студент выбрал направление, где точно нужен матанализ — там это обязательно, а не выборочно. Это очевидно, но я лучше уточню :)
Как вы собираетесь без матанализа оценивать сложность ваших алгоритмов? Как вы без этой оценки будете понимать что будет с вашим фронтэндом при увеличении количества данных на входе в 2/3/10 раз? Как вы будете прикидывать — что при этом случится с хешами, где вы всё храните или прочим?

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

Сделаете как получится, а если не получится — попросите пользователей докупить памяти и более быстрый процессор? Ну пока что так все и делают — только результат всё меньше и меньше заказчиков устраивает.

В эпоху «конца закона Мура» может оказаться, что лет через 10 — и совсем устраивать перестанет.
Ага, а как же буквально (!) следующая строка

Опять же, если студент выбрал направление, где точно нужен матанализ — там это обязательно, а не выборочно. Это очевидно, но я лучше уточню :)


Это мы игнорируем, конечно, я понял.
Ага, а как же буквально (!) следующая строка
Опять же, если студент выбрал направление, где точно нужен матанализ — там это обязательно, а не выборочно. Это очевидно, но я лучше уточню :)
Эта фраза тоже предполагает, что в выбранном вами направлении может не быть нужды в матанализe.

Однако… Вселенная является великой книгой, написанной на языке математики.

Независимо от того, куда в IT вы направитесь — как только вы копнёте глубже, вы наткнётесь на матан, теорвер, матстатистику, вот это вот всё.

Соотвественно если ваша задача — не научиться «клепать формочки» не задумываясь над тем — сколько на это уходит ресурсов и как это масштабируется, то матан и теорвер вам потребуются по любому.

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

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

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

А где там матан, простите? произведения, степени/корни, логарифмы в школе проходят же. Или уже нет?

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

Вообще-то любая ассимптотичческая оценка сложности опирается на понятие предела. Которое само по себе уже является частью матана.

А ещё много оценок (даже самых простейших, типа скорости работы хеш-мапа) опираются та теорвер, к примеру.

Я боюсь вы просто не осознаёте сколько вещей, которые относятся к высшей математике и основаны на высшей математике вы используете.

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


Тем более, что никаких сложных пределов там брать не нужно. Лопиталить не нужно, x/sinx не нужно, и так далее.


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

В щколе и про пределы таки говорят. Что не переносит их из матанализа в элементарную математику.

Да, вам, действительно, не потребуется весь матан… так же как не потребуется вся алгебра, вся геометрия и так далее.

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

Ушел из ЛЭТИ на третьем курсе набора 92-го года из "железячной" группы в том числе (основная причина — мало программирования) потому что в к концу этого курса проходили один семестр эти запрещенные зоны, доноры и акцепторы чисто в теории. Субъективное ощущение, что только процентов 10 в лучшем случае потока понимало хоть как-то (я — хоть как-то) как оно относится к реальной схемотехнике, потому что реальной просто не было. Кто знал до института что такое эмиттер-коллектор-база и сток-исток-затвор (просто что это выводы транзисторов и база/затвор — типа управляющие), тот понимал о чём вообще речь. Банальный однокаскадный усилитель на биполярном транзисторе к концу третьего курса не прошли, так чтобы знать как его "спроектировать", что за что отвечает, как что влияет. Зато прошли переходные процессы в активно-пассивных цепях, абстрактные ОУ со всякими ОС с расчётами с использованием "матана" (операционное исчисление, емнип), и только один курсовик был по проектированию чего-то более-менее реального. И то: дана схема и в какой-то досовской программе (pcad?) подобрать сопротивления и емкости для нужных ТТХ, а потом развести. Паять — ничего не паяли. Триггеры, регистры, мультиплексоры проходили, но опять же абстрактные и тоже, кажется, хоть что-то понимали только те, кто эти слова до института слышал.

Ушел из ЛЭТИ на третьем курсе набора 92-го года


Так это ж золотые 90-е! Там ещё учили вообще в ЛЭТИ? :) Я-то сам набора 2000 года.

абстрактные ОУ со всякими ОС с расчётами с использованием «матана»


Это потому, что в реальных схемах есть золотой рецепт «не используйте транзисторы, используйте ОУ и получите характеристики на порядки лучше». И, ЧСХ, рецепт не врёт.

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


На работе в это наиграетесь. :)

Паять — ничего не паяли.


И не должны. Вы же на инженера учились?

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


А в чём вы их хотели проходить? :O На практике? Это же так и называется «Зонная теория твёрдого тела».
Там ещё учили вообще в ЛЭТИ?

Ещё учили по чисто советским нормам. Разве что политэкономию заменили на экономику, а историю КПСС на философию и психологию, если я правильно понял.


Это потому, что в реальных схемах есть золотой рецепт «не используйте транзисторы, используйте ОУ и получите характеристики на порядки лучше». И, ЧСХ, рецепт не врёт.

Нам об этом не говорили и, главное, ОУ были абстрактные.


И не должны.

Там выше где-то было, что студенты паяли. Мы не паяли :)


А в чём вы их хотели проходить? :O На практике? Это же так и называется «Зонная теория твёрдого тела».

У нас курс назывался типа "Полупроводники в электронике". Я как-то ожидал, что он даст теорию к тому, что я осваивал на практике в радиокружке. Но как-то не срослось. Теория осталась теорией никак не связанной с каким-то МП39А или К315В (почти 30 лет прошло, мог ошибиться где-то)

Там тоже разные кафедры есть. Но да, если в специальности речь про электронику — должны бы уметь…
«Кто виноват», «что делать» и «зачем мне матан» — вечные вопросы =)
Зачем же спорить, когда можно просто спросить у господ из ИТМО, которые смогли создать лучшую в мире кафедру по подготовке программистов (так они сами говорят, если что)? Расскажите нам, itmo, как другим универам сравниться с «признанным мировым лидером в области подготовки специалистов по разработке программного обеспечения и систем искусственного интеллекта»?

А если отбросить шутки и троллинг в сторону, то сегодня после этой статьи у меня возник вопрос: по моим субъективным наблюдением, даже на кафедрах IT-направления не так уж мало студентов, которые не справляются (или совсем не хотят справляться) с базовыми IT-предметами, не говоря уже о сложных, которые доставляют страдания даже подготовленным (!) студентам профильных вузов. Почему есть такая уверенность, что если отбросить «левые» (и далеко не самые сложные, если честно) предметы, а вместо них добавить простые IT-предметы, то мы получим что-то лучше пту?

А если добавить сложные, то почему можно будет реально их преподавать (хотел бы я посмотреть на тех, кто собирается учить машинному обучению слабо знакомых с математикой людей), а студенты смогут (и захотят, ведь откуда появится мотивация, если сейчас ее нет даже для того, чтобы сходить в деканат/другие отделы вуза, чтобы узнать, что и почему происходит) их учить? Кажется, что такой путь очень легко может привести либо к разрушению сомнительных (но все еще живых) вузов и созданию пту с красивыми корочками, либо к появлению более дорогих вузов, но вместо физики студенты не будут знать машинное обучение, а вместо философии — списывать инфобез.
Не знаю насколько все весело в ИТМО, надо будет почитать про это, давно об этих ребятах не слышал.

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

И я не говорю убирать именно «сложные» вещи. Я говорю убирать те, что не пригодятся на практике.

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

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

А чего там, импорт тензорфлоу и погнали. Чай не нулевые сейчас и даже уже почти не десятые, не надо SVD-разложение от QR отличать.

Добавлю к ранее упомянутым техникумам ещё и IT-колледжи. Для 90% работ на web-frontend этого хватит. Современные технологии таки значительно снизили входной порог в «программисты» (хотя и не достигли обещанных нам 20+ лет назад — «компьютеры сами будут писать программы под диктовку пользователем функциональных требований, так что к моменту выпуска вы будете уже не востребованы»). Знаю даже когда-то бросивших «бесполезную» среднюю школу финансово успешных PHP/JS-разработчиков (правда, некоторые из них спустя 5-10 лет таки доучились, а кто-то даже получил высшее образование).

Из того, что обычно не вспоминают про ВУЗ-ы — это доп. соц. лифт, дружеские и профессиональные связи, повышенное внимание рекрутеров и гостевой/стажёрский доступ почти в любые средние-крупные компании (где-то со второго-третьего курса).
К названию имеет смысл добавить "… или любым высшим образованием в России."

Эх. Никто толком не написал главное, что даёт вуз — среду.
1) В вузе активно хантят на стажировки крупнейшие компании.
2) Эти же компании создают собственные кафедры.
3) Через несколько лет ваши однокурсники будут работать (в том числе на руководящих должностях) во многих крупных компаниях. Когда вам понадобится собрать команду, знание людей сильно ускорит этот процесс.
4) Вы получите много людей, которые развиваются вместе с вами. Естественные соревнования друг с другом дадут мотивацию расти быстрее. А возникающие проблемы вместе решать будет проще.
5) Преподаватели-практики будут рады взять себе падаванов.


А учеба на парах это дело не основное (но полезное)

Доступность господа, доступность — по моему мнению есть основная проблема образования в России.

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

На выходе мы из выпуска получаем солянку из тех кто реально 11 классов пахал/трудился(10-25% от класса) и тех кто просто просиживал штанишки(как я например). И вот вся эта солянка на 90% поступает в ВУЗ. 50% из этих людей поступят на бюджет, другим 50% обучение оплатят родители.

А теперь все мы пришли и стоим перед нашим преподавателям по выш. мату, правда 70% из нас довольно хорошо забивали на школьный курс по математике. И вот так получается что первый курс по выш. мату будет состоять из того что мы ленились изучить в школе, просто потому что большая часть потока не справится с тем, с чем должна была справится. Тоже самое касательно других предметов и вот мы получаем уже +1 год к обучению для того чтобы просто сделать то, на что мы забивали в школе.

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

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

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

Я бы предложил:
Сделать образование платным, но оставил бы спонсируемые места людям которые действительно старались в течении всего обучения в школе.
Сделать возможность выбора предметов по желанию
-> Выбор широкой специализации на входе
-> Требование по определенному кол-ву курсов и часов для выбора узкой специальности при дальнейшем обучении
Сделать более жесткими правила для продолжение обучение (а не как сейчас на заочке ребята сдают долги по физике, которая была на 1 курсе, аж на 4 курсе)
Сделать обязательное интервью перед поступлением, цель которого сугубо в том чтобы понять, а правда ли он оно ему нужно или это желание его родителей к примеру.
Запрет преподавания на стандартных курсах программы школы, пусть буду дополнительные для тех кому это действительно нужно.

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

Платное образование это барьер для малообеспеченных, которых большинство. Ваше предложение создает риск откатиться обратно к обезьянам всего за несколько поколений. Учеба должна быть доступна всем, кто способен ее осилить. Соответственно надо делать адекватный входной контроль. Который уже был и назывался вступительными экзаменами ;).
Ну и закончить с позорной практикой требовать диплом ВУЗ-а у всех поголовно. Даже у уборщиц, которым для освоения профессии не нужны ни философия, ни матан =). Это уберет необходимость при любом раскладе запихивать свое чадо в ВУЗ. Зато в полку ПТУ прибудет =). И вместо страдальцев, которые не хотят знать основ, а хотят профессию, будут довольные люди осваивающие профессию о которой мечтали.
Безусловно, я бросил уже 4 универа. Причем в первый я поступил на очку, заняв бюджетное место. Но мне оно, честно не было нужно и сделал я это только из за родителей, которые считали что без высшего образование я смогу работать в своей деревне только пастухом. Абсолютно бездумно и без сожалений я забил на учебу. Таких как я на потоке было немного(тех, кто просто взял и ушел с 1 же курса), но было много тех, кто просто косит от армии или валяет балду, так что если на учебу своему чаду придется копить по несколько лет, то и родители и дети будут задумываться о необходимости и готовится еще со школы к универсететской программе чтобы получить грант или частичное финансирование, например.
Обеспеченные будут иметь возможность косить от армии, в то время как малообеспеченные не будут иметь возможность учиться. Неравенство во всей красе.
Вам стоило поучиться хоть в одном университете до конца хотя бы ради логики и математики. Тогда и без меня поняли бы бредовость вашей затеи.

Вопрос мотивации к учебе гораздо более объективно проверяется через вступительные экзамены, а не через кошелек. Смог подготовиться по озвученным заранее темам и сдать экзамены лучше других — значит и способности и мотивация в наличии.
Ну вы придрались только к вопросу денежному, а я говорю о комплексе действий. Сейчас если у тебя есть деньги ты можешь поступить с крайне низкими балами, а я говорю об упразднение этого. Для людей с деньгами и без — будут одни условия для поступление. Во многих странах это успешно работает. Сейчас основная проблема высшего образования — ни то что оно плохое, а то что ему нельзя верить. Имея даже два красных диплома вы все равно будете катироваться ниже человек без диплома и с опытом, а значит и получите офер с меньшой вероятностью. Так в чем смысл если оно есть у всех? А так будет перекресток для людей что богаты и людей что умны, вы видели как сейчас это происходит?
Тот кто богат заливает все проблемы деньгами, а те кто умны — умом, в итоге мы получаем людей которые ненавидят друг друга и не в состоянии понять друг друга.
А равенства не будет никогда, увы, если мы конечно друг друга не убьем.
Ну вообще все в кучу =). Давайте по порядку:
1. Вы сами предложили сделать образование платным. Причем высшее в открытой форме, а среднее и начальное в завуалированной — выделить некие курсы отрезающие полезные знания от основной учебной программы (видимо бесплатными оставить обж и физру ;). ).
2. Для того, чтобы быть технарем вам надо уметь в логику. Пока же я вижу следующее:
Вы хотите чтобы обучение было платным для всех. Т.е. завязываемся тупо на финансирование от студентов. Есть студент — есть деньги. Нет студента — нету денег…
При этом вы хотите чтобы было меньше платников-лоботрясов, которые сдают экзамены за 1-й курс на 4-м. И их не выгоняют? Почему же это? о_О. Как так получилось? Ктоооо это наделал? =)

Как думаете, в чем подвох? ;). Попробуйте поразмышлять на тему почему платников тянут. Что теряет или приобретает учебное заведение, если отчисляет платника? Что будет, если платниками будут все студенты?

Как доп. задание на дом, предлагаю вам почитать что такое конфликт интересов.
почему платников тянут. Что теряет или приобретает учебное заведение, если отчисляет платника?

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

Как думаете, в чем подвох? ;). Попробуйте поразмышлять на тему почему платников тянут. Что теряет или приобретает учебное заведение, если отчисляет платника? Что будет, если платниками будут все студенты?

Какие предсказания ваша модель делает относительно качества высшего образования, например, в США, где топовые вузы вполне себе ощутимо платные?

У меня нет опыта обучения в США =). Не знаю как там все устроено. Поэтому воздержусь от оценки.
>Доучится 11 классов может даже самый отпетый троечник (двоечник).
Вы не в курсе текущего состояния образования:
из четырех 9-х классов создают один 10-й класс из местных учеников и один специализированный по предмету и это в обычной районной школе. Остальным просто указывают на дверь, после чего конкурс в ПТУ, как при поступлении в институт.

Нет сейчас всеобщего среднего образования (не в Маскве).
Не знаю, что у вас за «не Масква», но в знакомом пгт всего две школы и после 9го на дверь указывают только особо отличившимся или кого дотягивали «лишь бы выпустить».
Город с населением 610 тысяч человек.
Сейчас задача учителя проверять знания учеников, полученные от репетиторов или родителей, а раньше они давали знания.
я закончил школу 5 лет назад, тогда эта тенденция прогрессировала (город 30к человек), сомневаюсь что сейчас иначе.
Да, это уже не совсем ВУЗ, так как там готовят не «ученых», а просто хороших работников.
Но это и не ПТУ, так как там готовят ХОРОШИХ работников, а обучение программированию предполагает немалые знания хотя бы в области математики. И если вы сдали ГИА на тройки и идете в ПТУ — это не совсем тот уровень знаний, о котором я говорю :)

В хорошем ПТУ тоже готовят ХОРОШИХ работников. От электрика или сантехника с таким подходом к обучению Вас будет отличать только чистый офис.
Все-таки вуз (в нашей системе образования) делает с человеком немного другую вещь.
Например я работаю разработчиком электроники, но при этом я в состоянии как минимум разобраться в любой технической системе и более менее рассчитать любое физическое явление. Не скажу что мне это нужно постоянно — но иногда приходится расчитывать например резонанс механической конструкции, чтобы понять почему из-за работы вентиляторов у меня что-то нехорошее происходит в системе.
Или например оценить тепловой режим работы схемы.
Это не особо относится к моей прямой профессии, но тем не менее я могу это делать и иногда делаю. Хотя конечно этим могли бы заниматься другие «специально обученные» люди.
Я достаточно неплохо разбираюсь ЦОС, умею читать код и даже сам немного программировать — хотя это тоже не мои профессии.
Это последствия высшего образование — оно просто делает кругозор шире что-ли. И это позволяет мне концентрироваться не только на конкретной схеме или плате, а смотреть на системы в комплексе.
Да и в быту бывает полезно, когда хочется сэкономить на проектировании электрики/сантехники/отопления — все это я умею делать, потому что в вузе мне дали для этого фундаментальную основу. Я нарисовал 3D модель своего дома со всеми деталями, каркасом и коммуникациям — это я тоже умею делать, хоть это и не моя профессия. Из меня хреновый сантехник/электрик, так как руками я работать не умею — но я прекрасно знаю как и почему делать правильно и спокойно могу сантехников/электриков контролировать. Эту способность мне тоже дал вуз.
По большому счету я могу сожрать любую техническую дисциплину, потому что почти по всем из них у меня есть базовые знания.
Я не могу оценить — хорошо это или плохо, но именно это и есть отличие вуза от ПТУ
Но справедливости ради — после выпуска, как разработчик электроники я был 0. Хотя я списываю это на то, что специальность у меня была несколько иная, а электроника это был один из ее кусочков. Ответ на вопрос — хорошо ли в Бауманке преподают эту дисциплину такой — на уровне 70х наверное.
З.Ы.
И даже вышмат с его теоремами Коши мне один раз по работе пригодился ))). Правда это конечно дичь по большому счету уже.
Широкий кругозор это отлично, только почему это следствие именно ВУЗа?
Неужели учась не в ВУЗе или не учась совсем, невозможно разбираться больше чем в одной-двух вещах?
Думаю, это скорее вопрос о том, хочет ли человек в целом изучать что-то новое.
Если не хочет — как ему поможет в этом ВУЗ?

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

А сейчас кто из хороших преподавателей, знающих программирование, пойдет в ПТУ преподавать? :) Это, как минимум, не выгодно
Широкий кругозор это отлично, только почему это следствие именно ВУЗа?

Потому что имеено в вузе галопом по Европе Вам помимо основной специальности дают все подряд — термех, сопромат, детмаш, физику, гидродинамику, программирование… А что с этим делать — это уже Вам дальше решать. Да на каком-то базовом уровне. Но гораздо проще если Вам препод в вузе расскажет что такое, например — «свертка» и заставит сдать экзамен и вы это забудете до лучших времен, чем когда Вы попытаетесь потом в это въехать с нуля.
В этом и смысл.
ИМХО что реально нужно исправить в вузах — это все-такие актуализировать базу знаний, чтобы она хотя бы в пределах ближайших 10 лет лежала, и добавить какой-нить прикладухи. Потому что ну вот реально не понимаешь нафига нужны все эти, скажем фильтры Чебышева — пока не увидишь как именно это применяется в конкретном устройстве. А потом через 10 лет сталкиваешься и начинаешь из глубин сознания знания выкапывать и понимать зачем это вообще все было.
Ну и как-то снизить процент валеологий и культурологий в технических вузах.
Вопрос еще, что следует считать «базовым уровнем»?
Для кого-то и переход к базису ортонормированных векторов будет далеко не базовой вещью.
А, например, производные и интегралы я еще в 10-11 классе проходил.
И где же именно этот базовый уровень? :)
У каждой дисциплины свой ))). В моей — это содержимое книжки Хоровиц Хилл, дальше уже давать не надо, если человек учится на другую специальность.
Касательно программирования еще хотел написать.
Тут на мой взгляд вообще нужно учить людей придумывать и понимать алгоритмы, изучать какие-то типовые алгоритмические приемы, математике научить наконец. Дать им понимание того как работает компилятор, что идет в процессор, как обрабатывается, как это уходит в железо. Дать понимание об особенностях программирования для разных применений.
А не изучать языки. Ну ок — классику надо конечно.
Потому что я постоянно наблюдаю людей, которые могут накодить что-угодно на 5-6 языках, правда для этого им сначала надо чтоб я на бумажке алгоритм придумал им — сами не в состоянии. Язык это все таки просто инструмент. И такой уровень компетенций — это ПТУ. И за компьютером сидит не инженер-программист, а рабочий-программист с инструкцией от инженера.
По мне так это как если бы полностью нарисовал схему обвязки котельной и отдал ее «инженеру» на реализацию. А он бы ее просто собрал, добавив каких-то специфических деталей там… тройничков, краников, о которых я просто не знаю и не подумал.
Алгоритмы нужны, без них, само собой, никуда.
Но и знание инструментов тоже будет далеко не лишним.

Но да, без алгоритмов — это ПТУ, где человек просто клацает по клавишам.
Это не то, что нам нужно
Меня тут один коллега программист как-то попросил объяснить понятным языком — каким макаром софт, который он пишет, превращается в какие-то материальные действия осуществляемые машиной. То есть все что ниже машинных инструкций для него уже черная магия.
Ну хз — мне кажется у программистов таких вопросов возникать не должно если честно.
То есть все что ниже машинных инструкций для него уже черная магия.
А речь о современном процессоре идёт или о каком-нибудь 6502?

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

Но как в принципе программа на внешний мир воздействует — как бы несложно-то понять…

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

Так-то нужно понимать, что все достижения «цифровой электроники» опираются на транзистор, который может переключиться без сбоев и запинок миллиард миллиардов раз. Только эта беспрецедентная надёжность — делает возможным всё остальное… Однако, удивительным образом, масса вроде как программистов — этого не понимает.
В моей — это содержимое книжки Хоровиц Хилл

Вы хотели сказать «трёхтомника П. Хоровиц, У. Хилл „Искусство схемотехники“»? :)
Я имел в виду первый том ))). С законом Ома, Кирхгофа и базовыми понятиями о дискретных элементах.
Можно еще конечно дать элементы цифровой схемотехники из второго тома, но не вдаваясь в дебри.
Этого достаточно, чтобы в случае необходимости наш будущий инженер мог ковырять дальше.
На всякий случай — ХХ — это не настольная книга разработчика, а скорее букварь ))). На столе должны быть Говард Джонсон, Боб Смит, Эрик Богатин и тд.

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

Нет, все-таки осилил.
Ну поехали.

Сам я отучился 4 года в Волггту — это политех волгоградский. Потом на магистратуре потусил 1.5 года, но бросил. Учился я плохо, можно сказать, что вообще не учился. Таков расклад.

Теперь по вашим пунктам.

1) Если вам из определения не ясно, что вы будете делать — это всегда можно уточнить. Тем более вы выбираете вуз — мониторить форумы-группы можно легко. Узнать что и как тоже. Это только ваша лень — не тянет на какой-то минус.

2) Расписание, матан… Если бы вы привели философию, экономику или что-то другое — я бы согласился, но вы решили, что матан — это худшее, что можно узнать. Сам я его не учил, например, так… чтобы сдать, но сейчас бы, если бы повторно пошел, учился бы нормально.
Вся проблема не в том, что вам дают знания плохие, а в том, что вы не хотите учится)
Вы не понимаете для чего преподают тот или иной предмет, но мол мы сейчас все модные пишем на JS, юзаем Angular и Node — нам это не нужно… какой-то Pascal…
Нас вообще на Кумире учили пол года. Знаете, что это такое?) Это такой язык на котором можно изучать алгоритмы с визуализацией. Вообще бесполезен, но благодаря нему легко понять работу алгоритмов и найти ошибки.
Матан не нужен? Ну, может, в реальности почти никому не нужен, но уметь логически думать и решать задачи — обязанность любого программиста. Матан неплохо это развивает.
Вас не должны учить технологиям, тем более на 1-2 курсе — вам дают БАЗУ. Объясняют, что такое программирование — как и зачем что-то делать, что такое алгоритм, что такое ветвление и цикл, как нужно думать и декомпозировать задачи, базы данных — графовые, документоориентированные, реляционные…
Вам нужно на курсы, типа гикунивера идти или скиллбокс — там как раз по шаре учат, как вы хотите. Это уже вы не посмотрели куда шли.

3) Учителя — тут как попадется, не спорю. У меня были просто великолепные — вышка нереальная, особенно те, что занимались программированием.
Git отлично объяснили, принципы ооп и построения сложных систем — спасибо большое им за это.

4) Как вы можете знать — как выходят с вуза, если не закончили его?))))
Практики у меня было достаточно. Притом мы писали разное, понимаете, не было такого, что нас ТОЛЬКО верстке учили или ТОЛЬКО администрированию. Нам давали всего понемногу, чтобы мы определились с направлением САМИ. Мы кодили клиент-серверные приложения, интегрировали VK API и FACEBOOK API, изучали типы и структуры данных, верстали и прогали, писали консольные програмки и с GUI.
Но это не важно. Важно то, что универ дает ЗНАНИЯ и возможности, чтобы задавать ВОПРОСЫ. А над практикой и портфолио работать должен САМ СТУДЕНТ.

Я тоже в свое время не понимал, как вы — поэтому и учился для галочки, но сейчас, спустя 5 лет — я бы с радостью заново пошел и участвовал во всей движухе. Я читаю очень много литературы. И я многое уже знаю, потому что в универе было — паттерны, проектирование, конструирование и прочее…
Естественно, чтобы сверстать какую-то фигню много не нужно ума, но для этого и универ не нужен. Он не мешает, никто вам не запрещает самостоятельно учиться. Вы многое потерял, на мой взгляд, бросив универ.
Как обычно, ответ тоже по пунктам :)

1) Если все побегут уточнять — не завидую я деканату :) (К слову, не факт, что они сами смогут уточнить)
Почему нельзя сразу нормально все объяснить?
Или так и написать — хотите узнать, куда поступаете — звоните в ВУЗ.

2) К слову, философия и экономика у нас так же были. Но их было мало, они не нагружали и без того непростую программу. В каком-то роде они «расширяли кругозор».

Я не говорю только о 1-2 курсе. У нас в программе вышмат до самого конца (4.5 года).
Про базы данных, как-то, тоже не особо все круто. Может в будущем, если повезло бы, рассказали бы. Но в первые 2 года этого не было точно.

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

3) Повезло вам, у меня только 1 препод слышал, что такое Git и ООП, и тот был всего 0.5 года, после у нас его в программе до магистратуры нет.

4) Знаете, я общаюсь с людьми :)
В том числе закончившими совершенно разные учебные заведения, от ПТУ до Бауманки.
И все, что вы описали в 4 пункте — это отлично. И ничего из этого у нас в программе нет.
А учили бы — я был бы рад остаться.

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

2) Хз, у нас 2 года шел матан, кажется. Был еще тервер, булеваалгебра и прочее, но опять же — а что еще нужно учить? Не знаю как у вас — у нас прям дубы дубами приходили — матан их отсеивал жестко (и физика:)).
БД 3й курс был — очень подробно.
Программа каждый год меняется. Нужно было просто посидеть там. Вам никто не мешал совмещать)
Почему матана много?
Во-первых, это вуз — высшее заведение, прицел на дальнейшую магистратуру и прочие «научные» специализации.
Во-вторых, нагрузка идет постепенная. Не помню, чтобы прям все 2 года матана было. Было много математике, но там было разное — мне даже интересно иногда было:) Опять же — барьер хороший для отсеивания.
Тут опять же — вы frontend. Тут не будет слишком алгоритических задач или подобного, а, например, ребята, которые проектируют какой-нибудь сервис по настройке подвески или танковое шасси — им нужен будет полный матан… Все субъективно. Даже в тех же играх иногда нужно прикрутить сложную логику, где будут уравнения и прочее) Математика подходит близко, когда от веба уходишь.
Так что тут субъективно. Я не помню, чтобы меня сильно напрягало что-то, кроме физики. А вот после 2го курса пошли прикладные вещи — те же базы, клиент-серверное взаимодействие, сети и прочее… Так что с этим порядок.

3) Сомневаюсь, что так плохо. Наш ВУЗ не особый топ по стране:) В НН — Интел и прочая IT-движуха. Очень, очень сомневаюсь, что там ТАК плохо с учебой. Возможно, вы не доучились как раз до 2-3го курса. Преподы по матану не должны знать программирование) У нас на первых курсах из программирования было только — введение в прин и алгоритмизация (основы программирования, как-то так называлось).

4) Ну я на своем примере написал) Столько лаб нужно делать, что хочешь-не хочешь, а практика будет. Ну и опять же — это не школа, где тебе говорят, что делать. Тут уже сам должен разбираться в предметах, практиковаться и учиться, а что не ясно — уже уточнять) Тебе дают направление, а движешься сам. Личное ИМХО.

У меня все ребята, что закончили — прекрасно работают. Сомневаюсь, что кто-то жалеет о 4х годах, которые были не напряжные. Кто-то в Яндекс сразу поехал, кому-то вуз организовывал зарубежные путевки на 3 месяца:) Ну это тем, кто учился, а не как я)

Тимлид?) Не знаю, я больше по Backend) И вообще фрилансер:)
Думаю, общими:
1) проектирование архитектур
2) знание паттернов и умение их применять
3) планирование (диаграммы ганта и прочее)
4) декомпозиция задач
5) менеджмент
6) разбираться в прикладной области
7) высокие знания по программным средствам (git тот же, язык свой, инструменты)
8) уметь обучать людей
9) алгоритмы, типы и структуры данных
10) хорошие знания ООП и других парадигм
11) знания методологий
Пожалуй, это основное. Тимлид код по-хорошему особо не пишет. Он принимает решения по архитектуре — что скрыть, что открыть, как разнести компоненты, какой сборщик использовать, какую методологию. И вот тут как раз знания вуза и помогут, а не знание хорошо JSа или любого фреймворка.

Мы на 4ом курсе объединялись в команды и работали над проектом. Все серьезно) Git, workflow и прочее))) И тут уже сразу осознаешь как работать в команде, как руководить и прочее…

Это ИМХО)
3) Как вы понимаете, я спрашивал у старшекурсников об этом и немало. В целом все сами учатся кодить и работу ищут сами и практикуются сами.
На самом деле на 4 курсе даже на пары не то чтобы много кто ходит, там уже мало пар и многие забивают

4) Лаб у нас было немало, но это «искусственная» практика. Она позволяет наработать навыки, но не дает понятия о том, а на кой черт ты это сделал :)

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

У нас как раз и не расскажут, все самому

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

В общем неплохо у вас там все, нужно будет поизучать :)
Вот каким, например, образованием, должен обладать тимлид группы Frontend-разработчиков?

Все что связано с руководством людьми — это не образование, а в первую очередь социальные навыки. Коих кстати вуз дает предостаточно, ибо в процессе обучения приходится решать массу организационных и социальных задач, особенно если еще и живешь в общежитии. Более того — для его развития гораздо полезнее опыт решения вопросов с преподавателями и в деканате, чем непосредственно образование. Я может скажу крамолу, но у людей после армии/военного училища или вообще детдома гораздо лучше получается руководить (если они смогли пробиться конечно), потому что социальной инженерии они поели сполна. У них уже есть чуйка с кем и как надо работать. Кого пугать, кого хвалить. Как зарабатывать авторитет. И этот скилл нельзя получить на идиотских менеджерских курсах. Все эти PMP и иже с ними являются пустым звуком, если человек первые 25 лет жизни провел в родительском уютном вакууме.
Более того — технический бэкграунд руководителю часто жмет и мешает смотреть на вещии более абстрактно.
Ну то есть руководитель программистом конечно должен понимать в вопросе, но совсем не обязан быть экспертом. А руководитель руководителей вообще может только терминологией владеть.
В таком случае вырисовывается картина, где выпускниками ВУЗов будут руководить ПТУшники, потому что им и «бэкграунд не жмет» и в вопросе они далеко не эксперты.
где выпускниками ВУЗов будут руководить ПТУшники

А Вы думаете это редкость.
У нас в топе Форбса вообще по-моему у половины никакого образования нет кроме дворового. И справляются в общем-то.
У меня масса знакомых предпринимателей разной степени успешности — в основной массе в/о у них заключается в купленном дипломе, ну просто потому что как это без диплома же. Один вот со мной школу заканчивал. Потом я пошел в институт, а он пошел на рынок покупать тухлые помидоры, перебирать их и продавать втридорога — нынче владелец сети крупных продуктовых магазинов в Тюмени. Весьма успешен. Интересовался тут полгода назад у меня про эджайл, про IT-сервисы. Слов каких-то нахватался модных.
А я весь такой с образованием одного из ведущих технических вузов — наемный инженер, ну ок — технический руководитель. Пускай и неплохо оплачиваемый. Правда думаю мой месячный заработок мой бывший одношкольник за вечер в баре высаживает иногда. Так что все относительно.
Еще один «учился» со мной в Бауманке. По сути был университетским решалой — взятки передавал в деканат. Сейчас по моему все салоны красоты в Химках — его.
А на таких парней потом работают программисты, экономисты, и все прочие очень образованные специалисты с дипломами и курсами.
Да и вообще это секрет Полишинеля: чем больше у Вас экспертизы в каком-то вопросе, тем меньше Ваши шансы подняться куда-то выше высокооплачиваемого специалиста.
Вот вы шутите, а я был в такой ситуации. На 3-х ижненеров было 4 высших, опыта больше, чем мне лет, а тимлид все равно я (со средним образованием. Просто со средним, а не средним специальным)
Надеюсь, успешно)

Если да, то после таких комментариев еще больше веришь, что и без образования справишься
НЛО прилетело и опубликовало эту надпись здесь
А поняли бы вы это, когда вам было лет 17? Я даже близко не в курсе, о чем они. Но звучит внушительно.

В 17 лет мозги надо иметь уже. Да ёлки палки, уже года за 3 до окончания школы надо знать куда идёшь.

Сам себе злобный буратино.
В 17 лет мозги надо иметь уже. Да ёлки палки, уже года за 3 до окончания школы надо знать куда идёшь.

За 3 года — это 14-летний подросток.
Как вы себе представляете это — в 14 лет понять чем хочешь заниматься всю оставшуюся жизнь? Тут до 25 бывает люди меняются с ног на голову, а вы требуете от 14-летнего подростка себя обречь на что-то конкретное.
Как вы себе представляете это — в 14 лет понять чем хочешь заниматься всю оставшуюся жизнь?

А при чём тут вся оставшаяся жизнь? Планов лет на 5-10 достаточно.

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

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

Я работаю преподавателем программирования в одном из Московских колледжей, также работала по совместительству в школе, и часто общаюсь с преподавателями из вузов, грубо говоря я «окунулась» в образование всех уровней. Конечно, в образовании у нас все безрадостно, но все же есть просветы.
Кратко скажу о колледжах, сейчас московские колледжи очень поднялись в плане уровня образования, так как года два назад подняли очень хорошо зарплаты преподавателям в колледжах и школах, начали оборудование закупать, неплохие компы, в общем достаточно неплохо зажилось тем образовательным учреждениям, которые под Департаментом образования, ну а в вузах как раз ничего не поменялось. Но основные проблемы заключаются в самой системе образования и преподавателях…
1) повышение зарплат преподавателям это не решение проблем, представьте, вы преподаватель, который работает уже продолжительное время в образовании, за годы у вас накопилось большое количество лаб и методичек, которые из года в год вы даёте студентам, отработанная схема в общем, и тут повышают зарплату, вы, конечно, обрадуетесь, но будет ли это стимулом пересмотра вашего метода преподавания, вы за ту же работу будете получать в два раза больше, зачем что-то менять?
Я часто сталкивалась с коллегами, которые очень часто мне говорили Зачем? Зачем мне изучать новое, когда у меня уже есть готовые программы? Зачем мне общаться с работодателями, когда я сам работал в этой сфере 20 лет назад? Большинство преподавателей это люди в возрасте, которые не заинтересованы в повышении квалификации. Но даже молодые преподаватели не особо в этом заинтересованы, им хорошо стали платить, так зачем тратить время на обновление материала, когда можно взять «слизать» материал у коллег и не париться. Конечно, денежный стимул должен быть, но он должен напрямую зависит от работы преподавателя, его побед, заслуг.
2) Я каждый раз удивляюсь куда уходят деньги, которые дают учебному заведению на закупку оборудования, мало того, что приходится ждать закупки около 2-3 лет, так когда она приходит, половина оборудования просто нерабочая, и вот приходится на свои деньги что-то докупать, пересобирать, чтобы студентам было на чем работать. Но большинство не будет заниматься таким ремонтом, а потом говорить студентам, ну не работает, не мои проблемы. И будут правы на самом деле.
3) Колледжи гораздо гибче вузов, то есть достаточно быстро (при желании) могут подстраиваться под новые требования рынка. В вузах посложнее, там обязательно придерживаются стандартов и не могут (не хотят?) кардинально менять программы. ВУЗы это как отдельные обособленные государства, со своими порядками, подходами, в которых все уже с годами отработано. Был у меня случай, я общалась с одним преподавателям в универе, он преподавал схемотехнику и был в этом действительно хорош, он поделился со мной «возмутительным» случаем, когда пришли представители из Росатома и начали говорить о том, как лучше подготовить специалистов, какие люди им требуются и как изменить программу, мой преподаватель отреагировал так, что все это пропаганда запада, это все делают, чтобы разрушить наше образование, и что все эти подходы неправильные. Нам вроде все ещё нужно образование для того, чтобы устроится на работу, а не наоборот?
4) непосредственно про IT образование, обычно в группе программистов 25-27 человек, из них только человек 5-6 действительно пойдут работать по специальности и в принципе будут понимать программирование, а остальные кто куда… тут будет уже даже не проблема в преподавателе, а в самих студентах, которые самостоятельно работать не будут, чтобы в связи с тем, что «программирование это сложно», «у меня не получается», «я вообще сюда случайно попал». Преподаватель обязан уделять всем студентам одинаковое количество времени и внимания, поэтому иногда происходит так, что на способного студента может не хватить времени, так как его заберёт тот, кто абсолютно ничего не хочет понимать.
В общем огромное количество нюансов.
О себе, я действительно стараюсь давать те знания ребятам, которые помогут им заработать и найти хотя бы неплохую работу, на это уходит огромное количество сил и личного времени. И это очень неблагодарная работа. Ведь можно просто не париться и читать какой-то материал из книжки, чтобы просто все записывали, толком не проводя практические занятия. Зарплата от этого не изменится:)

Почему-то автор постоянно апеллирует к количеству выученных языков, что как раз таки далеко не всегда важно. На мой взгляд, конкретно веб-разработке или разработке игр может учить только сомнительный онлайн университет. Если тема занятия react (любой другой фреймворк) — стоит насторожиться. От таких знаний по факту мало пользы, т.к. как автор сам заметил — в ИТ постоянно что-то происходит, но в основном все обновления как раз связаны с языками и технологиями, а базовые знания (такие, как структуры данных, алгоритмы, методологии разработки, шаблоны проектирования и т.д.) пересматриваются реже, по этому в более-менее адекватном учебном заведении акцент делается в основном на них. Например, в моем университете почти любые работы можно было выполнять применяя практически любые средства и технологии разработки.
Похоже, что автору просто хотелось больше "кодить" и меньше изучать, в результате чего он поспешил покинуть ВУЗ и возможно зря.

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