Вопрос с Quora:


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

Мне 17 лет и я занимаюсь программированием с 14-ти. Основной упор на Java, я получил 5 баллов по предмету AP Computer Science. Я довольно хорошо разбираюсь в Java (синтаксис, основные классы, GUI/JFrame и т.д.) и неплохо знаком с HTML5 и CSS3. Кажется, мне не хватает многих знаний, чтобы реально претендовать на работу в индустрии (например, как работают СУБД и какую из них следует использовать), и мне интересно, как другие программисты изучают такие вещи. Я планирую пойти в колледж по специальности «Разработка программного обеспечения», но меня начинает расстраивать мысль, что колледж — необходимое условие, чтобы получить работу. Есть ли какие-то курсы, которые я пропустил, хотя должен был изучить их, или что-то другое, чего я не сделал?


Мой ответ:


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

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

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

Далее происходит одно из двух. Или человек находит самоучитель игре на гитаре в каком-то виде, ИЛИ он идёт на YouTube и начинает пробовать играть свои любимые песни. Как правило, второй вариант эффективнее.

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

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

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

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

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

Так какое это имеет отношение к программистам-самоучкам?

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

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

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

Чувствуешь разницу?

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

Например, сегодня каждый веб-разработчик (и его брат) используют WordPress. Задолго до WordPress я написал для себя 3 или 5 разных систем управления контентом на PHP и MySQL. Я делал игры. Писал мобильные приложения. Фреймворки. SAAS-приложения.

Никто не платил мне за это. Всё это я делал для удовольствия или для обучения, или из любопытства.

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

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

Так что могу дать совет, с помощью которого ты получишь огромное преимущество над теми, кто такого почти не делает…

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

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

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

По мере написания кода сохраняй работу в маленькое портфолио на своём сайте. Каждый раз по окончании проекта сообщай о нём на Hacker News или Reddit, или ещё где-то. В блоге.

Тебе 17… К 20-ти годам ты легко можешь вложить более 2000 часов в разработку своего навыка, в портфолио будет 10-20 проектов и ты выучишь многие уроки, которые учащиеся на курсах никогда не выучат.

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

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

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

