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

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

Колледж то огласите, чего уж таить.

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

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

Мне не так давно приходило приглашение, кажется от Mail.ru, вести некие курсы по веб-программированию. Как я понял, они подбирают кандидатов просто «по гуглу» (т.к. особых достижений на гитхабе, например, у меня нет). Т.е. они приглашают хоть сколько-то реальных «практиков». Если на следующем этапе их как-то отсеивают (я отказался, поэтому не знаю что там), то вполне себе неплохие преподаватели.

Друой вопрос, а будут ли они чему-то учить своих студентов. Ведь оно им самим во вред.
По скайпу вести курсы?
НЛО прилетело и опубликовало эту надпись здесь
Название озвучите? Чисто интереса ради

Это не столь важно ибо эта статья применима к любому СПО в провинции. В одном таком отучился и я совсем недавно (закончил в 2016). В 2х других учились мой одноклассник и хороший знакомый и ситуация там была абсолютно аналогична приведенной в статье (в том учебном заведении что окончил я чуть лучше, но отличия не принципиальны).

Но мне допустим ситуация стала ясна к концу 2 курса и я вовремя пошел по пути курсов/самообучения. Сейчас работаю Andoid разработчиком, к слову теме мобильных платформ была посвящена 1 лекция на 3 курсе кажется.

Из плюсов СПО в России я могу отметить только обилие свободного времени для самообучения, а навыки самообучения на мой взгляд очень и очень полезны для любого IT специалиста. А вот курсы хороши только для старта и в отсутствие самообучения бесполезны имхо.
Не знаю что у парня, но в колледже при КФУ было так.
НЛО прилетело и опубликовало эту надпись здесь
Спасение утопающих — дело рук самих утопающих.

Но вообще да, эта «проблема» есть, была и похоже будет. Но это глобальное, касается массового обучения везде.
Тут не только в образовании дело, но и в человеке. У меня 90% одногруппников сидели и весь институт ждали пока их чему-нибудь научат (правда в их ожиданиях это было так: им показывают — они повторяют). Показали им как на Си объявить структуру данных, которая описывает спортсменов, например, и записать спортсменов в массив. Затем их просят сделать то же самое, но с актерами, и тут начинается: «Да как же так?! Нам же только про спортсменов объясняли, а про актеров нет». И вот всё им было сложно по институту, и линуксы, и СУБД, отличные от MS SQL (потому что препод только её показывал). И кстати стоит ли говорить, что в большинстве своем одногруппники мои были дотерами, каэсерами и прочими геймерами.
Конечно, мне попадались и пятидесятилетние тетки, которые могли только в Word и Excel. Но если тебе действительно интересно, многие преподы готовы уделить тебе время, дать доп.задания и скинуть материал для их выполнения.
Естественно, я не говорю что в универе вас научат самым модным фишкам в ИТ-индустрии, но основы для самостоятельного изучения дадут, если сами того захотите.
У меня 90% одногруппников сидели и весь институт ждали пока их чему-нибудь научат (правда в их ожиданиях это было так: им показывают — они повторяют). Показали им как на Си объявить структуру данных, которая описывает спортсменов, например, и записать спортсменов в массив. Затем их просят сделать то же самое, но с актерами, и тут начинается: «Да как же так?! Нам же только про спортсменов объясняли, а про актеров нет».

В моём колледже, такие ученики получают оценки отлично. Учитель показывает выполнение задания, они конспектируют в тетрадь, а на практике без своей тетради ничего не могут. Мы, с моим другом, поступаем противоположно. Мы не записываем «Как объявить переменные в Visual Basic» в тетрадь. А сразу переходим к практике и выполняем ее, но из-за того что у нас нет конспектов, нам ставят оценку 2. Справедливо?

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

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

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

Согласен, возможно в университете будут дополнительные факультативы и прочее, у меня совсем другая ситуация, если преподаватель видит, что студент способный, он максимум пригласит его поучаствовать в конкурсе.
В моём колледже, такие ученики получают оценки отлично. Учитель показывает выполнение задания, они конспектируют в тетрадь, а на практике без своей тетради ничего не могут. Мы, с моим другом, поступаем противоположно. Мы не записываем «Как объявить переменные в Visual Basic» в тетрадь. А сразу переходим к практике и выполняем ее, но из-за того что у нас нет конспектов, нам ставят оценку 2. Справедливо?

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

Я не про то, что геймерство — зло. Я про то, что со мной учились люди, которые в свободное время играли, приходили в институт и только и дело что говорили об играх, и ждали когда же кончатся пары, чтобы поиграть. Обычная школота, которая, была бы возможность, пошла бы в 12 и 13 класс…
Вам важны оценки или знания?
Знания важны для самого себя. Но оценки тоже важны… для хорошего аттестата / диплома. Увы, но многие HR смотрят на «корочки».
Если честно, у меня ни разу при устройстве на работу не спросили вкладыш к диплому с оценками. Только сам диплом и факт того, что он есть.
У меня диплом с вкладышем много раз спрашивали. Но всегда уже после того, как со мной был подписан трудовой договор…
Спрашивали кадровики, чтобы отсканировать и похоронить в папке личного дела?
В компаниях, где я работал, при подаче заявок на участие в тендере часто прикрепляли сертификаты компании, сертификаты и дипломы сотрудников. Большей частью это делается, чтобы напустить пыли в глаза, но тем не менее, какая-то польза от дипломов есть.
Я обычно сразу копию приносил (потому что оригинал лежит где-то далеко и искать его лень).
Ни разу в жизни не помню, чтобы у меня или у кого-илбо из знакомых на какой-либо работе спрашивали именно вкладыш с оценками.

Школьный аттестат могли спросить при поступлении в институт, но вкладыш самого института? Разве что цвет самого диплома, и все.
В основном IT-работодателей интересует опыт и практические навыки, знание определенных платформ, паттернов и пр.
У меня 2 красных диплома)) даже не смотрят :)
(кроме кадровиков гос.учреждений)
Вкладыш-то ладно, а вот диплом, бывает, пригождается. Например, для получения рабочей визы во многие страны.
Валите уже оттуда. Сколько лет своей жизни вы потратили на то, чтобы выяснить, что учитесь в, кхм, помойке? А сколько часов на анализ альтернативных вариантов?
стоит ли говорить, что в большинстве своем одногруппники мои были дотерами, каэсерами и прочими геймерами

Но но!
За такое тут могут и по айпи вычислить

Уточнил выше, что я имел в виду.
Хотя бы MS SQL :)

Нам показывали FoxPro ооочень стародревней версии. Мало того, что я его в реальной жизни никогда не встречал (я веб-программист), так и 99% того, что рассказывали — лютый фарш несовместимых слов.
НЛО прилетело и опубликовало эту надпись здесь
Вам повезло с преподом.

Препод который вел у нас базы, вела же и C++.

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

Сидим за компами, но сдаем на бумаге А4 (внезапно).
Я сделал «по своему» — работает и ладно, какая разница какая реализация. К тому же моя была явно «круче». Но нет, препод решила, что все неверно, а идти к компу и запускать прогу отказалась. Оценку снизила.

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

А что можно сделать «круче» в простом алгоритме? Может всё-таки ваше решение работало неправильно?) Хотя конечно «программирование» на листиках в любом случае показывает уровень учебного заведения.
Ну скажем так, можно искать максимальное число в цикле, а можно использовать Math.max(); (JavaScript, не работаю сейчас с С++). Я выбрал второе.

Все работало :) Там есть тестовые входные/выходные данные. Кхм. Тоже на листочке.

Понимаете, мы в той аудитории ддосили компы однокурсников с помощью само-размножающегося bat с пингом по IP до состояния полной нерабочести :) Забивался с одно компа почти всегда. А если несколько человек…
В ИТ-колледже, напомню.
НЛО прилетело и опубликовало эту надпись здесь
Я прекрасно понимаю как оно реализовано. И она прекрасно понимала, что я понимаю :)

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

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

А мы и не слушали, тупо прогуливали эту пару, благо препод настолько был уверен что мы идиоты что на зачете все успевали написать работу и за себя, и за отсутствующего товарища. А по поводу пойти в деканат/на кафедру — был у нас такой случай с параллельной группой, они сходили. По итогам препод остался тем же и сильно обиделся, ребята только проблем от этого огребли
НЛО прилетело и опубликовало эту надпись здесь
Я как бы не зря написал что такие индивидуумы были в основном по непрофильным предметам (правда, автокомплит поменял это слово на неправильные), оно того стоит тратить нервы и время речь идет про односеместровый курс какой-нибудь социологии-правоведения, при том что учился я на инженера, а большинство преподов на таких кафедрах все равно так себе ибо ВУЗ-то технический, а часть преподов работали в нем еще со времен кафедры марскизма-ленинизма (не преувеличение, были случаи аппеляции к собранию сочинений Ленина по совершенно сторонним вопросам)?
По профильным дисциплинам все было гораздо лучше и, как я потом понял увидев билеты к госам, даже лучше чем должно было быть по программе ибо в ней в 2008 году все еще отсутствовала цифровая техника как класс (реально, конечно, про нее рассказывали). Не могу сказать что все было вообще супер, но я это понял только постфактум, а студенту сравнивать особо не с чем было. В любом случае то что тогда давали иногда таки пригождается, а я ведь даже не на программиста учился коим сейчас работаю
Ну скажем так, можно искать максимальное число в цикле, а можно использовать Math.max(); (JavaScript, не работаю сейчас с С++). Я выбрал второе.

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

