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

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

В 2000-х годах, феномен, казалось, закрепился в качестве базового элемента программирования, но, спустя 20 лет, для меня, и многих других пользователей очевидно, что этого делать не стоило.
В каком же году это написано? В 2022-м?
А 90-е когда были, капитан?
В восьмидесятых, видимо.
Справедливости ради, 2000-е — это все-же 2001–2010. 1991–2000-е — это девяностые.
Вот и я о том =)
Скорее, 2000-2009 :)
НЛО прилетело и опубликовало эту надпись здесь
Да и не только там: чего стоит «освоение одной из весьма сложных программ LISP».
И игру в бисер не перевели :(
Спасибо! Я её тоже не узнал :( Теперь стало гораздо понятнее.
Не все так плохо. Типичный университетский курс вполне себе может подготовить человека, которого возьмут джуниором. НО — чтобы попасть на хорошую работу после университета, надо быть достаточно умным и целеустремленным человеком, который и в любой другой области не прогорит. Если новичка-инженера возьмут на работу при наличии диплома, то новичку-программисту придется доказать, что:
— он выучил и помнит до сих пор базовую теорию (структуры данных, алгоритмы и т.п.)
— он писал сам сложные алогитмы в универе (вычмат, обучение нейронных сетей, системы управления, обработка сигналов)
— он способен решать олимпиадные задачи по математике.

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

А если серьезно, про какую сферу Вы говорите?

Большое количество современных специальностей, например в веб-разработке, требует в основном хорошее знание инструментов и процессов, и такие знания претендуют больше на ПТУ, чем на ВО. Front-end как пример.
Беда только в том, что, как я понимаю, таких ПТУ пока нет (таких, где бы проходили например Gulp/Grunt/Browserify/Angular/Ember и т.д.) и на этом пытаются зарабатывать всевозможные «курсы». Впрочем как нет и сколько-нибудь полной системы подготовки таких кадров.

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

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

Кроме того, вы не недооцениваете востребованность «индусов». Мне бы в команде сейчас пригодился не хватающий звезд с неба разработчик для клепания однообразного кода (настройки маппингов). Но даже такого нет.
Мне кажется, это вообще проблема кадров в программировании — очень ложно найти человека на ответственные, но «скучные» задачи. Хорошего «слесаря», который понимает, что мегагуру ему не стать, но свою работу делает на отлично. Чаще наоборот.
"Скучные" задачи, как правило, монотонны, т.к. требуют повторяющихся действий.
Соответственно, что делают настоящие разработчики в этом случае? Правильно, устраняют дублирование. В том числе дублирование в методе разработки. Это могут быть генераторы кода, конструкторы форм и т.д. — любой способ хорош. Написание одинакового кода — признак недоработки или недостаточной квалификации, чтобы увидеть эту одинаковость и суметь элегантно ее устранить. :-)
Все осложняется еще и тем, что каждый год вот-вот да выстрелит какой-нибудь новый фреймворк, который будет стильнее/моднее/молодежнее.

О да. Одну коллегу попросили написать учебный план с дисциплиной «современные информационные технологии» на 5 курсе. Добавить столько эмоций к фразе «современные и 5 лет в ИТ это антонимы» не каждому дано.
Помню, мы ей про google glass говорили тогда, и где они теперь?
Прямо так скажем, даже если обсуждаемые технологии окажутся пятилетней выдержки (что само по себе не плохо, значит, технология проверенная и скорее всего не канет в небытие через пару лет), а не 20-летней, как было когда я учился, то это уже большой шаг в перед.
>мы ей про google glass говорили тогда.

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

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

Вы, господа, очень любите эти маркетинговые цацки. Очень похоже, что это происходит от того, что не отделяете зёрна от плевел, поэтому никогда не поймёте: модные фишки приходят и уходят, а таким вещам как ассемблер уже больше полувека, и они никуда не уйдут, так же C, так же как Реляционная теория, так же как Теория графов и вся дискретка вместе взятая…
Подписываюсь под каждым словом. Сам вертел в руках эти хваленные Glass, а теперь это чудо лежит в универе на стенде с раритетами.
boolshit

схоронил)
10100101201

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

Просто гугловый пиар очень хорошо работает
«Современные технологии» в мейнстриме и в академии это две большие разницы. То что сейчас для большинства «последний писк моды» и «хипстерство», для академии — г*о мамонта из семидесятых. Так что писать о «современных информационных технологиях» можно свободно с запасом на 10-15 лет, нужно лишь быть в теме не «современных» технологий, а современных технологий — в истинном смысле этого слова.
Здравствуйте, меня зовут asm0dey и я «синьор». Я вообще никогда не имел дела с нейронными сетями и вообще, мой весьма ограниченный мирок — это энтерпрайз. Ограниченный он потому что в нём редко встречаются нейросети и куча других интересных штук. Но зато этот мирок богатый. Очень богатый даже если ты не настоящий сварщик, а только маску на свалке нашёл. И да, конечно же я самообучился. Так-то я магистр психологии в бизнесе НИУ-ВШЭ'шного разлива.
НЛО прилетело и опубликовало эту надпись здесь
Ну, в первую очередь он богат деньгами. И это нехилый такой бонус. Во-вторых, он крайне богат на высокоуровневые технологии — кластеры, балансировки, отказоустойчивые сервисы… Он очень богат на технологии из которых можно выбирать. Он даёт большой простор для полёта архитектурной мысли и там постоянно есть что улучшать.
НЛО прилетело и опубликовало эту надпись здесь
А я и не говорил, что это неинтересно. Это очень интересно, мне куда более интересно чем нейронные сети. Товарищ выше просто скептически отзывался о таких как я.
НЛО прилетело и опубликовало эту надпись здесь
Ну я джавист и ещё интересуюсь хаскелем и другой функциональщиной. Хаскель хорош для математики, но я не математик и для души, но одной душой я много не заработаю.
НЛО прилетело и опубликовало эту надпись здесь
Ну в моём маленьком мирке почти никто не понимает, что это у меня за закорючки вообще. Дженерики они ещё поняли, а вот линзы… Но мне нравится когда мне приносит деньги то, чем я занимаюсь для души :)
НЛО прилетело и опубликовало эту надпись здесь
Поэтому я стараюсь найти работу, которая в радость (и, кажется, наконец нашёл) — чтобы обязательства нести было приятно.
НЛО прилетело и опубликовало эту надпись здесь
Ну видите, у нас с вами сильно достаточно интересы расходятся. Мне как раз это интересно. Абстрактные задачи меня не особо интересуют.
Не знаю, как по мне, деньги налагают некоторые обязательства.

