Всем привет.

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

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

Для начала скажу, что мне 20, я учился в ННГУ в Нижнем Новгороде. Это у нас самый крупный ВУЗ и уж точно он входит в тройку лучших в городе. Ушел после 1.5 курса, по причинам, которые опишу ниже. На примере ННГУ я и буду показывать, что же идет не так.

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

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

Часть_1 Вы будете выбирать место, где вам учиться, почти наугад


Имея мало информации вы можете и не понять, что у вас мало информации.

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

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

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

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

Проблема_1


ВУЗы пишут информацию о направлениях так, чтобы ты совершенно не понял, о чем идет речь, но очень впечатлился.

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

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

Решение_1


На самом деле нужно просто адекватно писать о том, что вы преподаете в ВУЗе. Если у вас целое направление Web-программирования — так и пишите. Если у вас только полгода изучения C++ — то так и напишите. Но все же понимают, что тогда много народа пойдут не туда, где говорят правду, а туда, где врут. Поэтому врут все. Точнее не врут, а скрывают правду умными строениями предложений. Грязно, но работает.

Совет_1


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

Например, хорошей идеей будет поспрашивать тех, кто уже учится в том или ином ВУЗе. Да, некоторые из них могут умолчать о проблемах, поэтому опрашивайте много. И 2 — это не много! Опросите человек 10-15, не повторяйте моих ошибок :) Спросите у них, что они делают на своем направлении, какие языки они проходят, есть ли у них практика (в 90% случаев нет). К слову, считайте практикой только нормальную практику, если ваш собеседник сделал за семестр 3 задачи по перебору массива из 20 элементов разными способами на Visual Basic — это серьезный повод задуматься над другим направлением.

В общем, собирайте информацию не от ВУЗа, а от тех, кто там учится. Так будет надежнее.

Часть_2. Поздравляем, вас зачислили!


Кто все эти люди? И кто кинул матанализ в мое расписание?!

Итак, следующая стадия, когда меня зачислили и я, довольный, пришел в сентябре учиться.
Увидев расписание я насторожился. «А я точно свое расписание открыл?» — думал я. «Почему в на неделе у меня всего 2 пары, отдаленно напоминающие программирование, и около 10 пар того, что обычно называют Высшей математикой?!». Естественно, никто мне ответить не мог, так как половина однокурсников задавалась ровно теми же вопросами. Названия предметов серьезно напрягали, а количество вышмата заставляло глаза слезиться каждый раз, когда кто-то открывал расписание.

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

Так вот. Вы скажете — «Ну да, 1 год из 1.5, не так плохо». А вот и плохо, ведь это ВСЕ что у меня по плану есть за 4.5 года обучения. Нам, конечно, временами говорили, что еще все будет, но рассказы тех, кто был уже на 4 курсе говорили об обратном.

Да, 1.5 года должно хватать для обучения программированию на неплохом уровне, НО! только если эти 1.5 года большую часть времени учить прогать. А не по 2 часа в неделю.

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

Проблема_2


УЖАСНОЕ составление плана обучения.

Не знаю с чем это связано, с тем, что составляют план люди, которым лет 50-60 (не эйджизм, ребят, мало ли) или государство давит своими стандартами или еще что-то, но факт есть факт.
В России многие ВУЗы составляют потрясающе плохие планы обучения для программистов.
На мой взгляд это из-за того, что для руководящих людей программирование не особо изменилось за последние лет 20-30 и информатика и программирование у них — четкие синонимы.

Решение_2


Само собой, нужно составлять планы исходя из нынешних тенденций.

Нет смысла преподавать старые языки и полгода писать на Pascal. (Хоть я его и люблю первый язык все таки :)

Нет смысла давать задачи на бинарные операции (в большинстве случаев).

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

Совет_2


Заранее, слышите, ЗАРАНЕЕ найдите планы обучения и расписания интересующих вас направлений и изучите их. Чтобы не удивляться потом происходящему.

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

Часть_3. Далеко не все преподаватели — хорошие


Если вашему IT преподавателю больше 50-60 лет — скорее всего вы не получите нужных знаний