Я его точно не помню, поэтому такая неразбериха :)
«На листиках» — это отлично. Чтобы написать на бумаге с первого раза — надо хорошо продумать весь алгоритм в голове. И это умение потом пригодится в жизни. В IDE не так важно, знаешь ли ты язык досконально. Компилятор ошибки подскажет. Чуть больше времени — и все, программа на 60 строк отлажена.

Чтобы отличить на короткой программе 3 от 5 при использовании IDE -надо смотреть время. А большое время бывает не только тогда, когда человек слабо знает язык. А ещё и тогда, когда у него низкий темп нервной деятельности.

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

P.S. Если хоть раз поработаете с набивкой программы на перфоленте — оцените, почему нужно учить писать на бумаге. Явно удобнее представить весь код в голове, чем переклеивать перфоленту после прогона. Хотя больше 60 строк — приходилось и читать перфоленту и клеить.
НЛО прилетело и опубликовало эту надпись здесь
При работе с IDE часто пишут нелинейно. Сначала алгоритм — потом описание используемых в нем переменных. Умение представить целиком алгоритм в голове до его написания IDE не порождает.

P.S. Последняя неудобочитаемая фраза — как раз результат нелинейного написания.
Простите, заказчику программу тоже на листиках сдавать нужно?
Нет конечно знать «на зубок» свой язык, прям до каждой буковки — круто, но зачем?
Военному заказчику — да, распечаткой.Слышал лишь про один случай, когда заказчик услышав, что для перевозки распечатки нужны два грузовика, согласился на CD. Но у CD срок хранения — лет 20, не больше. Многие системы живут дольше.

Язык нужно знать, и чтобы делать меньше ошибок, и чтобы увидеть уже допущенные ошибки. Известная история, как точка вместо запятой в программе привела к сбою миссии на Марс. Увы, компилятор видит не все ошибки.
НЛО прилетело и опубликовало эту надпись здесь
С одной стороны я с вами соглашусь: знать язык без подсказок надо и полезно. Помню, пришлось без интернета и нормальной IDE что-то набирать — это был ад перебора названий функций и методов по буквам :)

И в то же время, сейчас у меня есть интернет и IDE 99.9% времени. Зачем мне держать в голове весь этот набор информации? Я лучше буду держать в голове структуру проекта, а остальное за меня сделает автоматика.
Помню, пришлось без интернета и нормальной IDE что-то набирать — это был ад перебора названий функций и методов по буквам :)

Скачай документацию, крайне полезная штука :)
Знал бы где упасть — соломку бы постелил. Знал бы, что придется доделывать на испытаниях — сделал бы на рабочем месте.
Вот ради 0.1% и надо. Потому что этот 0.1% — в чистом поле на испытаниях. Где или система заработала — или нет. Или ты испытания сдал и фирма получила прибыль — или не сдал, а дальше все, что угодно: от отсутствия новых договоров до выплаты неустойки за проваленные сроки.

А что толку в чистом поле на испытаниях с умения писать код на листочке? Или вы сразу в машинных кодах пишите? :-)


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


Этот 0.1% когда ты работаешь но IDE недоступна — это скорее какие-нибудь совещания-митинги.

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

Ну давайте на привычном вам примере поясню? Ибо реально специфика. Вы как на андроиде проблемы решать будете? С ноута новую прошивку заливать или XTERM прямо на нем запустите? Какой способ быстрее? gcc на и на самом андроиде есть.

Полный путь с IDE на windows и кросс-компиляцией на linux — нормален в гостинице. В чистом поле для скорости удобней иначе.

В чистом поле на испытаниях у тебя либо есть с собой ноутбук — тогда на нем есть и IDE

Будете удивлены. Наш embedчик — linux old-school. Он вообще IDE не использует. Зачем оно? Компилируется у него и так с первого раза, работает — в 80% тоже с первого раза. Зато модульность и читаемость на высоте.
Ну давайте на привычном вам примере поясню? Ибо реально специфика. Вы как на андроиде проблемы решать будете? С ноута новую прошивку заливать или XTERM прямо на нем запустите? Какой способ быстрее? gcc на и на самом андроиде есть.

По умолчанию на андроиде никакого XTERM нету, его надо отдельно ставить. То есть это в той же мере подстеленная соломка что и ноут с IDE


Будете удивлены. Наш embedчик — linux old-school. Он вообще IDE не использует.

Его право, но зачем отбирать удобные инструменты у других?

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

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

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

А от 100-200 строк — конечно, удобнее c IDE. Речь-то ша о примерах в 20-50 строк.

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

я писал на HTML, JS,PHP. Более того, исправлял чужие баги. В итоге проект — работает. Но на листочке — не напишу, ибо синтаксис — не помню. Нужен ли кому-нибудь такой веб-разработчик? Или такой веб-кодер?

Знания языка, как и умение написать корова без буквы а, как и умение считать до 100 — это базовые навыки.

Разработчик на С++, не помнящий нужно ли писать точку с запятой перед else, не нужен не только нам — он никому не нужен.

P.S. Оценка знаний имелась ввиду во время обучения. Как-то не было у нас кандидатов в сотрудники, которые надо было тестировать на таком детском уровне.

А ваши сотрудники не знают синтаксис языка на котором пишут????
я писал на HTML, JS,PHP. Более того, исправлял чужие баги. В итоге проект — работает. Но на листочке — не напишу, ибо синтаксис — не помню. Нужен ли кому-нибудь такой веб-разработчик? Или такой веб-кодер?

Нужен.


А ваши сотрудники не знают синтаксис языка на котором пишут????

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


А еще я с универа не держал в руках авторучку, руки от нее отвыкли.

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

Остальное — вещи, которые действительно удобнее делать в IDE. Но писать программы в 20-50 строчек можно и без них.

P.S. Письменный почерк тоже атрофировался, обычно соглашаются, что я заполняю печатными буквами.
Знания языка, как и умение написать корова без буквы а, как и умение считать до 100 — это базовые навыки. Разработчик на С++, не помнящий нужно ли писать точку с запятой перед else, не нужен не только нам — он никому не нужен. [...] А ваши сотрудники не знают синтаксис языка на котором пишут????

Вас же не смущает, что вы не обладаете одним из упомянутых вами же базовых навыков?

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

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

А вы что, не помните, где ставится точка с запятой?
Так я не явлюсь веб-разработчиком

Вы даже не поняли, о каком навыке идет речь.


А вы что, не помните, где ставится точка с запятой?

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


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

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

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

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

Плохой программист может быть приличным архитектором систем.

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

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

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

А выравнивать вручную зачем, какой в этом смысл? Может вы и таб запрещаете нажимать? А что, он же 4 пробела сразу вставляет.
Я вам больше скажу. Пока я не начал писать в IDE с автоформатированием, меня не напрягало писать вообще без отступов и пробелов. В BorlandC буквы широкие, 80 символов на весь экран, и так все понятно. А после Visual Studio понял, что с ними удобнее.

Чтобы выбрать шаблон для автогенерации, надо понимать, что они делают. Это для программиста гораздо важнее. Если у вас там курсы скоростной печати, тогда да, автогенерация ни к чему, только не надо называть это программированием.
if (a <5);
   a = 5;

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

Помогло здесь автору кода знание синтаксиса? Нет, это синтаксически правильная программа. Помешала или помогла ему здесь IDE? Ни то ни другое.
Нет, это как раз незнание синтаксиса. Автор решил, что точка с запятой заканчивает любой оператор ( как в алголе), а не разделяет операторы (как в Си).

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

Нет, он решил что точка с запятой ставится в конце строки :-)


Для справки: if (a <5) a = 5; — это один оператор.

Это составной оператор. Для чайника — оператор If + любой другой оператор. Вместе — составной. А вот вариант, когда эта точка с запятой нужна.

if [[ -f '/etc/passwd' ]]; then
echo "Файл с определением пользователей существует"
fi

Нет, составной оператор это {...} в Си-подобных, begin...end в Паскале и т.п.

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

Мне кажется, что смысл и без буквоедства понятен.
Составным называется именно то, что описал mayorovp выше, сто лет как в самых разных языках.
Да не, намного меньше ста. До сих пор встречается "Составной условный оператор". А 35 лет назад был ещё больший разброс в терминах. И то, что вы называете составным оператором, чаще называли блок.
По вашей же ссылке
Если по условию требуется выполнить несколько операторов, их необходимо заключить в операторные скобки begin...end;, образуя единый составной оператор:

и
Иногда блок называют составным оператором.
Именно что «единый», то есть вместе с if.

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

По ГОСТ 28397-89 (ИСО 2382-15-85) вообще нету «составных операторов», а есть лишь «составные предложения». Зато «составные предложения» отличаются от «программных блоков».

Так что самое корректное — ориентироваться на ГОСТ. То есть в паскале — только составное предложение, а в С++ — «составное предложение» и «программный блок».
Именно что «единый», то есть вместе с if.

Нет. Единый составной — это блок кода от первой скобки до последней. Он трактуется как ОДИН оператор, поэтому и «единый».
Все-таки давайте не спорить о терминах, а использовать ГОСТ.
в ГОСТе нет вашей трактовки о едином составном с if.
В остальном — согласен, так лучше.

«Cоставные предложения» отличаются от «составных операторов» исключительно переводом, на английском эти термины звучат одинаково :-)

