Здравствуйте. Хотелось бы затронуть тему по которой мне пишут 2-3 раза в неделю:
Как начать программировать, какой язык выучить?
Знаю, таких статей много, но я попробовал сделать что-то особенное. Скажу сразу, информация ниже будет для халявщиков. Я всегда рекомендовал и рекомендую купить курсы и учиться там. На курсах есть чёткая программа обучения, которая построена годами, и код ревью. А это очень важно для новичков. Тем не менее тут я посоветую много интересных книг, видео-курсов, дам советы в обучении, так что это, я надеюсь, будет полезно всем.

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

Всего областей программирования много, но я выделю основные из них:

  • Frontend разработка вебсайтов — HTML/CSS, JavaScript
  • Программирование серверов — Python, Java, PHP (только для backend сайтов)
  • Создание десктопных приложений — C++

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

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

  1. HTML/CSS


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

    Для изучения могу порекомендовать сайт HTMLAcademy.ru.
    Так как я сказал что всё обученик будет бесплатно, проходим только три бесплатных курса на этом сайте — «Знакомство с HTML и CSS», затем «Основы HTML» и в конце «Основы CSS». После прохождение этих курсов вы выучите основы HTML и CSS, а это уже круто!
  2. JavaScript


    Теперь я рекомендую попробовать себя во Frontend.

    Фронтенд — все, что браузер может читать, выводить на экран и / или запускать. То есть это HTML, CSS и JavaScript (взято с сайта tproger.ru). Другими словами, это то — что видет пользователь. Если вы откроете панель разработчика на этом сайте (пкм -> Просмотреть код элемента) и перейдёте во вкладку Sources вы сможете найти .js файлы. Да, эти файлы тяжело читать (это сделано что бы страничка быстрее грузилась), однако когда вы будете программировать вам будет намного проще. Уже в первые дни вы сможете читать код как любую русскую книгу. Так вот, весь js код который вы здесь увидели написан для вашего удобства и для контактирования с сервером (Backend).

    Изучать JavaScript рекомендую на англоязычном сайте JavaScript.info, именно его сейчас активно дополняют. Однако есть и русский учебник Learn.JavaScript.Ru.
    Что конкретно стоит учить? Основы языка, DOM елементы и AJAX. Другими словами первые две части русского учебника плюс первые две главы третьей части. Обязательно выучите что такое fetch. AJAX очень важно учить именно в этом учебнике, так-как в остальных показывают как отправлять/принимать запрос через фреймворк JQuery. Этот фреймворк сейчас мало кто используют, так как в самом JavaScript есть более удобные функции (fetch например), но все о них почему-то молчат. Все главы про ES ниже шестого и IE ниже восьмого можете пропускать (ES6-, IE8-).

    Редактор

    Редакторов для JavaScript и вообще для веб разработки много, но новичкам рекомендую Visual Studio Code с плагином Live Server. Он позволяет вам запустить свой сервер для проверки вашего кода. Также можете использовать плагин Beautify, он сделает редактор более красивым.
    Многие профессионалы используют JetBrains WebStorm, но я думаю что вам пока рано…

    Книги

    После того, как вы прочитаете все главы этого учебника могу посоветовать книгу You Dont Know JavaScript.
  3. PHP


    Теперь, когда вы познали frontend разработку стоит попробовать backend. PHP очень просто язык. Лично я уже на 3 день написал простенький, но интересный сайт. Этот язык вам может понравиться именно тем, что он лёгкий.

    Тут я рекомендую посмотреть плейлист Гоши Дударя "Учим PHP, а также MySQL". Тут автор так-же затрагивает тему MySQL. MySQL — это база данных. Знание как работать с ней очень полезно, так что ни в коем случае не пропускайте эту тему!

    Редактор

    В качестве редактора можете используйте тоже Visual Studio Code, но тут Live Server уже работать не будет. Вам потребуется Apache. Я советую использовать программу XAMPP. Она простая и удобная.

    Также попробуйте редактор JetBrains PHPStorm
  4. Python


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

    Для изучения я так-же рекомендую курс Гоши Дударя "Python программирование / Уроки для начинающих". Я сам учился питону именно по этому курсу, хоть сейчас пишу на нём мало (чисто из-за вкусов).

    Редактор

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

    Книги

    Могу посоветовать только "Автоматизация рутинных задач с помощью Python: практическое руководство для начинающих". Другие не читал.
  5. Java


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

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

    И все же если вы категорически против отдавать свои кровные можете так-же попробовать курс Гоши Дударя (что-то его слишком много у нас в программе) "Java программирование / Уроки Java для начинающих".

    Редактор

    Однозначно JetBrains IntelliJ IDEA. Это ЛУЧШИЙ редактор кода который сейчас существует, я рекомендую только его!

    Книги

    Очень интересная книга "Изучаем Java". Рекомендую к прочтению.
  6. C++


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

    Рекомендую курс Гоши Дударя "С++ программирование / Уроки C++", ну а потом по желанию. Если хотите писать игры рекомендую выучить движок Unreal Engine или Unity.

    Редактор кода

    Тут несомненно Visual Studio (не Code!). Он так-же удобен, как и IntelliJ IDEA для Java.