Так что вылезай из скорлупы и создай что-нибудь. Пиши код!

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


  1. haiflive
    11.11.2017 10:01
    +2

    Уже больше 10 лет работаю по такому принципу, но есть и минусы,
    — ты не знаешь свойство prototype в javascript?
    — знаю, но вообще никогда им не пользовался.
    — да ты даже начальные курсы не прошёл, вы нам не подходите.
    — но код на прототипах убог есть же замыкания
    — …
    — досвидания


    1. VitaLik_is_goodman
      11.11.2017 14:22

      не понял, почему код на прототипах убог? class — это функция конструктор + прототип, получается весь код, который пишется сегодня убог?


    1. staticlab
      11.11.2017 15:27
      +1

      знаю, но вообще никогда им не пользовался

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


      но код на прототипах убог есть же замыкания

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


      1. MacIn
        11.11.2017 17:33
        +1

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


        1. staticlab
          11.11.2017 18:22
          +1

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


        1. Texonite
          15.11.2017 06:27

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


          1. tetramino
            15.11.2017 15:58

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


      1. masterspline
        11.11.2017 18:16

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

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


        1. eoffsock
          11.11.2017 22:19

          Умный — нужен. Умничающий — нет. Грань тонкая, но она есть.

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

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

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


          1. musicriffstudio
            11.11.2017 22:23

            хватит умничать


          1. crocodile2u
            12.11.2017 14:12
            +2

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


            1. matsuhito
              12.11.2017 22:21
              +1

              но факт остается фактом — среди этих людей процент созидателей высок


              1. FadeToBlack
                13.11.2017 10:37

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


                1. tyomitch
                  13.11.2017 14:33
                  -2

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


                  1. F0iL
                    13.11.2017 16:17

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


              1. balexa
                13.11.2017 12:38
                +2

                Каждый мнит себя стратегом, видя бой со стороны (с)

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

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


                1. alekam
                  13.11.2017 15:37

                  для этого в коде пишут комментарии


                  1. balexa
                    13.11.2017 16:05

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

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

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


                    1. DistortNeo
                      13.11.2017 18:53

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

                      А если и этого недостаточно, тогда есть документация — тесты.


          1. cyberonix
            13.11.2017 09:25

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


            1. eoffsock
              14.11.2017 10:43

              Вполне возможно. Но решать свои психологические сложности за счет работодателя — так себе практика.


          1. L3333437
            14.11.2017 09:58

            Почему отметается вариант что «вы все дураки, один я умный» — реальность на самом деле?


            1. eoffsock
              14.11.2017 10:43

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


              1. L3333437
                14.11.2017 17:49
                +1

                Он не настраивает, видит, что ему это не интересно и уходит в другое место.


      1. Dair_Targ
        12.11.2017 17:43

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

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


    1. TheShock
      11.11.2017 16:37
      +8

      но код на прототипах убог есть же замыкания

      Сразу пока-пока такому человеку.
      Человек слишком мало знает как для мидла-синьйора
      И слишком высокого мнения о своих знаниях как для джуна — тяжело обучаться будет.
      Эффект Даннинга-Крюгера во всей красе.

      А если такая дыра в знаниях через 10 лет опыта, то он вообще необучаем.


      1. ParkeTg
        11.11.2017 19:14
        +3

        А вы не думали, что возможно человек понимает о чем он говорит? Возможно человек адепт ФП парадигмы, а не ООП, и наследование в вашем понимании ему не интересно. Вот немного почитать:
        http://loup-vaillant.fr/articles/classes-as-syntactic-sugar
        http://loup-vaillant.fr/articles/classes-suck


        1. staticlab
          11.11.2017 19:32
          +1

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


          1. Существует легаси на прототипах, которое нужно корректно портировать. Для этого желательно бы знать, что такое эти прототипы и как они работают. Также очевидно, что проще портировать подобный код на ES6 classes, чем на чистый ФП. Для выбора такого варианта обязательно нужно уметь аргументировать свою точку зрения.


          2. В компании пишут на Angular или React. В них так или иначе используются классы.


          3. Всё-таки JS — не чисто функциональный язык. И в практическом программировании некоторые вещи более эффективно и проще будет писать в императивном стиле, а не в функциональном.


          1. olegchir
            11.11.2017 20:36
            +5

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

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


            1. staticlab
              11.11.2017 22:47

              Справедливости ради, "избегал использования прототипов" и "никогда не использовал прототипы" всё-таки по смыслу различаются. Может быть haiflive пояснит нам что-нибудь?


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


            1. TheShock
              12.11.2017 02:11

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

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


        1. TheShock
          12.11.2017 02:09

          А вы не думали, что возможно человек понимает о чем он говорит? Возможно человек адепт ФП парадигмы, а не ООП, и наследование в вашем понимании ему не интересно.

          Нет, не думал. Замыкания — не только ФП, Прототипы — не только ООП. И даже опытный человек, который в ЖС полностью отрицает ООП в пользу ФП — это человек, думающий модой, а не своей головой.

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

          Еще раз процитирую оригинал: «свойство prototype — знаю, но вообще никогда им не пользовался. код на прототипах убог есть же замыкания». То есть человек:
          1. Никогда этим не пользовался
          2. Верит, что знает
          3. Искренне уверен, что оно — убогое

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


          1. MacIn
            12.11.2017 15:28

            То, что он не применял какую-то технологию в своем коде, не значит, что он не видел применения ее в чужом коде и не понимает, что это, зачем, какие у нее преимущества и недостатки. Условно — курица и омлет.


          1. haiflive
            12.11.2017 22:21

            Мне просто никогда не приходилось писать код на прототипах, да есть свои плюсы у prototype, производительность там… вроде бы всё… так же я считаю неправильным смешивать данные в одну мешанину с методами, что бы потом использовать хитрые методы копирования объектов, что обязательно вызовет сложности при восстановлении состояния приложения…

            Немного моего повседневного кода (до изобретения ES-2015, Typescript, babel):

            var some_function = function () {
              var some_local_valiables,
                  var1,
                  var2,
                  var3;
              
              // here you can construct your data, and prepair it
              // here you can use singleton, factory method or etc in future
              //! all defenations in one list:
              return {
                userData:			userDataFn,
                organizations:		organizationsFn,
              };
            
              function userDataFn() {
                somePrivateFunction1();
                // define 1
              };
              
              function organizationsFn() {
                somePrivateFunction2();
                // define 2
              };
              
              function somePrivateFunction1() {}
              function somePrivateFunction2() {}
              
              // etc function define
            }
            


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

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

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

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


            1. staticlab
              12.11.2017 22:38
              +1

              да и к тому же есть TypeScript, в новых стандартах JS уже появился полноценный ООП

              Вы же в курсе, что классы в ES6/TS — это всего лишь сахар над прототипами?


            1. DistortNeo
              12.11.2017 22:38
              +1

              в новых стандартах JS уже появился полноценный ООП

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


            1. ParkeTg
              13.11.2017 13:58

              Я, в целом, на вашей стороне, но буду спорить:

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

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

              — никто не напихает прототипов в твой класс в другом файле
              Патчить прототипы чужих классов ( monkey patching ) и так моветон. С большой долей вероятности никто не напихает и так. :)

              — не засоряет пространство имён
              Система модулей.


            1. Aquahawk
              13.11.2017 16:14

              github.com/Microsoft/TypeScript/blob/master/src/compiler/checker.ts
              Вот почитайте, и расскажите насколько этот подход расширяем и подвержен рефакторинг в момент когда стало неудобно. Ой да, файлик не отображается в квик вьюве, потому что он большой. разработчикам стоило бы его разбить. Да вот беда, в таком варианте сейчас это невозможно простым действием. В случае ООП подхода, не зависимо от того, на прототипах или нет, его можно подлить хотя-бы на иерархию наследования и как-то разделять. Вот вам пример попытки отрефакторить такое: github.com/Microsoft/TypeScript/issues/17861


        1. mmkulikov
          12.11.2017 22:21

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


        1. FadeToBlack
          13.11.2017 10:39
          +1

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


          1. ParkeTg
            13.11.2017 13:47
            +1

            Религия базируется на вере. Если человек может обосновать свою точку зрения, это уже не религия, а «наука».


            1. tyomitch
              13.11.2017 14:38
              +1

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


    1. bjornd
      11.11.2017 23:30

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


    1. gavrilovm
      14.11.2017 16:45

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


  1. ru_vlad
    11.11.2017 10:05

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


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

    Это тоже очень оригинальное заявление.


    1. porn
      11.11.2017 10:38
      +2

      Насколько я понял, тут речь скорее о правильной мотивации, а не «главное X, а Y потом».


    1. SanQri
      11.11.2017 10:51
      +1

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

      … и после этого удивляемся что программист не знает элементарных основных алгоритмов и их назначений

      Ну а тут можно отметить, что никто не запрещал заниматься АЦМом неким самостоятельно. Да и не всем нужны алгоритмы, на самом деле. Если человек понимает, что у него фпс проседает или пользователь ждет отклика слишком долго, то может он и разберется в чем дело, но если человек по факту верстальщик, то ему не слишком нужно это всё.


  1. 3draven
    11.11.2017 11:03

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

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


    1. AlexZaharow
      11.11.2017 11:31

      Вообще, знать надо такую кучу вещей, что прямо офигеваешь

      Есть такое выражение «хвост виляет собакой». По аналогии это когда фреймворки и языки управляют программистом. Должно быть наоборот. Именно вы должны управлять процессом программирования, а не процесс программирования управлять вами. Не многопоточность всплыла в какой-то момент, а вы решаете «Так, мне тут нужна многопоточность» и подключаете её. Или «Для этих данных нужна реляционная модель» и подключаете MsSQL/MySQL/PostgreSQL. А тут у меня данные денормализированы. Тут мне нужен JSON/XML. На этом уровне модели мне нужно преобразование XML-JSON… какие тут у нас популярные библиотеки, протестируем… Эй, NuGet, maven, bower — по порядку рассчитайсь!


      1. 3draven
        11.11.2017 12:45

        Вы как мне кажется не со мной спорите… или не поняли мой коммент. Прочтите еще раз, до просветления.


        1. AlexZaharow
          11.11.2017 14:21

          я не спорю, что нужно знать, что есть алгоритмы. Я пытался расширить ваш комментарий. Просто думать только об алгоритмах мало. Очень много бизнес-задач не связаны ни с математикой, ни с алгоритмами от слова «никак» и несколько сортировок в программе на фоне общего объёма программирования — это ничтожная работа. В 99% случаев в бизнес-логике достаточно просто каких-то простых словарей и списков.


      1. lair
        11.11.2017 14:30

        Не многопоточность всплыла в какой-то момент, а вы решаете «Так, мне тут нужна многопоточность» и подключаете её. Или «Для этих данных нужна реляционная модель» и подключаете MsSQL/MySQL/PostgreSQL.

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


        1. ploop
          11.11.2017 14:57

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


          1. lair
            11.11.2017 14:59

            Формулируем задачу в как можно более общем виде

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


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

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


            1. ploop
              11.11.2017 15:12

              Для этого тоже нехилый навык нужен

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

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


              1. lair
                11.11.2017 15:22

                Но он сам по себе прокачивается при постоянном самостоятельном обучении

                Сам по себе? Не уверен. Это как с теми самыми паттернами — нужно почитать немного книжек, чтобы понять, что есть обобщенная проблема и ее решение.


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

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


              1. rinnaatt
                11.11.2017 16:43
                -1

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


                1. lair
                  12.11.2017 13:16

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


                  1. AlexZaharow
                    13.11.2017 14:20

                    нужно было когда-то про это прочитать

                    А чтобы про это когда-то прочитать нужно это когда-то написать. Дилемма.
                    Где же про это прочитал тот человек, который про это написал?


                    1. lair
                      13.11.2017 14:24

                      Где же про это прочитал тот человек, который про это написал?

                      Он это решение, в отличие от тех, кто ищет решение в интернете, придумал.


                      1. AlexZaharow
                        13.11.2017 16:35
                        -1

                        А как по вашему, насколько умным должен быть человек, который применяет найденное решение? Решение же не скачет как осёл из Шрека «Возьми меня, возьми меня!»
                        Поэтому человек, правильно применивший решение ничуть не глупее того, кто это решение придумал.
                        А ведь решение может быть ещё неверно описанным. И если человек, который его нашёл ещё и поправил? Ну как, ставки возросли?


                        1. lair
                          13.11.2017 16:38

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

                          "Достаточно умным".


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

                          Я где-то утверждал обратное?


                          1. AlexZaharow
                            13.11.2017 17:10

                            Я где-то утверждал обратное?

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


                            1. lair
                              13.11.2017 17:12
                              +2

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


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


                              1. AlexZaharow
                                13.11.2017 17:24

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

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


                                1. lair
                                  13.11.2017 17:27

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


                            1. TheShock
                              13.11.2017 17:40
                              +1

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

                              Я соглашусь с lair. Мне немного непонятен этот аргумент. Ты или понимаешь найденное решение, или не понимаешь. Если понимаешь, то зачем смелость? Если не понимаешь, то надо разобраться, понять и снова же — зачем уже смелость?


                              1. AlexZaharow
                                13.11.2017 22:05

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


                                1. lair
                                  14.11.2017 11:41

                                  Инсайт полностью непредсказуем и применять его в процессе промышленной разработки противопоказано!

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


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

                                  И что в этом смелого? Если вы можете ослабить влияние этого параметра?


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

                                  Ну обычное изобретение, миллионы их.


                                  1. AlexZaharow
                                    14.11.2017 13:46

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

                                    Ну обычное изобретение, миллионы их.
                                    Изобретение обычным не бывает по определению.

                                    Если вы можете ...?
                                    А если именно вы не можете?


                                    1. lair
                                      14.11.2017 13:53

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

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


                                      Изобретение обычным не бывает по определению.

                                      Бывает. Рутина.


                                      А если именно вы не можете?

                                      … тогда тем более что в этом смелого?


                                      1. AlexZaharow
                                        14.11.2017 15:32

                                        как могло возникнуть непонимание, если рамки постоянно очерчивались и подтверждались
                                        А непонимание возникло у вас с самого начала, когда вы написали, что мой подход непрофессиональный. Это ведь именно вы прокомментировали мой ответ, а не я ваш. Но поскольку мы про инсайт поговорили, то теперь вам должно быть понятно, что имелся в виду не конвеерный вид работы, а поиск неизвестного решения. Я же не говорил с самого начала, что мне непонятно что-то конкретно? Для этих целей я иногда хожу на тостер. Когда другие методы поиска решения исчерпаны и нужно хоть немного развеяться (спасибо хабру за тостер). Если вы хотите обсудить конкретно ваш метод разработки — заносите пациента.

                                        тогда тем более что в этом смелого?
                                        нет смелости — нет решения. Тогда копаете от забора и до обеда.

                                        Бывает. Рутина.
                                        А бывает не рутина. Стакан наполовину пуст или полон?


                                        1. lair
                                          14.11.2017 15:46

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

                                          … я ошибся? Или все-таки нет?


                                          Давайте я напомню весь обмен целиком:


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

                                          Вы уж определитесь, вы сам-то считаете свой подход профессиональным или нет (и в какой профессии, если уж мы занудствуем).


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

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


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


                                          нет смелости — нет решения.

                                          Ээээ… у меня вот смелости нет, а решения есть. Как так?


                                          А бывает не рутина.

                                          Напомню, что изначально вы сказали "изобретение обычным не бывает по определению". Бывает.


                                          1. AlexZaharow
                                            14.11.2017 16:38

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

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

                                            Напомню, что изначально вы сказали...
                                            Ну, я же не брал с вас слова, что вы не будете делать выводов, пока не узнаете весь мой контекст? Вы стали рассуждать, я поправлять в направлении моего контекста. В какой-то момент вы решили, что мы обсуждаем вас и я вам противоречу. В итоге я вам объяснил, что я имел в виду инсайт, а вы могли бы и предположить, что раз мы не обсуждаем конкретную проблему, то обсуждать сферическое универсальное решение в вакууме не имеет смысла. Да, сегодня существует много решений. Но когда подходишь к рубежу, то выясняется, что ещё больше проблем решений ещё не получили. Как можно найти решение за пределами того, что есть сегодня? Хотя есть и поговорка — удача — это 10% везения и 90% потения. Я говорю про 10%, без которых остальные 90% почти бесполезны. Вы говорите про 90%, но без этих 10% тоже бесполезны. В целом мы говорим об одном и том же.


                                            1. lair
                                              14.11.2017 16:46

                                              Да, ошиблись.

                                              В чем именно?


                                              Это только часть подхода.

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


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

                                              Ну вот ровно этой смелости у меня и нет. Этим бизнес занимается. Я предлагаю варианты и озвучиваю их плюсы и минусы.


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


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

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


                                              Как можно найти решение за пределами того, что есть сегодня?

                                              Изобрести его.


                                              Я говорю про 10%, без которых остальные 90% почти бесполезны.

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


                                              1. AlexZaharow
                                                14.11.2017 21:52
                                                -1

                                                Это всего лишь холодный расчет.
                                                Расчёт не бывает холодным.

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

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

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

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

                                                В чем именно?
                                                Докажите, что вы не робот.


                                                1. lair
                                                  15.11.2017 14:06
                                                  +1

                                                  Расчёт не бывает холодным.

                                                  Корпус русского языка с вами не согласен.


                                                  Мы не вас обсуждаем.

                                                  А что вы обсуждаете?..


                                                  Откуда вы это знаете, если конечные решения для них не найдены?

                                                  Из опыта.


                                                  Сказал человек, который считает применение инсайта в бизнесе непрофессиональным подходом.

                                                  "Инсайт полностью непредсказуем и применять его в процессе промышленной разработки противопоказано!"


                                                  Узнаете цитату?


                                                  Наполовину. Выберите ту половину, которая вам нравится.

                                                  "Почти" и "10%" — никак не половина.


                                                  Докажите, что вы не робот.

                                                  Не вижу смысла.


                                    1. Neikist
                                      14.11.2017 14:37

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


            1. Lugard
              11.11.2017 19:26

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


        1. AlexZaharow
          11.11.2017 18:02
          -1

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

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


          1. lair
            12.11.2017 13:16

            Для меня самого секрет как я выбираю «ингредиенты».

            Вы же понимаете, что это не очень профессиональный подход?


            1. AlexZaharow
              12.11.2017 14:29

              ))) Манипуляция?
              Вы же понимаете, что найти хорошее решение может даже и не профессионал?


              1. lair
                13.11.2017 11:39
                +2

                Вы же понимаете, что найти хорошее решение может даже и не профессионал?

                Понимаю.


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


                1. AlexZaharow
                  13.11.2017 13:37
                  -2

                  что его работа предсказуема

                  1. А если его работа не предсказуема, то он уже не профессионал?
                  2. А если решение оказалось непредсказуемым, то тоже не профессионал?
                  3. Да, предсказуема, но только на определённом круге задач в которых он крутится. Вышел за область задач и профессионализм предсказуемо закончился. Тут нужны другие навыки. (Кстати, вы не подскажите — какие?)
                  4. Только настоящий профессионал может объяснить почему что-то нельзя сделать. ;)

                  Видите, сколько ограничений у профессионала? Это же так ужасно — быть профессионалом!

                  P.S. галоши у него тоже профессиональные. «Баги были такими хитрыми и трудными, что было сразу видно, что их писали настоящие профи!»


                  1. lair
                    13.11.2017 13:41
                    +1

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

                    Да, именно так.


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

                    То это плохое решение.


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

                    Вас в этом что-то удивляет?


                    Видите, сколько ограничений у профессионала? Это же так ужасно — быть профессионалом!

                    Совершенно ужасно. Просто непереносимо. Не будьте профессионалом.


                    1. AlexZaharow
                      13.11.2017 14:19
                      -2

                      То это плохое решение.

                      Лучше плохое решение, чем его полное отсутствие, не так ли? И если профессионал не хочет принимать такой вариант, то дело плохо.

                      Вас в этом что-то удивляет?

                      Да. Удивление — основа всего. Даже профессионализма.

                      Совершенно ужасно. Просто непереносимо. Не будьте профессионалом.

                      (Осторожнее переходите на личности) Вы противоречия не заметили. Ужасно быть ограниченным профессионалом. (Профессионализм ведь не гарантирует отсутствие ограниченности)


                      1. lair
                        13.11.2017 14:24
                        +1

                        Лучше плохое решение, чем его полное отсутствие, не так ли?

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


                        Да

                        Что именно.


                        Вы противоречия не заметили.

                        Я и сейчас его не вижу. В чем же противоречие?


                        Ужасно быть ограниченным профессионалом.

                        Да. Непереносимо.


                        1. AlexZaharow
                          13.11.2017 16:32
                          -1

                          Решение, которое случайным образом считает сумму заказа…

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

                          Не так уж и трудно задачки решать
                          Проблема даёт вдохновенье.
                          Искусство же в том, чтоб суметь отыскать
                          Задачу, когда есть решенье.

                          Да. Непереносимо.

                          Хотите поговорить об этом?


                          1. lair
                            13.11.2017 16:34

                            Всегда можно придумать где такое может пригодиться.

                            Много что можно придумать. Но задача разработчика — решать задачи заказчика.


                            1. AlexZaharow
                              13.11.2017 16:46

                              решать задачи заказчика

                              Вот! Главное, когда заказчик остаётся доволен. Ему же не важно, кто придумал решение? Главное, что оно должно быть проверено. А придумано оно может быть и не профессионалом. Задача профессионала — подтвердить, что найденное решение является качественным и оно удовлетворяет требованиям заказчика.


                              1. lair
                                13.11.2017 16:47

                                Ему же не важно, кто придумал решение?

                                Ему важно, что если ему сказали, что решение будет на этой неделе, то оно будет на этой неделе.


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

                                Ну то есть вместо одного профессионала, нужен непрофессионал, чтобы придумать, и профессионал, чтобы подтвердить.


                                1. AlexZaharow
                                  13.11.2017 17:19

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

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


                                  1. lair
                                    13.11.2017 17:21
                                    +1

                                    Ну, такую парочку легко найти в любой средней конторе — аналитик и разработчик. Угадайте, кто из них непрофессионал?

                                    В хорошей конторе — никто.


                                    Как вы разговариваете с заказчиком, когда не можете найти решения за неделю?

                                    Если я обещал предоставить это решение за неделю? С извинениями и объяснениями.


                                    Ну, не знаете вы, сколько времени займёт решение, но не хотите отказываться.

                                    Если я не знаю, сколько времени займет решение, я так и говорю.


                                    1. AlexZaharow
                                      13.11.2017 17:49
                                      -1

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


                                      1. lair
                                        13.11.2017 18:01

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

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


                                        Пока решение не найдено — профессионализм побоку.

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


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


                                        1. AlexZaharow
                                          13.11.2017 19:10

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

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


                                          1. lair
                                            14.11.2017 11:39

                                            А вы знаете как вы придумываете решения к задачам, к которым решения ещё не придуманы?

                                            Обычно да.


                                            Наверняка у вас есть хоть одна, но такая задачка, решением которой вы внутри гордитесь и что ни у кого нет её решения?

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


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

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


                                            Скажите что-то лучше в этом направлении, а не «обещал за неделю».

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


                                            1. AlexZaharow
                                              14.11.2017 14:03
                                              -1

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


                                          1. vitaly71
                                            14.11.2017 16:45

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


                                            1. AlexZaharow
                                              14.11.2017 22:34
                                              -1

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


                1. Imrahil
                  14.11.2017 11:04

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


                  1. lair
                    14.11.2017 11:37

                    Да, понимаю.


  1. AlexZaharow
    11.11.2017 11:11

    «Опыт — сын ошибок трудных» АС Пушкин.
    «Ничто не ново — только мы»
    Меня опыт научил двум вещам
    — декомпозиция задачи
    И
    — как не надо делать


  1. SLenik
    11.11.2017 11:24
    +1

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

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


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

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


    Уверен, шаблоны разработки ПО (я про работу GoF), приносят не меньше пользы.


    И курсы с реальной практической пользой имеются. И лекторы с опытом — тоже (от меня один пример: Д.Ю. Ватолин и его курс "Алгоритмы сжатия данных", который по сути является отборочным для попадания в лабораторию компьютерной графики ВМК МГУ).


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


    1. SLenik
      11.11.2017 11:40

      И подчеркну: я не уотверждаю, что практика — это плохо.


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


  1. dcc0
    11.11.2017 11:29

    Консвенным образом я заработал на habr-e. Нашел одну из своих работ благодаря некоторой активности тут. И некоторое время поработал самым младшим программистом. Было интересно.


  1. sbnur
    11.11.2017 11:30

    И триаде (знания — умения — навыки) знания все же стоят на первом месте.
    Умения без знаний — это такое аникейство


    1. Kroid
      11.11.2017 12:42
      +1

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


      1. sbnur
        11.11.2017 13:14
        +1

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


        1. Kroid
          11.11.2017 13:49

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

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

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


          1. sbnur
            11.11.2017 19:40

            Ну-ну — почитайте хотя бы википедию


          1. M4s4mune
            13.11.2017 16:44

            На триаде этой «классификации от балды» была построена система образования СССР, которая делала из селюков и гопников, для который сейчас после ЕГЭ на армейских камазах вешают таблички «антифриз-яд», инженеров, смогших в космос и атом.
            Учителя-пенсионеры, которые сами получили профессию учителя в этой системе, всё ещё помнят об этом.


            1. Kroid
              13.11.2017 21:30

              Апелляция к авторитету? Аргумент затмевает авторитет


              1. M4s4mune
                14.11.2017 13:38

                Уже нет. Практический жизненный опыт. Помогаю соседскому лоботрясу осилить школьную программу. Столкнулся с тем, что он стал справляться с заданиями, но не укладывался по времени. Компенсировал это тем, что заставил его прорешать множество однотипных задач. До автоматизма. Теперь его проблема только в режиме: если не выспится, то косячит по невнимательности, он лютая сова. Если контрольная ближе к середине дня или позже, то на одних и тех же по сложности задачах количество ошибок падает. А в спокойной обстановке ошибок ноль.
                Я пообщался со своей матерью на эту тему, спросил почему так. Она у меня по образованию сурдопедагог-дефектолог, оттрубившая 15 лет в интернате для глухих. A это специфика, там кроме навыков учителя ещё и требуется куча всего сопутствующего вроде психологии, психиатрии, простой логопедии, поскольку у глухих редко 100% глухота и их в таких интернатах учили хоть немного, но говорить, дабы сформировать письменную речь, а для этого нужно правильно поставить звуки, да еще и оценить интеллект, определить отставание в развитии и найти психические отклонения, если они есть. Весь этот букет часто сопутствует глухоте. Вот она как раз мне и объяснила, что задача учителя дать знания, сформировать умение, а затем превратить это умение в навык. Навык — это доведённое до автоматизма умение. Оптимизация нейронных связей и вызов с минимальным энергопотреблением.
                В детстве вы учились застегивать молнию. Для начала ваша мама показала вам как пользоваться молнией. Она дала вам знание. Потом вы своими детскими пальчиками осваивали моторику попадания в бегунок молнии. Это требовало концентрации и управления моторикой пальцев и рук. Это переросло в умение и требовало в школьном возрасте просто отвлечься, чтобы взглянуть на молнию при попадании в бегунок. И во взрослом мире вы не задумываетесь о молнии, вы поддерживаете разговор во время того, как одеваетесь, у вас нет необходимости смотреть на бегунок, прикосновения бегунка к определенным зонам кожи пальцев активируют движение, вставляющее молнию в бегунок. Это навык.
                P.S. Вам ведь не более 25 лет, так? Свержение авторитетов естественная физиологическая потребность молодого организма, она сопутствует становлению личности и отвоеванию личного пространства у мира для себя любимого. Это место будет дальнейшей стартовой площадкой движения в социуме. После занятия в социуме или конкретной его группе такого места, которое ставит вас в положение разводящего споры, особенно техничесике, или локальной истины в последней инстанции, с достаточным материальным снабжением, перестаёшь барахтаться и работать социальными локтями и начинаешь осознавать, что все подряд авторитеты сносить не нужно было, или тот парень говорил на самом деле правильные вещи, а его затоптали потому что он не колебался вместе с линией партии той социальной группы, к которой его ошибочно отнесли.
                Я тоже самоучка, только мне 33-й год и сейчас я вижу те пробелы, которых бы у меня не было, иди я другим путём. С другой стороны, именно это не нагрузило меня шорами ошибки выжившего, что помогло разобраться с нетривиальной проблемой, в которую стучатся лбами академики, и найти для неё красивый workaround, очевидный, лежащий на поверхности, но никем не замечаемый в силу шор профильного образования людей, бьющихся над проблемой.
                Пока вы молоды, вы готовы рушить всё подряд и отстраивать заново, энергии полно и её тратите не считая. Вы в силу таланта и упёртости самообучаемости можете рано состояться как профессионал, но социум инертен и вас не принимает до поры до времени, вы подобны кирпичу, входящему в полёте в реку социума. Именно эту неуёмную энергию ушлые дельцы легко канализируют в свою пользу, используя вас в своей организации в качестве тяговой силы бизнеса или пуская на пушечное мясо в войнах или революциях. Поэтому чем раньше вы начнёте видеть, когда вы с кем-то сотрудничаете над совместным интересным заданием с обоюдной выгодой и когда вас приглашают на галеры в качестве расходника, тем лучше.
                Аксиома социума такова, что всегда найдётся человек, которому лень думать головой и ему проще сделать кучу телодвижений вместо вас. Если возьмёте книги по нейрофизиологии, то окажется, что думать головой более энергозатратно, чем работать физически.
                А вторая аксиома такова, что дети, доросшие до подросткового возраста перестают слушать то, чему учат их родители, и предпочитают набивать шишки самостоятельно. Единицы приходят с шишкой к родителю и спрашивают, почему они её набили. И ещё меньше воспринимают чужой опыт, не набив своих шишек, особенно если предварительно им хоть немного наступили на болезненный мозоль — самолюбие и раздраженное неудовлетворенное ощущение своего места в социуме.


                1. Kroid
                  14.11.2017 14:11
                  +1

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

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

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

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

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


                  1. M4s4mune
                    14.11.2017 14:55

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

                    Именно таким путем и нужно обучать.

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

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


                    1. Kroid
                      14.11.2017 16:12

                      Я учился в школе и видел, как это всё реализовано. К математике это относится в меньшей степени, но все равно присутствует.

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

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

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

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

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

                      Хотя, чтобы ребёнок не совал руки в огонь достаточно одного ожога и недостаточно тысячи раз повторенного запрета.
                      Одним комментарием выше я уже писал, что запреты сами по себе, без понимания, не действуют. А что в ответ? «Я объясняю очень объёмными информационными пакетами… [..]» Давайте я к вам слепого от рождения приведу, посмотрю как вы объясните ему, что такое зеленый цвет и чем он отличается от красного.


                      1. tetramino
                        14.11.2017 17:00

                        Я учился в школе и видел, как это всё реализовано.

                        Генерализация частных случаев во все поля. Если в вашей школе (вашем вузе и т.п.) что-то было плохо, это совсем не обязательно присутствует повсеместно.

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

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


                        1. Kroid
                          15.11.2017 13:24

                          Генерализация частных случаев во все поля. Если в вашей школе (вашем вузе и т.п.) что-то было плохо, это совсем не обязательно присутствует повсеместно.
                          Две школы, два колледжа, один институт. И все это в Москве. Будучи подростком, меня сильно дергало в разные стороны :)

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


                          1. tetramino
                            15.11.2017 16:08

                            Две школы, два колледжа, один институт. И все это в Москве. Будучи подростком, меня сильно дергало в разные стороны :)

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

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


                      1. MacIn
                        14.11.2017 17:16

                        Я учился в школе и видел, как это всё реализовано. К математике это относится в меньшей степени, но все равно присутствует.

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

                        Вам не повезло со школой в таком случае.


                      1. alexeykuzmin0
                        14.11.2017 17:36

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


                        1. Kroid
                          15.11.2017 13:19

                          Я в плане эмоциональных переживаний, не про цифры.


                          1. alexeykuzmin0
                            15.11.2017 14:20

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


                      1. M4s4mune
                        14.11.2017 17:43

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

                        Вы вопиёте в пустыне о том, что окружающие вас люди не думают. Да, так и есть. Причину назову в третий раз — это энергозатратно. Любой организм тратит только избыточную энергию, которую некуда сложить. Имею наглость утверждать, что думающий человек, который составляет длинные мысли, имеет незаметные глазом физиологические отличия от общечеловека.
                        И думающих людей — мало. Энергетически дешевле думать лозунгами, слоганами, маркетинговым bullshit'ом, скопированной внешне образа модели поведения с лидера движухи или киногероя.
                        Именно осознание своего отличия позволяет включить инженера и научиться работать с окружающими тебя людьми для решения тех задач, которые ты ставишь перед собой. Заглушив эмоции. Как с конечными автоматами высокой сложности.
                        Есть вопрос и есть правильный ответ на него. Это всё. Троечники не знают ответ. Хорошисты и отличники зубрят ответ на каждый вопрос, а потом отвечают на вопросы, будто применяют нужный ключ из связки к нужному замку, не понимая, о чем они вообще говорят. Учителя ставят оценки точно так же.

                        Это следствие неизбежной деградации любой системы. Карго культ в том смысле, который в него вкладывал Ричард Фейнман.
                        Еще раз повторяю. Методология образования СССР позволила засунуть в головы детей людей, которые поколениями пахали землю, огромный объем информации. Те из них, которые оказались такими же думающими мутантами, как и мы, выстрелили как успешные учёные и инженеры.
                        Я просто открываю глаза и смотрю на мир вокруг, на окружающих меня людей. И понимаю, что эти ваши методики в реальности не работают.

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

                        Я банально в вас вижу недавнего себя, ничего больше. Сам бегал с такими тараканами и задавал такие вопросы аж до 31 года. И так же бомбил, от того, что мне кто-то говорит готовый ответ на мой вопрос вместо того, чтобы я допёр до него сам. Обратная сторона самоучки — сложность с восприятием неприятие коротко сформулированного готового ответа или знания. Дайте сыграем в игру: ваш знак зодиака весы, рак, овен или козерог?
                        Давайте я к вам слепого от рождения приведу, посмотрю как вы объясните ему, что такое зеленый цвет и чем он отличается от красного.
                        Давайте. Слепота она ведь разная бывает. Слепые могут видеть цвета и свет, но не иметь возможности что-то разглядеть. Темнота тоже бывает, тут немного сложнее. В любом случае сработает компенсация организма вцелом: слепота компенсируется обострением слуха и осязания. Следовательно, светя на кожу интенсивным светом разных цветов, тепловые ощущения для слепого будут разные. Зрячий человек на такую разницу внимания не обратит.


                        1. Kroid
                          15.11.2017 13:18

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

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

                          Методология образования СССР позволила засунуть в головы детей людей, которые поколениями пахали землю, огромный объем информации.
                          Лично на мой взгляд — лучше давать даже на порядок меньше информации, но чтобы хорошенько ее освоили. Хорошую базу и навык вывести всё остальное самостоятельно, если понадобится. От того, что на «складе» лежит целая куча разных штук, о которых хозяин забыл уже на следующий день, толку немного.

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


                          1. M4s4mune
                            15.11.2017 15:27

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

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


                            1. Kroid
                              15.11.2017 19:07

                              То, что ниже — сырой поток мыслей, читать на свой страх и риск.

                              Это будет катастрофа.
                              [..]
                              А вы предлагаете наплодить толпу специалистов по какому-то конкретному кусочку.


                              Я не о том.
                              В моем представлении, есть две основных, относительно непересекающихся штуки, на которых работает интеллект, неважно естественный или искусственный:
                              1. Свидетельства. Факты, наблюдения, показания датчиков, истории. Одним словом — множество кусочков с информацией об окружающем мире, каждый из которых для отдельно взятого человека обладает своей степенью достоверности. Что-то ты рассчитал сам, до 5 знака после запятой, а о чем-то сказал сосед за бутылкой пива.
                              2. Способность к самомодификации, саморазвитию. Логика, критическое мышление, способность из известного набора свидетельств получать новые, неизвестные до этого свидетельства. Самостоятельный поиск новых знаний по интересующей теме, их анализ.

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

                              Всё остальное время тратить за развитие способности к самообучению. Детям интересны самые разные вещи — пусть самостоятельно делают какие-то свои проекты. А если какая-то область заинтересовала — пусть двигается по ней.

                              Назовем это начальным образованием. Классов 7-8.

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

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

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

                              Главное, не собирать 30 человек в одном классе и не читать им одну, заранее придуманную программу. Не зафиксировать количество лет обучения. Вообще забить на деление по годам обучения. Пусть каждый движется в своем ритме. Чтоб был очень минимальный обязательный минимум, а остальное — по желанию. И чтобы можно было в любой момент после взятия этого минимума уйти, поработать, а потом вернуться и продолжить.


                              1. M4s4mune
                                15.11.2017 19:53

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

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

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


                        1. alexeykuzmin0
                          15.11.2017 14:17

                          Причину назову в третий раз — это энергозатратно
                          Строго говоря, мы не можем этого утверждать:
                          Although quite a few studies have confirmed these predictions, the evidence as a whole is mixed and most of the changes in glucose levels range from the miniscule to the small. (источник)
                          Есть множество причин, по которым в большинстве случаев люди предпочитают пользоваться Системой 1 вместо Системы 2, и самая, на мой взгляд, важная заключается в том, что Система 1 быстрее. Миллионам поколений наших предков нужно было быстро, не задумываясь, принимать решение о том, куст перед ними, самка или хищник, и естественный отбор создавал давление в направлении использования Системы 1 повсеместно, а Системы 2 — лишь в некоторых определенных моментах.


                          1. M4s4mune
                            15.11.2017 14:31

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

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


                            1. alexeykuzmin0
                              15.11.2017 14:41

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


                              1. M4s4mune
                                15.11.2017 14:54

                                А теперь перечитайте мой пост выше. Если длина нейронной связи сократились, как это отразится на её быстродействии вцелом?


                                1. alexeykuzmin0
                                  15.11.2017 16:04

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


                                  1. M4s4mune
                                    15.11.2017 18:17

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

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


                                    1. tetramino
                                      15.11.2017 20:11

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


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


        1. Fedcomp
          11.11.2017 21:05

          Знания кстати методом тыка развиваются тоже вполне себе.


        1. Lugard
          12.11.2017 00:11

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


    1. lxsmkv
      11.11.2017 13:13

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

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

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


      1. navion
        12.11.2017 01:22

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


  1. VezhLos
    11.11.2017 11:30
    +1

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


    1. balexa
      11.11.2017 12:39

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


      1. DistortNeo
        11.11.2017 14:45

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


    1. cosmosromantica
      11.11.2017 14:19

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


      1. ru_vlad
        11.11.2017 14:49
        +1

        студент приходит устраиваться на работу и говорит, что умеет формы лепить верстать в Delphi.

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


      1. DistortNeo
        11.11.2017 14:50

        Давайте разделять знание алгоритмов и азов программирования (типы данных, железо, основные операции), знание технологий (фреймворки, современные ЯП) и умение писать код (SOLID, системы контроля версий и т.д.).

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


        1. ploop
          11.11.2017 15:04

          Так вот, в вузах преподают только алгоритмы и азы программирования, но не преподают всё остальное

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


          1. DistortNeo
            11.11.2017 15:13

            А вот не факт. Когда человек фигачит на JS или Python, не понимая, как вообще числа представляются в памяти компьютера, становится грустно.


            1. Fedcomp
              11.11.2017 21:14
              -1

              а зачем ему это понимать?


              1. DistortNeo
                11.11.2017 21:37
                -1

                Чтобы не писать говнокод.


                1. ploop
                  12.11.2017 13:28

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

                  Да, эти знания мне пригодятся в последующем при разработке на JS, но только малая часть из них, которую и так постепенно освоит тот, кому это интересно.

                  писать говнокод

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


                  1. DistortNeo
                    12.11.2017 14:34
                    +1

                    Да, эти знания мне пригодятся в последующем при разработке на JS, но только малая часть из них, которую и так постепенно освоит тот, кому это интересно.

                    В том-то и проблема, что не освоит. А если и освоит, то постфактум через пинки от коллег.


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


                    1. ploop
                      12.11.2017 17:42

                      В том-то и проблема, что не освоит. А если и освоит, то постфактум через пинки от коллег.

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

                      Просто это не «сферический самоучка в вакууме», такие бывают. Если их мало — жаль.


                      1. Tiendil
                        12.11.2017 17:50

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


                    1. Fedcomp
                      14.11.2017 01:29

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



          1. lair
            11.11.2017 15:23

            Да не легче, в том-то и беда. Переучиваться сложнее, чем учиться.


            1. masterspline
              12.11.2017 16:46

              Нарабатывать новые навыки, однозначно, сложнее (например, научиться писать левой рукой). А вот с получением новых знаний все зависит от степени упертости и раздутия ЭГО (оно же ЧСВ). Если ты готов признать, что твои познания предмета не идеальны и новая теория (технология) может улучшить их, то ты просто садишься и изучаешь ее, даже если там все поставлено с ног на голову. Вопрос лишь в том, помогут ли новые знания ответить на практические вопросы или же это очередной способ надеть штаны через голову. Существующие знания будут слегка притормаживать изучение нового, но не сильно.


              1. Crandel
                13.11.2017 11:14

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


              1. lair
                13.11.2017 11:41

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

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


          1. tetramino
            14.11.2017 13:24

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

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


        1. Stopy
          12.11.2017 11:34

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


          1. AlexZaharow
            12.11.2017 13:16

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


        1. tetramino
          14.11.2017 13:22

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

          Вы во все вузы позвонили и опросили студентов? В своё время нам преподавали «фреймворки, современные ЯП» и т.п., учили культуре кода. Позже я и сам это преподавал. Может, надо было нормальный вуз выбрать?


  1. gnefedev
    11.11.2017 11:32

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


  1. Gorthauer87
    11.11.2017 11:44
    -1

    С таким подходом выше определенного уровня не прыгнуть. Рано или поздно нужно учить computer science


  1. kraso4niy
    11.11.2017 12:12

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


    1. tetramino
      14.11.2017 13:47

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

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


  1. artemyan
    11.11.2017 12:22

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


    1. a-tk
      11.11.2017 13:11

      Совет прекрасно работает не только для самоучек, но и для учащихся методично.


    1. hexploy
      13.11.2017 14:02

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

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


  1. untyped
    11.11.2017 12:40

    Грубо говоря, я бы назвал два основных типа специалистов — "карьеристы" и "профессионалы".


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


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


    Для "карьериста" то же высшее или специальное образование обязательно, для "профессионала" — нет.
    А причина в том, что образование может дать только теорию, самообразование же даёт практику, т.е. тот самый опыт который и необходим для того, чтобы стать профессионалом.
    И я имею ввиду именно настоящее самообразование, а не тот вариант в котором за 4 дня прочёл книгу "Научись C++ за 21 день" и сидишь 17 дней, ждёшь когда станешь супер-программмистом.


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


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


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


    1. alexeykuzmin0
      14.11.2017 18:01

      Посещение очередных курсов и получение корочки или сертификата даст ему намного больше «плюшек».
      Разве корочки и сертификаты в IT хоть немного котируются?
      А диплом и «профессионалу» сильно пригодится, если он захочет визу рабочую получить, чтобы быть больше в курсе новинок.


      1. tetramino
        14.11.2017 18:22

        Разве корочки и сертификаты в IT хоть немного котируются?

        Да, на них смотрят при анализе резюме, знания по ним проверяют на собеседовании, за них часто дают надбавки и т.п… В отделе разработки банка, где трудится моя сестра, за степень кандидата даётся надбавка в размере 10%.


  1. PapaBubaDiop
    11.11.2017 12:52
    +1

    В программном продукте программирования — процентов 10. Остальное надо учить. Руби, брю, градл, хипчат, гит, битбаскет, жира, дженкинс, бамбу, гиркин, 3-rd party сервисы — освоишь всю эту мухарейку, то может и попрограммируешь чуток, и то вряд ли.

    В этой кухне и json покажется языком программирования…


    1. NeverIn
      11.11.2017 13:09

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


      1. DistortNeo
        11.11.2017 14:59

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

        > В каждой технологии уже есть что-то работающее очень хорошо чтобы писать своё такое же.

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


        1. Pixfrogfree
          11.11.2017 19:26

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

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


          1. Zezst
            11.11.2017 20:41

            Ага, стоят они так, и в один голос твердят:
            — да ну? Зачем? Уже давно все за тебя написали, зачем еще один велосипед?


        1. Zezst
          11.11.2017 20:54
          +1

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


          1. DistortNeo
            11.11.2017 21:49

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

            Ну вот у меня такие примеры, когда время было потрачено не зря:


            1. Почему-то не заработал в C++ MySQL Connector. Точнее, заработал, но с дикими глюками. 2 дня пытался их побороть — не вышло. В итоге ещё за 2 дня запилил свою реализацию коннектора по документации сетевого протокола, ещё и с поддержкой асинхронщины.


            2. В месте, где нет интернета, столкнулся с чем, что .NET HttpClient отказывался работать с сервером, т.к. сервер отвечал не по понятиям. Интернета нет, поэтому за 1.5 часа написал минимальную реализацию HttpClient, которая смогла работать с этим сервером. Как потом оказалось — проблема решалась каким-то флагом, но интернета же нет, а проблему решить надо было.


            3. Linq2Db. А вот такого монстра самостоятельно уже не переписать. Пришлось мириться с фичами библиотеки и добавлять некоторое количество костылей для её нормальной работы.


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

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

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


    1. Gorthauer87
      11.11.2017 13:17

      Мир не только из веба состоит.


      1. PapaBubaDiop
        11.11.2017 13:26

        Будете смеяться, но проект — нативное мобильное приложение под iOs.


        1. Gorthauer87
          11.11.2017 15:28

          Ну это все где то рядом.


        1. lpwaterhouse
          11.11.2017 16:33
          -2

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


  1. leossnet
    11.11.2017 12:56

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


  1. Tiendil
    11.11.2017 12:57
    -1

    Один из наиболее вредных текстов, которые видел за последние пару лет.

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

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


    1. DistortNeo
      11.11.2017 15:00

      Так вам знания нужны или умение решать проблемы?


      1. Tiendil
        11.11.2017 15:28

        Без знаний, решить какие-либо сложные проблемы не выйдет. Получится CDD (crutch/костыль driven development).

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

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

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


        1. DistortNeo
          11.11.2017 17:05

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

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

          > Например, собеседовал лида, который не мог своими словами рассказать про жизненный цикл ПО.

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


          1. Tiendil
            11.11.2017 17:12

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

            >А что, где-то учат на лидов?
            Учат не на кого-то, а чему-то.

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


            1. DistortNeo
              11.11.2017 17:42

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

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


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

              Про ВУЗы — первый раз слышу, чтобы там что-то подобное было. А чтение литературы — это признак самоучки.


              1. Tiendil
                11.11.2017 17:51

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

                >А чтение литературы — это признак самоучки.
                о_О Это признак человека, который учится.


                1. DistortNeo
                  11.11.2017 18:22

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

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


                  о_О Это признак человека, который учится.

                  А где контроль обучения?


                  1. Tiendil
                    11.11.2017 18:31

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

                    Не вижу как ваш пример относится к обсуждению.

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


              1. calisto
                12.11.2017 11:34

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


                1. quantum
                  13.11.2017 12:05

                  От ВУЗа и преподавателя многое зависит. Да у нас рассказывали про водопадную и итеративную разработку, но нудно и с бумажки. Каких-то америк особых не открывали


                  1. calisto
                    13.11.2017 13:28
                    +2

                    От студента все зависит: он или берет учебный план и рабочую программу и прорабатывает все как следует или ноет и скидывает на препода свою работу в виде «изучить» и «понять».


                    1. igninus
                      14.11.2017 12:02
                      -1

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


                      1. Tiendil
                        14.11.2017 13:05

                        Тратить время и силы на просиживание штанов действительно не надо. Тратьте на учёбу.


                      1. calisto
                        14.11.2017 14:26
                        +1

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

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

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


                1. alexeykuzmin0
                  14.11.2017 18:20
                  +1

                  в ВУЗе сейчас учат жизненному циклу ПО, и как писать документацию, и как план составлять, и как стоимость оценить, и посчитать кто из специалистов нужен и сколько на кого повесить делать и т.п
                  Закончил ВМК два года назад. НИЧЕГО из этого нам не преподавали.


                  1. calisto
                    14.11.2017 18:30

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


                    1. tetramino
                      14.11.2017 18:38
                      +1

                      Не предполагает, специальности ВМК к программированию (по ОКСО) отношения не имеют.


                    1. alexeykuzmin0
                      15.11.2017 14:23

                      «Прикладная математика и информатика» указано на сайте. Вечером посмотрю диплом, укажу точно с кодом.


                      1. tetramino
                        15.11.2017 16:15

                        010302 код, если мне память не изменяет, направления деятельности:
                        1. Общий профиль.
                        2. Математическое и информационное обеспечение экономической деятельности.
                        3. Математическое и информационное обеспечение экономической деятельности.

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


                  1. tetramino
                    14.11.2017 18:37
                    +1

                    ВМК, если мне память не изменяет, не выпускает программистов. Коды специальностей (согласно ОКСО) относятся к 1 группе «Математические и естественные науки», тогда как программисты находятся в группе 2 «Инженерное дело, технологии и технические науки». Вам не должны были давать компетенций, не прописанных в профессиональном стандарте профессии, под которую созданы специальности ВМК.


              1. tetramino
                14.11.2017 13:57

                Про ВУЗы — первый раз слышу, чтобы там что-то подобное было. А чтение литературы — это признак самоучки.

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

                А чтение литературы — это признак самоучки.

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


                1. DistortNeo
                  14.11.2017 19:30

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

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


        1. Snow-ghost
          11.11.2017 19:26
          +1

          Знания — знаниям рознь. Если человек знает как решить сложную задачу, которая непосильна другим, но не знает теории, которую изучал очень давно, то он явно нигде не сможет устроиться с таким подходом к собеседованиям. Собеседования для тех, кто недавно закончил ВУЗ гораздо проще проходить, чем тем, кто имеет реальный большой опыт… Лично по себе знаю — я не смогу быстро ответить на теоретические вопросы, просто по той причине, что теорию изучал в ВУЗе 12-17 лет назад, но все это время развивал практические знания, которые постоянно используются в работе. База-то есть, но Вам (к примеру) не подойду из-за полузабытой теории, хоть и могу решить без проблем очень сложные задачи )


          1. Tiendil
            11.11.2017 20:42
            +2

            >Если человек знает как решить сложную задачу, которая непосильна другим, но не знает теории
            Я вижу тут противоречие.

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

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


  1. Legion21
    11.11.2017 13:01
    -1

    Для меня разработка ПО больше искусство чем наука… а искусство требует не теоретиков а практиков)


    1. lair
      11.11.2017 14:32

      искусство требует не теоретиков а практиков

      Искусствоведение смотрит на вас с недоумением.


  1. a-tk
    11.11.2017 13:06

    Когда я в своё время «помогал» отдельным нерадивым студентам-программистам делать всякие там лабораторные и курсовые по программированию, был у меня забавный случай.
    «Постоянная клиентка», глядя на очередное изваяние по алгоритмам, со стеклянными глазами смотрела на код и бормотала: «Я зачем я пошла сюда учиться?». На мой вопрос: «И зачем же», ответ был: «Думала, научат». На тот момент в трубу ушло 3 года. Но ещё 2 тоже были.
    К слову, я тоже самоучка.
    Вот только самоучительствовать надо правильно: практика практикой, но теорию почитывать тоже лишним совсем не будет.


    1. KumoKairo
      11.11.2017 13:17

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


      1. a-tk
        11.11.2017 13:24

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


    1. 3draven
      11.11.2017 13:21

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


      1. a-tk
        11.11.2017 13:29

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


        1. 3draven
          11.11.2017 13:35

          Конечно нужны, но второстепенны… на втором месте)


      1. nikolayv81
        13.11.2017 20:02

        Только интерес к изучению нового прививается сильно раньше чем люди идут получать ВО. И в этом возрасте дети на своё развитие фактически повлиять не могут.


  1. programania
    11.11.2017 14:19

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


    1. ploop
      11.11.2017 15:17

      И всегда стремиться к максимальной полезности при минимуме усилий

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


    1. vita_soft
      11.11.2017 19:27
      +1

      Согласен. 18 лет назад начал с нулевого уровня программирования под Windows (Delphi 2). до этого был опыт на паскале в конце 80 под PDP 11. Хватило 3 месяцев обучения на чужом проекте плюс чтение 1 книги чтобы сдать проект. Работал по сути за интерес и еду, но после этого зарабатывал на жизнь только программированием. И ничего не делал бесплатно — никаких пилотных и демо проектов, прототипов — все за наличное бабло с предоплатой, пусть дешевле ( но не сильно) если чего- то не знал или в чем-то был не уверен. Ибо осознание того что тебе платят за работу является самым мотивирующим фактором в обучении. И таки да — много читать чужой код просто необходимо. Если ты этому научился то потом по сути все равно в какой среде и какой язык программирования использовать (конечно с учетом личных предпочтений — например вот от веб — технологий меня тошнит).
      Но самое главное — все таки наличие правильно организованных мозгов и базовое техническое высшее. Первое от Бога, второе в Ваших руках.


  1. illussioncat
    11.11.2017 14:19

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


  1. akhmelev
    11.11.2017 14:42
    +1

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

    20 лет уже работаю, где только не был: и в самоделкиных, и в госпроектах, и на галерах, и в ВУЗе. Мой (и не только) вывод неплохо согласуется с принципом Парето:
    20% теории 80% практики.

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


  1. Scf
    11.11.2017 14:48
    +2

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


  1. F0iL
    11.11.2017 15:13

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

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

    В университете на 2-м курсе мы пытались понять разложение в ряды, преобразование Фурье, насиловали мозг дифурами, было тяжело и муторно. А на 3-м курсе начались профильные дисциплины про обработку сигналов и автоматическое управление, где весь этот матан лежал в основе и имел первоочередное значение, и мы с одногруппниками пошли в библиотеку снова за прошлогодними книгами, перечитывая все уже с осознанием важности этого и понимая основы на совсем другом уровне.

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


    1. Fedcomp
      12.11.2017 02:51

      у вас компилятор преобразование фурье делает при выбросе эксепшена? А расскажите где в GC жесткий матан. Мне аж интересно стало.


      1. arheops
        12.11.2017 09:57

        Нет, матана в GC, конечно, нет. Зачем он там. Зато там есть ОЧЕНЬ, НЕВЕРОЯТНО жесткий лексический анализатор, который, пожалуй, без знаний из теории алгоритмов не осилит в текущей реализации уже НИКТО. Каким бы вундеркиндом он не был.


        1. iehrlich
          13.11.2017 06:02

          ОЧЕНЬ, НЕВЕРОЯТНО жесткий лексический анализатор, который, пожалуй, без знаний из теории алгоритмов не осилит в текущей реализации уже НИКТО

          Расскажите подробнее, пожалуйста :)


          1. arheops
            13.11.2017 06:10

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

            Я не эксперт в теме лексического анализа, для меня flex это нечитаемый текст.

            Если вы хотите самообразовываться в данном направлении — сначала ищете университетский курс теории алгоритмов, потом гуглите Flex,Bison.
            Без знаний о теории чтение этих исходников вызывает только фейспалмы типа «как это вообще может работать». Да и со знаниями — тоже.


            1. iehrlich
              13.11.2017 06:17

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


              1. arheops
                13.11.2017 06:20

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


                1. staticlab
                  13.11.2017 07:34

                  Под GC в этой ветке изначально понимался garbage collector. Зачем вы путаете людей и приплели тут компилятор GCC?


          1. tyomitch
            13.11.2017 14:50

            А можно я расскажу? Только не про GCC, а про CPython.
            habrahabr.ru/post/314062
            Там тоже синтаксический анализатор написан так, что никто из нынешних разработчиков не понимает, как он работает, и не собирается разбираться. «Работает, и не трожьте!»


      1. F0iL
        12.11.2017 10:37

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


        1. Fedcomp
          14.11.2017 00:45
          +1

          Т.е вы считаете что не имея образования невозможно разобратся в принципах простого garbage collector?


          1. F0iL
            14.11.2017 20:07

            Покажите, где я об этом говорил? Причем здесь вообще «образование»?
            Я говорил, что «методом тыка» «через практику» знания об этом получить будет не так-то просто.
            На какое время ваша реализация GC делает stop-the-world и насколько часто это происходит? (это, кстати, очень важно при написании высокопроизводительного или realtime- кода). При каких конкретно условиях происходит запуск уборки? Зачем нужен паттерн Disposable? Как поведет себя GC при циклических ссылках? А уж самое интересное начинается, когда совместно используются объекты из мира с GC и из мира без GC (например, COM-объекты в .Net), или даже когда используются объекты из двух миров, у каждого из которых свой GC (фронтенд-код на JavaScript взаимодействует с объектами внутри движка браузера на C++).
            Если вы пишете хоть что-нибудь серьезное, и вы хотите сделать это хорошо — скорее всего, вам не помешает это знать. С некоторой частью вещей из этого можно столкнуться при разборе проблем возникших на практике (если повезет встретиться с этими проблемами), о другой части вещей из этого можно узнать основательно посидев с профилировщиком делая разные тесты, однако целостные и структурированные знания вам даст документация и литература. Но это уже не джуниорский уровень (о котором речь идет в исходной статье).


    1. Fedcomp
      14.11.2017 02:25

      А расскажите что такого сложного в exception из C++ что их механизм работы нельзя понять без образования?


      1. F0iL
        14.11.2017 20:14

        Еще раз, причем здесь вообще образование? Речь про изучение теории в дополнение к «обучению через практику». Автор обсуждаемой статьи говорит «не мучайте учебники и не проходите курсы, сразу пытайтесь писать код» — как первая ступень, этот совет вполне возможно правильный, а дальше практика должна быть драйвером к изучению теории. Посмотрев в примерах кода или в ответах на stackoverflow как ловить и обрабатывать исключения, можно писать код, использующий исключения, но узнать, во что именно оно преобразуется при компиляции (zero-cost, longjmp/setjmp, etc.) таким образом нельзя, а это может быть важно при оптимизации по скорости/размеру, при разработке embedded платформы, и т.д.
        В вузе для этого учиться не надо, а вот стандарт языка и мануалы к компилятору почитать — очень даже стоит.


  1. hatman
    11.11.2017 16:30
    +3

    Я всегда привожу аналогию с рок-группой.

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

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

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

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


    1. DistortNeo
      11.11.2017 17:11
      +1

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

      Ну и раз затронули тему музыки: считается, что решающим фактором здесь является практика: чтобы нормально играть, нужно 8000-10000 часов практики. В отсутствие практики же получается никому не нужное бренчание.


      1. balexa
        11.11.2017 18:00
        +1

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

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

        Да в программировании то же самое.


  1. svcoder
    11.11.2017 16:41
    +2

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


    1. nikolayv81
      13.11.2017 21:12

      И как люди жили с firebird 1 с диалектом в котором numeric=float ;)
      Т.е. выходит что можно но с оговорками, и да агрегат по полю может быть не всегда верным.
      Кстати есть ещё интересные вещи из финансов которые могут быть совсем не очевидны, к примеру специальные виды округления.


  1. nApoBo3
    11.11.2017 19:26
    +1

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


  1. Owuba
    11.11.2017 19:30
    +2

    Я думаю многие согласятся с тем, что успевать нужно многое. Полагаю основной посыл конфуцианства — Гармония. Вмещать в одну миску все путем пропорционального размещения. Это работает и в нашем с вами быту. Я например который раз убеждаюсь на своей шкуре, что не бывает практики без теорий и теорий без практики, если я буду читать только спецификации или Computer Science то буду как тот самый ученик из Гарварда (Коих как говорят 99% судя по проверкам этих самых ВУЗов) который не умеет написать ни одну программу, зато отлично знает алгоритмы и устройство информационного мира.
    Не примите за идиотизм, но когда я активно занимался изучением языков программирования, смотрел лекции, читал литературу, смотрел конференции (Все на английском, я из тех дурачков, что считают, если читать на языке оригинала, то информация будет более понятней чем с перевода) то информация улетучивалась буквально за короткий срок. Сейчас я могу припомнить пару моментов, которые мне запомнились, но явно выявить в своей памяти не могу, или повторить это и разложить по составляющим. Потом я понял, что нужно не просто читать или изучать, а нужно производить равномерный обмен, нужно вложить кучу труда в изучение, т.е записывать интересные моменты, вчитываться в каждое слово и разбирать все по кирпичикам.
    Поделюсь опытом, который я увидел общаясь и наблюдая за разными людьми. Когда некоторые учатся рисовать, они сначала пытаются нарисовать куб, многие в этом не видят смысла совсем, самоучители по рисованию об этом не говорят ни слова, и только потом, после того как я прочитал Врубеля, там уже были пояснения (Советский учебник написанный им же) о том, что рисуют куб для понимания формы, прошу заметить, сам я это понял только тогда, когда стал внимательней к этому относиться. Естественно я вижу те же проблемы с ВУЗами, люди которые выходят с художественных школ рисуют мягко говоря не шедевры, но все равно получают какую никакую славу (Напоминает Моцарта и Сальери чем то), в то время как самоучки рисуют шедевры и страдают от недостатка дисциплины. После того как человек понимает устройство куба, его форму и умеет нарисовать его, как вы думаете, что дальше он делает? — Воссоздает из этого куба другие формы, пытается рисовать животных из простого геометрического тела и так переходя к обрубовке, т.е когда тело человека или животного преподносится в обрубленном виде, полигонами. Прошу заметить, что нарисовать квадрат (Не куб) тоже сложно. Немного я отвел тему, но не впустую, так же если вам интересно, я наблюдал за пианистами и их начальной практике, сначала они учили нотную грамоту, потом ставили слух и делали почти тоже самое, что и программисты, рисовальщики, собирали из простых звуков похожие звучания с какой нибудь знакомой мелодией, которую играл учитель или просто они где то услышали на улице. В свое время мне этот взгляд помог кое в чем.
    Естественно были случаи когда человек просто брал карандаш, шел в лес и рисовал шедевры. Но на это тратится очень много времени, да конечно можно построить мост и потратить на это десятилетия, но обидно будет потом, если он развалится, только потому, что вы не знали о фундаменте и устройстве почвы под вашим творением, да что говорить, об элементарной инерции, которая может угробить почти все.
    Много текста я развел, но это все проверено мной лично. Как говорит очень великий ученый С. В. Савельев: Трудиться и мучиться нужно только хотя бы для того, чтобы понять есть у вас талант или нет. В общем все должно сочетаться, если бы не гармония, нас бы с вами не было.


  1. uroot
    11.11.2017 19:30

    Завидую таким 17-летним парням, которые в юном возврате смогли взяться за голову и начали учить ЯП. А то мне сейчас в 24 приходится учить элементарные вещи.


    1. DistortNeo
      11.11.2017 19:47

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


    1. tema_sun
      11.11.2017 21:53

      Через 10 лет скажешь себе спасибо.


    1. ankh1989
      12.11.2017 01:52

      Языки программирования учить не стоит. Точнее стоит разобраться с 2-3 чтобы уловить принцип. Полезнее учить способы программирования, например сейчас вот модный React — полезно с ним разобраться, написать что нибудь, попутно разобраться с JS, TS, Flow и т.д.; потом полезно разобраться с нейросетями, попутно выучив питон и сопутствующие либы и т.д. А вот от абстрактного знания С++ толку мало, да и на работе обычно не требуется — там хотят как правило опыт работы с определёнными технологиями.


      1. a-tk
        12.11.2017 09:12
        +1

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


  1. user-vova
    11.11.2017 19:30

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


    1. Pixfrogfree
      12.11.2017 19:50

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

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


      1. vitvakatu
        12.11.2017 22:48
        +1

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


        1. tetramino
          14.11.2017 15:39

          Большинство преподавателей не имеют бизнеса и второй работы. Рабочая неделя преподавателя шестидневная, кроме аудиторных занятий еще куча бумажной работы, времени особо не остается. Самый реальный метод для заработка — гранты на какую-нибудь чушь, но это нерегулярный доход. Заработная плата преподавателя же прекрасно обуславливает отсутствие интереса к работе: аспирант, взявший полную нагрузку, получает всего немногим больше прожиточного минимума, доценты и профессора побольше, но все равно средняя в районе 40-45к, а 70к в типовом вузе считается очень крутой, у нас столько получал заведующий кафедрой с кучей дополнительных обязанностей и опций.


          1. DistortNeo
            14.11.2017 16:05

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

            Почему нерегулярный? Грант берётся на ~3 года. Можно брать несколько грантов, если они не очень напряжные. Другое дело, что работа по грантам, да даже коммерческим проектам, не имеет ничего общего с индустриальным программирование.


            1. tetramino
              14.11.2017 18:00

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

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


              1. DistortNeo
                14.11.2017 19:39

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

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


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

                Интересно, каким образом?


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

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


                1. tetramino
                  15.11.2017 16:33

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

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

                  Ну платят раз в полгода-год, но помногу, ну и что?

                  Люди не предприятия, у них не раз в год собственные платежи должны проходить. Кроме того, пока не выплачен один, второй из того же источника (при целевых программах длящихся) не дают. В итоге полугодовой бюджет размазывается на год, а следующий задерживают из-за того, что несезон, потом задерживают выплату, и так возникает у людей персональный кассовый разрыв. Разбегаются от такой ерунды даже не получив денег зачастую. Кто в здравом уме и при возможности будет в таких условиях работать? В моём персональном случае у начальника лаборатории была квартира в ипотеку, а банку глубоко наплевать, как проще работать вузовской или иной бухгалтерии. Пришлось снять с должности и устроить в банк, нет науки, но и приставы в дверь не стучатся.

                  Интересно, каким образом?

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

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

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


  1. vdm_mar
    11.11.2017 19:30
    +2

    Я в настоящее время миддл-самоучка. Свежие впечатления. Тоже попался на заманчивости смещения приоритета с «учёбы» в «практику». От теории устал, еще и попёрло в практике. И упёрся в «ноль». Важная деталь: зная, что в решении нужен неокученный пласт знаний, ты избегаешь его теоретического изучения и применения, и начинаешь вертеться на том уровне, который есть. Да, есть решённые задачи — причём, полезных и нужных в быту и на работе основной, и на одном из решательных ресурсов 12 уровень — и… никакого развития, говнокод стабильного качества и убийство нерационально использованного времени. Пока не стал подробно рассматривать решения других программистов. Вот тут уже стимул: другой сделал, ты обязан сделать на таком же уровне. Да и просто есть увлекательные решения!
    Сейчас такая схема: ежедневное прохождение теории и практика: задача — своё решение — чужие решения — дополнительная теория (по результатам анализам чужих решений) — своё решение (или воспроизводство чужого решения; ессно, не один в один). Медленно, но мощно.


    1. DistortNeo
      11.11.2017 20:11

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

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


      1. vdm_mar
        11.11.2017 20:31

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


      1. lair
        12.11.2017 13:30

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

        Вам не кажется, что это немножко опасно для бизнеса?


        (ну то есть если от вашего решения ничего не зависит, тогда, конечно, да)


        1. DistortNeo
          12.11.2017 14:37

          Вам не кажется, что это немножко опасно для бизнеса?

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


          1. eydemidov
            12.11.2017 18:12
            +1

            Где же ваша work ethic?

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

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


            1. DistortNeo
              12.11.2017 20:46

              Почему сразу саботирования-то? Я просто считаю, что часть рабочего времени нужно тратить на самообразование, потому что в долгосрочной перспективе это себя оправдывает ростом собственной эффективности. Сначала написание Pet project, затем перенос изменений в рабочий проект.

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

              Из подобных примеров: async/await, Promise/Task. Сначала 2-3 месяца до полного и глубокого понимания технологии (вплоть до реализации собственного планировщика и анализа IOPS), затем внедрение её в проект и получение профита.


              1. lair
                13.11.2017 11:43
                +2

                Почему сразу саботирования-то? Я просто считаю, что часть рабочего времени нужно тратить на самообразование

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


                1. tyomitch
                  13.11.2017 15:00

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


                  1. lair
                    13.11.2017 15:03

                    по-моему, нормально будет сказать PM-у «давай используем для того и для этого новый модный фреймворк, с которым я ещё не работал»

                    Я бы на месте PM-а ответил "а нафига"?


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

                    Ну так пилотные проекты же для этого есть.


                    1. tyomitch
                      13.11.2017 18:04

                      Я бы на месте PM-а ответил «а нафига»?

                      «ОБС, что он для этой задачи подходит лучше всего; если это действительно так — то проект выиграет.»


                      1. lair
                        13.11.2017 18:06

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


          1. lair
            13.11.2017 11:42
            +2

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


            Но даже если отойти от этики — завалите проект, потеряете работу. Хорошая перспектива?


            1. tyomitch
              13.11.2017 15:03

              завалите проект, потеряете работу. Хорошая перспектива?

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


            1. DistortNeo
              13.11.2017 19:03

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

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


              Но даже если отойти от этики — завалите проект, потеряете работу. Хорошая перспектива?

              Я так и не понял, что вас не устраивает в том, что работник только половину времени работает на проектом заказчика, а вторую половину времени экспериментирует и изучает области, которые помогут ему более эффективно решать проблемы заказчика в будущем?


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


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


              1. lair
                13.11.2017 19:06

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

                Это не "за мой счет". Это использование моих услуг в обмен на оговоренное вознаграждение.


                Я так и не понял, что вас не устраивает в том, что работник только половину времени работает на проектом заказчика, а вторую половину времени экспериментирует и изучает области, которые помогут ему более эффективно решать проблемы заказчика в будущем?

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


                1. MacIn
                  13.11.2017 19:23

                  Это не «за мой счет». Это использование моих услуг в обмен на оговоренное вознаграждение.

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


                  1. lair
                    14.11.2017 11:42

                    Я подозреваю, что это зависит от договора.


                  1. DistortNeo
                    14.11.2017 12:58

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

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


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


  1. hamster_killer
    11.11.2017 19:31
    +1

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


    1. AlexZaharow
      11.11.2017 22:24

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

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


    1. Fedcomp
      12.11.2017 03:09

      но и не могут произвести элементарный анализ алгоритма

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


    1. jkjkjirf
      12.11.2017 11:35

      Логарифмы и экспонента это старшие классы школы, ВУЗ для этого не нужен.


  1. tagame
    11.11.2017 19:31

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


    1. masterspline
      11.11.2017 19:45

      > не представляю как знания помогут увеличить профит

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


      1. tagame
        11.11.2017 20:13

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


        1. Pixfrogfree
          12.11.2017 19:53

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

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


  1. CoolWolf
    11.11.2017 20:19
    +1

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

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


  1. parpalak
    11.11.2017 21:13

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


  1. Myonin
    11.11.2017 21:31

    Я для изучения новой области знаний использую следующий алгоритм:


    1. Получаю самую общую информацию о предмете (смотрю подкасты, читаю популярные статьи, видео из разряда "как стать" — пару вечеров);


    2. Очерчиваю в этой пока что мутной области небольшой участок и начинаю изучать теорию (неделю-пару недель — не дольше);


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


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

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


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


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


  1. mogaika
    11.11.2017 21:31
    -1

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

    Надеялся наконец-то узнать как найти работу


    1. BosonBeard
      12.11.2017 02:04
      +1

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


  1. websofter
    12.11.2017 02:01
    +1

    Настоящему кодеру не нужно устраиваться на работу, это его ищут


    1. a-tk
      12.11.2017 09:35

      По крайней мере пока ещё :)


  1. fpinger
    12.11.2017 05:59

    Дорогу осилит идущий.


  1. i360u
    12.11.2017 09:22

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


  1. kat0d9
    12.11.2017 11:35

    хмм… перед тем как прочитать(посмотреть) эту статью читал о бакула за 2010 год, и после этого еще парочку новее. а на этой аж тронуло, прям зарегился и хотел бы написать статью "Почему мы пишем div-ами в 2017 году ?"/*нативно*/, да не прошел тест… наверное вмазан не слабо.)
    Ну да ладно. здесь нарисую.
    ну как не крути...за 2010 год стиль изложения поярче был… и комменты полезнее.
    а здесь потому что я тоже самоучка… хотя нет… я учился онлайн.сутками.
    хайлоад, сесурити, бестпрактисесфоркодинг, маркетинг, сео, дизайн, юикс) и т.д. и т.п.
    и да, я не знаю, зачем прототипы.../*здесь смайлик Джеки Чана*/
    зато js библиотеки, что я подключаю и с какими работаю(а какие найду, с теми и работаю), написаны на прототипах очень часто, и да, мне действительно стыдно за это (за прототипы и многие другие вещи, но я не встречал задач, которые нельзя решить функциями и циклами/*ну и массивами из-за циклов*/), зато парням с гитхаба на кофе и пивас закидую… совесть, ёлы.
    это все к чему, есть задача, клиенту не важно какими «прототипами» ты ее напишешь. для него бывает рабочий и НЕ рабочий код. для меня — «плохой» код(за который хочется лишить автора и-нета лет на 5), «нормальный» код, и хороший код(когда угостить человека не жалко… у пчелки.)
    и да, прототипы это круто, если у тебя времени больше 15мин на слайдер какой нить… но клиент должен улыбаться… и какая разница что под капотом./*кто не знает, тот платит*/… наконец
    НО, если ты халтурщик не грамотный, к тебе второй раз не обратятся.
    И переносил я недавно пачку сайтов с шаред на VPS/*так, чтобы все работали*/, и смотрел я код что на Laravel, CodeIgniter и еще непонятно на чем, и когда в сайте дефорт урл http: //тут.сайт/*а как же https???*/, завместо "/", так это не от того, что ты в кодер с вышкой или без, а от того что ты мудак. а ведь после этого уничтожаешь в округе весь алкоголь, до которого можешь дотянуться)).
    так вот тем, кто стартует сам, кури ману, учи апи(первоисточники). смотри как кодят без монтажа на ютубе.
    пожалейте наши почки и печень.
    а то приду… и лишу и-нета… на пару лет)))


    1. FoxBoost
      12.11.2017 22:21

      Вроде очевидные вещи вы говорите, но стиль изложения ужасен, 2007 вернуть решили?)


  1. KirEv
    12.11.2017 23:12

    странная статья…

    я учился в 2х ВУЗах, не скажу что сделают из студента аса, но базу дадут, хоть понятно куда копать и что есть вообще…

    а что-то из разряда: «захотел — научился кодить». — бред.


    1. eydemidov
      13.11.2017 13:29
      +3

      а что-то из разряда: «захотел — научился кодить». — бред.


      Что мешает? Многие программисты (иногда — очень известные) не имеют профильного образования.


    1. lair
      13.11.2017 13:31
      +1

      а что-то из разряда: «захотел — научился кодить». — бред.

      Почему бред-то? Это вполне реально.


  1. Dzen1
    13.11.2017 11:37

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


  1. dirkar
    13.11.2017 12:25
    -2

    Лучше пока не поздно свалить в любую другую нормальную специальность


    1. lair
      13.11.2017 12:31
      +2

      … это какую, например, и почему?


  1. vba
    13.11.2017 12:34

    Пиши код ...

    Но какой толк писать код если ты не в состоянии написать O(logN) там где это возможно и клепаешь O(n^3).
    Я согласен с тем фактом что преподавание в ВУЗах оторвано от практики, но оно не бесполезно. Нужно что то менять. Но просто писать код недостаточно.


  1. dimack
    13.11.2017 13:19
    +1

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


  1. hexploy
    13.11.2017 14:09
    -1

    Человеки! Пожалуйста не отождествляйте самоучек и дилетантов!


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


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


    1. lair
      13.11.2017 14:28
      +1

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

      Ээээ… а откуда вы взяли такое определение? Я как-то привык считать, что самоучка — это тот, кто учился самостоятельно, ничего об объеме и качестве этой подготовки это не говорит.


      1. hexploy
        13.11.2017 16:53

        Не совсем. Самоучка — это человек, который не просто учился, но выучился чему-нибудь самостоятельно (см. Ушакова).


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


        1. lair
          13.11.2017 17:00

          Не совсем. Самоучка — это человек, который не просто учился, но выучился чему-нибудь самостоятельно (см. Ушакова).

          "Самоу?чка [...] — человек, самостоятельно получающий или уже получивший образование вне стен какого-либо учебного заведения, без помощи обучающего" (Википедия, выделение мое)


          Мы можем так же обсудить термин "выучился". С моей точки зрения, можно считать что человек выучился, если

          Я про это и говорю: вы взяли свое определение, и на его основании делаете какие-то выводы.


          Если для этого требуются теоретические знания, а человек их не имеет — то нельзя считать что человек выучился, как и то что он — самоучка

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


          1. hexploy
            13.11.2017 18:47

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


            Но это в той же степени отличается и от сказанного вами:


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

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


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


            1. lair
              13.11.2017 18:55

              О том что обучаться можно в данный момент (и считаться самоучкой) изначально не упомянули ни я ни вы.

              Вы знаете, слово "учился" не обязательно обозначает "больше не учится".


              важна разница между образованным человеком и дилетантом

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


      1. Kroid
        13.11.2017 17:09

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

        Самоу?чка, или автодида?кт (др.-греч. ????? — «сам» и др.-греч. ???????? — «обученный») — человек, самостоятельно получающий или уже получивший образование вне стен какого-либо учебного заведения, без помощи обучающего[1].

        Противоположностью ему является дилетант, который хоть и может получить знания автодидактическим путём, но это знание зачастую ограничено и поверхностно. Автодидакт же, как правило, проявляет необыкновенные способности, неутомимое прилежание и твёрдую волю, и, как следствие, находит профессиональное применение своим знаниям, а иногда и общественное и научное признание.
        ru.wikipedia.org/wiki/Самоучка


        1. lair
          13.11.2017 17:10

          … и вы, конечно, не видите, что эти определения имеют внутреннее противоречие?


          1. Kroid
            13.11.2017 21:22

            Вы решили использовать метод Сократа?


            1. lair
              14.11.2017 11:42

              Я даже не знаю, что это такое.


              1. Kroid
                14.11.2017 12:16

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


                1. lair
                  14.11.2017 12:22

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


                  1. Kroid
                    14.11.2017 12:27

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

                    А какое противоречие видите вы?


                    1. lair
                      14.11.2017 12:32

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


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


                      1. Kroid
                        14.11.2017 12:49

                        С вашим выводом я в целом согласен. Но люди, судя по этому посту и комментариях в нем, эти два определения путают. Говорят о самоучках, имея ввиду дилетантов. Именно на этом я и hexploy акцентрировали внимание.

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

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


                        1. lair
                          14.11.2017 12:51

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

                          Есть у меня подозрение, что это подразумевание устарело. Хороший пример этому — "гитарист-самоучка" (и вообще музыканты-самоучки), которые могут долгое время игнорировать теорию вообще. Собственно, если обобщать, то "проблема" самоучек в том, что ты никогда не знаешь, какую область он счел нужным учить, а какую — нет.


                          1. Kroid
                            14.11.2017 13:03

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


                            1. lair
                              14.11.2017 13:28

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

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


                              А если оно ему годами не нужно — что ему, учить просто так, просто чтобы соответствовать каким-то «стандартам»?

                              А это как раз типичная проблема "не нужно, потому что не знаем, что нужно". С теорией часто так.


                              1. Kroid
                                14.11.2017 13:38
                                +1

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

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

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


                                1. lair
                                  14.11.2017 13:41

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

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


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

                                  … но мы не знаем, пользовался, или нет.


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

                                  И тем не менее такие программисты встречаются. Как и музыканты, не знающие понятия формы произведения.


                                  1. Kroid
                                    14.11.2017 13:48
                                    +1

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


                                    1. lair
                                      14.11.2017 13:54

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


                                      1. Kroid
                                        14.11.2017 14:02
                                        +1

                                        У меня нет обширных статистических данных. У меня есть лишь свидетельства наблюдений за ~ сотней обычных людей и за несколькими самоучками. Сами понимаете — слишком малая выборка.

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


                                        1. lair
                                          14.11.2017 14:21

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


                                          1. hexploy
                                            15.11.2017 13:09

                                            Я видел несколько десятков выпускников ВУЗа без опыта работы. Зрелище унылое. Практически никто не тянет и на джуна.
                                            Типичные примеры:
                                            Человек говорит что изучал C++, но не слышал про обработку исключений.
                                            Другой говорит что проходил курс по алгоритмам — но не знает как самого факта, что нижняя оценка сложности алгоритмов сортировки, основанных на сравнениях не может быть лучше чем n*log(n), так и не может предположить почему так.
                                            Думаете, если попросить рассказать о неравенстве Коши-Буняковского, теоремах об изоморфизмах или решить дифференциальное уравнение, то ответы будут лучше? Люди потратили драгоценное время в ВУЗе впустую.
                                            Самоучки тоже ничего этого не знают, но хотя бы в свои 22 уже знают (не идеально, но на уровне достаточном для работы) пару языков и десяток фреймворков. Разумеется не все, но процент гораздо выше чем у кандидатов после ВУЗа.
                                            Конечно, если человек действительно освоил весь университетский курс, может рассказать о преобразовании Фурье и вейвлетах (или о чем-то ещё), то честь ему и хвала. Но много ли таких?


                                            1. alexeykuzmin0
                                              15.11.2017 14:28

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


                                              1. eydemidov
                                                15.11.2017 14:30

                                                Хороший кружок. В моей школе на аналогичном кружке учили QBasic'у :)


                                                1. alexeykuzmin0
                                                  15.11.2017 14:41

                                                  Да, мне с ними повезло.


                                            1. tetramino
                                              15.11.2017 16:39

                                              Я видел несколько десятков выпускников ВУЗа без опыта работы. Зрелище унылое. Практически никто не тянет и на джуна.
                                              Типичные примеры:

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

                                              Конечно, если человек действительно освоил весь университетский курс, может рассказать о преобразовании Фурье и вейвлетах (или о чем-то ещё), то честь ему и хвала. Но много ли таких?

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

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


    1. eydemidov
      13.11.2017 16:33

      Самоучек часто сваливают в одну кучу, представляя эдакого раздолбая который ковыряет что-то там в перерывах между изготовлением сайтов на Joomla за 1000р. Но не учитывают, почему-то, что человек может, например, составить план своего самообучения базируясь на планах хоть MIT, хоть МГУ, используя вполне одобренные умными людьми ресурсы (а иногда и смотря записи настоящих лекций от этих умных людей), ища советы на профессиональных форумах и в общем методично самообучаясь.

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


      1. tetramino
        14.11.2017 16:04

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


      1. ctacka
        15.11.2017 13:51

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


        1. eydemidov
          15.11.2017 13:59

          Я говорил о самоучках в контексте поста, на который я отвечал.


  1. IT_Rebel
    13.11.2017 16:43
    +1

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


    1. lovermann
      13.11.2017 18:03

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


  1. JuniorForever
    13.11.2017 22:55
    +2

    Ну и я пооффтоплю.
    В свое время закончил музыкальную школу по классу гитары, но конкретно забивал на теорию (сольфеджио). Считал это недостойным предметом, главное — играть Цоя). Да, играл получше одноклассников, было больше практики, и знал больше аккордов чем остальные. Потом, уже во взрослом возрасте торкнуло, купил самоучитель и начал осваивать тональности, интервалы, гармонию, гаммы и проклинать себя, почему ж это не училось вовремя. Умения в игре теория не прибавила, здесь решают жопочасы. Но есть понимание построения музыки. Не нужно больше учить аккорды, по названию можно взять его самому хоть из 10 знаков. Не нужно подбирать песню по одному аккорду, поняв тональность сразу выделяешь все нужные, соло сочиняешь не по одной нотке, а рамках гаммы и т.д. С программированием то же самое. В школе увлекался, высшее получил не профильное, баловался составлением игрушечным программ, а потом уперся в стену. Начал читать книги по языкам, потом по основам ООП, изучать алгоритмы по Седжвику и булеву алгебру, поступил на второе техническое. Все это я к тому, что теория НЕОБХОДИМА. Но при этом она даже более ценна, когда получается во время практики и сразу же в ней применяется.


    1. lega
      14.11.2017 10:45

      поступил на второе техническое. Все это я к тому, что теория НЕОБХОДИМА.
      Программисты могут получить всю* необходимую теорию из интернета самостоятельно (ну или купить книги), а вот на втором техническом вы можете потерять время и деньги (например в некоторых местах обучения на программиста, первый год обучают только офисному пакету от МС).


      1. JuniorForever
        14.11.2017 10:54

        Поступить меня сподвигло 2 фактора. 1- получение теории, 2 — корочки. Можно сказать, 2 — в большой степени, так как минимум в половине вакансий в качестве требований указывается высшее техническое (в иностранных — вообще почти во всех). И да, согласен, в интернете с появлением обучающих платформ, самообразование не такая сложная вещь. Можешь заниматься хоть по программе MIT


      1. tetramino
        14.11.2017 16:23
        -1

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

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


        1. lega
          14.11.2017 17:35

          Довольно распространенное заблуждение
          И какой информации о программировании вам не хватает в интернете?

          что все можно:
          Кто говорит про все? «всю* необходимую».
          Если хотите пофилосовствовать, тогда можно сказать, что все человечество не знает «абсолютно все», и знать не может.

          а) Зависит от информации
          б) А форумы, комьюнити, вебинары и пр. вам на что, или нужно что-бы кто-то «носом тыкал». Как раз самостоятельно — более эффективно, например вы можете открыть сорсы какого-нибудь движка и через определенное время вы будете компетентнее любого* учителя из университета в нем (если учитель к нему не причастен).


          1. tetramino
            14.11.2017 18:19
            +1

            И какой информации о программировании вам не хватает в интернете?

            Мне персонально не хватало некоторых данных по теории цвета и работе с ним, в сети ее банально нет.

            а) Зависит от информации

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

            А форумы, комьюнити, вебинары и пр. вам на что, или нужно что-бы кто-то «носом тыкал». Как раз самостоятельно — более эффективно, например вы можете открыть сорсы какого-нибудь движка и через определенное время вы будете компетентнее любого* учителя из университета в нем (если учитель к нему не причастен).

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


            1. lega
              14.11.2017 18:32

              Не уводите тему, мы говорим о программировании, что вам не хватает в инете о программировании вы не ответели, видимо с этим нет проблем.

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


              1. tetramino
                14.11.2017 19:23
                +1

                Не уводите тему, мы говорим о программировании, что вам не хватает в инете о программировании вы не ответели, видимо с этим нет проблем.

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

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

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


            1. lega
              14.11.2017 18:36

              В моих глазах ваши рассуждения о том, что всем достаточно интернета
              Где я такое говорил?
              Это очевидно, что хирург не будет обучаться (только) по википедии.


              1. tetramino
                14.11.2017 18:39

                Где я такое говорил?

                Приведу цитату:
                Программисты могут получить всю* необходимую теорию из интернета самостоятельно (ну или купить книги


                1. lega
                  14.11.2017 19:13

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


                  1. tetramino
                    14.11.2017 19:27

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


                    1. eydemidov
                      14.11.2017 19:40

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


                      1. tetramino
                        14.11.2017 20:10

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

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

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

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

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


                        1. Texonite
                          15.11.2017 07:10

                          Простите, а вы много хороших учителей видели?

                          А по программированию?

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

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

                          Да какое там, два самых популярных метода обучения программированию:
                          — сеанс лайв-кодинга
                          — решение студентами абсолютно нерелевантных мифических задач, в которых любые условия высосаны из пальца, и поэтому нельзя однозначно быть уверенным в завершении проекта, потому что непонятно, должна ли функция checkSomething() реально производить какие-то действия, или достаточно ограничиться «return true;»

                          Когда тебе с самого детства говорят: ходи в школу — там научат, ходи в университет — там научат… А родители думают: «мои дети ходят в школу, их там научат».
                          Поневоле начинаешь верить всему этому, и ожидать, что эти люди что-то знают, и умеют эти знания качественно передать любому человеку. Напрасно.

                          Есть еще люди посерединке, которые говорят: «Университет учит учиться».
                          У меня когда я это слышу сразу возникает вопрос: «а где этот предмет в расписании, и не лучше ли было выделить под него время в школе, вместо обсуждения Войны и Мира, например»?

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

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


                          1. tetramino
                            15.11.2017 16:58

                            Простите, а вы много хороших учителей видели?

                            Да, предостаточно.

                            Да какое там, два самых популярных метода обучения программированию:
                            — сеанс лайв-кодинга
                            — решение студентами абсолютно нерелевантных мифических задач, в которых любые условия высосаны из пальца, и поэтому нельзя однозначно быть уверенным в завершении проекта, потому что непонятно, должна ли функция checkSomething() реально производить какие-то действия, или достаточно ограничиться «return true;»

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

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

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

                            К слову о плохих врачах, у них с системой образования как раз лютый треш творится. У меня была партнерша по танцам, которая тогда выпускалась из известного медвуза. И мы как-то в кафе сидели и беседовали с ней насчёт распространения жизни в космосе, о путешествиях вирусов в безвоздушном пространстве. Точнее, я хотел побеседовать, но невинное создание с чистыми глазами заявило, что вирусы в космосе задохнутся. Я там аж подавился)) И таких случаев могу назвать много, причем, довольно опасных, например, я столкнулся с тем, что один из врачей, допускающих людей к управлению подвижным составом на ЖД, не знает критерии допуска в своей профессиональной области, где трудится уже не первый десяток лет. Так что есть вещи и пострашнее того, что программистам не рассказывают очередной свежий фреймворк.

                            Есть еще люди посерединке, которые говорят: «Университет учит учиться».
                            У меня когда я это слышу сразу возникает вопрос: «а где этот предмет в расписании, и не лучше ли было выделить под него время в школе, вместо обсуждения Войны и Мира, например»?

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


                          1. lair
                            15.11.2017 17:02

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

                            Нет, не лучше. Потому что если пытаться учиться учиться "отдельным предметом", вы снова получите решение нерелевантных мифических задач.


            1. eydemidov
              14.11.2017 18:54

              Теория цвета, имеется в виду что-то вроде этого, как я понимаю?

              homes.lmc.gatech.edu/~bschrank/2720/lectures/ColorTheory.pdf


              1. tetramino
                14.11.2017 19:30

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


                1. eydemidov
                  14.11.2017 19:34

                  Почему? Мне интересно, о чём идёт речь, почему эту информацию не найти в сети, и где вы её нашли.


                  1. eydemidov
                    14.11.2017 19:43

                    А ну и да, я не имел в виду, что этот документ это то, что вы искали. Это было для уточнения.


                    1. tetramino
                      14.11.2017 19:53

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


                  1. tetramino
                    14.11.2017 19:48
                    +1

                    Почему?

                    Потому что презентация по цветовосприятию, даже длинная, не есть научный труд по цветовоспроизведению. Вы можете на основании данного материала хотя бы рассказать, зачем нужен зоопарк цветовых систем (CMYK, LAB, RGB, XYZ, HSV и т.п.)? В индустрии полиграфии или киноделе это направление прокопано очень глубоко.


                    1. eydemidov
                      14.11.2017 19:55

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

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

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


                      1. tetramino
                        14.11.2017 20:17

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


                        1. Texonite
                          15.11.2017 07:19

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

                          О качестве передачи информации в таком случае речь вести рано — в Интернете лежит только та информация, которая кому-то должна была принести профит.

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


                          1. tetramino
                            15.11.2017 15:56

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

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

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

                            Если это было бы так просто, уже давно бы все было, вы и сами это, я думаю, понимаете.


                        1. alexeykuzmin0
                          15.11.2017 14:39

                          Если вы имеете в виду Артюшина ЛФ, то за 2 минуты находится его книга 86 года


                          1. tetramino
                            15.11.2017 15:48

                            Мурзилку б еще нашли.)) Скажите, как вам в голову пришла мысль о том, что ежели вы нашли одну его массовую книгу за две минуты, то так же быстро найдете все его труды, в том числе неопубликованные? Даже банальную «Основы воспроизведения цвета в фотографии, кино и полиграфии» его уже поискать надо, я её тогда только в печатном виде достал у директора НИКФИ.


                            1. alexeykuzmin0
                              15.11.2017 16:07

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


                              1. eydemidov
                                15.11.2017 16:14

                                Ну иногда неопубликованные работы где-то есть. Их ещё могут опубликовать после смерти автора, например.

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

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

                                И изначально мы куда-то ушли не туда, по-моему. Я например сейчас работаю в проекте связанном с финансами, и как я понял во всём мире конкретно этими вещами занимаются не более нескольки тысяч человек. Можно так же сказать, что «в интернете информации почти не найти. Езжайте в Нью-Йорк, Эмпайр Стейт Билдинг, этаж 15, третий кабинет слева, там спросите».


                                1. tetramino
                                  15.11.2017 17:15

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

                                  Как это ни печально, но да. И в иных странах подобное есть. Научное сообщество пока не стало целостным.

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

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

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


                                  1. eydemidov
                                    15.11.2017 17:36

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


                                    Сайты-визитки тоже нужны (особенно это понимаешь, пытаясь найти информацию о небольшой компании в какой-нибудь провинции).

                                    Есть очень много «конвеерной» работы для относительно низкой квалификации — не всем же заниматься чем-то прорывным. Но думаю, многие люди из этого треда будут воротить лицо от такого. Но кто-то и сидит, читает «PHP для чайников», делает модули для Вордпресса, сайты на Битриксе, 1С, поддерживает старый корявый софт на Delphi и прочее далеко не самое интересное.


                                    1. tetramino
                                      15.11.2017 18:02

                                      Сайты-визитки тоже нужны (особенно это понимаешь, пытаясь найти информацию о небольшой компании в какой-нибудь провинции).

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

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

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


                                      1. eydemidov
                                        15.11.2017 18:06

                                        Главный труд в детали — работа инженера, рассчитавшего её, главный труд в визитке — макеты, сверстанные дизайнером, таково моё мнение.


                                        Ну да. Поэтому натягиватель этого дизайна и получит меньше дизайнера :)


                              1. tetramino
                                15.11.2017 17:03

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

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

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


      1. ctacka
        15.11.2017 13:47

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


  1. FlipWho
    14.11.2017 11:37

    Хотел бы я тоже к 17 годам знать JS)


    1. Tuerer
      15.11.2017 05:57
      -1

      Не понимаю сложности изучить js) Даже c++ за пару недель можно научиться, а джсу то и подавно


      1. alexeykuzmin0
        15.11.2017 15:45

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


        1. tetramino
          15.11.2017 17:50

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


  1. rushe4ka
    14.11.2017 14:03

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


  1. gkislin
    14.11.2017 15:47

    Если коротко и мягко, то "не согласен". Будете много лет говнокодить, не догадываться об этом и считать себя асом. Как чукча — писатель. Необходим фидбэк и наставничество от опытных коллег. Варианты- обучаться либо работать в команде с ревью кода.


  1. LeMaX
    14.11.2017 16:45

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

    Увы, из-за этого досадного ответа мне отказали в работе.


    1. Neikist
      14.11.2017 17:25

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


      1. DistortNeo
        14.11.2017 19:50

        Ну так в паттернах самое главное — это и есть именование. Знание паттернов — это всего-навсего умение оформить кусок кода, похожий на паттерн, определённым образом.
        А вот знание расшифровки SOLID не поможет писать хороший код.


        1. Neikist
          14.11.2017 23:44

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

          P.S. Справедливости ради — сам далеко не знаток этих принципов что в теории, что на практике, и хоть они не только для ООП смысл имеют, но все же в 1с пока так себе применять удается, а часто и вовсе не удается, а иногда и парадигма платформы чуть ли не против них. Да и, имхо, как и ко всему субъективному к ним стоит наверно с оглядкой подходить.


  1. Calosha
    14.11.2017 17:21

    у меня все наоборот было. Я долго сам мыкался пытался что то писать, но тяп ляп и без особой мотивации. Потом решил что нужна дисциплина и пошел в колледж. Мне без понимания теории писать код вообще не получалось. Советую хотябы взять computer theory, algorithms, computer architecture.


  1. alexraven
    14.11.2017 19:50

    Я учился программировать, когда интернета еще не было. Ну то есть он уже был, но у нас про него еще никто не слышал. В середине 90-х мне на радиорынке удалось купить Hacker CD с тремя сотнями различных программ — компиляторами, отладчиками, и что самое приятное — ИСХОДНИКАМИ. Я в то время написал сотни три различных программ, утилит и т.д. — большинство из них так никогда и не увидело свет. Также, увлекался написанием компьютерных вирусов — не с целью вреда, а для самообразования. Поэтому они тоже никогда не увидели свет.

    Когда мне было 20, я решил стать веб-разработчиком. Выучил PHP, и немого криво, но умел рисовать дизайн интерфейса в фотошопе. К 23 годам я уже прилично знал PHP и мог делать сайты. Но вот беда — портфолио нет. Те, что я создавал в образовательных целях, никоим образом никого заинтересовать не могли. Тогда я решил сделать ход конем — сделал сайт для несуществующей компании. Собственно, с тех пор именно веб-разработка меня и кормит.


  1. Texonite
    15.11.2017 07:34
    +2

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

    Computing Science Education: The Road not Taken
    Никлаус Вирт, 2002 год.


  1. jetcar
    15.11.2017 11:25
    -4

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


    1. alexeykuzmin0
      15.11.2017 16:18

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


      1. jetcar
        15.11.2017 16:24

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


  1. ctacka
    15.11.2017 13:15
    +1

    Мне такой подход кажется не только неправильным, но и вредным.
    Я видел программистов-самоучек, которые писали как боги. Но гораздо больше я видел программистов-самоучек, которые делали говно. При этом они его делали годами. Плодили тысячи строк говнокода, и с годами он не становился лучше. Если бы опыт напрямую конвертировался в умение, то самые крутые программисты были бы в Бангалоре.
    А особенно плохо писать программы "для себя", за которые никто не платит или никто не пользуестя. Они могут быть сделаны хорошо, а могут быть сделаны плохо, но никто тебе об этом никогда не скажет. Многие программисты, пишущие такие поделки, даже не представляют, что такое хорошая программа, на счет чего надо думать. Работает — значит хорошая! Ресурсы? Читаемость кода? Удобство модификации? Надежность? Удобство масштабирования? Не, не слышали.
    Как известно, "знание некоторых принципов легко возмещает незнание некоторых фактов".
    Хорошие курсы программирования за месяц дадут то, что на своем опыте ты получишь за полгода, и еще кое-что, что возможно ты не получишь на своем опыте никогда.


    1. guai
      15.11.2017 15:20

      Ресурсы? Читаемость кода? Удобство модификации? Надежность? Удобство масштабирования?

      Дык а в каком вузе этому научат? Это никак не связано с тем, кто самоучка, а кто нет, а связано с тем, работал человек в команде, или нет.


      1. tetramino
        15.11.2017 17:53

        Дык а в каком вузе этому научат?

        В нормальном научат. Я со студентов требовал нормально оформлять код и думать о таких вещах.


      1. chersanya
        15.11.2017 17:56

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

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


        1. guai
          15.11.2017 18:51

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


  1. svcoder
    15.11.2017 13:25

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


    1. eydemidov
      15.11.2017 13:38

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


      О какой базе идёт речь?


      1. svcoder
        15.11.2017 14:24

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


    1. lair
      15.11.2017 14:02
      +1

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

      А зачем?


      1. eydemidov
        15.11.2017 14:18

        Вот да кстати да. Лучше наоборот, по-моему — писать так, как принято на проекте или платформе (если конечно там не совсем дичь) и мыслить как можно очевиднее, чтобы писать как можно более понятный и поддерживаемый код. Чтобы потом коллеги не матерились, пытаясь разобраться в вашем уникальном типе мышления и написания. Разработка это всё-таки командное усилие, и если вы не тот самый 1% гениев, эти претензии на уникальность выглядят скорее плохо, чем хорошо.


      1. svcoder
        15.11.2017 14:21

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


        1. lair
          15.11.2017 14:23

          Чтобы уметь создавать что-то новое,

          Для этого не обязательно иметь уникальный тип написания кода (да даже и уникальный тип мышления не нужен).


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

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


          1. svcoder
            15.11.2017 14:25

            Есть есть полное понимание, почему автор делает так — конечно можно, особенно если идет работа в команде


            1. lair
              15.11.2017 14:30

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


              1. svcoder
                15.11.2017 14:35

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


                1. lair
                  15.11.2017 14:36

                  "почитать книг и получить feedback от использования других вариантов" != "выработать за несколько лет свой уникальных тип мышления и написания кода"


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


                  1. svcoder
                    15.11.2017 14:42
                    -1

                    значит нужно больше читать, причем разных авторов :)


                    1. lair
                      15.11.2017 14:43

                      (Спасибо, я как-нибудь разберусь, "нужно" ли мне больше читать.)


                      Что изменится-то?


    1. nicolas_d
      15.11.2017 14:56

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


      1. svcoder
        15.11.2017 15:11

        За всю свою >15 лет профессиональную деятельность ни разу не встречал стоящего разработчика без высшего ИТ-образования. Никто же не утверждает, что любой окончивший профильную специальность становится сильным программистом. Это просто неотъемлемое условие.


        1. lair
          15.11.2017 15:16
          +2

          За всю свою >15 лет профессиональную деятельность ни разу не встречал стоящего разработчика без высшего ИТ-образования.

          Это вот сейчас обидно было.


          (с другой стороны, то, что вы кого-то встречали или нет, говорит в основном о круге ваших встреч, чего уж)


        1. alexeykuzmin0
          15.11.2017 16:29

          За всю свою >15 лет профессиональную деятельность ни разу не встречал стоящего разработчика без высшего ИТ-образования
          Для этого факта есть и другие объяснения, помимо высокой полезности высшего образования.
          Например:
          Подавляющее большинство сегодняшних родителей студентов считают, что жизненный успех на 100% коррелирует с фактом получения высшего образования, в силу чего абитуриенты оказываются под очень большим давлением в пользу поступления в ВУЗ по сравнению с ранним началом трудовой деятельности, поэтому (за очень-очень редким исключением) поступают все, кроме совсем уж клинических идиотов.


  1. arthur_veber
    15.11.2017 13:59

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

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


    1. eydemidov
      15.11.2017 14:02

      Да.


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


  1. pushal
    15.11.2017 14:56
    -1

    Хорошая статья, спасибо =)


  1. Ritorno
    15.11.2017 21:11

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

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


    1. lair
      15.11.2017 21:46

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

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