Там должно быть compound statements
statement звучит как operator????? Серьёзно???

В ГОСТ вообще-то приведены английские аналоги.
Добро пожаловать в чудесный мир русской терминологии, где statement часто переводится как «оператор», а operator — как «операция».
Почти так. Только оператор — это construct.

8. Составное предложение
Compound statement

51. Условный оператор
Conditional construct

52. Оператор цикла
Loop Construct

Там описано очень общее понятие. Вот вам более конкретное:


StructStmt -> CompoundStmt
       -> ConditionalStmt
       -> LoopStmt
       -> WithStmt
       -> TryExceptStmt
       -> TryFinallyStmt
       -> RaiseStmt
       -> AssemblerStmt
CompoundStmt -> BEGIN StmtList END
ConditionalStmt -> IfStmt
-> CaseStmt
Давайте закончим спор о терминах, он непродуктивен. Что такое БНФ я уже 35 лет знаю. Но речь шла не о БНФ.
А вот вариант, когда эта точка с запятой нужна.

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


if [ -f '/etc/passwd' ]
    then
        echo "Файл с определением пользователей существует"
fi

Этот вариант на мой взгляд более читаем чем ваш.
И нет нужды использовать [[ что-то ]], вместо [ что-то ].

Для конкретно этого примера, нет нужды использовать внутреннюю команду BASh