Если деньги выплачиваются по факту сделанной работы, то не налагают. Как не налагает, например, надпись типа «отблагодарить автора вы можете так-то» на сайте проекта.
Почему?
Прошу прощения, просто ваш пост слишком типично энтерпрайзный ;-) ещё раз извиняюсь.
Да не, мне правда интеренсо в энтерпрайзе. Кровь и кишки в нём не очень люблю, но разбираюсь в них тоже :).
А вообще, как я уже писал программисты бывают самые разные, как и строители. Продолжая аналогию, можно сказать, что Вы (из Вашего описания) — квалифицированный проектировщик супермаркетов, а парни из Human Brain Project — занимаются подводными городами, например. Само собой на супермаркетах Вы намного больше заработаете, и это создаёт некую иллюзию большей значимости — но это не значит, что наукоёмкие проекты оказались уделом нищих аутсайдеров.
Нет-нет, ни в коем разе. Просто моя сфера — это не искусство, это мне не дано. Я хорошо разбираюсь в людях и у меня очень широкий технологический кругозор. Но по настоящему сложных вещей мне никогда не сделать, это просто выше моего потолка как разработчика. Поэтому зарабатываю чем умею…
такие знания претендуют больше на ПТУ, чем на ВО

Техникум/колледж. Среднее профессиональное образование.

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

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

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

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


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

Айти — это когда ты точно знаешь, после какой бессонной ночи подряд начинаются лёгкие галлюцинации.


Узнаю себя
О, узнаю. Эту пасту мой знакомый написал.
Голосование все же надо было делать с несколькими вариантами, я хоть и считаю, что самообразование это 4/5 моих навыков, но университет не хочется совсем уж считать абсолютно бесполезным, в конце концов где еще твои лабораторки бесплатно проверят и укажут на недостатки?.. А ведь это первый, но обязательный шаг к становлению стиля программирования, логического мышления и т.д.

И дополнительно хочется согласиться с тем, что что-то нездоровое есть в этой суматохе а-ля «Программистом стать легко, не нужно быть гением». Например, с похожей настойчивостью сейчас везде рекламируют бинарные опционы =\
НЛО прилетело и опубликовало эту надпись здесь
Согласен с вами. И опрос «Are you self taught programmer?» вовсе не означает, что:
76% опрошенных утверждают, что всему учились сами.

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

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

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

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

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

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

Лет 20+ назад в рамках курсовой работы я написал программу автоматической (псевдо)случайной генерации заданий и их проверки. Потом использовалась на кафедре. По слухам студенты были более младших курсов были очень недовольны, что не могли найти готовые решения у студентов старших курсов.
А поговорить со студентом? Увидеть знания\незнание? Поощрить интересующихся\наказать неуспевающих?
Я не буду с Вами спорить, но по мне сам смысл преподавания заключается в контакте между преподавателем и студентом.
Наверное не очень понятно выразился. Я имел в виду что в большинстве вузов большинство преподавателей лабораторные работы по программированию принимают хуже чем автоматические приемочные тесты. В смысле для нынешнего студента пользы меньше как для будущего программиста.
А это уже вопрос организации процесса обучения.
Если учить ставят людей, которые не разбираются в предмете, все заканчивается плачевно.
P.S. Фишка в том, что "предмет" со стороны ученых и со стороны работодателя несколько различаются...
Высшее образование не обязательно поможет джуниору получить хорошую работу, но освоить высшую математику сеньору, который ее учил кое-как и уже забыл, IMHO гораздо сложнее, чем программирование.

Буквально сегодня был на рекламе новых проектов в нашей конторе. Требуются не просто мидлы-сеньоры, а люди конкретно шарящие в математике. Всякое компьютерное зрение, видеокодеки, сжатие, распознавание. Требования — куча матана, алгебра, всякие алгоритмы… Я осознаю, что во взрослом возрасте (25+) освоить матан в разы сложнее, чем программирование, не в последнюю очередь из-за мотивирования. На матан мотивировать тяжело…

