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

Если вы периодически уделяете внимание культурологическим аферам Кремниевой Долины, то несомненно слышали о движении «Учись программировать» (“Learn to Code”). Политики, некоммерческие организации вроде Code.org, и даже бывший мэр Нью-Йорка Майкл Блумберг занимаются пропагандированием того, что они рассматривают в качестве навыка, который скоро будет необходим всему трудоспособному населению.

Возможно, отчасти это и так.

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

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

Возьмём буткемпы для программистов. Успех программных инженеров из Кремниевой Долины превратился в пример для подражания, в мейнстрим, и сегодня многие мечтают создать стартап или стать инженером. Телеканал HBO показывает нам программистов, не достигших тридцати, которые по ночам набивают код, при этом зарабатывая миллионы долларов. Американская общественность очарована такими персонажами, как Элон Маск и Марк Цукерберг, которые, казалось бы, в одночасье зарабатывают целые состояния. Лихорадка программирования проникла даже в Белый Дом, и президента Обаму подталкивают к тому, чтобы включить информатику в общеобразовательную программу.

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

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

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

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

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

Вы должны спросить себя «Существует ли проблема?» и «Можно ли применить принцип Фейнмана-Тафта для объяснения этой проблемы, чтобы вас могли понять другие?».

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

Он стал чемпионом.

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

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

В этой отрасли технологии сменяются быстро.

Всего несколько лет назад я использовал Objective-C, а теперь пишу исключительно на Swift. Сегодня работу ищут разработчики, которые не написали ни строчки на Objective-C. Swift легче в изучении, безопаснее, он использует современные парадигмы разработки, и он гораздо элегантнее Objective-C. Это замечательно, что новым разработчикам не приходилось иметь дела с недостатками Objective-C, но здесь не берутся в расчёт суровые реалии профессии.

Разработчики должны обучаться быстро, при минимальном контроле и с чуть большей мотивацией, чем грохот гильотины увольнения. Кто-то скажет, что это лишь одна из издержек профессии. Но если современные разработчики разочаровываются и начинают отставать — а есть достаточно признаков, что так и есть — то зачем вдохновлять людей ввязываться во всю эту неопределённость? Что произойдёт с человеком, который днями и ночами изучал Objective-C только для того, чтобы ужаснуться анонсированию Swift на WWDC 2014? Будут ли они продолжать программировать на том, что быстро превращается в маловостребованный язык, или начнут всё заново? Если вам нет тридцати, то вряд ли столкнётесь с большими затруднениями. Но если вам нужно кормить семью и оплачивать счета, то это превращается в титаническую задачу.

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

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

Серьёзно.

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

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

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

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

Блюстители и привратники есть везде. Это и «выпускники Лиги Плюща», которые верят, что вопросами вроде «Как вы инвертируете бинарное дерево» можно оценить чью-то техническую подкованность. Это и менеджеры проектов, обожающие устраивать тесты с помощью маркерной доски (признаюсь: у меня есть несколько досок), и бесконечные HR-менеджеры, составляющие требования по вакансии наподобие «5 лет опыта программирования на Swift» (подсказка: Swift появился в 2014). Все эти люди так или иначе будут стоять у вас на пути к приличной работе.

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