Да и ещё. [ и test не являются алиасами или симлинками друг друга это две разные программы.


Различия в размерах.
[anton@ANTONBOCH1244 ~]$ ls -l /usr/bin/\[
-rwxr-xr-x 1 root root 51280 сен  3 20:21 '/usr/bin/['
[anton@ANTONBOCH1244 ~]$ ls -l /usr/bin/test
-rwxr-xr-x 1 root root 47184 сен  3 20:21 /usr/bin/test

Различия адресов секций.
[anton@ANTONBOCH1244 ~]$ elfls /usr/bin/\[
/usr/bin/[& (Intel x86-64)
Program header table entries: 9 (40 - 238)
 0 P r-x    40   1F8 00000040       5 N "GNU"
 1 I "/lib64/ld-linux-x86-64.so.2"  6 U r--  A12C   2EC 0000A12C
 2 B r-s     0  B334 00000000       7 . rw-     0     0 00000000
 3 B rw-  BBD0   4B0 0020BBD0 +1A0  8 R r--  BBD0   430 0020BBD0
 4 D rw-  BC38   1C0 0020BC38
Section header table entries: 27 (C190 - C850)
 0 (null)                               14 B r-x  861C     9 .fini
 1 I "/lib64/ld-linux-x86-64.so.2"      15 B r--  8640  1AEC .rodata
 2 N "GNU"                              16 U r--  A12C   2EC .eh_frame_hdr
 3 N "GNU"                              17 U r--  A418   F1C .eh_frame
 4 H r--   298    60 .gnu.hash [5]      18 ? rw-  BBD0     8 .init_array
 5 S r--   2F8   660 .dynsym [6]        19 ? rw-  BBD8     8 .fini_array
 6 $ r--   958   2ED .dynstr            20 B rw-  BBE0    58 .data.rel.ro
 7 V r--   C46    88 .gnu.version [5]   21 D rw-  BC38   1C0 .dynamic [6]
 8 V r--   CD0    60 .gnu.version_r [6] 22 O rw-  BDF8   200 .got
 9 R r--   D30   798 .rela.dyn:0 [5]    23 B rw-  C000    80 .data
10 B r-x  14C8    17 .init              24 0 rw-  C080   1A0 .bss
11 P r-x  14E0    10 .plt               25 C "GCC: (GNU) 7.1.1 20170630"
12 B r-x  14F0     8 .plt.got           26 $ ---  C09A    F6 .shstrtab [S]
13 B r-x  1500  7119 .text
[anton@ANTONBOCH1244 ~]$ elfls /usr/bin/test
/usr/bin/test& (Intel x86-64)
Program header table entries: 9 (40 - 238)
 0 P r-x    40   1F8 00000040       5 N "GNU"
 1 I "/lib64/ld-linux-x86-64.so.2"  6 U r--  981C   2C4 0000981C
 2 B r-s     0  A854 00000000       7 . rw-     0     0 00000000
 3 B rw-  ABD0   4B0 0020ABD0 +1A0  8 R r--  ABD0   430 0020ABD0
 4 D rw-  AC38   1C0 0020AC38
Section header table entries: 27 (B190 - B850)
 0 (null)                               14 B r-x  806C     9 .fini
 1 I "/lib64/ld-linux-x86-64.so.2"      15 B r--  8080  179C .rodata
 2 N "GNU"                              16 U r--  981C   2C4 .eh_frame_hdr
 3 N "GNU"                              17 U r--  9AE0   D74 .eh_frame
 4 H r--   298    60 .gnu.hash [5]      18 ? rw-  ABD0     8 .init_array
 5 S r--   2F8   660 .dynsym [6]        19 ? rw-  ABD8     8 .fini_array
 6 $ r--   958   2ED .dynstr            20 B rw-  ABE0    58 .data.rel.ro
 7 V r--   C46    88 .gnu.version [5]   21 D rw-  AC38   1C0 .dynamic [6]
 8 V r--   CD0    60 .gnu.version_r [6] 22 O rw-  ADF8   200 .got
 9 R r--   D30   780 .rela.dyn:0 [5]    23 B rw-  B000    80 .data
10 B r-x  14B0    17 .init              24 0 rw-  B080   1A0 .bss
11 P r-x  14D0    10 .plt               25 C "GCC: (GNU) 7.1.1 20170630"
12 B r-x  14E0     8 .plt.got           26 $ ---  B09A    F6 .shstrtab [S]
13 B r-x  14F0  6B79 .text

Вывод diff
[anton@ANTONBOCH1244 ~]$ diff /usr/bin/\[ /usr/bin/test
Двоичные файлы /usr/bin/[ и /usr/bin/test различаются
А теперь взглянем на man test. Аналогично в документации разработчика: test has an alternate form that uses opening and closing square brackets instead a leading ‘test’. Если у вас есть время — посмотрите по сорцам. Похоже, что это два исполняемых файла, сделанные из одних сорцов.

Кстати, сделайте /usr/bin/[ --help. В первой же строчки вам скажут, что это test и запускается как «test ВЫРАЖЕНИЕ».
А теперь взглянем на man test. Аналогично в документации разработчика: test has an alternate form that uses opening and closing square brackets instead a leading ‘test’.

Не спорю.


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

Через r2 посмотрел, да, частичное совпадение.
Есть отсутствие секции обработки help в /usr/bin/test, но как такового заимствования сорсов я не вижу, кроме совпадения основных процедур исполнения.


Кстати, сделайте /usr/bin/[ --help. В первой же строчки вам скажут, что это test и запускается как «test ВЫРАЖЕНИЕ».

Это мне ни о чем не говорит.

Ну значит вы правы. Раз сорцы разные — значит программы разные, но аналогичные. Не знал, спасибо.

Если бы не ваш пример, то и я бы не посмотрел различия.
Так что и вам спасибо.

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

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

Точка в конце if??? На Си? O____O
Прочитайте пожалуйста следующие 2 предложения. А лучше весь коммент. Слово «чаще» относится ко всем операторам, а не только к if. И нет, не на Си, но в языке с Си-подобным синтаксисом.

Если вы про точку с запятой после закрывающей фигурной скобки, то я её тоже ставлю — по привычке к паскалю/дельфи. Хотя на Си пишу уже больше 30 лет, а на дельфи — не пишу уже лет 7.

Почему-то все время кажется, что так читаемей.

Я про точку с запятой после if (...), поставленную по ошибке на автомате.

Ну на Си это очень чревато. Про другие языки — не знаю.
И именно поэтому лучше использовать IDE с автоформатированием по принятому стиля кода, так как меньше вероятность случайной ошибки.
Лучше — автоконтроль форматирования. Человек форматирует немного лучше программы. Зато хуже замечает отличия формата от кода.
Не стоит забивать гвозди микроскопом возлагать надежды на инструменты, которые служат другой цели. Чтобы отлавливать ошибки есть разнообразные тесты и ститческий анализ.

Существенно более смешной пример — это


if (condition)
  doSomething();
else
  doSomethingElse();
  doSomethingMore();
Это показывает, что контроль форматирования — лучше автоформатирования.

Автоформатирование такого кода допустить не может, вот в чем смех-то. Так что мне не очень понятно, как "лучше".

Автоформатирование допустить не может?
У нас на работе как то раз запустили автоформатирование, которое


select...
UNION
select...

переделало в


select...
   UNION
      select...

Нормальное — не может.

От этого спасает правило — всегда ставить фигурные скобки в условиях и циклах. Даже если там одна строка.

Это правило приносит слишком много мусора в guard conditions и early returns.

Зато избавляет от глупых ошибок. У нас это зафиксировано в codestyle.

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

Так мы не во времена перфолент живём. Это всё равно что учить современных инженеров не пользоваться CAD системами, справочниками и другими благами цивилизации. Может оно и полезно знать идеально язык, но в реальном мире нафиг не нужно, а навык написания рабочих программ с первого раза приходит с опытом.
Кто как живет. Перфоленты хотя бы можно было клеить. А вот когда на SoC нету даже vi, то программы на bash приходится набирать при помощи команды echo. Причем все это под дождем и в чистом поле. Или на борту погранкатера во время качки.

С опытом, к сожалению, знания не приходят. Приходит только навык. Как самый яркий пример — 5-6 человек в режиме разработки на 63К памяти без защиты (M6000). Каждый новый человек приводил к нестабильности системы в течение двух недель. За две недели приходил навык — и опять работаем без перезагрузок. А вот знания, что приводит к сбоям, так и не пришли.

Могу и по С++ аналогичный пример привести.

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

Вы не забывайте, что CAD, IDE и так далее придуманы для ускорения работы на больших проектах. Они не отменяют ручные навыки. Более того, на небольших проектах иногда быстрее вручную.

А вам нравится продавщица, которая считая 2 кг по 80 за килограмм на калькуляторе получила 140? Как-то в уме, по таблице умножения, оно у меня вышло и быстрее и правильней.
Кто как живет. Перфоленты хотя бы можно было клеить. А вот когда на SoC нету даже vi, то программы на bash приходится набирать при помощи команды echo. Причем все это под дождем и в чистом поле. Или на борту погранкатера во время качки.

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

И тем не менее он не должен для этого отказываться от благ цивилизации при обучении.
Я тоже могу оценить, как будет работать тот или иной алгоритм в голове без его запуска, но это пришло с опытом программирования в IDE, а не на бумажке. Бумажку я, кстати, тоже использую, но не для того, чтобы писать код, а чтобы рисовать схемы или писать формулы, когда алгоритм не помещается в рабочую память.
А вам нравится продавщица, которая считая 2 кг по 80 за килограмм на калькуляторе получила 140? Как-то в уме, по таблице умножения, оно у меня вышло и быстрее и правильней.

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

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

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

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

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

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

Помните Настоящие программисты не используют паскаль?

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

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

Это же наоборот хорошо, что уставшая продавщица не ошибётся в простейшем расчёте

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

Тот самый анекдот про женскую логику
Женщина в зоопарке говорит сыну:
— Смотри, вон плывет кит.
— Простите, мадам, это крокодил, — поправляет её служитель.
— Нет, это кит, — упорствует женщина.
В это время животное вышло на берег.
— Ну что скажете? — победоносно воскликнул служитель. — Ведь киты никогда не выходят на берег.
— Чепуха! — вы же сами видите, что иногда выходят!

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

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

При подсчетах на калькуляторе мы имеем этапы:

  1. Прочесть стоимость товара
  2. Услышать количество
  3. Ввести стоимость
  4. Ввести количество
  5. Выполнить умножение
  6. Прочесть результат
  7. Выдать его покупателю

При расчетах в уме вместо этапов 3-6 будет один этап — «умножить в уме». Отсюда — и меньшее число ошибок.

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

Боле того, ошибки калькулятора идут как в пользу продавца, так и покупателя. А вот ошибки подсчета в уме — почему-то все в пользу продавца, что намекает на их искусственность. :=)

Ну а верный вариант — сканер штрихкодов.
При расчетах в уме вместо этапов 3-6 будет один этап — «умножить в уме».
В большинстве случаев в магазине все же приходится умножать друг на друга двух- и трехзначные числа (ну плюс перенос запятой). И что-то мне подсказывает, что для подавляющего большинства людей «умножить 48 на 54 в уме» — это ну вообще ни разу не один этап.
Более того, ошибки калькулятора могут быть в десятки раз, например — пропущенный ноль при вводе или чтении результата. А вот ошибки умножения в уме, как правило, выдают правдоподобный результат.
И поэтому калькулятор лучше — большинство ошибок будет сразу заметно.
Откройте большой секрет — что такое вы покупаете по 54 штуки?????

Ириски поштучно?
Упаковки салфеток по 24 штуки, вычисление цены за единицу в уме (что выгоднее: шоколадки по 48 г или шоколадки по 115 г) и т.д.
ОК, вот вам более жизненный пример: кусок мяса в 2.3 кг по цене в 445 руб/кг. Вот и считайте в уме в одно действие.
А теперь сравним с исходным "2 кг по 80 за килограмм". Видите отличия?

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

А в уме — видим, что тысяча с хвостиком. И этим проверяем расчет.
Так я о том и говорю, что 2 кг по 80 за кг — это не реальная ситуация. Или, по крайней мере, очень редкая. Разумеется, в предположении, что мы с вами в одном мире живем.
Потому что в моем мире таких круглых цен очень мало. А вес до целого килограмма не округляет вообще никто — максимум до 50 граммов.

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

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

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

Увы, не все ошибки в синтаксисе видны IDE.

Повторюсь, самая известная из них — это DO I = 1.3 вместо DO I = 1,3 в фортране. Стоило потерянного на подлете к Марсу аппарата.

На Си — ещё веселее.
if (a >5);
   a=5;

Видите лишнюю точку с запятой? А IDE о ней вам скажет?

А теперь подумайте, сколько дней уйдет на поиск этого бага?

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

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

Я не говорил, что не нужно учить синтаксис языка программирования.
На Си — ещё веселее.
if (a >5);
a=5;
Видите лишнюю точку с запятой? А IDE о ней вам скажет?

Да, вижу, хоть и не программировал в блокноте и на листике. И да, в моей IDE она будет заметна, т.к. я нажму ctrl + S и код превратится в
if (a > 5)
    ;
a = 5;

Даже более того, если я напишу
if (a > 5);

и нажму enter, IDE не сделает дополнительный отступ и не будет его делать при нажатии TAB, что даст понять, что что-то тут не так.
А теперь подумайте, сколько дней уйдет на поиск этого бага?

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

Как легче выучить таблицу умножения? Все время проверяя себя по калькулятору или без него?

P.S. У меня IDE без автоформатирования. Способ обнаружения забавный, но ручное форматирование чуть лучше указывает на семантику.
Видите лишнюю точку с запятой? А IDE о ней вам скажет?

Да, моя IDE скажет.


При расчетах в уме вместо этапов 3-6 будет один этап — «умножить в уме».

При умножении на калькуляторе вместо этапов 3-6 будет один этап — «умножить на калькуляторе». Демагогия она такая.


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


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

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

Wat? Вы, вроде, топили за то, что IDE не нужны. IDE они как раз это время и экономят. А так же экономят время набивания рутинного текста.

Время экономит твердые знания языка программирования. Поэтому на начальном этапе, для программ до 100-200 строчек, IDE вредны. Если вы не знаете синтаксис языка, вы с IDE потеряете времени больше, чем если бы сначала выучили язык, а потом сели бы за IDE.

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

Если у вас действительно такие проблемы — значит неправильно поставлены процессы. Начиная от ТЗ и бизнес-требований и до тестирования и ввода в эксплуатацию. В критических местах командой эхо строчки понабивали — а потом удивляемся "а чего это у нас аварии".

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

  1. Демонстрация. У нас 3 блока: база, ровер и ноут. Между базой и ровером — радиоканал или GSM-модемы, от ровера к ноуту — провода. В принципе демонстрация — это 2-3 часа. Приехали, развернули оборудование. продемонстрировали, и улетели домой. Но тут приходит вводная: заказчик хочет нестандартно, с использованием его оборудования, например — сети WiFi. Или радиомодемов. Или стационарный комп рядом с базой вместо ноута рядом с ровером. Что надо делать с точки зрения «правильных» бизнес-процессов? Отказываться? Через голову менеджеров заказчика выходить на админов заказчика для уточнения подробностей? Мы делаем просто — затачиваем напильником на месте.
  2. Стыковка. Есть оборудование, которое слишком тяжелое, чтобы его тащит к нам в офис. Ну скажем датчик раскрытия ворот нижнего бьефа шлюза. Стоит оно на шлюзе. не на том шлюзе, что сетевой, а на том шлюзе, что на Волго-Балте. Описание протокола есть, но как всегда — не очень точное. Как дополнительная прелесть — сеть там примерно 100 килобит на 6 шлюзов (двухкратный запас от нужд телематики шлюза). Что там по феншую в такой ситуации надо делать? Как выстроить бизнес-процесс?

Я без издевок — реально интересно, как там по феншую положено это все решать.

По феншую надо не забывать брать с собой на такие объекты настроенный ноут с нужными идями и периферией.

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

P.S. Претензии товарища были в том, что процессы неверные. :-)

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


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

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

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

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

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

я про первую ситуацию. И сети и пожелания меняются быстро, через 2 года — будут нужны совсем другие настройки.
НЛО прилетело и опубликовало эту надпись здесь
Второй курс. Первый был как 10-11 класс школы.

Я и расписал. Вот «не работает и все тут». Правда она так и не рассказала почему именно.
Это значит, что нарушил методику. Самый известный пример — умножение во втором классе. Для взрослых, что 2*3, что 3*2 — одинаково. Но по методике второклассник должен понимать отличие между множимым (измеряемая величина) и количеством (счетная). По 2 килограмма трем людям — это 2+2+2, то 2*3. А 3*2 — это по 3 килограмма двум людям (3+3), то есть иная задача.

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

Мне как-то везло — я быстро получал репутацию, позволяющую делать не по методике. Но это ещё и от преподавателя зависит.

У методики есть свои плюсы, она дает некоторый уровень троечникам. Собственно для того её и придумывали.
Это значит, что нарушил методику. Самый известный пример — умножение во втором классе. Для взрослых, что 2*3, что 3*2 — одинаково. Но по методике второклассник должен понимать отличие между множимым (измеряемая величина) и количеством (счетная). По 2 килограмма трем людям — это 2+2+2, то 2*3. А 3*2 — это по 3 килограмма двум людям (3+3), то есть иная задача.

Это что-то новое, у нас во втором классе такого не было (95й год). Почему вдруг количество должно быть справа от измеряемой величины? Если я меняю местами множители, очевидно что я меняю местами и единицы их измерения.
У меня брат 2003 гр — у них именно так было.
Это очень старое, чуть ли от Магницкого идущее.
А вот вам дикий батхёрт 2013 года на эту тему.

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

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

Не путайте себя и второклассника. Когда быстрее сложить, чем умножить (2ой класс и начало 3его) — важно не потерять связь между сложением и умножением. Это ещё не совсем умножение, это такая запись для быстрого сложение одинаковых чисел. Потеряется связь — значит ребенок не сможет проверить умножение сложением.

я не методист и не репетитор, так что доказать, что этот метод правильный, не смогу. Но по личному опыту — занимаешься с ребенком, видишь в учебнике странный выверт. Пытаешься объяснить напрямую — не понимает. Ещё раз объясняешь — не понимает. Потом объясняешь ровно так как в учебнике — в ответ «о, это же просто!». После нескольких таких случаев решил, что рано мне с методистами спорить. Из финты для 60-80 процентов детей полезны. Правда в программисты как раз идут люди из остальных 20 процентов. :-)
— Сын, почему у тебя в дневнике двойка?
— Пап, ну меня учительница спросила «Сколько будет 3 умножить на 2?», я ответил 6.
— Правильно.
— Да. А потом она спросила «А сколько будет 2 умножить на 3?»
— Так это же коммутативная операция.
— Вот я так и ответил.

ed2100.blogspot.ru/2013/04/9-x-2-2-x-9.html
НЛО прилетело и опубликовало эту надпись здесь
До сих пор помню, как чуть не завалил экзамен по паскалю.

— Кто автор Паскаля?
— Эм… Паскаль?

При этом с практический частью у меня все отлично было. До сих пор не знаю кто автор Паскаля, впрочем, нафиг оно мне не нужно.
Кто автор Python?)
Само по себе незнание автора Паскаля мало что значит, но является тревожным звоночком. Я бы дальше спросил, какие принципы и идеи закладывались при дизайне Паскаля. Для кодера это неважно, но для программиста — очень даже. Нужно понимать, как и почему язык устроен.
Тогда на засыпку — какая часть языка Паскаль не была реализована фирмой Borland (и не только ей) и почему оно так вышло?
Не знаю. Какая, почему?
Чтобы не ломать кайф - длинная цитата из вики под спойлером
Как показано в вышеприведённом примере, типизированные файлы в Паскале — это последовательности однотипных элементов. Для каждого файла существует переменная-указатель на буфер, которая обозначается f^. Процедуры get (для чтения) и put (для записи) перемещают указатель к следующему элементу. Чтение реализовано так, что read(f, x) представляет собою то же, что и get(f); x:=f^. Соответственно, запись реализована так, что write(f, x) представляет собою то же, что и f^ := x; put(f)

Почему эта часть была включена в язык и почему стала не нужна, догадаетесь?
Кстати да, интересный вопрос. Копнул интернеты… интернеты молчат как партизаны. И это при том, что я большую часть своего бытия программистом писал на «трубо поскакал»'е… В том числе, на объектно ориентированном… И с использованием прототипов современных фреймворков… Единственный подозреваемый — вложенные функции. Ни разу не возникло необходимости или желания их использовать…
Вложенные функции вполне полезная штука. В современных языках их делают безымянными и именуют лямбдами. :-) Примеров использования — довольно много в VCL.

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

Пример из VCL
function TControlScrollBar.ControlSize(ControlSB, AssumeSB: Boolean): Integer;
var
  BorderAdjust: Integer;

  function ScrollBarVisible(Code: Word): Boolean;
  var
    Style: Longint;
  begin
    Style := WS_HSCROLL;
    if Code = SB_VERT then Style := WS_VSCROLL;
    Result := GetWindowLong(FControl.Handle, GWL_STYLE) and Style <> 0;
  end;

  function Adjustment(Code, Metric: Word): Integer;
  begin
    Result := 0;
    if not ControlSB then
      if AssumeSB and not ScrollBarVisible(Code) then
        Result := -(GetSystemMetrics(Metric) - BorderAdjust)
      else if not AssumeSB and ScrollBarVisible(Code) then
        Result := GetSystemMetrics(Metric) - BorderAdjust;
  end;

begin
  BorderAdjust := Integer(GetWindowLong(FControl.Handle, GWL_STYLE) and
    (WS_BORDER or WS_THICKFRAME) <> 0);
  if Kind = sbVertical then
    Result := FControl.ClientHeight + Adjustment(SB_HORZ, SM_CXHSCROLL) else
    Result := FControl.ClientWidth + Adjustment(SB_VERT, SM_CYVSCROLL);
end;



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

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

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

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


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


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


Нет, не может. Структурное программирование точно так же является основой Алгола, Бейсика и Си. И еще языков РАЯ и Ада. И развитая статическая типизация — тоже не отличительная особенность Паскаля.

Нет, ответ не совсем верен. Паскаль — язык для обучения программированию, количество способов выстрелить себе в ногу в нем сведено до минимума, а количество способов дать студенту красивую задачу — до максимума.
Вот по этому критерию он точно проигрывает «черепашке» :-)
LOGO — для обучения детей основам алгоритмирования. Писать программы в 10 тысяч строк на LOGO — думаю, что нереально.
Это вопрос не столько по языку, сколько по теории компиляторов и истории развития технологий (пора уже такой предмет вводить, эхх).
Э, не скажите. Если Никласа Вирта не помните, значит "Алгоритмы + структуры данных = программы" не читали. А это уже существенный момент. То есть на собеседовании дальше есть смысл проверить, знаете ли вы сложные структуры данных.
«Алгоритмы + структуры данных = программы» не читали.
Ну и что?
Я вот, например, не читал. И никто из моих знакомых. Зато мы читали Кормена и Кнута, и с точки зрения алгоритмов и структур данных они куда сложнее.
Ну так поколения разные. Кормен даже на английском только в 1990 году появился. А Кнут больше по алгоритмам, чем по структурам данным.

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

Собственно вопрос — как называется структура данных, обеспечивающая поиск без написания кода и в каких языках такая структура была реализована?
Ну так и я о том же. «Не читал Вирта» не означает, что кто-то плох.
структура данных, обеспечивающая поиск без написания кода
Без написания кода — это как? Битсет подойдет или нет, ведь там для поиска элемента в множестве нужно написать bs.test(i)?
Если вы имеете в виду, что реализация поиска обычно проста и производительна, то таких очень много.
Битсет подойдет. А ещё? Ну скажем для строковых ключей?
И все же, ответьте, что вы понимаете под «без написания кода»? Означает ли это всего-навсего что код поиска и так уже реализован для других методов той же структуры данных?
Тогда подойдет хеш-таблица (если вы имеете в виду поиск точного значения), деревья поиска (декартово, RB, AVL, 2-3, Тарьяна — то, что вспомнилось сходу, наивное, если асимптотика не важна) (если вы имеете в виду поиск значения, ближайшего к заданному снизу/сверху), кучи (двоичная, биномиальная, фибоначчи — то, что вспомнилось сходу) (если вы имеете в виду поиск минимума/максимума), бор (если вы имеете в виду поиск префикса одной из строк из множества), суффиксный автомат (если вы имеете в виду поиск подстроки одной из строк из множества), да куча всего. И, раз уж вы ставите под сомнения мои знания, отмечу, что без проблем напишу любую из названных здесь структур данных.

Вы ожидали такой ответ или просто недостаточно точно сформулировали вопрос?

Браво.

НЛО прилетело и опубликовало эту надпись здесь
Зря вы так хорошо о преподавателях, зрязрязря. Они ведь и реально завистливые и обидчивые бывают. Бывает чувство, что 80% преподавателей в педагогическом в лучшем случае троечниками были.
После педагогического не идут преподавать технические специальности в университет. Туда просто не возьмут скорее всего.
В колледж — возьмут, ибо туда из индустрии толком никто не пойдёт.
Подтвержу. У меня в трудовой в 20 лет есть запись — «мастер ПТУ». На самом деле был вожатым в матлагере для ПТУшников. Но как факт — отдел кадров отсутствие образования не смутило.
НЛО прилетело и опубликовало эту надпись здесь
Я тоже о личном опыте. И он мне говорит, что слишком часто встречаются преподаватели с синдромом вахтера, упортно охраняющие устаревшие и вредные знания.
Нам показывали FoxPro ооочень стародревней версии. Мало того, что я его в реальной жизни никогда не встречал (я веб-программист)

Добро пожаловать в компанию делающую софт для крупнейших судоходств, аптечных сетей, самой большой в мире страховой компании, госкомпаний и прочих представителей кровавого Ынтерпрайза.
Каждый свой чих по окончании дня ты должен заносить в пожирающего людей FoxPro-монстра.
Монстру 50 лет, он обл, огромен, стозёвен и лаяй.
Монстр живёт на сервере Windows 2003 за 39 VPNами, скорость соответствует.
Зато все прожекты на Ангулярчике и скрам во все поля…
И что-то мне подсказывает, что переписывание монстра со всеми его полезными для бизнес-процессов компании потрохами на чем-то модном-стильном-современном займёт 100500 человеко-часов, перенос данных будет адом и болью, а профит от процесса — «второго порядка малости при T стремящемся к бесконечности» ©.
Согласен. У нас в универе были вполне годные преподаватели, хотя это и не захолустный универ. Программисты были самыми годными, ибо чаще всего они уже работали программистами в профильных структурах. Бывало и такое, как у автора, но там были или предметы, которые ничем не примечательны, кроме того, что полностью описаны в книге, написанной еще в 60 годах женщиной математиком или предметы, теоретический опыт по которым утерян преподавателями. Учиться это не мешало, скорее помогало, так как были предметы, которые понять очень не просто.
«Покажите мне сферы использования» — популярная фраза и у нас. Только вот выш.мат. на практике в 99% случаев не нужен настолько, насколько его преподают, а понять сферы использования без понимания нельзя. Чаще я такое встречал от студентов, которые этим оправдывали свое нежелание учиться. Были казусы, когда человек на 3 курсе не мог объяснить как выглядит светодиод или жаловался, что вот мол, учат на всяком старье 70х годов, какие-то дроссели заставляют учить, резисторы большие на лабораторках, когда во всем мире и в айфонах в частности уже цифровая электроника используется!!! И это после целого курса, где и про светодиоды рассказано достаточно и про дроссели уже в пятый раз с момента первого прохождения ТОЭ.
Однозначно надо поступать в институт! И конечно же совмещать с какой-нибудь работой по профессии на пол ставки хотя бы, чисто за опыт.
Однозначно поступать за коркой в основном для того, чтобы потом устроиться по ТК. Работу с «учебой» совместить не совсем получится — ведь нужно сначала заняться самообразованием (т.к. в ВУЗе прожигаем время), и уже потом, умея что-то делать, где-то подрабатывать для получения опыта работы.
Поступать нужно не за коркой, а за базовыми знаниями. А на работе просто помогут адаптировать эти знания. Да, на работу не берут без знаний, потому что за отсутствие оных потребуется платить. В сдельной работе за это платит сам работник, в работе за оклад за это платит работодатель. Обоим это не выгодно. Но в случае если студент будет согласен работать за опыт (бесплатно) и, если повезёт, за еду (то есть не совсем бесплатно), то и работодателю это выгодно (вряд ли он напишет хороший код, который можно будет продать, но будут перспективы), и студент получит не хватающий компонент ( применяемость) в своём обучении.

Только для этого надо переступить через гордыню.
а какие базовые знания в институте после колледжа?
например наблюдал по специальности 2201
да… отличаются… например в колледже по базам данных проходили foxpro, а в институте access…
На своём примере, чему меня учили в институте: математика (высшая, дискретная, вычислительная, мат. анализ, теория вероятности, системный анализ и пр ...), физика и электроника (электротехника, физика полупроводников, основы вычислительной техники и электроники и пр ...), программирование (теория информации, веб-технологии, компьютерная графика и 3D (Open GL), архитектура ЭВМ и ассемблер (Intel x86), искусственный интеллект (от функционального программирования до нейросетей), и современные языки программирования (в основном C/C++), алгоритмы и структуры данных и пр ...), и многое-многое другое.
И не поверите, всё пригодилось и всё было интересно! Даже на курс по химии было интересно ходить. И Excel — это очень годный инструмент, не понимаю почему его все студенты так не любят.
Конечно многое зависит от института и программы обучения. Но думаю стоит биться за хороший институт и образование, пускай может и в другом городе — это стоит того.

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


всё было интересно!

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


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

Потому что преподаватель, как правило, сам этого не понимает. Что тогда спрашивать со студентов?

повторяю для вас и для itlen
сравнивал я самолично программу, правда по специальности 2201, колледжа и института — всё один в один. а отсюда вывод? после колледжа в институт только ради корочки. знания в колледже уже получены.
автор то писал именно про это
НЛО прилетело и опубликовало эту надпись здесь
+ реляционная алгебра и основы СУБД;
+ теория передачи информации;
+ цифровая обработка сигналов.

Это всё в рамках учёбы по специальности 2201.
Расскажу, в чём разница.
Я преподавал специальности 2204 в колледже.
  • преподаватели — женщины от 20 до 60 лет, преподающие «информатику»: офисы, табличные процессоры и электронную почту
  • преподавание некоторых предметов вообще для галочки: если это офис, то МС, если операционные системы — то МС, если это программирование — Delphi 7 со стандартными примерами БД
  • техническая база — 4 кабинета с ПК. Но ни стендов изучения принципов работы ВТ, ни стендов изучения устройства ПК, ни практических занятий по ремонту
  • попытался преподать им основы web — запретили. Объяснили тем, что не входит в программу.

Сам я окончил 2201. Женщина лет 60 преподавала нам… микропроцессоры. Все предметы взаимосвязаны и продолжают друг друга. Нет конкретных «языков» и «БД», а «офисов» вообще нет. Преподавали всё общее, основы, механизмы, принципы, чтобы можно было применить на любом примере.

Ну, и в колледже, студентов за неуспеваемость отчитывали, помогали пересдавать, как в школе. В университете: две двойки за сессию — едешь отдыхать на «курорт» на речку Терек (учился в 97-02 годах).

Учился в университете в 07-12 годах. Студентов вытягивали любой ценой, на последних курсах кто-то из преподавателей и вовсе признался мне что "двойки" попросту запрещено ставить. Но если другую оценку студенту поставить не получилось, или студент не успел выйти на сессию — есть две пересдачи после сессии и еще одна в начале следующего семестра.


Контрактникам было еще проще: неограниченное количество пересдач пока платишь.


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

У вас был няшный вуз (= У нас, вот, в легкую могли четверть группы не допустить ни к одному экзамену, выгнать на допсу (а кого и из вузика) из-за какого-нибудь зачета по БЖД (не говоря уже о профильных). Баттлы «кафедра-какой-то-матери vs деканат» были регулярно. Знаю случаи, когда люди вылетали даже на 4 и 5 курсах (даже регулярно посещая, просто по накоплению «хвостов»), а многих выдавливали на заочку.
У вас был няшный вуз (=

Щас! Может, для тех кому нужно было откосить от армии, он и няшный — но учиться в нем было нечему. Из всех предметов было всего четыре где чему-то интересному учили, причем всего один из них был профильным и не устаревшим (Сети ЭВМ). А баттлы "кафедра-какой-то-матери vs деканат" и у нас были, это была одна из причин почему давали так много переэкзаменовок...

excel скорее аналитики, статисты и прочие математики не любят за наличие (как минимум в старых версиях) серьезных багов при расчетах некоторых вещей. А еще студентами использовали и excel для автоматизации расчетов (правда преподы порой заставляли пересчитывать, так как им это было в диковинку) и google apps для совместной работы

Хм, первый раз про баги экселя слышу...


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


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

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

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

Ха. Вы считаете стенфордский курс алгоритмов/структур данных системным самообразованием?

При чем тут стенфордский курс? Это преподавали, например, в моем провинциальном ВУЗе на специальности «Информационные системы и технологии» в курсе алгоритмизации. Без этой базы я бы очень не скоро узнал о таких вещах, занимаясь безсистемным самообразованием.

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

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

Извините, вас зациклило:


Этой базы ты не получишь без системного образования/самообразования.
[...]
Системное не может быть без базового.
Наверное вы правы.
Имел ввиду что путь от 0 до 10 где 10 хороший кодер, в ВУЗе начинается именно с 0, а при самообразовании а-ля «спросил-закодил» где-то с 3-4 ступени пропуская базовые 0-2. Потому что тупо не знаешь об их существовании или задаешь не те вопросы.
Ну и да, самообразование может быть и с 0.
Имел ввиду что путь от 0 до 10 где 10 хороший кодер, в ВУЗе начинается именно с 0, а при самообразовании а-ля «спросил-закодил» где-то с 3-4 ступени пропуская базовые 0-2.

Это как-то мешает достигнуть 10?


А главное, перечисленные вами "элементарная сортировка связанного списка [...] рекурсивный обход дерева" — они где на этой шкале?

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

Сортировки и обходы примерно 1-2 ступень, 1-3 семестр.
Знай вы такой расклад заранее, согласились бы что начинать с базы (в ВУЗе или нет неважно) оно все же оптимальнее?

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


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

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

Вы исходите из двух неверных предположений:


(а) что речь идет о вузовском образовании ("в ВУЗе или нет неважно")
(б) что этап 5-7 происходит не "когда молод и свободен"

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

А в чем проблема устроиться "по ТК" без корочки?

А подтверждать по ТК, что я программист — не нужно? Конечно, можно работать и без неё. Но корку стоит получить и она никак не помешает, а только поможет.
За прошедшие 10 лет (опыт работы в IT 8 полных лет, т.к. перерывы, например армейка) мне ни разу не потребовались корочки для оформления по ТК. Сейчас я работаю в ЕС, и (о, боги!) тут тоже корочки никому на самом деле не нужны.
Неужели и для визы/разрешения на работу не спрашивали наличие диплома?
Требуется на самом деле не сам диплом, а любой документ, которым отдел юристов сможет доказать, что приглашаемый из-за рубежа сотрудник является высококвалифицированным и незаменимым, и что на его место нельзя нанять местного жителя. Для меня такими документами стали `1С: Специалист` 2007 года и академическая справка 2006 года :)

При наличии вышки всё проще, причём не требуется профильная вышка. Можно показать корочки химика и устроиться программистом.
А подтверждать по ТК, что я программист — не нужно?

Нет, конечно.


Но корку стоит получить и она никак не помешает, а только поможет.

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

Помешает? Нет.
Поможет? Только при устройстве на госпредприятия, что мы, конечно, делать не будем.
Стоит ли потеряных 4 лет? Нет.
НЛО прилетело и опубликовало эту надпись здесь
Корочка может быть необходимой для получения рабочей визы (по-крайней мере в Японии дела обстоят именно так)
Подтверждают кодом. Своими программами. Но за 33 года стажа мне ни разу не приходилось это подтверждать.

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

А насчет «поможет»… Программирование — это ремесло, ему учатся на рабочем месте. Стоит ли терять 5 лет ради бумажки — это большой вопрос. Один из выходов — учиться по смежной профессии: физике, экономике. Как сказал один знакомый «основной результат моей кандидатской (по физике) — я просчитал за неделю машинного времени то, что по стандартной программе считается за полгода». Потом он уехал в США программистом.
Не проблема. Проблемой это может стать, когда ты хочешь устроиться именно сюда и заниматься именно этим.

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

Корочка — объективное и закрепленное трудовым законодательством требование. Цвет волос таковым не является.
Корочка — объективное и закрепленное трудовым законодательством требование.

Цитату из трудового законодательства можно? Или вы про иммиграцию?


Цвет волос таковым не является.

Цвет волос — тоже объективное требование (как и половая принадлежность).

А вы до сего дня с трудовым законодательством не знакомились? Тогда вот:

Статья 65 ТК РФ. Документы, предъявляемые при заключении трудового договора
При заключении трудового договора лицо, поступающее на работу, предъявляет работодателю:


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


Цвет волос / половая принадлежность может являться объективным требованием, если вы актер, но мы ведь об IT говорим.
А кто определяет, является ли работа «требующей специальных знаний или специальной подготовки»? Казалось бы здесь работодатель может забить на проверку.

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


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

alexeykuzmin0
ООО «Юность» может и забить, а где-то это прописано на уровне нормативов и/или забивание чревато проблемами (а вы стоите этих проблем?). Заметьте, в комменте я говорил, что отсутствие ВО не обязательно будет проблемой, но может ею стать при определенных условиях. Под этими условиями я не подразумевал хотелки царьков кабинетного разлива.
lair
Не поверите, но если поискать, на эту тему также есть нормативная база. Ну и не будете же вы на собеседовании предлагать работодателю доказать необходимость диплома.
К тому же есть достаточно много организаций, где это требование обосновано. Чаще всего они работают в высокотехнологичных отраслях или отраслях так или иначе связанных с государством. О них я и говорил. Не всем интересно всю жизнь клепать сайты или создавать очередной «детектор аномалий» для телефона.
И не поймите неправильно мою предвзятость. Я не утверждаю, что диплом гарантирует получение специфических знаний, но я считаю, что без ВО у человека гораздо меньше шансов качественно получить многие знания. Банально можно даже не знать, что вот об «этом» есть целая прикладная наука или пропустить что-то существенное потому что в книжках об «этом» написать забыли или написали так, что обучаемый не понял. По этой причине я считаю требование корочки гораздо более обоснованным, нежели ваше предвзятое отношение к такому требованию. И более чем уверен, что наличие корочки положительно коррелирует с эффективностью работника в IT сфере. Наверняка даже есть научные исследования на эту тему.
Не поверите, но если поискать, на эту тему также есть нормативная база.

Поверю. Просто хочу ее увидеть.


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

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

ТК РФ, Статья 195.3. Порядок применения профессиональных стандартов
Если настоящим Кодексом, другими федеральными законами, иными нормативными правовыми актами Российской Федерации установлены требования к квалификации, необходимой работнику для выполнения определенной трудовой функции, профессиональные стандарты в части указанных требований обязательны для применения работодателями.

Затем изучаем (к теме поста) Приказ Министерства труда и социальной защиты РФ от 18 ноября 2013 г. N 679н
«Об утверждении профессионального стандарта „Программист“

Я немножко не понимаю юридический язык. Написано "если настоящим Кодексом, другими федеральными законами, иными нормативными правовыми актами Российской Федерации установлены требования к квалификации". Профстандарт является такими требованиями? Или требования отдельно, профстандарт отдельно?


Вот другая формулировка (из письма Минтруда): "согласно статье 195.3 ТК РФ требования к квалификации работников, содержащиеся в профессиональных стандартах, обязательны для работодателя в случаях, если они установлены ТК РФ, другими федеральными законами, иными нормативными правовыми актами Российской Федерации. В других случаях эти требования носят рекомендательный характер."


Собственно, в том же письме дальше:


"Означает ли данная норма, что содержащиеся в профессиональных стандартах требования являются обязательными для применения?


Согласно статье 195.3 ТК РФ профессиональные стандарты обязательны для применения работодателями в части содержащихся в них требований к квалификации, необходимой работнику для выполнения определенной трудовой функции, предусмотренных ТК РФ, другими федеральными законами, иными нормативными правовыми актами Российской Федерации. Таким образом, только в части требований, установленных в ТК РФ, других федеральных законах, иных нормативных правовых актах Российской Федерации, требования профессионального стандарта являются обязательными."


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

ООО «Юность» может и забить
Был свидетелем того, как на это забило МинОбороны. На мой взгляд, это говорит о том, что забить может почти что кто угодно.
Не всем интересно всю жизнь клепать сайты или создавать очередной «детектор аномалий» для телефона.
Я вот, например, регулярно использую в работе довольно сложные алгоритмы и структуры данных (гораздо сложнее тех, что нам преподавали), не говоря уже о дифурах и матстате (и производных от них дисциплинах).
Тем не менее, я считаю, что ВУЗ мне не дал почти никаких знаний. Возможно, мне не повезло и кому-то повезет больше, но все же.

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

В некоторых компаниях (не только госах) образование указано прямо в штатном расписании и без диплома бюрократическая машина не пропустит кандидата.
Обычно можно обойти ограничения. Я в свое время, учась на 3 курсе, получил оффер от МинОбороны — уж куда госее-то!
Поступил в институт после 11 класса, конкретно в МГИУ (нынче МАМИ), выпустился несколько лет назад. Учился по направлению Информационная безопасность. Настолько низкого качества образования я даже и представить себе не мог. Преподаватели либо вообще не приходили, либо приходили на пары пьяные и курили прям в кабинете (лично у нашей группы такие пары были и не одна). В лучшем случае, нас просто оставляли в кабинете и мы играли на компьютерах по локальной сети. Поэтому когда говорят, что надо идти в ВУЗ — нет, не надо. Либо, если и поступать, то идти в какой-то супер крутой ВУЗ с огромным конкурсом на место, может там и лучше будет. Но поступать в третьесортные вузы типа МАМИ смысла нет вообще, если только нет цели получить бумажку. Кстати, с этим проблем не будет вообще. Отлично все покупается, на 4 дипломы получили несколько человек, которые даже на сессию не приходили, зато вся группа знает, что они платили. Если быть точным, закрыть одну сессию стоило около 80000 рублей, уточнял у них же.
Ну и конечно же не могу не упомянуть своих друзей, которые пошли в этот же ВУЗ в магистратуру тоже на ITшное направление (уточнять не буду). Кто-то из них учится, чтобы не идти в армию, другие ради общежития. Но все прекрасно знают, что знаний там нет, ибо когда в магистратуре по этому направлению проходят физику целый семестр, ну не знаю…
Но поступать в третьесортные вузы

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

Я вам по секрету скажу — в ВУЗе будет примерно та же фигня, только уровнем повыше и матана больше (мясорубка из которой многие выходят в виде фарша на 1-2 курсе). Ибо «кто может работать — работает, кто не может – учит, кто не может даже учить – руководит».
Почему мне не кажется удивительным тот факт, что за несколько лет обучения ничему так и не научился человек, который пишет «радости не было прИдела»?
Спасибо, что указали на опечатку. Это всё? Вы лучше укажите на более серьёзные ошибки и дайте совет, как их исправить.
У меня глаза закровоточили от количества ошибок в посте. Но мне кажется бессмысленным тратить время на то, чтобы вам отправлять их список.
Лучше посоветую немножко запариться на тему грамотности. Почитайте книжки, например. Например, вот эту.
Человек попросил совет о том как ему стать «сильным программистом», а Вы ему книжку по Русскому языку суёте. Оно конечно полезно, но…

Лучше посоветую немножко запариться на тему грамотности.
Лучше чем что? Чем улучшить навыки программирования?

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

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


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

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

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

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

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

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


Мы отнюдь не на код-ревью, а в интернете. У меня здесь нет обязанности кому-либо отвечать

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

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


Обсуждали то исходно в посте дилемму о самообразовании и пути в программисты. А никак не то, «как много ошибок в русском тексте».
Ещё скажите, что мы не на экзамене).

Но тогда нечего возмущаться о том, что «глаза-кровь»/«марш учить русский»

Вы зачем-то экстраполируете свой какой-то другой опыт на меня :)
Где вот это «марш учить русский» было? Покажете?

Глаза кровь, да, я высказал своё личное мнение по поводу этого компонента поста. Это плохо, да?
И дал ТС совет, что он может сделать, если хочет повысить качество своих постов и комментариев. Может, это плохо?

Обсуждали то исходно в посте дилемму о самообразовании и пути в программисты

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

мы обсуждаем слегка оффтопик, а именно — грамотность автора!

Лучше посоветую немножко запариться на тему грамотности. Почитайте книжки, например. Например, вот эту.


А с каких пор на хабре в комментариях запрещён оффтоп, касающийся поста?

Он (ваш оффтоп) поста никак не касался. По этой прчине вообще не в тему. Вы придрались к тому, как этот пост выглядит/оформлен. Топикстартер просил реальных советов по области программирования — вы ему про «учи русский, ошибок тьма, читать не могу… ааа… кровь… глаза… истерика… (как-то так это со стороны и выглядит)».
Нет, если вам скажут, что у вас в коде элементарные ошибки, но не покажут ни одной из них?

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

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

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

Почему вы так набросились-то на меня все за совет? :)
Потому что советы вместо ответа многим не нравятся. Даже на баше что-то такое было, про русские ИТ-форумы.
например. Например,

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

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

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