У кого как, я сейчас осваиваю курс математики намного легче, чем в семнадцать лет, ибо знаю зачем оно мне нужно.
А представьте, что вы хорошо знаете, зачем оно вам нужно в 17 лет, и вам нужно это учить не вечером после работы, а прямо в институте, сидя на парах, слушая препода, которому можно задать кучу вопросов, подкупить на разъяснения после пар, и при этом можно нормально отсыпаться…
Все сходится к идее, что в ВУЗ студентов нужно пускать после пары лет работы по специальности :-)
По-моему, слишком большое внимание уделяется курсам по программированию.
Глупо думать, что в эру капитализма, что-то делается не для получения прибыли. Что могут предложить — то и продают.
Особенно радуют кадры, которые начали что-то изучать в программировании, написали первую программу и сразу прозрели, что могут всех научить. Сразу делают сайт и завлекают клиентов. Ну это же бред!
Что тут сложного? Не бином Ньютона. По-моему, крутым хирургам в 100500 раз тяжелее приходится.
Если сравнивать, то весь спектр медицинских работников, от медсестёр и терапевтов, до крутых хирургов, со всем спектром программистов, от писателей макросов в Excel, до разработчиков jit-компиляторов и систем компьютерного зрения.
Интересно где на вашей шкале медработников находится скорая помощь?
Случился как-то со мной oртостатический коллапс. Приехала скорая, врач с фельдшером довольно быстро сообразили, что у меня упало давление и надо бы прокапать допамин, но поставить капельницу не смогли, т.к. вены сдулись и ушли глубоко. Истыкали мне предплечье, кисть и даже в ногу хотели сделать -я их послал, приехала другая бригада — тоже не могут. Мне плохеет — вызвали реанимацию, слава богу в бригаде реанимации была очень пожилая женщина, которая без проблем с первого раза смогла поставить капельницу на другой руке. В итоге все закончилось хорошо, только потом еще месяц проходили гематомы от попыток первых бригад. Что мы имеем — стандартная и довольно частая ситуация с пониженным давлением и «уходом» вен, две бригады скорой помощи тупо не могут в этой (не самой сложной) ситуации капельницу поставить!
Я думаю квалифицированных кадров не хватает везде, а не только в IT.
Сисадмины?
у нас на канадской тусовке figvam.ca: зуботехник — тестер, терапевт — сисадмин, фармацевт — научный программист, еше пара человек с околомедицинским образованием — программный менеджер и аналитик.
С чего бы сравнивать весь спектр? Граф, у которого все вершины соединены со всеми остальными, не несет практической информации. Гораздо интересней случаи, в которых некоторые вершины не соединены с некоторыми другими. Ну да ладно.

Так уж получилось, что до программиста я работал и поваром, и менеджером, и фотографом, и еще бог знает кем, в то время как по вечерам кодил для души. Честно скажу — работа с «реальным миром» выматывает. Писать код бывает сложно, но это совсем не та сложность. Тебе сложно, но ты наслаждаешься этим.
Это известный факт. Кого-то выматывает работа с кодом, но во взаимодействии с людьми они как рыба в воде, кого-то выматывает общение, а кодирование, наоборот, приятно.
Тяжелее != Сложнее, Трудность != Сложность.
В статье верная мысль промелькнула — для того, чтобы стать хорошим программистом, помимо желания и наличия компьютера с обучающими материалами, нужно ещё иметь и специфический склад ума, коим обладает по моим прикидкам не более ~50% людей. Куда идут выпускники вузов с кафедр программирования/вычисл.математики? Статистику можно увидеть, по-моему в программисты не более 20%. Остальные находят себя в смежных областях или вообще в других сферах.

Если человек до вуза не пробовал делать что-то по своей специальности, или если пробовал и ему не понравилось — надо задаться вопросом, а точно ли престижная корочка диплома/сертификата важнее личной самореализации в какой-то другой, потенциально менее денежной сфере. Ведь в долгосрочной перспективе работа по призванию окажется гораздо более полезной и денежной, чем «престижная», но не любимая.
Если человек до вуза не пробовал делать что-то по своей специальности, или если пробовал и ему не понравилось — надо задаться вопросом, а точно ли престижная корочка диплома/сертификата важнее личной самореализации в какой-то другой, потенциально менее денежной сфере.

Вот кстати да. Как раз на днях большой начальник рассказывал, что какой-то профессор Кембриджского университета ему жаловался: «Пятнадцать лет назад первокурсники на специальность Computer Science приходили с опытом самостоятельного кодинга хотя бы на Бейсике; сейчас — некоторые пробовали сами писать HTML-разметку, а большинство вообще не представляют себе, что такое код.» Это после отбора лучших среди всех британских абитуриентов!
Платформы 80-х годов подталкивали к этому.
8-битники после сброса стартовали в бейсике.
А там и до 10 PRINT «Hello World!» недалеко.

Что мы имеем сейчас? Тыкнуть пальцем в иконку, с чем прекрасно справляются обезьяны.
http://www.youtube.com/watch?v=JkNV0rSndJ0
Какой PRINT? Выучили два волшебных слова LOAD и RUN, научились подключать магнитофон — и играй на здоровье…
Но действительно, желание написать свою игрушку появлялось быстро.
Но действительно, желание написать свою игрушку появлялось быстро.


А потом ты начинаешь играть как извращенец (по мнению всех остальных):

— тут косяк в логике…
— а давай попробуем ввести AI в ступор…
— интересно, а как он вообще <что-то> рассчитывает?..
— хм, а как же оно тут работать может?..
— а что будет, если это значение в памяти раза в 2 увеличить… упс, упала (привет первый Elite, ArtMoney и бесконечное топливо:))
— не, ну тут точно костылей понаставили…
— ну вроде основные принципы логики уже понятны… надо бы собрать все воедино и найти оптимальный стиль игры…
— что-то играть уже слишком легко и не интересно…
— uninstall