Примерно уже на первой паре меня напрягло, что нам преподает C (не ++, не #) женщина, которой 64 года. Это не эйджизм, я не говорю, что плох сам возраст. С ним проблем нет. Проблема в том, что программирование быстро развивается, а взрослые люди за ту зарплату, что им платят, ну со слишком большой вероятностью не будут разбираться в чем-то новом.
И в этом случае я не ошибся.

Истории про перфокарты были неплохи только первые 2 раза.

Преподавание строилось только с помощью доски и мела. (Да, она правда писала код на доске)
Да даже произношения отдельных слов из терминологии C было забавно слышать.
В общем, полезного было мало, но это заняло, опять же, заняло много времени.

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

Был случай, когда мои однокурсники попробовали сдать 3 одинаковых кода для решения задачи. Код прямо 1 в 1. Угадайте, сколько из них сдали?! Двое. Сдали двое. При чем завалили того, кто подошел вторым. Еще ему сказали, что он сделал ерунду, надо переделывать. Напомню, код 1 в 1 такой же был!

Был случай, когда она подошла проверить задачу. Начала скроллить код, говорить, что все не так. Потом отошла, надела очки, вернулась и зачла задачу. Что это было? Непонятно!

Проблема_3


Очень. Плохие. Преподы.

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

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

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

Решение_3


Решение очевидно — нам нужны нормальные зарплаты. Я могу понять, что в мелких ВУЗах могут это сделать только с трудом, но крупные могут запросто. К слову, ректор ННГУ до недавнего смещения получал 1,000,000 (1млн) рублей в МЕСЯЦ. Да этого хватило бы на целый маленький отдел с нормальными преподавателями с зарплатой в 100,000 рублей в месяц!

Совет_3


Как ученик вы, скорее всего, никак на это не повлияете.

Главный совет — изучайте все за пределами универа. Не ждите, что вас научат. Учитесь сами!
В конце концов некоторые вообще убрали поле «Образование», а из собственного опыта — меня не спрашивали про образование совсем. Про знания и навыки спрашивали. Про бумажки нет. Некоторые попросят, само собой, но далеко не все.

Часть_4. Реальная практика? Разве она нужна?


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



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

Тут я не говорю про все ВУЗы, но есть подозрение, что такая ситуация повсеместна. Но расскажу именно про ННГУ.

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

Проблема_4



Это проблема для всех. И для студентов и для ВУЗа и для работодателей.

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

Решение_4


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

Совет_4


Опять же совет — делайте все сами.

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

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


Буду рад критике моего подхода. Только грамотной критике :)

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

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

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

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

Третье — следует повысить зарплаты и нанять людей помоложе профессиональнее.

Тут есть минус — других преподавателей это возмутит. Но что поделать, мы же хотим продвигать IT, а в IT, очевидно, всегда много денег.

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

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

Пятое — придется уменьшить время обучения до 1-2х лет. Уверен, что именно период обучения программированию не стоит растягивать больше, чем на такой срок. Далее уже навыки нарабатываются на работе, а не в ВУЗе. Нет никакого смысла сидеть там 4-5 лет.

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

Концовка


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

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

И надеюсь вам понравилась эта статья.

Удачи :)

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

— Зачем тогда вообще образование, есть же курсы
А почему тогда мы не делаем курсы инженеров, медиков и других специалистов?
Потому что хотим быть уверены, что у нас есть специальные места, где могут хорошо обучить и выдать подтверждение того, что человек хорошо обучен.
И на каком курсе я могу получить такое подтверждение, которое будет котироваться хоть где-то в России? А в идеале и в других странах?

UPD_2.
А еще многие не совсем поняли, что я имел ввиду под «пересмотром необходимости вышмата».
Многие восприняли так, будто я говорю, что это все ненужная лабуда, которую 100% надо выкинуть насовсем из It-образования.
Может я неправильно расписал этот момент, может они неверно прочитали, это неважно.
Главное — что не нужно все полностью выкидывать, я не об этом.

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

UPD_3.
А еще прежде чем писать гневные комменты — прочитайте Эту статью