Сам я не работаю программистом. Но некоторый опыт в этой области всё же есть.
Самый мой большой проект был на языке СУБД Clarion и насчитывал около 60000 строк кода, не считая ассемблерных вставок и вспомогательных утилит, как то оптимизатора оверлейных структур программы при условии возможных взаиморекурсивных вызовов модулей.
И, что самое интересное, несмотря на многие недочеты и спонтанно проявляющиеся ошибки, эта программа используется на родном предприятии уже более 20 лет. И переход на приобретенную современную программу на основе 1С идет с большим трудом уже почти 2 года. Потому что в этой новой программе ошибок и недоделок еще гораздо больше.
Так вот… В алгоритмах утилиты оптимизации оверлейной структуры мной использовались положения интервальной арифметики. А разве ее изучают на курсах программирования? Да и студенты многих математических факультетов про такую не слышали.

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

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

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

А дальше всё сами. Своими собственными руками.
И да пребудут в Вами усидчивость, аккуратность и скрупулезность.
Я понимаю, что в вас говорит советское образование и закалка, но связь между правописанием, пунктуацией и умением работать вообще или в какой-то определенной области нужно еще обосновать.
Контрпример: у меня есть брат, он работает на одном из последних заводов (если не последнем), производящим интегральные схемы; грамотности у него нет совсем — может и жы/шы написать, и знаки препинания по вдохновению расставлять. Но он начал работать с низких позиций и вот еще 6 лет как руководитель производственной группы. И руководство людьми, и проектами, и сам поднимал вычислительные кластеры, сдх, линии производства, купленные у немцев, настраивал и запускал. В его серверной порядок и красота редкие.
Но вот напишет где-нибудь жы/шы и, видимо, прослывет среди сторонников вышеизложенного мнения больным несобранностью и неаккуратностью. Печально.
Не вижу причины, по которой данное удачное исключение способно отменить общее правило…