Заключительные мысли


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

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

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

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

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


  1. theco6ak
    20.05.2016 15:03
    +3

    У вас описан частный случай.

    Могу поделиться другим частным случаем: три месяца изучения джавы без опыта программирования где-бы то ни было, сдача экзамена на SCJP 7, месяц в частном проекте в качестве помощника --> джуниор в реальной большой фирме в МСК вот уже более полгода. на неплохие для джуниора деньги. скоро повышение обещают.

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

    Человеку либо дано быть разработчиком, либо нет. Он либо готов всё время учиться, либо нет.
    Флаг «я хочу много денег» при отсутствии предрасположенности, ведёт к скорому выгоранию и смене деятельности.


    1. Chiki-Briki
      20.05.2016 15:19
      +3

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


      1. Gorthauer87
        20.05.2016 15:19
        +2

        Куда угодно, на самом деле.



      1. Siper
        20.05.2016 16:42
        +1

        Попробуйте взять отпуск, впервые за 10 лет )


        1. singeorange
          20.05.2016 20:31
          +2

          Жестоко.


      1. ooprizrakoo
        20.05.2016 16:46

        От разработки, или от процессов в разработке на данном конкретном месте? от процессов разработки или конкретных людей/работодателя? Если бы вы писали код в одиночку, было бы проще?


      1. Randl
        21.05.2016 14:04

        Подкопите денег и сгоняйте куда-нибудь на Гоа на полгодика минимум. Отдохнёте от всего, разберетесь чего хотите. Может и в разработку захотите вернуться, возможно в другую область. Можно для начала даже прямо там на удалёнке поработать.
        Знакомый знакомого (с) так с выгоранием боролся.


        1. 0xd34df00d
          21.05.2016 20:00

          Что делать, если я физически не могу отдыхать, и прям ощущаю необходимость что-то делать?


          1. 5oclock
            21.05.2016 20:03

            Строить дом, родить сына :)


            1. 0xd34df00d
              21.05.2016 20:05

              Дом в центре города не построишь, сын не в планах совсем.

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


              1. Randl
                21.05.2016 20:28

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


          1. Randl
            21.05.2016 20:26

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


      1. dmbreaker
        22.05.2016 09:57

        Может просто компанию нужно сменить? У самого такое было — думал все, приплыли. Перешел в другую компанию — и жизнь заиграла красками и продолжает радовать. Проблема была в комании/продукте, а не во мне.


  1. Vjatcheslav3345
    20.05.2016 15:10

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

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

    Это была — и есть — настойчивость, именно она позволила мне удержаться в этой сфере.»
    С текущей скоростью развития автоматизации скоро эти слова на собеседованиях будут говорить уже не только программисты, но и, скажем, представители такой вечной профессии как… дворники:) да и о других вечных профессиях не будем забывать тоже (https://geektimes.ru/search/?q=%D1%80%D0%BE%D0%B1%D0%BE%D1%82%D1%8B+%D1%81%D0%B5%D0%BA%D1%81):)…


  1. ooprizrakoo
    20.05.2016 15:11
    +2

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

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

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


    1. Kanut79
      20.05.2016 15:25
      +3

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

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


      1. Gorthauer87
        20.05.2016 16:59
        +1

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


        1. Kanut79
          20.05.2016 17:07

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


          1. Gorthauer87
            20.05.2016 17:12

            Нахрена ему вообще знать о каком-либо фреймворке, или у вас программирование это ворочание фреймворков? Зачем ему вообще знать типы языков программирования? Смысл этих деталей.


            Думаю вообще важнее хотя бы примерно понимать откуда взялась эта цифровая вселенная, что за её кулисами есть лишь набор ноликов и единиц. Да блин булева алгебра в сто раз важнее, чем умение написать hello world на любом ЯП.


            1. Kanut79
              20.05.2016 17:20
              +2

              >Нахрена ему вообще знать о каком-либо фреймворке, или у вас программирование это ворочание фреймворков?

              Об это и речь -> это ему знать незачем.

              >Зачем ему вообще знать типы языков программирования? Смысл этих деталей.

              А зачем ребенку например знать что есть потенциальная и кинетическая энергия? Смысл этих деталей? :)

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

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


              1. Gorthauer87
                20.05.2016 17:57

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


              1. vskorkosh
                21.05.2016 14:15
                -1

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

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


                1. dmbreaker
                  22.05.2016 10:20
                  +1

                  Вы прям как церковник из 16-го века, который утверждает, что сравнивать физику со священным писанием нелепо. Писание нужно каждому, а физика лишь кучке ненормальных и в жизни обывателя до нее никому нет дела.
                  Подозреваю, что когда тут пишут «программирование», то подразумевают «Computer science». А это вполне себе наука, которая дает вклад сопоставимый со вкладом физики. Так же как и физика — в самых различных отраслях деятельности человека. Взять хотя бы машинное обучение — оно делает и будет делать возможным то, что ранее было фантастикой. Все эти GoogleTranslate, распознавание голоса/фото/видео, ускорение исследований в биологии, генной инженерии, в физике, опять же. Это все благодаря этому «инструменту».
                  Понадобится он конечно не каждому. Но мое видение таково, что этот инструмент вмест с остальным прогрессом приведет к тому, что лет через 50 не будет профессий: водитель, продавец, дворник, и т.д. Потребность в других профессиях значительно снизится (т.е. будет требоваться на порядки меньше людей, чем сейчас). Остаются только те професии, где пока машины не заменяют человека: программисты, различного рода инженеры, ученые. Наверное пару классов профессий еще забыл. Но будущее скорее таково. Т.е. если у вас не будет высшего образования, то у вас не будет куска хлеба.


                  1. vskorkosh
                    22.05.2016 12:36

                    По поводу «Computer science» я уже отметил, что общие принципы преподавать нужно. Я против лишь позиции относительно изучения конкретных языков и их истории, потому что считаю это ошибочным.

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

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


                    1. dmbreaker
                      22.05.2016 12:48

                      Творческие — останутся. Но какова потребность в них? Т.е. там будет конкуренция ого-го. И не факт, что «инструмент» не приложит руку и там.
                      Я и не предлагал заниматься предсказательством — достаточно посмотреть на то, что появляется сейчас и становится очевидным к чему это приведет. Насчет исчезновения профессии водителя же нет сомнений? Хотя сейчас их множество.


                      1. vskorkosh
                        22.05.2016 12:59

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


                  1. Vjatcheslav3345
                    23.05.2016 11:07

                    «Т.е. если у вас не будет высшего образования, то у вас не будет куска хлеба. „
                    Или образование — изменится — и тому, что учат современных учёных — будут учить в ПТУ а учёных будут учить гораздо более продвинутым вещам.
                    Так постоянно происходит — в 19 веке электричество было предметом научных исследований и было предчувствие скорого его применения на практике, а сейчас — является предметом изучения для будущих электриков.
                    http://dokonlin.ru/video/bbc-shok-i-trepet-istorija-yelektrichest-34-24.html


              1. Pakos
                23.05.2016 11:35

                >> А зачем ребенку например знать что есть потенциальная и кинетическая энергия

                Потому что без подобных знаний он будет думать что есть какая-то другая «энергия камней».


          1. webkumo
            20.05.2016 17:19

            Среднестатистическому человеку нужно знать только общую информацию о языках программирования, проще говоря классификацию:
            — язык программирования компьютера специалиста (можно детализировать на ЯНУ, ЯВУК, ЯВУИ)
            — язык программирования компьютера пользователя (в основном — UI, максимум — небольшой скриптинг на ЯВУИ)
            — язык программирования компьютерного специалиста (естественные языки, формализованные в ТЗ)
            — язык программирования компьютерного аналитика (естественные языки)


          1. reader21
            21.05.2016 14:07

            Зачем знать типы языков программирования?
            По моему мнению, пара написанных программ лучше, чем эта теория.


            1. 0xd34df00d
              21.05.2016 20:04

              По моему мнению, пара написанных программ лучше, чем эта теория.

              Чтобы понимать, например, что введение variable length arrays as in C в C++ приведет к появлению в системе типов C++ некоего подобия зависимых типов, что может сделать систему типов неразрешимой в общем случае, например.

              А то получается, что и физика не нужна, пара ударов мячами разной массы с разной высоты лучше, чем эта теория.


        1. 5oclock
          20.05.2016 23:32

          Информатика — точно всем не нужна.
          Её даже большинство программистов толком не знают.
          Кто из них не заглядывая в гугл даст толковое определение биту? :)


          1. alexover
            21.05.2016 00:43

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


            1. 5oclock
              21.05.2016 08:37

              Это компьютерная грамотность.
              Информатика всё-таки более «отвлечённая» наука по меркам рядового пользователя.
              А теоретическая информатика — и по меркам рядового программиста :)


          1. webkumo
            21.05.2016 19:26
            +1

            Вам бит с т.з. физики или с т.з. информатики?

            Бит с точки зрения физики — определимое состояние в конкретной точке, например на входе транзистора — выше порогового значения будет 1цей, ниже — 0ём. Бит генетической информации будет представлен одним из 4х белков ДНК.

            Бит с точки зрения информатики — минимально воспроизводимый/воспринимаемый блок информации. На текущий момент под битом обычно подразумевают бинарный бит имеющий состояния (0|1).


            1. 5oclock
              21.05.2016 19:58

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

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

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


              1. webkumo
                21.05.2016 20:18

                В шуруповёрте — бита.

                Бит с т.з. физики == бит с точки зрения физических проявлений.

                В информатике — у вас неверное определение. Даже с точки зрения реально-существующих/существоваших искусственных информационных систем имеется как минимум тернарный бит (бит, принимающий одно из трёх значений {-1. 0. +1}, квантовый бит (бит, имеющий состояние, описываемое параметром в заданных пределах). С точки зрений биологических ИС — минимальный фрагмент ДНК тоже бит и имеет 4 состояния. Вероятность появления вообще не относится к свойствам бита никак. Ещё раз:
                — бит — минимально воспринимаемый и или воспроизводимый кусок информации.

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


                1. 5oclock
                  21.05.2016 21:45

                  https://ru.m.wikipedia.org/wiki/Бит

                  по Шеннону[4]:
                  бит — это двоичный логарифм вероятности равновероятных событий или сумма произведений вероятности на двоичный логарифм вероятности при равновероятных событиях; см. информационная энтропия;
                  бит — базовая единица измерения количества информации, равная количеству информации, содержащемуся в опыте, имеющем два равновероятных исхода; см. информационная энтропия. Это тождественно количеству информации в ответе на вопрос, допускающий ответ «да» или «нет» и никакого другого (то есть такое количество информации, которое позволяет однозначно ответить на поставленный вопрос);


                  1. webkumo
                    21.05.2016 21:59

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

                    Хотя… нашёл на странице ссылки к «трит»у (он же тернарный бит) и кубиту (он же квантовый бит).


                    1. 5oclock
                      21.05.2016 22:01
                      -1

                      «По поводу определения Шеннона — имеется в виду мат. модель информации. С кучей теорем и прочих (непонятно — нужных ли) наукоёмких компонент.»
                      Вот это и есть — информатика.
                      Наука об информации.

                      А прерывания всякие, ЯВУ и т.п. — computer scince.


                      1. webkumo
                        21.05.2016 22:06

                        Кхм… ИМХО это углублённая информатика. В базовой определение бита не нуждается в этих подробностях. (тем более конкретно это определение не учитывает другие размерности/разрядности бита и должно характеризовать ТОЛЬКО бинарный бит)


                    1. Randl
                      22.05.2016 14:17
                      +1

                      Хм. Бит от би- же. Два состояния то бишь. А триты, кубиты и всякие наты это всё таки другое.


        1. gleb_kudr
          21.05.2016 00:29

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


          1. TsukinoMai
            21.05.2016 11:05

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


    1. madfly
      20.05.2016 15:31
      +1

      Зачем про это писать? Мы, программисты, и так это знаем. Программирование требует определённых черт характера, и только усугубляет их с годами. Многим нравятся зарплаты программистов, но только единицы способны увлечься этой работой настолько, чтобы приобрести навыки, действительно позволяющие зарабатывать эти деньги.


      1. ooprizrakoo
        20.05.2016 16:14

        Родители детей этого, к сожалению, не знают :)

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


  1. KonstantinSoloviov
    20.05.2016 15:20
    +7

    Вода. Жонглирование понятиями «разработка», «программирование», «кодирование» без определения оных.


    1. Aiditz
      20.05.2016 17:44
      +2

      «Всегда найдется человек, который попросит уточнить определения всех слов в статье» ©


  1. x_ash_x
    20.05.2016 15:24
    +3

    Информатика — это не программирование, рассказывать школьникам «что там по ту сторону компьютерной игры» ничем не отличается от «законов Ома». Вменяемые люди прекрасно понимают, что профессиональное программирование требует хорошего опыта и солидных знаний. Но написать простой скрипт VBA для чего-то там в Excel — это не программирование, а просто уровень user++, способ автоматизации ежедневной рутины и т.п. Поэтому «должны уметь все» и «именно вторая грамотность» (лозунг из советских 80-х). Профессиональный снобизм здесь неуместен.


    1. gleb_kudr
      21.05.2016 00:31
      +1

      >написать простой скрипт VBA для чего-то там в Excel — это не программирование

      Это в вас профессиональный снобизм как раз и говорит. Ибо это программирование, хоть с какой стороны подойди.

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


      1. Garbus
        21.05.2016 04:34
        +1

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


  1. kroketmonster
    20.05.2016 15:33
    +2

    > Правда в том, что нельзя просто так взять и заняться разработкой, даже в качестве стажёра. Вам понадобятся связи, люди, которые за вас поручатся, нужно будет поддерживать аккаунт на GitHub, и многое другое.
    Мне кажется что автор хочет скинуть свои неудачи на круговую поруку. А отшивали его наверное за мировоззрение
    >Что произойдёт с человеком, который днями и ночами изучал Objective-C только для того, чтобы ужаснуться анонсированию Swift на WWDC 2014? Будут ли они продолжать программировать на том, что быстро превращается в маловостребованный язык, или начнут всё заново? Если вам нет тридцати, то вряд ли столкнётесь с большими затруднениями. Но если вам нужно кормить семью и оплачивать счета, то это превращается в титаническую задачу.
    Да ничего не произойдет, если человек правда учился программированию, а не проходил идиотские курсы аля «как собрать свое первое приложение на IOS», ему вообще плевать на чем писать. Титаническая задача это узнать как в Swift циклы прописываются и классы объявляются? И что-то не верится что язык на котором было написано несколько миллионов приложений перестанет быть востребованным.


  1. 6a6ypek
    20.05.2016 15:38
    +6

    >Программирование — занятие не для каждого
    >Блог компании Mail.Ru Group

    Мне кажется, стоит показать эту статью погроммистам мэйла.ру


    1. Alexey2005
      20.05.2016 21:03
      +1

      Да программисты-то у них нормальные. Тут скорее их фирменный завод по сжиганию менеджеров и маркетологов недостаточно продуктивен.


  1. NeoN88
    20.05.2016 16:04

    Стал свидетелем попытки сделать из человека программиста.
    Человека обучали C# + WPF (проще наверное трудно найти) на протяжении 2х лет, при чём первый год очень много объясняли как всё работает, куча практических примеров, паттерны проектирования и др. Второй год ему давали уже рабочие задания (простые), но при возникновении вопросов всё объясняли.
    Что в итоге. Понимания так и не появилось, элементарные задания выполнялись неделями (с помощью и подсказками), человек даже не помнил что делалось и объяснялось ему неделю назад.
    Короче попытка оказалась провальной. Я думаю основная проблема была в памяти и способностей к абстрактно-логическому мышлению.

    Вторая история из универа. Девочка проявляла отличные способности к мат-анализу и др, но Паскаль повергал ее в ужас и тотальное непонимание.
    Отвечая на вопрос «Программирование для всех?», отвечу «Нет! Это дано не всем»


  1. amarao
    20.05.2016 16:06
    +2

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

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

    Программирование — так же. Когда все будут уметь сколько-то программировать, интерфейсы многих систем поменяются с сторону увеличения возможностей за счёт скриптования. Да, будет совершенно нормально набросать домашний скрипт, который делает то, что нужно. Ровно так же, как сейчас совершенно нормально пришлёпнуть на холодильник записку. Not a big deal, определяющий лик цивилизации.

    А вы тут про зарплаты и карьерные перспективы у планктона…


  1. abstracto
    20.05.2016 16:45
    +1

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


  1. ignisilion
    20.05.2016 16:52

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


  1. Delics
    20.05.2016 17:03
    +1

    Причина, почему программирование не для всех — проста.

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

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

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

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

    На таком уровне, может и действительно все должны уметь. XXI век всё-таки.


    1. Fedcomp
      21.05.2016 08:58

      Что по вашему значит «знать алгоритмы»?


      1. Delics
        21.05.2016 12:23
        +1

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

        Знание такого «хорошего алгоритма» для всех случаев — это я и называю «знать алгоритмы».


        1. ignisilion
          21.05.2016 16:46

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

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

          Ну или словами Ломоносова: «Математику только затем учить надо, что она ум в порядок приводит.».


  1. Aiditz
    20.05.2016 18:03

    > если у вас нет формальных дипломов, то вам придётся сражаться за получение работы

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

    Все, что нужно, чтобы получить работу программиста — быть программистом. Хотя, может быть в Штатах это не так, не могу ручаться. Но даже в этом случае есть прямая дорога на upwork. Только вот на апворке еще сложнее заработать деньги, не обладая профессиональными навыками, чем в компании.


    1. dmbreaker
      22.05.2016 10:41

      Я думаю это только в России так, из-за 90-х, когда дипломы потеряли свою ценность.
      И существенный момент. Наличие хоть какого-то диплома (тем более если он относится к точным наукам) и полное отсутствие оного — две большие разницы. Если бы я нанимал человека без диплома, и человека с дипломом, при прочих равных выбрал бы дипломированного специалиста — так оно чуть надежнее. Однако если есть дипломированный математик и дипломированный специалист по IT, то это уже не так существенно.


  1. daiver19
    20.05.2016 18:18

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

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

    Минутка занудства:
    Последний раз Стэнфорд побеждал в ACM ICPC в 1991 году (полагаю, тогда конкурс еще не был международным). Не знаю, как в 1991, но в современном ICPC время решает и необходимо уметь придумать решение за несколько минут и быстро его закодить. При том решение типовых задач не должно занимать больше времени, чем время прочтения задачи + время печатания кода.


  1. Saffron
    20.05.2016 23:42

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


    1. 5oclock
      20.05.2016 23:48

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


      1. Saffron
        21.05.2016 03:06

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

        Так что в программировании аналогом простым навыкам письма являются несложные скрипты, bash, vba. Да хоть python или си — главное размер. Пока твои программы не превосходят сотню строчек длины, тебе не нужно профессиональное образование. Достиг тысячи — ты уже очень продвинутый любитель, способен писать программы на десятки-сотни тысяч строк — профессионал. Если тебе расписывают архитектуры и методы, а ты реализуешь — то джуниор, если сам способен набросать архитектуру и костяк программы на 100 тысяч строк и распределить задачи в команде — то уже сеньор.


        1. 5oclock
          21.05.2016 08:59

          Хайку, выходит, пишут дилетанты :)

          А зачем домохозяйке или журналисту или парикмахеру или механику или повару или… можно бесконечно перечислять — зачем им писать программу, даже в 100 строк длиной — на C или python? Что в их жизни может вызвать такую необходимость?
          Я ещё могу себе представить что им на VBA нужно что-то сваять. Хотя я за 20 лет работы с офисными программами — такой необходимости не почувствовал.
          bash, если они УВЛЕКАЮТСЯ компьютерами до такой степени, что ковыряются в консоли — тоже возможно. Но много ли таких среди обычных обывателей? И, опять-таки, это — увлечение, а не жизненная необходимость, как письмо.
          Да и линукс сейчас всё больше с человеческим лицом :)
          https://s-media-cache-ak0.pinimg.com/736x/2d/d7/8f/2dd78f56c7fefb8499cbf565da3ae25e.jpg
          Многие обычные пользователи в консоль и не заглядывают.


          1. 0xd34df00d
            21.05.2016 20:14

            А зачем домохозяйке или журналисту или парикмахеру или механику или повару или… можно бесконечно перечислять — зачем им писать программу, даже в 100 строк длиной — на C или python?

            Раз в секунду рефрешить веб-страницу, разбирать DOM-дерево, и, если оно удовлетворяет некоторым условиям, посылать запрос с данными, зависящими от содержания этого дерева.

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

            Ну, это из личной практики помощи.


            1. 5oclock
              21.05.2016 20:16

              Иппонский городовой!
              Мне, даже как будто программисту, за 20 лет жизни за компом и 15 — профессиональной деятельности — такое ни разу в голову не приходило, да и необходимости такой не припомню.


          1. dmbreaker
            22.05.2016 10:48

            Вы совершаете ошибку, т.к. пишете про СЕЙЧАС. А речь вроде идет про программирование для всех со школы. Т.е. люди эти выйдут на работы примерно через десять лет самое раннее. Откуда вам знать с чем придется работать повару через 10 лет? Не придется ли ему писать скрипт для готовки на полуавтоматизированной кухне. Не придется ли делать то же самое механику? Журналист с этими знаниями может сильно ускорить сбор данных и их обработку уже сегодня. Разве что насчет парикмахера я не уверен — лет через 20 его возможно заменит робот, и ему не придется ничего писать…


            1. 5oclock
              22.05.2016 12:08

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

              Каждый должен заниматься своим делом. Разделение труда и всё такое.
              Шурик, Вы марксист? Это же не наш метод!
              :)

              Даже программисты хорошо разбираются только в своём разделе очень уже широкой индустрии «Программирование».
              А Вы предлагаете, чтобы посторонние в этой области люди — сегодня писали скрипт на bash, завтра — прогу для АСУТП, послезавтра — анализ данных в СУБД, послезавтра — работа с DOM в python.
              И утверждаете, что у них будет в этом потребность.
              И что можно их натаскать, чтобы у них это более-менее получалось и в приемлемые сроки?
              Полный анриал.
              А главное — бессмысленно. Потому что не нужно это простому обывателю. Потому что есть специально обученные люди, которые сделают лучше и быстрее. И, кстати, очень вероятно, что давно уже сделали, т.к. вряд ли у домохозяйки тёти Кати возникла потребность в какой-то уникальной задаче, которая раньше не вставала перед программистами.
              Профессионалы должны работать, а не дилетанты. Если, конечно, речь не о хобби каком-то.
              Вы вот в машине давно сами ковырялись?


              1. dmbreaker
                22.05.2016 12:38

                Еще раз — не стоит быть таким консервативным. Сейчас «программирование для всех» бесполезно. Но вы оглянитесь вокруг, прогресс стремительно меняет наш мир.
                И тему «программирование для всех» поднимают по той причине, что спрос на программистов растет гораздо быстрее, чем их кол-во. Т.е. этот недостаток замедляет прогресс, снижает конкурентоспособность. Но бум в IT он не просто так, а потому что IT позволяет снизить затраты, кол-во наемных рабочих. Следовательно бум в IT снижает потребность в обычных работниках.
                «Истинно говорю вам» — через 50 лет не будет особого выбора — придется становиться инженером или ученым. Ну художники, музыканты, артисты тоже будут, но там тоже большая и трудная школа. Хотя и их, так или иначе, IT заденет.
                А вот люди со средним образованием не нужны будут. Т.е. они могут ничего не учить, но это будут их проблемы.


                1. 5oclock
                  22.05.2016 21:57

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

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

                  Но всё-таки общение с компьютером было не настолько интуитивным. Нужно было быть Пользователем. Может книжку почитать про Norton Commander. В общем, какая-никакая подготовка требовалась.
                  Но прогресс стоит на месте: интерфейсы улучшаются, становятся более дружелюбными и интуитивными.
                  Операции, которые раньше выполнялись специальным персоналом по длинным инструкциям, а ещё раньше — вообще программистами и/или электронщиками — сейчас выполняются 3х летним ребёнком парой движений пальца по экрану.
                  И чем дальше — тем круче. Всякие Siri, OK google, повсеместное применение концепции wysiwyg приводит к тому, что не только программистом, не надо быть, а даже и Пользователем-то не обязательно.
                  И странно ожидать откат назад, когда, по Вашим словам, журналисту придётся разбираться с HTTP и DOM, ковыряться в javascript, вместо того, чтобы просто словами сказать компьютеру что нужно найти.

                  Наоборот, в IT всё идёт по пути упрощения и через Ваши условные 50 лет — всё будет ещё проще. Мы может даже не представляем себе насколько просто.


                  1. Garbus
                    22.05.2016 22:31

                    В голову пришел противоположный пример.
                    Как раньше просто было, оседлал лошадь и поехал. А тут и бензин налей и шины проверь, и рулить надо не в пример внимательнее чем на лошади. Но это все предисловие.
                    Вопрос в другом. Сколько было автомехаников в 1900 году? А сколько в 2000? Потребности со временем меняются, и ничего с этим не поделать.
                    Парк и функционал вычислительной техники растет стремительно. Вот только программная часть все больше смахивает на какой то дикий базар, где у каждого продавца свои деньги, в 90% продаваемых пирожков снотворное или цианид и прочие «веселые» моменты. И чем больше выходит разных приложений, тем чаще приходится писать различные «переходники», чтоб подружить их. Что в общем то печально, но выход из ситуации пока никто не предложил.


                    1. 5oclock
                      22.05.2016 23:23
                      +1

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

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


                      1. Garbus
                        23.05.2016 03:41

                        Отличный пример с Вашей стороны, я как раз о нем и говорил.
                        Севший первый раз на лошадь поедет ничуть не лучше, чем наездник 1900 года проедет на современном автомобиле по нынешнему оживленному городу. Во всем нужен опыт.
                        И про железо с софтом тоже верно, навыков надо меньше. Так это к тому, что не надо всем уметь писать на ассемблере изучая при этом тонкости команд актуальных процессоров. Достаточно общего знакомства с чем то на уровне VBS/Java.
                        Хорошо изучить использование офиса или фотошопа тоже дело долгое. А ведь программ десятки, и освоить их хорошо, точно так же как и программирование, дело не школьных уроков информатики.


                        1. webkumo
                          23.05.2016 12:09

                          Вы бы Java то с VBS не уравнивали. Сам язык может и простой в изучении, но он не приспособлен быть DSL, а обычным людям что-то большее, чем DSL… мало смысла использовать.


                          1. Garbus
                            23.05.2016 21:19

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


  1. Wuzaza
    21.05.2016 02:46

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

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


  1. sentyaev
    21.05.2016 04:57
    +1

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

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


  1. Arxitektor
    21.05.2016 09:53
    -1

    Программированию надо учить со школы но сделать этот предмет не обязательным.
    Просто для того чтобы человек знал что задачу можно решить при помощи машины
    Преподавать современный высокоуровнвый язык. Давать не сложные задачи.
    Просто часто встречался с задачами которые можно решить за час умея программировать или на несколько дней не умея.
    Это как с обучением кад системам паралельно с черчением.
    Ведь выполнить чертёж в сад системе по госту тоже не очень просто.
    Рисование совместить с изучением фотошопа или аналогичных программ.
    В матеметику добавить математические пакеты
    В школе давать основы а в вуза углублять.


  1. romanonthego
    21.05.2016 14:13

    Учиться программированию !== стать программистом.

    Реакция программиста, пишущего на objectiveC, увидевшего Swift будет «хм, прикольно, посмотрим, выстрелит или нет», а не паника и ночные зубрежки документации. «Начнёт все заново» — это глупость катастрофического масштаба: заново учить что? Паттерны проектирования? Практики хорошего кода? Алгоритмы? Структуры данных? Эти вещи не зависят от языка программирования от слова «вообще». Это не говоря о том, что swift был создан что бы сосуществовать в одной экосистеме с objectiveC.

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

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

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


    1. webkumo
      21.05.2016 20:11

      Хм… я вот как Java-программист имею опыт ситуации с «увидвшего Swift» (в своё время у Java пытались отобрать хлеб Groovy, Scala, Kotlin).

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

      Scala и Kotlin вновь пытаются заявить права на хлеб Java… и да, получили из общего пирога какие-то доли… но я сомневаюсь, что эти доли когда-нибудь заставят Java исчезнуть.

      Я честно пытался себя заставить разобраться с этими языками… Но вот паники по поводу «зря изучал Java» у меня не было ни в одном глазу. Поэтому ситуацию, когда кто-то изучает ObjectiveC, а потом пугается выпуску Swift… я вижу только следующее объяснение:
      — человек (новичок) захотел влезть сразу в нишу на «топовом» сегменте и испугался, что его сегмент теперь будет не топовым (в общем — гнался за деньгами, струхнул, что денег не увидит)


  1. Stroy71
    21.05.2016 14:13

    «Лихорадка программирования проникла даже в Белый Дом, и президента Обаму подталкивают к тому, чтобы включить информатику в общеобразовательную программу.»
    В СССР информатику включили в общеобразовательную программу еще в 1986 году. Другое дело уровень преподавания.


    1. DeLuxis
      23.05.2016 10:26

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


  1. tormozedison
    22.05.2016 16:33

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