А дальше привет Pascal/Basic/C++/Java и т.д, а так же мнение окружающих, что ты очень странный человек.

PS. Лет 10 назад «играл» в Neverwinter Nights. На создание персонажа было потрачено времени раз в 10-20 больше, чем собственно на игру. Все никак не складывалась логика для пункта: «надо бы собрать все воедино и найти оптимальный стиль игры...».
Ваш P.S. мне сильно напоминает мой стиль. :-)
Я некоторые игры начинал с начала раз пять, прежде чем прошел до конца.
А некоторые надоедали намного раньше, что даже удалял до прохождения — слишком однообразный принцип прохождения получался.
Собственно, это касается любой специальности, а не только программирования. Например, чтобы стать хорошим врачом, намного в больше й мере нужен определенный склад ума.
Не знаю, как в России, но мне в Казахстане очень тяжело объяснить, чем я занимаюсь (я фрилансер, Python-разработчик). Страны СНГ еще не вышли на технологический уровень и это очень сказывается как на внедрении информационных технологий (интернет-магазины и прочее), так и на «Я программист. — Компьютеры настраиваешь?». То есть мало того, что это перевод, так у нас все еще хуже.

Так же, все мои друзья воодушевившись моей зарплатой и работой из дома начали тоже интересоваться программированием и уже смешно в который раз слышать «Книги читать не интересно мне, я видеоуроки смотрю!».
Может, потому и идут на программистов, чтобы «компьютеры настраивать», т.е имея изначально неправильное представление о сути профессии.
НЛО прилетело и опубликовало эту надпись здесь
Абсолютно тоже самое в Узбекистане.
Я уже не говорю что я front-end разработчик, тупо упрощаю — программист, так меня недавно одна барышня спросила:
— Программист? В IT?
— … Я такой думаю, тааак, а где еще бывают программисты, если не в IT? Думаю ну ладно, кивну — Да, в IT.
— У меня в компьютере куча вирусов, можешь почистить
Это было бы баяном, если бы не было правдой)

Или другой друг спрашивает чем занимаюсь, смогу ли найти ему работу, я говорю ок, могу поднатаскать на HTML/CSS для начала,
а он такой скорчил лицо, не… я вот Cи изучаю…
Представь себе следующее, спрашиваешь ты меня, чем я занимаюсь, а я говорю:
— Я Microarray Analysist.
— WTF?
— А это в био-информатике.
— А, так ты программист, и на чём вы программите?

«Это было бы баяном, если бы не было правдой»
Может мне стоит закопирайтить выражение?)

К сожалению даже гугл не смог внятно ответить, что это за профессия. Это что-то связанное с тестирование ДНК-микрочипов?
реально на HTML/CSS можно что-то заработать кроме как на еду?
Смотря сколько есть. Сотня тысяч рублей — это только еда или нет?
Вспоминается анекдот:
— Ты нищеброд, даже на туалетную бумагу не зарабатываешь.
— Ну ты и засранка...
сотка за что? только за верстку страничек? ой врядли
Только. Максимум цликлы и условия шаблонизаторов. Даже джаваскрипт пишут специально обученные люди.
Видимо я что-то не понимаю в этой жизни)
Может они бешеные объемы гонят, впахивая без выходных?
Нет, тут просто дефицит кадров.
Сотку за вёрстку получают конечно не все, а только действительно хорошие верстальщики, а действительно хороших верстальщиков очень мало. В том числе потому, что многие из них переходят со временем на полноценные фронт-енд позиции и воротят нос от вёрстки :)
а ооочень хорошие верстальщики получают еще больше) Которые считают что вёрстка — это просто css2.1 а которые изучают w3c.org, браузеры/платформы и т.п. В вёрстке тоже есть много тонкостей. Хотя это уже не верстальщики) Вообще глупый термин.
запишусь ка я на курсере на курс по верстке, раз такое дело!
Нет, просто хорошо знают свою работу. Как говорится среди ночи разбуди и расскажут о нюансах вёрстки под ИЕ7 и последнюю айось на часах. Или их предложения принимают за основу в в3ц.
Или под IE6-11, чтобы везде более-менее одинаково было. :-)
У переводчика богатая фантазия.
It’s well paid, mobile, and the work itself is challenging and rewarding.
Работа хорошо оплачивается, в том числе и услуги мобильной связи для специалиста, плюс сама профессия интересна и приносит море бонусов.
Mobile — «подвижная» (легко переходить с одного места работы на другое) — превратилась в «услуги мобильной связи для специалиста».
Я долго пытался понять, что за привилегии у меня в мобильной связи
tyomitch, мне тут рассказывали, что об огрехах/ошибках перевода принято сообщать в ЛС, а не тешить свое ЧСВ в комментах. Ошибки случаются у всех.
Я прихожу к мысли, что нужно стыдить за ошибки, чтобы была мотивация их не допускать. В каждой статье есть ошибки — от неверного перевода и несогласования падежей до унылого тся/ться. Но хабр же не сообщество редакторов для бесплатной вычитки?
Есть разница между ошибками, не влияющими на смысл текста (типа несогласования падежей и унылого тся/ться) — и ошибками, искажающими смысл, иногда до противоположного (например у alizar).
О вторых есть смысл сообщать в комментариях потому, что если автор «втихую» исправит смысл статьи — уже прочитавшие её не узнают, что прочитали не то.
Ошибки, искажающие смысл — это не совсем даже «ошибки» в статье, это суть плохая статья, и обсуждение таких «ошибок» можно считать полноценным обсуждением статьи. К ним я бы отнёс и неверный перевод, и слишком вольный пересказ новости в духе "via %source%".