Если обращаться к частным случаям, то могу контраргументировать:

1. Мой племянник (детинушка тридцати лет, двух метров роста и с кулачками размером с мою голову) закончил РРТИ по специальности «Программирование чего-то там». О своей работе особо не распространяется, но заработок весьма достойный, стабильный. Что-то связано с обеспечением инфобезопасности в банковской сфере.
Взяли бы на эту работу человека с улицы без ВО?

2. Был у нас программист. Пришел к нам сразу после диплома. Год проработал, год назад ушел. Не смогли удержать — ни зарплаты предложить подходящей, ни перспективы роста. Так он программировал — как Лиепа танцевал: легко и стремительно. TP, C++, C#, JS, PHP, T-SQL и много чего еще.
Первое наше «боевое» знакомство было таким. Он пришел и сидит. А мне понадобилось извлечь несколько тысяч BLOB'ов из таблиц MS SQL. Ну я ему задачу и задал. Он только спросил какую-нибудь IDE. Дал ему TP-7. Думал, ему дня два понадобится… Через полтора часа все было сделано в лучшем виде. Только у десятка файлов пришлось расширения сменить ручками.
И считаю, что в данном случае именно ВО позволило ему так легко ориентироваться во всех этих ЯП. А попробуйте получить ВО, если жы/шы пишЫте.

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