Комментарии (271)


  1. wsf
    15.08.2019 19:26
    +4

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


    1. AddRaiser Автор
      15.08.2019 20:24
      +1

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

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


      1. khim
        15.08.2019 21:53
        +2

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

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

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

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

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


        1. AddRaiser Автор
          15.08.2019 22:00
          +1

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

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

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


          1. 0xd34df00d
            16.08.2019 02:14

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


            1. AddRaiser Автор
              16.08.2019 02:22

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


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


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


              1. 0xd34df00d
                16.08.2019 02:31

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


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


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


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


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


          1. VolCh
            16.08.2019 06:19

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


        1. JekaMas
          16.08.2019 00:14

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


      1. wsf
        16.08.2019 02:33
        +1

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

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

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

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

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

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

        Кирпичики то все те же остались. Поэтому пока есть время — начинайте с основ, а имя_вашего_фреймворка_здесь всегда успеете изучить. Удачи.


        1. lubezniy
          16.08.2019 17:51

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


          1. wsf
            16.08.2019 18:19

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


            1. lubezniy
              16.08.2019 18:30

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


            1. VolCh
              17.08.2019 22:53

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


  1. 0x1000000
    15.08.2019 19:31
    +2

    «в универах учат учиться» — почему бы при этом чему-нибудь полезному не научить (как бонус)?


    1. AddRaiser Автор
      15.08.2019 20:25

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


  1. brrr
    15.08.2019 20:02

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


    1. Xambey
      16.08.2019 00:02
      +3

      Личинка джуна на старте за 120к в СПБ? image


      1. alnikor
        16.08.2019 10:56
        +2

        У него походу какой то свой питер :)))


        1. ne_kotin
          16.08.2019 11:13
          -1

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


          1. Whuthering
            16.08.2019 12:05
            +1

            не знаю как в вашем, а в моем 80-120 получают в среднем джава-миддлы (вилка как в зависимости от приличности компании).
            да и не только в моем, статистика мойкруга и беглый анализ hh.ru то же самое подтверждают.


            1. ne_kotin
              16.08.2019 12:41

              мидлы 140-180


              1. Whuthering
                16.08.2019 13:47

                Питер с Москвой точно не путаете?


                1. ne_kotin
                  16.08.2019 16:35

                  Нет.


            1. urtow
              16.08.2019 12:58

              Есть три вида лжи.

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


              1. ne_kotin
                16.08.2019 16:36

                * хорошо оплачиваемый сеньор )


                1. urtow
                  16.08.2019 17:55

                  **умеющий торговаться синиор


            1. VolCh
              17.08.2019 22:58

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


  1. urtow
    15.08.2019 20:05
    +8

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

    Я не НЛО, но давайте воздержимся.


    1. AddRaiser Автор
      15.08.2019 21:03
      +1

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


      1. urtow
        15.08.2019 22:28

        Так я сказал, в идеале.
        Что имеем на практике… Сноска про НЛО


    1. oldbie
      16.08.2019 00:47

      В идеале, ВУЗ учить решать проблемы, решения которых еще не придумано.

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


      1. urtow
        16.08.2019 11:14

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


        1. oldbie
          16.08.2019 12:39

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

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

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


          1. urtow
            16.08.2019 13:59

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

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

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

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


            1. 0xd34df00d
              16.08.2019 14:35

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

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


            1. elve
              16.08.2019 14:59

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

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

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

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


              1. AddRaiser Автор
                16.08.2019 15:04

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

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

                Это сейчас все поломалось и ничего не понять. Но говорить, что программист — это ПТУшник, как-то грубо.


                1. elve
                  16.08.2019 15:59

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

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


                  1. AddRaiser Автор
                    16.08.2019 16:02

                    В случае, если прямо совсем рабочая лошадка, то да, может и хватит ПТУ (и то не факт).

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


                1. VolCh
                  17.08.2019 23:02

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


    1. adictive_max
      16.08.2019 02:50

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


      1. ZaEzzz
        16.08.2019 08:04
        +1

        Ну не знаю. Я универ бросил на 6м курсе и у меня лишь иногда был подобный диалог:
        — А у вас ВО есть?
        — Нет.
        — Ну ладно.

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

        P.S. Да, ВО все таки крайне желательно иметь для миграции в другую страну.


        1. Andrey_Rogovsky
          16.08.2019 08:46

          Но в других странах ВО может не проканать.


          1. ZaEzzz
            16.08.2019 09:24

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


  1. os9
    15.08.2019 20:05

    У нас на 1 курсе (а было это аж в 1992 году) такая вот тетенька 50-60 лет сказала — кому курс кажется «фигней», приходите сдавайте экстерном, но пока еще никто не пришел.
    И потом 2 года эта тетенька клала нас на лопатки в написании алгоритмов.


    1. AddRaiser Автор
      15.08.2019 20:28
      +2

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

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


      1. os9
        15.08.2019 21:40

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


        1. AddRaiser Автор
          15.08.2019 22:02

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


  1. ramonn334
    15.08.2019 20:06
    +7

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


    1. AddRaiser Автор
      15.08.2019 20:33

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

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

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


      1. akryukov
        15.08.2019 21:03
        +3

        Но так ли это плохо?

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


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

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


        1. AddRaiser Автор
          15.08.2019 21:14

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

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


          1. akryukov
            15.08.2019 21:23
            +1

            сползают по уровню образования

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


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

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


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

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


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

            Зачем?


            1. AddRaiser Автор
              15.08.2019 21:55

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


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

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


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

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


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

              Зачем?


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


              1. akryukov
                15.08.2019 22:06
                +1

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

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


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

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


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

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


                1. AddRaiser Автор
                  15.08.2019 22:18

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

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

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


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


                  1. akryukov
                    15.08.2019 22:25

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

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


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


                    1. AddRaiser Автор
                      15.08.2019 22:34

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

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


                      1. khim
                        15.08.2019 22:41

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

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

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


                        1. AddRaiser Автор
                          15.08.2019 22:46

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

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

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


                          1. khim
                            15.08.2019 22:49

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

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


                      1. akryukov
                        15.08.2019 23:12

                        А почему тогда мы не делаем курсы инженеров, медиков и других специалистов?

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


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


                        1. AddRaiser Автор
                          15.08.2019 23:17

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


                          1. SergCG
                            16.08.2019 08:40

                            Да, но там везде и сказано, что массажистам и тренерам — на специальные курсы надо идти, а не в ВУЗ.

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

                            Буквально в 5 минутах ходьбы от ННГУ:
                            nntc.nnov.ru/obrazovanie
                            niu.ranepa.ru


                            1. AddRaiser Автор
                              16.08.2019 08:42

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

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


                      1. VolCh
                        16.08.2019 06:32

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


        1. divastator
          15.08.2019 21:47
          -1

          >исследовательская работа
          >выбирать из нескольких фрейморков
          спасибо вы сделали мой день


  1. homocomputeris
    15.08.2019 20:24
    +1

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


    1. AddRaiser Автор
      15.08.2019 20:37
      +1

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


      1. homocomputeris
        15.08.2019 22:58

        В моей универской группе лучший программист был как раз после ПТУ.


        1. AddRaiser Автор
          15.08.2019 23:18

          А кодить он научился в ПТУ или сам?
          А то в ПТУ можно и просто находиться, а вот получал ли он там знания?


          1. homocomputeris
            16.08.2019 01:34

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


            1. AddRaiser Автор
              16.08.2019 02:08

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


  1. stalkers
    15.08.2019 20:32
    +1

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

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

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


    1. AddRaiser Автор
      15.08.2019 20:36

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


  1. picul
    15.08.2019 20:40
    +5

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


    1. AddRaiser Автор
      15.08.2019 20:48

      Первое — я прекрасно понимаю, что информатика != программирование.

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

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

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

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

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


      1. picul
        15.08.2019 21:04
        +3

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

        Ну и вообще не эйджизм если что, но мне кажется, что со временем Ваше отношение к ВО слегка поменяется.


        1. AddRaiser Автор
          15.08.2019 21:08

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

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

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

          Про отношение к ВО возможно, но сейчас упадок ВО не заметить сложно, с этим стоит что-то делать. Я ценю ВО, но просто не совсем такое :)


          1. picul
            15.08.2019 23:43

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


            1. AddRaiser Автор
              15.08.2019 23:55

              1) Я и не говорю вообще все перепробовать, но определиться примерно уж точно можно. Особенно, если грамотно время тратить.


          1. 0xd34df00d
            16.08.2019 02:44

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


      1. akryukov
        15.08.2019 21:11

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

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


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

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


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

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


        1. AddRaiser Автор
          15.08.2019 21:19

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


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

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


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

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


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


          1. akryukov
            15.08.2019 21:31

            А вы пробовали? Я да.

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


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

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


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

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


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

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


            1. AddRaiser Автор
              15.08.2019 21:40

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


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

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


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

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


              Пока я чертовски здоров. Одновременно чертовски рад и в то же время в армию неохота.


            1. 0xd34df00d
              16.08.2019 03:06

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

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


              1. Zenitchik
                16.08.2019 12:15

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

                За год? Ой вряд ли.


  1. ni-co
    15.08.2019 20:43
    +3

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


    1. AddRaiser Автор
      15.08.2019 20:50
      -1

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


      1. ni-co
        15.08.2019 21:52
        +2

        В начале двухтысячных собирал «на коленках» компьютеры. С каждого имел полторы сотни долларов. И тоже думал, что это надолго. :)


        1. AddRaiser Автор
          15.08.2019 22:06

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


  1. da-nie
    15.08.2019 20:49

    Примерно уже на первой паре меня напрягло, что нам преподает C


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

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


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


    1. AddRaiser Автор
      15.08.2019 20:56
      +1

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

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

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

      Бернард Шоу, конечно, хорош, но не смотря на то, что время идет так же, способы его считать улучшаются. Эдак можно было бы и на ассемблере прогать, только это не годится :D


      1. khim
        15.08.2019 22:14

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

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


      1. da-nie
        15.08.2019 22:19

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


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


    1. 0xd34df00d
      16.08.2019 03:09

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


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


      1. da-nie
        16.08.2019 16:16

        А я так и не понял, для чего все эти навороты.

        непосредственные функции с использованием нового зарезервированного слова consteva


        Что это?

        constexpr union


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

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


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

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


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

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


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

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


        1. 0xd34df00d
          16.08.2019 17:54

          Что это?

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


          Почему бы компилятору всё 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, чтобы не передавать её в конструкторе. Тоже бывает полезно.


          1. da-nie
            16.08.2019 18:48

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


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

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


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

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


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

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


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


            1. 0xd34df00d
              16.08.2019 20:23

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

              Это вопрос семантики, а не оптимизации. Если у вас есть функция 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;
              }

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


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

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


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


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

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


              1. da-nie
                16.08.2019 20:43

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


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

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


                Чемоданчик Вирта сдох от зависти. :) И много вы пишете сравнений такого вида? ;)


                1. 0xd34df00d
                  16.08.2019 20:53

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

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


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


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

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


                  1. da-nie
                    16.08.2019 21:01

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


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

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


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


                    1. 0xd34df00d
                      16.08.2019 21:20

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

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


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

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


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


                      Да мало ли.


                      1. da-nie
                        16.08.2019 21:34

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


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

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


                        А, понятно.


                        1. 0xd34df00d
                          17.08.2019 02:11

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

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


                          А, понятно.

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


                          1. da-nie
                            17.08.2019 09:44

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


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

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


                            1. 0xd34df00d
                              17.08.2019 16:40

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

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


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

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


                              1. khim
                                17.08.2019 17:25

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

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


                                1. da-nie
                                  17.08.2019 17:32

                                  Именно так. :)


                                1. 0xd34df00d
                                  17.08.2019 20:40

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


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

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


                                  1. da-nie
                                    17.08.2019 21:11

                                    Проблема в том, что я хочу делать вот так:
                                    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 не дал.


                                    1. 0xd34df00d
                                      17.08.2019 21:15

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


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


                                          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 {};
                                             ^


                                      1. da-nie
                                        17.08.2019 21:21

                                        Оператор с классом не дружит, вот в чём дело!


                                        1. 0xd34df00d
                                          17.08.2019 21:27

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


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


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


                                          1. da-nie
                                            17.08.2019 21:34

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

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


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


                                            Вот именно так и не компилировалось. В VS2010 компилировалось. А как перенёс под Linux, то был послан компилятором.


                                            1. 0xd34df00d
                                              17.08.2019 21:36

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

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


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

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


                                              1. da-nie
                                                17.08.2019 21:51

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


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

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


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


                                                1. 0xd34df00d
                                                  17.08.2019 22:19

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

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


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

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


                                                  1. da-nie
                                                    17.08.2019 22:30

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


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

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


                                                    Попробую восстановить класс на шаблонах.


                                                    1. 0xd34df00d
                                                      18.08.2019 00:01

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

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


                                                      1. da-nie
                                                        18.08.2019 10:03

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

                                                        То есть, требуется предварительное объявление (у вас его нет). Ещё требуется для оператора-друга указать в классе шаблон класса после операции * как <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)
                                                        {
                                                        ...
                                                        }
                                                        


                                                        Так компилируется и работает.


                                                        1. da-nie
                                                          18.08.2019 11:25

                                                          Опечатался.
                                                          Должно быть так:

                                                          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);//оператор "*"


                                                        1. 0xd34df00d
                                                          18.08.2019 16:37

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


                                                          1. da-nie
                                                            18.08.2019 16:44

                                                            А без него придётся каждую функцию внутри класса делать с template.


                                                            1. 0xd34df00d
                                                              18.08.2019 20:33

                                                              Не понял, зачем?


                                                              1. da-nie
                                                                18.08.2019 20:45

                                                                Потому что без предварительного объявления не компилируется:

                                                                'friend' not permitted on data declarations


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

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


                                                                1. 0xd34df00d
                                                                  18.08.2019 20:46

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


                                                                  1. da-nie
                                                                    18.08.2019 21:45

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

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

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

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

                                                                    В общем, я уже сам запутался, что и как надо делать.


                                                                    1. khim
                                                                      19.08.2019 13:37

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

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

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

                                                                      Но этот же кусок в 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.


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


                                          1. khim
                                            19.08.2019 13:50

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

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

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

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

                                            А что-нибудь подобное — это уже кража со взломом, фактически…


                              1. da-nie
                                17.08.2019 17:35

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


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


                                1. 0xd34df00d
                                  17.08.2019 20:40

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


                                  1. da-nie
                                    17.08.2019 21:12

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


                                    1. 0xd34df00d
                                      17.08.2019 21:18

                                      Если на каждый чих делать по сущности, то скоро их будут десятки и сотни. Их надо будет помнить.

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


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

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


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


                                      1. da-nie
                                        17.08.2019 21:28

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


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

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


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


                                        1. 0xd34df00d
                                          17.08.2019 21:30

                                          О, хорошо, что API напомнили! Вот есть у нас Win32API, где буквально всё сделано своими собственными типами.

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


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

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


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

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


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

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


                                          1. da-nie
                                            17.08.2019 21:52

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


                                            Суть в том, что они всё равно требовали помнить, что это такое.


                                            1. khim
                                              18.08.2019 17:38

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

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


                                              1. da-nie
                                                18.08.2019 20:49

                                                Если бы вы, как многие, поработали с языками, где это место сделано «по уму»


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

                                                В любом случае, любая сущность требует её держать в голове. В этом их минус. А так удобно, да.


            1. khim
              16.08.2019 20:36
              +1

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

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

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

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


              1. da-nie
                16.08.2019 20:51

                Для того, чтобы они не влияли нужно


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

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


                Возможно, это в узкоспецифической области.


                1. khim
                  16.08.2019 21:05

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

                  Кодеки, впрочем, и сейчас примерно так пишут. Благо там кода мало. А вот уже что-то более объёмное — времени нет на «конкретную лучшую реализацию», увы.


          1. khim
            16.08.2019 20:28

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

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


            1. 0xd34df00d
              16.08.2019 20:35

              проблема в том, что в constexpr нельзя использовать memcpy

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


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

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


              1. khim
                16.08.2019 20:40

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

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

                И как думаете, какой тип у bar и почему туда компилятор ноль положил?
                Указатель, а ноль — потому что оно в BSS должно идти, раз неинициализировано.


                1. 0xd34df00d
                  16.08.2019 20:55

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

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


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

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


                  1. khim
                    16.08.2019 21:13

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

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


                    1. 0xd34df00d
                      16.08.2019 21:17

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


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


                      1. khim
                        16.08.2019 21:26

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


                        1. 0xd34df00d
                          17.08.2019 02:11

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


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


                          1. khim
                            17.08.2019 17:20

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

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

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


                            1. 0xd34df00d
                              17.08.2019 20:41

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


  1. Nadish
    15.08.2019 20:57
    +1

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


    1. AddRaiser Автор
      15.08.2019 21:00

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


      1. khim
        15.08.2019 22:17

        Вот только я не уверен, что работодателей волнует, какая там у вас бумага есть.
        Работодателей не волнует, а вот вас — очень даже может. В ту же Германию вышеупомянутую, имея диплом, вы спокойно по «голубой карте» поедете, а без образования… Тоже можно, конечно, но процесс будет куда как сложнее и запутаннее…


        1. AddRaiser Автор
          15.08.2019 22:26

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


      1. Nadish
        16.08.2019 08:05

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


  1. Griboks
    15.08.2019 21:06
    +2

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

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

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


    1. AddRaiser Автор
      15.08.2019 21:24

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


      1. akryukov
        15.08.2019 21:32
        +1

        В каких, интересно, справились?


        1. AddRaiser Автор
          15.08.2019 21:42
          +1

          В тех, кто в ТОПе

          Россия, к слову, 136


          1. khim
            15.08.2019 22:19

            И много вы ИТ-компаний знаете из Дании или Новой Зеландии?

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


            1. AddRaiser Автор
              15.08.2019 22:24
              +2

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

              И вы еще скажите, что Сингапур, Германия и Великобритания не имеют отношения к продвижению ИТ


              1. khim
                16.08.2019 17:09

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


                1. AddRaiser Автор
                  16.08.2019 17:21

                  Китайские специалисты не слишком хороши, пока еще.

                  И я бы не стал говорить, что те 3 страны «гораздо меньше» делают, чем Корея и Китай


                  1. khim
                    16.08.2019 20:44

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

                    Ну, может быть, Raspberry PI… и то смотря как смотреть и считать…


  1. raydac
    15.08.2019 21:23
    +1

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


    1. AddRaiser Автор
      15.08.2019 21:27

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

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


      1. raydac
        15.08.2019 21:31
        +1

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


        1. AddRaiser Автор
          15.08.2019 21:33
          +1

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


          1. raydac
            15.08.2019 21:41

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


            1. AddRaiser Автор
              15.08.2019 21:44

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

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


            1. ne_kotin
              15.08.2019 21:46
              +1

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


          1. khim
            15.08.2019 22:34
            +1

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

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


            1. AddRaiser Автор
              15.08.2019 22:38

              это вот совсем не то, что в ВУЗе должны рассказывать


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


              1. khim
                15.08.2019 22:44

                Почему же нет?
                Потому что к науке это всё отношения не имеет.

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


        1. 0xd34df00d
          16.08.2019 03:14

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


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


          1. Zenitchik
            16.08.2019 12:24

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

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


            1. 0xd34df00d
              16.08.2019 15:04

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

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


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

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


              1. ne_kotin
                16.08.2019 16:41

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

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


                1. 0xd34df00d
                  16.08.2019 17:56

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


              1. VolCh
                17.08.2019 23:08

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


          1. raydac
            17.08.2019 10:12

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


  1. ne_kotin
    15.08.2019 21:43
    +2

    Решение очевидно — нам нужны нормальные зарплаты.

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


    1. AddRaiser Автор
      15.08.2019 21:46

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

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


  1. Zenitchik
    15.08.2019 22:11
    +3

    если они хотят стать сисадминами и верстальщиками.

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

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

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

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

    Во-о-о! И я о том же! Техникум!


    1. AddRaiser Автор
      15.08.2019 22:43
      +1

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


      1. khim
        15.08.2019 22:46

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


        1. AddRaiser Автор
          15.08.2019 22:50

          В целом да, именно так.
          Умные люди идут в ВУЗ, не понимая, что к чему (см. Проблема_1).
          Те, кто поглупее, дискредитируют ПТУ.
          Потому и говорю — нужно бы что-то между ПТУ и ВУЗом.

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


          1. khim
            15.08.2019 23:08

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

            Но в России в 90е почти все они «перекрасились» в университеты и теперь делают вид, что наукой занимаются.


            1. AddRaiser Автор
              15.08.2019 23:20

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


            1. Zenitchik
              15.08.2019 23:24

              Дело в том, что в СССР институты и даже некоторые училища были по факту университетами. А «перекрасились» — чтобы за рубежом МАИ «ракетным колледжем» перестали обзывать.

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


              1. khim
                15.08.2019 23:32

                Дело в том, что в СССР институты и даже некоторые училища были по факту университетами.
                Бауманка, в частности.

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


                1. AddRaiser Автор
                  15.08.2019 23:54

                  Именно, а потому правильного ответа на вопрос «Куда же идти будущему программисту?» толком нет.


                1. ne_kotin
                  16.08.2019 09:14
                  +1

                  Бауманка, в частности.

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


                  1. khim
                    16.08.2019 16:58

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

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


                    1. ne_kotin
                      16.08.2019 17:06
                      +1

                      Вы не поверите

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


                      1. khim
                        16.08.2019 17:11

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


                        1. da-nie
                          16.08.2019 17:24

                          Если специальность связана с электроникой — должны.

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

                          Напомню, что это кафедра наноэлектроники. Прикольно, да.


                          1. khim
                            16.08.2019 20:47

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

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


                            1. AddRaiser Автор
                              16.08.2019 20:57

                              Черт, побери, khim, ты читаешь текст, а видишь лишь то, что нужно тебе.

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

                              Что видишь ты — «Он сказал все убрать»


                              1. khim
                                16.08.2019 21:21

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

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

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

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

                                В эпоху «конца закона Мура» может оказаться, что лет через 10 — и совсем устраивать перестанет.


                                1. AddRaiser Автор
                                  16.08.2019 21:27

                                  Ага, а как же буквально (!) следующая строка

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


                                  Это мы игнорируем, конечно, я понял.


                                  1. khim
                                    16.08.2019 23:05

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

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

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

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

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

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


                                    1. AddRaiser Автор
                                      16.08.2019 23:12

                                      Возможно, нам преподавали разные объемы высшей математики.

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


                                1. VolCh
                                  17.08.2019 23:11

                                  Как вы собираетесь без матанализа оценивать сложность ваших алгоритмов?

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


                                  1. 0xd34df00d
                                    18.08.2019 00:01

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


                                    1. VolCh
                                      18.08.2019 00:02

                                      Ключевое слово "иногда" :)


                                    1. khim
                                      18.08.2019 17:49

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

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

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


                                      1. 0xd34df00d
                                        18.08.2019 20:35
                                        +1

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


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


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


                                  1. khim
                                    18.08.2019 17:44

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

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

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


                          1. VolCh
                            17.08.2019 23:33

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


                            1. da-nie
                              18.08.2019 09:35

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


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

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


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

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


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

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


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

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


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


                              1. VolCh
                                18.08.2019 09:54

                                Там ещё учили вообще в ЛЭТИ?

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


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

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


                                И не должны.

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


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

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


                        1. ne_kotin
                          16.08.2019 17:31

                          Ну, для бауманцев это вроде как профильное умение, не?


                          1. khim
                            16.08.2019 20:48

                            Там тоже разные кафедры есть. Но да, если в специальности речь про электронику — должны бы уметь…


  1. kinall
    15.08.2019 22:51

    «Кто виноват», «что делать» и «зачем мне матан» — вечные вопросы =)


  1. pyrk2142
    15.08.2019 23:09

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

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

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


    1. AddRaiser Автор
      15.08.2019 23:30

      Не знаю насколько все весело в ИТМО, надо будет почитать про это, давно об этих ребятах не слышал.

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

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

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


      1. elve
        16.08.2019 08:35

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


        1. AddRaiser Автор
          16.08.2019 08:48

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

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


          1. elve
            16.08.2019 09:50

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


            1. AddRaiser Автор
              16.08.2019 10:01

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


              1. elve
                16.08.2019 16:38

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


                1. AddRaiser Автор
                  16.08.2019 17:01

                  Мои профильные — это еще поток высшей математики.
                  Я не стал ждать, пока это свалится на меня, просто поспрашивал старшекурсников


    1. 0xd34df00d
      16.08.2019 03:18

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

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


  1. HSerg
    15.08.2019 23:38

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

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


  1. gohrytt
    16.08.2019 00:00

    К названию имеет смысл добавить "… или любым высшим образованием в России."


  1. BHYCHIK
    16.08.2019 00:47

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


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


  1. avengerweb
    16.08.2019 01:01

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

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

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

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

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

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

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

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


    1. VolCh
      16.08.2019 06:47

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


    1. elve
      16.08.2019 09:22
      +1

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


      1. avengerweb
        17.08.2019 09:20

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


        1. elve
          17.08.2019 23:22

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

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


          1. avengerweb
            18.08.2019 02:34

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


            1. elve
              18.08.2019 12:37

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

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

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


              1. akryukov
                18.08.2019 14:40

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

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


              1. 0xd34df00d
                18.08.2019 20:37

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

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


                1. elve
                  18.08.2019 21:18

                  У меня нет опыта обучения в США =). Не знаю как там все устроено. Поэтому воздержусь от оценки.


    1. WinLin2
      16.08.2019 13:31

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

      Нет сейчас всеобщего среднего образования (не в Маскве).


      1. Kyoki
        16.08.2019 16:02

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


        1. WinLin2
          16.08.2019 17:29

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


      1. avengerweb
        17.08.2019 09:23

        я закончил школу 5 лет назад, тогда эта тенденция прогрессировала (город 30к человек), сомневаюсь что сейчас иначе.


  1. asmolenskiy
    16.08.2019 11:53

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

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


    1. AddRaiser Автор
      16.08.2019 12:48

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

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

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


      1. asmolenskiy
        16.08.2019 12:54

        Широкий кругозор это отлично, только почему это следствие именно ВУЗа?

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


        1. AddRaiser Автор
          16.08.2019 12:57

          Вопрос еще, что следует считать «базовым уровнем»?
          Для кого-то и переход к базису ортонормированных векторов будет далеко не базовой вещью.
          А, например, производные и интегралы я еще в 10-11 классе проходил.
          И где же именно этот базовый уровень? :)


          1. asmolenskiy
            16.08.2019 13:02

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


            1. AddRaiser Автор
              16.08.2019 13:15

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

              Но да, без алгоритмов — это ПТУ, где человек просто клацает по клавишам.
              Это не то, что нам нужно


              1. asmolenskiy
                16.08.2019 17:52

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


                1. khim
                  16.08.2019 20:57

                  То есть все что ниже машинных инструкций для него уже черная магия.
                  А речь о современном процессоре идёт или о каком-нибудь 6502?

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

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

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

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


            1. ne_kotin
              16.08.2019 16:48

              В моей — это содержимое книжки Хоровиц Хилл

              Вы хотели сказать «трёхтомника П. Хоровиц, У. Хилл „Искусство схемотехники“»? :)


              1. asmolenskiy
                16.08.2019 17:25

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


  1. CH4
    16.08.2019 12:38

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


  1. CH4
    16.08.2019 13:03

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

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

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

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

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

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

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

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


    1. AddRaiser Автор
      16.08.2019 13:34
      +1

      Как обычно, ответ тоже по пунктам :)

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

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

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

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

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

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

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


      1. CH4
        16.08.2019 14:07

        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 и прочее))) И тут уже сразу осознаешь как работать в команде, как руководить и прочее…

        Это ИМХО)


        1. AddRaiser Автор
          16.08.2019 14:18

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

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

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

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

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

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

          В общем неплохо у вас там все, нужно будет поизучать :)


      1. asmolenskiy
        16.08.2019 18:01

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

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


        1. AddRaiser Автор
          16.08.2019 18:12

          В таком случае вырисовывается картина, где выпускниками ВУЗов будут руководить ПТУшники, потому что им и «бэкграунд не жмет» и в вопросе они далеко не эксперты.


          1. asmolenskiy
            16.08.2019 18:25

            где выпускниками ВУЗов будут руководить ПТУшники

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


          1. urtow
            16.08.2019 18:55

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


            1. AddRaiser Автор
              16.08.2019 19:09

              Надеюсь, успешно)

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


  1. Whuthering
    16.08.2019 14:43

    Я начал писать комментарий, но он в итоге вышел настолько большим, что получилась целая статья:
    habr.com/ru/post/463941


  1. Tiendil
    17.08.2019 12:41

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

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

    Сам себе злобный буратино.


    1. ne_kotin
      17.08.2019 13:02
      -1

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

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


      1. Tiendil
        17.08.2019 13:08

        Как вы себе представляете это — в 14 лет понять чем хочешь заниматься всю оставшуюся жизнь?

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

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

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


  1. annaSok
    17.08.2019 18:38
    +1

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