ps
21 сентября 2011

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

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

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

Точно так же неизвестно сколько «закончил профильный факультет» стали бы более классными программистами, если бы получили бы 5-6 лет профильного опыта в хорошей компании, не забывая при этом про MOOC.
Мой хороший товарищ, друг и бывший коллега вообще без высшего образования поработал-поработал сначала у себя в Новосибе, потом в мск, а теперь уехал развивать OpenShift 3 в RedHat. Причём всю дорогу тут он писал на Java, а там его взяли на синьора на Go.
Да, «где научились?» и «какое образование?» — разные вопросы.
Программирование на 1 курсе (и, теперь, в школе на информатике) все проходят.
За высшим образованием пришлось гоняться позже, но там программирование — 1 из 40 предметов. Основное — предметная область.
Я видел достаточно «считаю себя программистом» на чью работу невозможно глядеть без слез.

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

Можно еще условно разделить программистов на тех кто совершенствуется за счет проектов «в стол» и на тех кто делает это за счет корпоративных курсов. Но говорить что «я научился программировать в университете / я научился программировать сам» просто глупо.
> Технологии не стоят на месте

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

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

«Дайте мне точку опоры и я подниму это хранилище данных!»
Перекладывание данных — лишь один из многочисленных аспектов IT.
Ещё есть геймдев и компьютерная графика, ещё есть числомолотилки и параллельные вычисления, ещё есть драйвера устройств и стеки протоколов…
Проблема в том, что во всяких обработках всё равно огромная часть времени компьютера идёт на перекладывание байтиков из структуры в структуру. А времени программиста, если он хочет обработку ускорить — на борьбу с этими перекладываниями, чтобы данные побыстрее попадали на то место, откуда их возьмёт следующий обработчик. И это тоже очень интересно :)
Правда, от гибкости архитектуры после такой оптимизации ничего не остаётся… зато есть шанс, что программа успеет выполниться за назначенное время.
всё-таки надо расширить до «перекладывание и преобразование», своебразный конвеер для данных, которые, пройдя через серию алгоритмов, превращаются в другие данные…
а так да, в этом вся суть программирования )
Говоря об IT в Англии, автор не учитывает, по-моему, главного — ИТ у них не просто не престижная работа, а скорее удел горстки фриков/гиков. У них престижно и популярно быть медсестрами и юристами.

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

Впрочем, если начали появляться гос. программы, то это лет через 5-10 ситуация is quite likely to change.
не соглашусь, я бы даже сказал с точностью до наоборот, при упоминании профессии программиста обычно люди начинают жаловаться на большую разницу зарплат в IT и других сферах. Но так только последние лет 5, не более.
Может быть ваше мнение справедливо для Лондона, Манчестера, но для остальной страны — все-таки думаю, я права.

Участвовала в нескольких университетских программах Борнмута, Саутгемптона, конфах для поступающих и выпускников. Ооочень маленький интерес и предложение в IT. Такой вот mindset — программирование не интересно и будущего там нет.
Поэтому и жалуются, что разница не вписывается в их картину мира.
Я учился, и мне кажется все зависит от желания учится и работать по специальности а так же человеческой глупости.
Я считаю нас учили в универе и он дал многие понятия и необходимую базу. Только под конец не все выдержали агрессию учебы, и ушли в другие специальности, некоторые просто с самого начала пошли учится только потому что это круто, но все это плохо кончилось в итоге. И еще один из факторов важных это регион где ты живешь.
Зы: Высшее образование необходимо, но нужно быть готовым что учеба не заканчивается никогда.
А я 100%-й самоучка, по образованию инженер-конструктор (в смысле железа). И очень часто сильно жалею об отсутствии профильного образования. Просто иногда, не смотря на годы практики и долгий и упорный рост из джуниора, десятки больших и не очень завершенных проектов и прочая и прочая, не хватает знания какой-то базовой вещи.
В целом я согласен с заголовком, но не могу отнести себя к одной группе. Я самоучка во многом да, но в универе нас учили и я учился (понимаем разницу, да?) многому и очень полезному. Я не могу представить как бы я поднял даже за 10 лет то, чему научили в универе за 5.
Надо отчетливо понимать, что знать/уметь делать в каком-то языке if/while/proc/struct/cmpxchg8b/jmp $ — это одно, а разбираться в предметных областях — это другое. Ни один программер не напишет толковую прогу без адекватного понимания предметной области.
Ситуацию осложняет рост количества технологий… Сегодня очень сложно выделить то что будет живо еще лет 10. Да и порог вхождения возрос и растет каждый год…
Про какие-то специфические способности говорить сложно как мне кажется. Да, люди с предрасположенностью к решению интегралов в голове справляются с задачами лучше, но я видел обычных трудяг, которые всего добивались кропотливым трудом. Да, они тратили больше времени, но результат был не хуже.

А по поводу вечного обучения в нашей сфере… Да таких полно. Мир меняется. Это надо принять.
ЗЫ: выше AlexZaharow интересную метафору приводит.
Да и порог вхождения возрос и растет каждый год…