4. С другой стороны было полно и таких, которые, закончив колледж, не знают толком ни управляющих структур ни одного ЯП, ни функций форматированного вывода… А амбиций и гонора — помойным ведром не вычерпаешь. Таких провожали без сожаления и не просили возвращаться.
А как произошел переход с грамматики к наличию ВО? Мой комментарий был только про предполагаемую вами связь правописания и способности работать.
ВО без грамотности брат также получил, к счастью, word давно научился исправлять и правописание, и пунктуацию.
Пожалуй, Вы правы… Это у меня еще советский шаблон. ДоЕГЭшный.

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

Так что, понятие ВО и элементарной грамотности для меня являются практическими синонимами.

Потом стало проще… Поэтому наш директор изобрел свой собственный метод борьбы с безграмотностью. Если в документе были орфографические ошибки, он его черкал, мял и бросал в личико подателю. Не уверен в педагогичности такого метода, но действенность была на лицо :)
Простите, но это уже самодурство и на такое надо отвечать неграмотно, но в рыло.
«Пришел к нам сразу после диплома. Год проработал, год назад ушел. Не смогли удержать — ни зарплаты предложить подходящей, ни перспективы роста. Так он программировал — как Лиепа танцевал: легко и стремительно. TP, C++, C#, JS, PHP, T-SQL и много чего еще.»