Ещё немного о книгах


Ещё есть две очень интересные книги. Они не касаются определённого языка программирования, а говорят о программировании в целом. Очень интересны и полезны.


Ресурсы, с которых взята информация:
www.google.com — да да, именно гугл. Программистам очень важно пользоваться поисковиками. Большинство ваших проблем уже решено в интернете и вам никто не запрещает подсмотреть ответ. Убедительная просьба — читайте код перед тем, что бы копи-пастить. Подумайте, почему это решение работает.

ru.stackoverflow.com — форумы для программистов тоже полезны. Если не можете найти ответ в гугле — обращайтесь сюда. Можете также использовать английскую версию.

tproger.ru/translations/frontend-backend-interaction

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


  1. Jouretz
    09.06.2019 12:11
    +6

    «Как написать HelloWorld на пяти языках и не выучить ни одного из них»


    1. Munoon Автор
      09.06.2019 17:17

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


  1. redf1sh
    09.06.2019 12:14
    +4

    А где же Verilog/ASM/Чистый C? Вдруг ваш новичок захочет программировать микроконтроллеры или процессор свой сделать?


    1. Mirn
      09.06.2019 14:56
      +1

      а например верилог в странах СНГ вообще нужен?
      я вот тут поглядел сколько нужно верилога с первым элементом в списке автора:
      image


      1. Jouretz
        09.06.2019 15:42

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


        1. Mirn
          09.06.2019 16:26

          Про HTML согласен что на любой веб он требуется для галочки.
          Но что же тогда две трети из верилог вакансий это просто «висяки» — те же самые вакансии, тех же самых работодателей что и были когда я в 2015-16ых искал работу даже без изменения текста в некоторых (которые я сохранял на хард, специально проверил). При этом с хоть какой то зп только 10 и из половины из них я получал офферы — они оказались и ниже опубликованной вилки и далеко не «белые» что маловато для Москвы. При этом собеседования всегда проходили в ключе «кандидата валить и сэкономить на нём любой ценой, у нас денег нет вообще», а остальные это просто гос. НИИ с окладом в 20-40тр.
          Вот про что я и говорю в сфере электронники и промышленности чаще нужно сэкономить, а собственно сам верилог это побочное — «а вдруг найдём за такую зп» наверное.


      1. redf1sh
        09.06.2019 18:17

        У меня в МЦСТ нужен. Пока прохожу обучение, но со следующего семестра распределение. И в логическом проектировании, и в физическом он нужен. Ещё в Huawei говорили что нужен Verilog (как я понял, всякие АЦП/ЦАП и системы обработки сигналов проектировать). Я так понимаю, что такие вакансии узнаются на встречах/конференциях/по-знакомству.


        1. Mogwaika
          10.06.2019 12:41

          Чот пропали у Хуавея эти вакансии.


  1. opckSheff
    09.06.2019 12:15

    Самой большой загадкой для меня останется то, почему вы неоднократно правильно пишете frontend, но при этом неоднократно косячите с backand. Ну да ладно.
    А вот советовать новичкам учить для десктопов C++ в 2019 году это, конечно, издевательство. Хотя тема холиварная.


    1. DrPass
      09.06.2019 13:25
      +1

      почему вы неоднократно правильно пишете frontend, но при этом неоднократно косячите с backand

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


      1. extempl
        09.06.2019 17:40

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


    1. censor2005
      10.06.2019 09:42

      А вот советовать новичкам учить для десктопов C++ в 2019 году это, конечно, издевательство

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


      1. DrPass
        10.06.2019 12:47

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


        1. DjSens
          11.06.2019 06:50

          может Lazarus? за Дельфи платить надо большие деньги


          1. DrPass
            11.06.2019 12:10

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


            1. adictive_max
              11.06.2019 12:37

              Ну, как бы…
              VS Community — «Корпоративными считаются организации с более чем 250 ПК или годовым доходом свыше 1 млн долларов США.».
              Unity и Unreal (как и многие игровые движки и сопутствующие инструменты) бесплатны сами по себе и оплачиваются с объёма продаж.
              IntelliJ IDEA (CE), QTCreator, AndroidStudio, XCode — бесплатны полностью без всяких оговорок.
              Кастрированная версия для ультра-нищебродов — так что так себе подвиг в 2019 году…


              1. DrPass
                11.06.2019 12:48

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


        1. adictive_max
          11.06.2019 07:16

          и, как бы это для кого-то не звучало странно, Delphi
          Если бы не конские ценники…


          1. censor2005
            11.06.2019 11:09

            Так вроде они недавно Community версию выпустили, разве нет?


            1. adictive_max
              11.06.2019 11:22

              Выпустили. Для НКО, фрилансеров и патентованных нищебродов (доход менее 5 килобаксов в месяц).


  1. dopusteam
    09.06.2019 12:18
    +2

    «Java

    Его предназначенность такая-же как и Python»

    :D

    «Просмотреть код элемента) и перейдёте во вкладку Sources вы сможете найти .js файлы. Да, эти файлы тяжело читать (это сделано что бы страничка быстрее грузилась), однако когда вы будете программировать вам будет намного проще»

    Особенно интересно, если они минифицированы


  1. akryukov
    09.06.2019 12:21
    +9

    Хотелось бы затронуть тему по которой мне пишут 2-3 раза в неделю

    Расскажите о себе. Почему вам лично пишут 2-3 раза в неделю этот вопрос?


  1. androidovshchik
    09.06.2019 12:22
    +3

    Заголовок статьи просто хуже некуда)


    1. dopusteam
      09.06.2019 12:23
      +10

      То ли дело содержание)


  1. yea
    09.06.2019 12:39
    +2

    я составил объемную программу

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


    1. polearnik
      09.06.2019 13:12

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


      1. yea
        09.06.2019 13:21
        -1

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


        1. Moxa
          09.06.2019 14:18

          хорошим! во фронтенде сложная математика практически не нужна, да и на бекенде для rest-api тоже негде применить


          1. Jouretz
            09.06.2019 14:51

            Существует более чем 1 область программирования (web) И даже в вебе существует более чем один вид задач.


            1. extempl
              09.06.2019 17:43

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


              1. Jouretz
                09.06.2019 19:38
                -1

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


                1. extempl
                  09.06.2019 21:31

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

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


                  1. iig
                    10.06.2019 11:29

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


                    1. adictive_max
                      10.06.2019 12:11

                      А вот давайте не передёргивать. «Принципиально совсем не учил» и «забыл большую часть за ненадобностью» — это две огромные разницы.


                      1. iig
                        10.06.2019 12:23

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


                        1. adictive_max
                          10.06.2019 12:49

                          Знаете, это примерно из той-же оперы, что в 17 веке почти все выдающиеся физики, химики, математики имели богословское образование, и это всенепременно потому, что «через веру развивалась наука», а не потому, что все университеты выросли из семинарий, и изучать физику без обязательной нагрузку в виде богословия было тупо негде.
                          Вот и у вас ровно то же самое. Учитывая, как составляются учебные программы, «никогда не учить математику» = «не получать никакого профильного образования».
                          Кроме того, никто никогда не утверждал, что она не нужна вообще. Она не нужна в том объёме в настолько заученном наизусть виде, в котором её требуют.


                          1. iig
                            10.06.2019 13:31

                            Она не нужна в том объёме в настолько заученном наизусть виде, в котором её требуют.

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


                            1. adictive_max
                              10.06.2019 15:01
                              +1

                              Требуют не в смысле «в учебном заведении во время учёбы», а в смысле того, как высокие профессионалы вроде вас отделяют плебеев-ремесленников от элиты.
                              ИМХО, вы очень переоцениваете сложность подавляющего большинства задач, которые встают перед большинством программистов. Как будто есть высшее знание великой математики, которое нисходит свыше как откровение в университетах, и больше никогда не восполняется, а любая работа, сложнее «обработки событий мыши» требует знать теоретические основы теории категорий, геометрии Лобачевского и теоретической физики с произвольным количеством пространственных измерений.
                              Да как бы нет, в абсолютном большинстве случаев, если возникает необходимость в чём-то реально сложном, нужные знания восполняются за 1-2 недели с минимальной посторонней помощью или даже вообще без. Это всё не нужно хранить в памяти постоянно, от того, что там лежит общая схема проекта и обзор возможностей используемых библиотек, пользы как правило в разы больше.


                              1. Jouretz
                                10.06.2019 15:15

                                О каком проекте вы говорите в итоге-то?
                                Разработка сайта за 300 баксов, AAA игры, браузера, статического анализатора, операционной системы, языка программирования и автоматики управляющей полётом на Марс требуют абсолютно разных квалификаций. И правило «восполняются за 1-2 недели» сработает далеко не везде.


                                1. adictive_max
                                  10.06.2019 15:37

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


                                  1. Jouretz
                                    10.06.2019 15:42

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


                                    1. adictive_max
                                      10.06.2019 15:57
                                      +1

                                      Бомблю я от того, что некоторые одухотворённые личности считают, что в условной команде из 200 человек, непосредственно работающих над кодом, называться «высоким званием программиста» могут от силы человек 15-20, а я, как неотёсанный пролетарий, считаю, что это всего лишь должность, которой соответствуют 150-180.
                                      Собственно из-за этого все споры, что почти всегда речь идёт о найме на должность, но требования предъявляются, как к высокому званию.

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


                                      1. Jouretz
                                        10.06.2019 16:15

                                        Уговорили, давайте уже примеры библиотек и фреймворков от «необразованных» авторов.
                                        Мне просто нужен термин, чтоб отличать этих 15-20 человек из вашей условной команды от оставшихся 180, не нравится вам «специалист» предложите другой.


                                        1. adictive_max
                                          10.06.2019 16:31

                                          Берёте npm, composer, NuGet или любой другой публичный репозиторий пакетов для любого языка широкого профиля, и смотрите исходники. В 90% случаев там если и будет «математика», то максимум на уровне 8-го класса средней школы. Причём независимо от востребованности пакета.
                                          ЗЫ. Питон — немного особый случай, сказывается специфика предметной области, тут будет процентов 60-70.


                                          1. iig
                                            10.06.2019 16:37
                                            +1

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


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


                                            1. adictive_max
                                              10.06.2019 16:45

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


                                              1. iig
                                                10.06.2019 17:17

                                                Утверждение 1: программист математику в своей работе не использует.
                                                Предположим, что утверждение истинно. Раз математика в работе не используется — изучать ее не обязательно. Значит, должно существовать непустое множество программистов, математику не изучавших.
                                                Правильно? ;)


                                          1. Jouretz
                                            10.06.2019 16:48

                                            90% npm-а откровенный шлак, любой кто больше пары лет в js-е вам это подтвердит. Я просил примеры реально хороших и полезных фреймворков созданных людьми без мат.образования.


                                            1. adictive_max
                                              10.06.2019 16:55

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


                                              1. Jouretz
                                                10.06.2019 17:05

                                                У меня? оО
                                                Я вроде в другую сторону воюю.


                                                1. adictive_max
                                                  10.06.2019 17:32

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

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


                                                  1. Jouretz
                                                    10.06.2019 17:43

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

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


                                        1. koldyr
                                          10.06.2019 17:03

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


                                          1. adictive_max
                                            10.06.2019 17:10

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


                                    1. Moxa
                                      11.06.2019 21:47

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


                              1. iig
                                10.06.2019 15:50

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


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


    1. RussDragon
      09.06.2019 14:59
      +1

      это матанализ, линал, дискретка, теория вероятностей, матлогика

      Скажите честно, этот список вы озвучили потому, что вас в ВУЗе так учили, или потому что вы действительно используете полный матаппарат в своих ежедневных задачах? :)

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


      1. akryukov
        09.06.2019 15:16
        -3

        Первоклассным? Вряд ли. Посредственным, достаточным для работы? Вполне


      1. 0xd34df00d
        09.06.2019 15:23
        -1

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


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


        1. RussDragon
          09.06.2019 15:29
          +1

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


          1. sshikov
            09.06.2019 17:04

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

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

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


            1. dimoff66
              09.06.2019 17:30

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


              1. DrPass
                09.06.2019 18:18
                -1

                Прграммирование это искусство, а не багаж знаний об алгоритмах.

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


              1. koldyr
                09.06.2019 19:31

                Точно, я даже книжку такую видел: "Искусство программирования".


            1. RussDragon
              09.06.2019 22:33

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

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

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

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

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

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

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

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

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

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


              1. akryukov
                09.06.2019 22:46
                -1

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


                1. RussDragon
                  09.06.2019 22:56
                  -1

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

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

                  Математика в данном случае частность.


              1. sshikov
                10.06.2019 07:29

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

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

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


                1. RussDragon
                  10.06.2019 16:18

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

                  Комментарий господина akryukov показывает мне обратное:
                  Первоклассным? Вряд ли. Посредственным, достаточным для работы? Вполне


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

                  «Длинный список» там состоит на 5/6 из перечисления разделов высшей математики. Нет, сама по себе она не плоха – плохо то, что человек ставит её во главу угла как самое важное.

                  Можно считать это совпадением, а можно и нет.

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


      1. pyrk2142
        09.06.2019 18:16
        +3

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

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


        1. extempl
          09.06.2019 21:36
          +1

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

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


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


  1. GrigoryPerepechko
    09.06.2019 12:41
    +9

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


  1. Scf
    09.06.2019 12:41
    +5

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

    без смс и регистрации.


    По теме — статья очень низкого качества, не нужно ей следовать


  1. Dreyk
    09.06.2019 13:00
    +7

    что если я не хочу бесплатно программировать? хочу, чтобы мне за это платили. стоит читать статью?
    :-D


  1. staticlab
    09.06.2019 13:01
    +1

    Очень странно, что в статье ни разу не упоминается C#. По нему нет курса Гоши Дударя?


    1. tmin10
      09.06.2019 13:10
      +1

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


  1. sbnur
    09.06.2019 13:08
    +2

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


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


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


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


    Что-нибудь, короче, соверши!
    Не писал стихов — И НЕ ПИШИ!


    А.Иванов


  1. iig
    09.06.2019 13:23

    Перед вопросом "как начать ХХХ (играть на гитаре, вести ЗОЖ, программировать)" всегда нужно задавать вопрос "зачем это начинать".


  1. ganqqwerty
    09.06.2019 14:51

    У меня создалось впечатление, что автор просто взял список некоторых случайных ЯП, загуглил по ним курсы и накопирайтил по абзацу на каждый. Это не ценно.
    Ценно — это, например, выбрать конкретную область или стек, пройти по ним все курсы, до каких получится дотянуться, найти ещё человек 20-100 таких же самоучек, провести опрос среди них, сравнить их по различным параметрам и скомпилировать это в статью. Это может помочь новичку. Так, кстати, некоторые ребята на хабре делают.


    1. sshikov
      09.06.2019 17:06
      +1

      Загуглил курсы — и случайно наткнулся на три курса одного автора? Ну что вы, тут явно заказом пахнет… :)


      1. ganqqwerty
        09.06.2019 18:14

        А ну тогда ещё глупее вышло


  1. Anshi85
    09.06.2019 14:57

    Я лично на вопросы очередного знакогомого или друга с чего начать входить в ИТ, советую ему подумать, действительно ли он этого хочет и подумать не раз и не два, а пару дней, а лучше неделю. Да хелловорлд написать легко, синтаксис практически любого языка до ООП, можно освоить за пару дней, но дальше начинаются сложности, чтобы запилить свой сайт надо знать немного бекенд и фронтенд, знать Linux, HTTP и HTTPS, Rest API, те же GET, POST, PUT, DELETE, уметь писать хотя примитивные запросы к БД чтобы можно было вытащить данные из БД на фронтенд, HTML, CSS. А когда все это освоишь, то поймёшь что рынок перенаселен такими как ты новичками и особо никому ты не нужен. В общем если идти в ИТ, только ради денег или стильно модно, молодежно, то есть риск потерять весь запал и бросить или всю жизнь работать на ненавистной работе скрепя зубами, другое дело если всегда любил компьютеры, тогда вопрос почему ты до сих пор не в ИТ?


    1. DrPass
      09.06.2019 15:32

      но дальше начинаются сложности, чтобы запилить свой сайт надо знать немного бекенд и фронтенд, знать Linux, HTTP и HTTPS, Rest API, те же GET, POST, PUT, DELETE, уметь писать хотя примитивные запросы к БД чтобы можно было вытащить данные из БД на фронтенд, HTML, CSS

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


  1. timelle
    09.06.2019 15:14

    Если кратко: HTML != XML
    Хотя бы в том аспекте, что HTML используется для визуальной разметки документа, а XML — для структурирования и передачи данных.
    Зная, допустим, HTML5, вы вряд ли автоматический будете знать SOAP.


    1. androidovshchik
      09.06.2019 15:33

      Еще XML используют дизайнеры) Да это svg


      1. prs123
        09.06.2019 15:52

        Да нет, в том же android'е можно верстать удобно на XML


  1. Sergey-S-Kovalev
    09.06.2019 15:25
    +2

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


  1. index0h
    09.06.2019 15:40

    Статья из серии "как потратить время".


    Лично я уже на 3 день написал простенький, но интересный сайт.

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


    1. igormich88
      09.06.2019 16:07

      Кстати было бы интересно просмотреть на тот сайт(вопрос к автору статьи Munoon)


  1. saipr
    09.06.2019 15:47

    PHP очень просто язык. Лично я уже на 3 день написал простенький, но интересный сайт.

    Ну тогда вам стоит попробовать еще и Tcl:


    Этот язык вам может понравиться именно тем, что он лёгкий.


  1. a-tk
    09.06.2019 18:29
    +1

    Ключевое слово — бесплатно. То бишь даром. То бишь сначала для себя, в учебном режиме, а потом уже о чём-то ещё думать.


  1. Hivemaster
    09.06.2019 21:41
    +1

    image


  1. MrAwesome
    10.06.2019 00:01

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


    1. Hivemaster
      10.06.2019 09:04

      Сложно, читать надо. Нужен видео-урок!


      1. A114n
        10.06.2019 14:10

        Рекомендую на эту тему цикл из пятидесяти видео-уроков от Гоши Дударя…


        1. Jouretz
          10.06.2019 14:38

          Чёт много, я вотпрямщас программировать хочу, завтра могу расхотеть, у Гоши есть какой-нибудь курс типа «OpenGL за 30 минут»?


  1. IvUyr
    11.06.2019 17:09

    «Я всегда рекомендовал и рекомендую купить курсы и учиться там. На курсах есть чёткая программа обучения, которая построена годами, и код ревью. А это очень важно для новичков.»
    Когда Я учился (на программиста, угу), нашу группу препод заставил пройти курс на «программирования» на одном сайте, который я не буду упоминать. Ну и получить «сертификат» о прохождении курса. На первом же «занятии» нам рассказывали о… html и css!..