Скорее наоборот уменьшается с появлением всё более высоких уровней абстрагирования.
Увы, далеко не все используемые в программировании абстракции хорошо ложатся на неподготовленный человеческий моск.
Чем выше уровень абстракции тем, как правило, проще ложатся.
Проще начать программировать — но труднее закончить. Лет 50 назад условно выучил ассемблер — можешь что угодно программировать (не будем о различиях в синтаксисах и fasm/masm, отличия не сказать, что сильно принципиальны). Сейчас — если знаешь дотнет, должен знать винформы, ВПФ, зачастую переключаться на веб, а это уже ASP.Net/MVC/Sharepoint, сюда же html/css/js, они тянут за собой всякие jQuery и прочие штуки. Ну и работать с БД нужно, это сразу ADO.Net/Linq2Sql/EF, взаимодействие между модулями конечно же нужно знать, извольте изучить WCF. Хостимся в облаке — пожалуйста, вот архитектура и инфраструктура Azure… Причем что-то не укладывается в рамки управляемого кода, приходится разбираться в винапи, это уже C/C++… Уметь всё это очень и очень сложно… Это если еще не вспоминать про дополнительные фреймворки: постшарп, log4net, IoC-контейнеры…
Не очень понял как так быстро доказали что не все могут программировать и для этого нужен «талант». Тезисы у них такие:
1) Много студентов не годны даже после обучения
2) Программы обучения плохие
И вывод они делают какой-то странный: Для программирования нужен талант, а форму обучения стоит сменить.
Хотя я бы предположил что если сменить программу обучения, то и количество «талантливых» резко поднимется.
Центральный тезис у них такой:
«В частности, большинство претендентов не может изучать программирование: 30-60% абитуриентов, желающих приобщиться к тайнам информатики на факультетах различных университетов, просто проваливают первый курс».

И, собственно, вопрос: насколько велики шансы у тех, кто «провалил первый курс», пойти и научиться самостоятельно? Почему они его провалили? Только из-за того, что программа обучения плохая?
У нас ещё на втором неплохо сократилась группа, преподаватель не шутил, оказывается, что в среднем каждый четвёртый, переживший первый курс и самые основы, клинически не понимает указателей.
Вероятно, у этих «четвёртых» не было таланта. Что и требовалось доказать.
Многие студенты не годны даже после обучения, так они не были годны и до обучения. Можно сказать, институт как раз наоборот отсеивает всех способных, и остаются лишь не способные. Уже умеющие программировать не хотят тратить время на обучение в одной компании с теми для кого и hello, world проблема.
Спасибо за ссылку. Имхо в этом списке
The authors of the paper posit that the primary hurdles in computer science are…

assignment and sequence
recursion / iteration
concurrency*

не хватает указателей (про принципиальную неспособность их понять некоторыми людьми писал Джоэль Спольски).
Во как.
In the test the consistent group showed a pre-acceptance of this fact: they are capable of seeing mathematical calculation problems in terms of rules, and can follow those rules wheresoever they may lead. The inconsistent group, on the other hand, looks for meaning where it is not. The blank group knows that it is looking at meaninglessness, and refuses to deal with it.

Тест на программиста, в таком случае, должен быть таким: просчитать на бумажке десяток поколений небольшой конфигурации из игры «Жизнь».
Ну так значит проблема в самих курсах, как на них подают материал, как отбирают учащихся. Если подойти к этому делу с умом, то можно вполне себе улучшить ситуацию в отрасли, к тому же много где достаточно обычных code monkey, которых тоже не хватает.
Только треть респондентов получила диплом по информатике или смежным предметам и почти 42%, самая большая группа, — самоучки.

Если сложить бакалавров и магистров, то получится ~56%.
Если учесть, что сумма результатов заметно больше 146%, то можно предположить, что магистры отметились и в бакалаврах тоже. И тогда складывать их нельзя.
Хорошим программистом — да, но вот нужны еще и те, кто будет прилаживать веб-морду к готовой системе. И даже не прилаживать, а просто создавать шаблоны и распихивать по нему данные, максимум, что там нужно — где-то парочку if/case поставить.
И такие тоже нужны, потому что даже junior-у это надоедает.
У альф работа гораздо трудней, чем у нас, потому что альфы страшно умные. Прямо чудесно, что я бета, что у нас работа легче. И мы гораздо лучше гамм и дельт.
а просто создавать шаблоны и распихивать по нему данные, максимум, что там нужно — где-то парочку if/case поставить.


Это работа нормального верстальщика (не путать с фронтенд-разработчиком)
DieSlogan и говорит, что очень часто нехватает просто хорошего верстальщика, который может точно и качественно создать View, со всеми учётами браузеров/разрешений/изменения контента и т.п. А сейчас junior-ы лезут глубоко, не разобравщись с азами. И считают что они крутые программисты, раз смогли подключить шаблон к CMS, а вёрстка — это так, лёгкая ерунда. Но когда доходит реально до вёрстки то очень часто спрашивают(даже не джуниоры) чем отличается tag .class {} от tag.class {}

Раз уж пошло.
Часто вижу как ПМ/руководство готово платить PHP/Java разработчику по его рейту за то, чтобы он коряво верстал,
но нанять хорошего верстальщика, даже на чуть меньший рейт, чтобы тот всё сделал быстрее и качественнее они считают дорого и неоправданными растратами
НЛО прилетело и опубликовало эту надпись здесь
В принципе да, но если позанудствовать, то