Вы действительно считаете, что TP, C++, C#, JS, PHP, T-SQL и много чего еще он получил там же, где и диплом? Очень сомневаюсь. Скорее получение диплома весьма напрягало и мешало ему получать дополнительные навыки.

С чего это "мешало"?!
Если Вы лично ненавидите образование, это не значит, что "нужно закрыть все ВУЗы, потому что они мешают".

Прошу прощения. Немного ошибся. Не TP, а Delphi. Это для меня динозавра после TP-7 жизни нет :)

А не надо сомневаться :) Во всяком случае, когда он мне объяснял основы C# (это мне лапотному так… для антересу токмо), то постоянно ссылался на своих преподавателей и на то, как его учили и ему самому объясняли.

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

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

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

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

Это я к чему: конечно, грамотность в профессии программиста вторична, но повлиять на обучение и карьеру она все-таки может.

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

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

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

Главное — что плохих преподавателей студенты не посещают. Т.е. старые пердуны вылетают из этой системы сразу.

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

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

Стоит ли оно этих усилий? Не лучше ли потратить тоже время на самообразование и практику?
Без указанной вышки Хренова туча контор даже не откроет твоё резюме.
Оно тебе надо, пробиваться через недоверие и учиться холодным звонкам по эйчарам с попыткой уговорить тебя послушать?
Без указанной вышки Хренова туча контор даже не откроет твоё резюме.

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

НЛО прилетело и опубликовало эту надпись здесь
Вышка внезапно значит то, что человек достаточно целеустремлен и стрессоустойчив, чтобы довести до конца проект длиною в 5-6 лет. Будь я работодателем, я бы спрашивал про вышку. Не важно по какой она специальности и какие оценки, главное, что человек смог.
Или, как вариант, настолько глуп, что потратил 5-6 лет на никому не нужную ерунду. Не все так однозначно, правда?
НЛО прилетело и опубликовало эту надпись здесь
Для чего, по вашему, проводят по нескольку собеседований, дают тестовые задания, а за всем этим, как правило, следует испытательный срок 1-3 месяца?

Чтобы отвлечь от работы как можно больше квалифицированных кадров конечно же!)
Вышка внезапно значит то, что человек достаточно целеустремлен и стрессоустойчив, чтобы довести до конца проект длиною в 5-6 лет. Будь я работодателем, я бы спрашивал про вышку. Не важно по какой она специальности и какие оценки, главное, что человек смог.

Есть два человека: Вася и Петя. Вася отсидел, как и полагается, 4 года в ВУЗе, исправно учил материал перед сессией за ночь и за следующую ночь его забывал, математика была на первом и втором курсе сдана методом написания шпаргалок и к окончанию ВУЗа полностью забыта, как впрочем и большинство остальных предметов. Программировал Вася только на лабах, да и программированием это не назовёшь, брал код однокурсников, менял немного интерфейс и сдавал преподу, которому впрочем было насрать, лишь бы работало. Знания у Васи очень поверхностные, опыта программирования нет, но зато есть корочка. Петя же не пошёл в ВУЗ, а учился сам, сам прошёл основы computer science, осилив труды Таненбаума и других авторов, сам изучил основы математики, на уровне уверенный лин ал и ан гем и немного матана(для геймдева) и много других полезных для будущей профессии вещей. Также Петя постоянно писал код, начиная с решения примеров из учебников и заканчивая своими проектами. За это время Петя успел немного поработать на фрилансе, но понял, что это ему не подходит и решил устроиться в офис. И вот приходят к вам два кандидата: Вася и Петя. Кого возьмёте на работу? Кто по вашему мнению более целеустремлённый?
НЛО прилетело и опубликовало эту надпись здесь
Так речь не об этом, речь о том, кого бы вы взяли на работу. Предположим, что Вася не имеет связей и не знает вашего генерального директора.