tag .class {} — это стиль, который применится к любым элементам с классом «class», находящимся внутри элементов tag

tag.class {} — это стиль, который применится к элементам tag с классом «class»
Часто вижу как ПМ/руководство готово платить PHP/Java разработчику по его рейту за то, чтобы он коряво верстал,
но нанять хорошего верстальщика, даже на чуть меньший рейт, чтобы тот всё сделал быстрее и качественнее они считают дорого и неоправданными растратами


Как правило, на проекте просто нет загрузки на фуллтайм верстальщику, как минимум. А похоже и PHP/Java разработчику :)
Прямо сейчас, под окнами моего офиса идёт стройка. Бегает куча народа в касках и каждый чего-то там копошится. Глядя на этот муравейник я с трудом понимаю, что они делают, но строящийся дом начинает уже приобретать какие-то узнаваемые формы.
В то же время, я сам когда-то пытался делать кирпичную кладку, знаю насколько это тяжело и до сих пор не понимаю, как строят многоэтажные дома так, что стены остаются идеально прямые.

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

Это я к тому, что давно пора уже забыть слово «программист», а использовать специализацию. Утверждение, что у нас нет «врачей» звучит глупо — каких врачей у вас нет, вам нужен детский терапевт или гинеколог? Однако «нет толковых программистов» почему-то ни кого не напрягает. Для меня это звучит также глупо. Мне, например, нужен специалист по ICD-10 кодам. И что? Что же вы, гении в PHP, жметесь по углам? И почему программисты C++ для QNX не строятся рядами?
Я аж поперхнулся своим кофе. Бывают же совпадения… Я как раз исправляю баг связанный с неверным мапингом сих кодов (если вы говорите о International Classification of Diseases, а то вдруг подразумевалось другое)
Они самые — ICD-9 и ICD-10.
Мне, например, нужен специалист по ICD-10 кодам. И что? Что же вы, гении в PHP, жметесь по углам?

Вам нужен специалист по кодам или программист? Программист не должен быть специалистом в предметной области в общем случае. Он должен иметь навыки относительно быстрого вхождения в новую для себя предметную область, равно как навыки изучения новых технологий, архитектур, парадигм и т. п.
Писать коммент без фактов не хотелось, пока искал, нашёл таки такую букву, а заодно и пример того, почему заказчики недовольны программистами. И так, смотрим — рост количества API за… а фиг его знает какое время (а ведь этот график сбацал Head Developers Relations).

Кстати, это данные до 2008 года, сейчас уже 14 тыс API.

image

Получается, что заходя в универ, даже очень толковый парнишка наблюдает одну картинку, а на выходе от него работодатели требуют уже совсем другое, потому что «месяц назад John Пупкин из Кремниевой Долины представил какой-то новый API, который в очень узком случае много лучше, чем те 14 тыс уже существующих API» и теперь работодателю срочно нужны специалисты именно по этому API.

И тут можно разрозиться проклятиями на систему образования, котороя, такая сякая, не подготовила программистов со знанием API от г. John Пупкина из Кремниевой Долны или ленивых программистов, которые, почему-то, не набрасываются на yet another API.

Думаете я утрирую — ни чего подобного. Я прямо в режиме реального времени наблюдаю, как заказчики хотят уже иметь готовых специалистов по HL7 FHIR в то время как сам стандарт ещё только во второй draft версии. Откуда взяться специалистам, из какого универа, если стандарт ещё не утвержден?
Ага, а в вакансиях по С++ — «Отличное знание С++11/14», хотя стандарту 14 года, на минуточку — один год. Т.е. у универа нет никаких шансов.
В университете, как правило, изучают фундаментальные знания, а API нужно учить в свободное время и практиковаться в летних школах.
А причины — вполне логичные и видны невооруженным глазом.

1. Программирование — интеллектуальная профессия, и нытье на тостере, что «читаю книгу по программированию, и через 20 минут уже не могу, что делать», мне говорит о том, что подавляющее большинство в школе не училось, в детском саду родители ребенка не развивали, в институте кое-как отмучались. Какой результат? Недостаток образования? НЕТ. Недостаток развития. У мозга не было интенсивных тренировок почти 15 лет, с чего бы ему вдруг развиться за 2-3 месячные курсы, или в том же институте?
И это — IMHO одна из основных причин.

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

3. Сложность растет. 20 лет назад про ООП говорили, сейчас оно везде. 20 лет назад хорошо если кто-то пользовался CVS, сейчас без системы контроля версий не пишут даже Hello World, 20 лет назад как минимум не было мобильной платформы, а сейчас того и гляди количество софта под мобил превысит десктопные, а embedded, а всякие ардуины. 20 лет назад большинство софта — окошко и формочки, а сейчас — https/json/sql/js и куча других казалось бы мелочей, но без них ты не можешь даже начать, а это ведь уже входит в самую базу, то есть входной порог действительно поднялся на порядки.

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

Не согласен. ООП, системы контроля версий, https/json/sql/js не увеличивают сложность, а уменьшают её, скрывая от начинающего разработчика низкоуровневые детали реализации, облегчая работу. Окошко да кнопочки? Вы помните, сколько нужно было написать кода, чтобы вывести стандартное окно, просто обрабатывающее стандартные кнопки и стандартное меню сворачивания, разворачивания и закрытия окна с помощью Win32 API?
Кажется, несколько экранов кода для простого окна. Я не пользовался Win32 API со времен учебы, но очень рад, что хотя бы имею представление о том какой ужас скрывается за обычными рюшечками и что делать чтобы понять документацию MSDN.
какой ужас скрывается за обычными рюшечками

С тех пор порог входа для программирования их рисования значительно уменьшился, собственно их можно рисовать вообще без программирования, достаточно, например, языка разметки типа html, xul или qml.
Вы помните, сколько нужно было написать кода, чтобы вывести стандартное окно, просто обрабатывающее стандартные кнопки и стандартное меню сворачивания, разворачивания и закрытия окна с помощью Win32 API?
Я помню, только, справедливости ради, этот код писали вручную разве что для развлечения уже 10 лет назад. В Visual C++ он генерировался автоматически в отдельных файлах, а в Delphi его даже видно не было. Ну и кстати ничего особо страшного в том коде не было, довольно простой, только многословный. Поэтому декларативный способ описания форм в итоге победил.
Уменьшают сложность конкретного синтаксиса написания. То есть подсветка, подсказки, удобные IDE-шки что-то упростили. Но сколько теперь технологий нужно знать чтобы просто выпустить продукт?
Даже если захотел написать hello world на андроид, нужно еще догадаться в чем написать, как его потом на телефон засунуть и запустить.
Где сейчас включил комп и пиши себе программу на бейсике? нигде. Нужны IDE/ компиляторы, разбираться в битности. Я помню как в детстве рисовали различные геометрические абстракции — сейчас до графики пока доберешься…
Возможно вы сравниваете win32 api и QT, но я то сравниваю z80/БК-010-01 и DOS с тем, что есть сейчас…
Включил комп, запустил браузер и пиши программу на JavaScript. На Canvas сразу графику :) А под какой-нибудь хромосью браузер сам запускается. :)

Андроид не в тему, это уже разработка на одной платформе под другую, что никогда простым делом не было. Хотя сейчас проще, имхо, написать программу на условном «БК-010-01», которая заработает на условном «Sinclair», чем тогда.

Я сравниваю Радио-86РК и СМ-1420 с тем, что сейчас есть :)
В опросе хотелось бы видеть мультиселект. Я, к примеру, не выделяю обучение в университете или самообразование как «основной вклад». Всего было, и всё было неплохо.
программирование требует наличия определенных способностей, которыми обладает лишь небольшой процент населения земли. Современная мода на экспресс-курсы в этой области порождает все больше спекуляций на тему, что отнюдь не способствует росту количества квалифицированных программистов


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

Я вот только бы заменил слово «легко» на слово «просто». Все-таки не всегда легко, но всегда просто ;)

Это ваши слова?
Гениально! Я честно, без всякого подлизывания!
Надо распечатать и раздавать всем первокурсникам!
Да, мои слова. Спасибо, но мне прямо неловко, настолько они очевидны. Лично я с удивлением смотрю, как многие в вузе изучают неизвестно что, занимаются неизвестно чем, целых четыре года! А затем в реальной работе их знания оказываются не нужны. Да и знаний у них, как правило, нет, так что разговоры про устаревшие знания — от лукавого. Неужели за всё время обучения они не нашли время взглянуть на то, чем они займутся? На свою будущую работу? Неужели не интересно? А зачем тогда нужно было поступать на выбранное направление?

А о важности регулярного образования я уже писал О высшем образовании
Лично я с удивлением смотрю, как многие в вузе изучают неизвестно что, занимаются неизвестно чем, целых четыре года! А затем в реальной работе их знания оказываются не нужны. Да и знаний у них, как правило, нет, так что разговоры про устаревшие знания — от лукавого. Неужели за всё время обучения они не нашли время взглянуть на то, чем они займутся? На свою будущую работу? Неужели не интересно?

Предположим, что студент каким-то непостижимым образом узнал, какими будут его «будущие работы», скажем, в ближайшие 20 лет. Насколько глубоко ему надо «взглянуть» в них, чтобы узнать, какие именно знания понадобятся? Мало ли куда может занести студента, да и куда повернёт развитие выбранной фирмы. Вот и приходится учить «про запас», набивать мозги всем подряд, и выстраивать мощную ассоциативную сеть — которая позволить опознать встретившуюся проблему, и подскажет, куда копать дальше — какие там термины, что искать, в каких терминах будет ответ, и прочее.
Неожиданно понадобилась метрика из пространства Соболева. Которое изучают где-то в конце курса УрЧП. Кто бы мог подумать… Зато теперь, когда я вспомнил, как оно называется, можно поискать его свойства, и посмотреть, не пригодятся ли какие-нибудь из них.
Да ну все же ясно, как божий день: ПТУ у нас убили, а институт готовит либо ученых, либо инженеров. Вот и получается, что те, кому по-хорошему получить профессию и идти кодировать на благо родине идут в институт, а там их учат немного не той профессии.
Локально, не на системном уровне, проблему можно решить просто увеличив именно практику кодирования, чтобы человек за 4 года имел возможность подняться от кодировщика до, собственно, инженера.
+1 писатель самоучка

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

Моя точка зрения высказана академиком А.П. Ершовым аж в 1981 году в эссе «Программирование — вторая грамотность».
Даже если не согласитесь — почитайте. Это очень интересный взгляд на программирование.
Некто страдает манией величия, или просто популист(ка):
Поскольку всемирная паутина создана во многом благодаря изобретательности лучших умов британского народа...
Скорее всего, имеется в виду Sir Timothy John Berners-Lee.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий