Актуальность

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

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

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

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

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

Цель

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

Какой язык выбрать?

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

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

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

Если вы ищете своё призвание и вам интересно программирование, вы наверняка задавались вопросом, с чего начать погружение в эту сферу. Один из возможных путей в IT — изучение языков программирования. Так вы освоите первый инструмент будущей профессии: HTML и CSS для вёрстки страниц, Java и Swift для мобильной разработки, SQL для работы с базами данных, а JavaScript и Python — для веб-разработки и не только.

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

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

Скорость обработки

Читабельность

Простота

Графический интерфейс пользователя

C

7

6

2

3

C++

7

6

3

4

C#

6

7

5

6

Java

5

5

6

7

Python

5

6

10

8

Assembler

10

1

1

1

В сравнении с проанализированными языками программирования,
изучение Python имеет ряд преимуществ:

  • Простота освоения.

  • Лаконичность.

  • Удобный синтаксис и простая семантика.

  • Интерпретируемость.

  • Широкая сфера применения.

  • Обширная поддержка библиотек.

  • Большое количество документации и обучающих материалов.

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

Способы изучения языка Python

  • литература

  • видео-уроки

  • курсы по программированию

  • наставник

Исследование

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

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

Ученику №1 – Книгу, №2 – Видео-уроки, №3 – рассказал, как начать изучать программирование самому, №4 – учил сам.

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

Оценка методов по разным критериям.

Литература

Видео-уроки

Курсы

Помощь наставника

Простота

3

5

4

5

Качество

3

5

5

5

Удобство

5

5

5

3

Актуальность

2

5

4

5

Время

3

4

5

4

Цена

4

5

1

1

Общий балл

20

29

24

23

Вывод

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

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

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

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

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


  1. Schokn-Itrch
    18.06.2022 02:52
    +4

    Заголовок начинает раскрываться п пятом пункте и сразу закрывается. Чистый пиар питона.

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

    Если под "Скорость обработки" понимается реальное выполнение, то, учитывая что ASM получил 10, а C 6-7, Java должна была получить 0-1 (причем это зависит от платформы), а питон уйти глубоко в минус (вне зависимости от платформы).


    1. nochkin
      18.06.2022 04:41
      +1

      Там вся табличка очень уж какая-то не объективная. Например, Python в два раза проще C#, но читабельность у C# выше.

      Про "графический интерфейс" там вообще не понятно без зацепки о какой среде вообще речь.


      1. Schokn-Itrch
        18.06.2022 04:57

        Я даже перечитал свой сумбур из песочницы. Вроде бы структурность есть.. Логика есть... А тут ее почему то нет. Ну нет "выбора". Есть "тыканье кота в миску питона".


    1. Stepan40k
      20.06.2022 09:43

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


    1. vriska
      20.06.2022 09:58

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


  1. DrPass
    18.06.2022 03:35
    +4

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

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


  1. SergeiMinaev
    18.06.2022 03:45
    +4

    по 5-ти бальной системе, где 5 – наивысший балл, 1 – наименьший.

    Извиняюсь за придирки, но разве в 5-бальной системе 5 может не быть наивысшим баллом?)

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

    Выскажу своё субьективное мнение.
    1) В видео нет поиска по словам. Поиск посредством перемотки - боль. Пока будешь перематывать на нужный участок, можно двести раз погуглить и прочитать. Особенно радует, когда во время спора в чате один из спорящих даёт другому, в качестве аргумента, ссылку на 4-часовое видео с фразой - "Да вот, тут всё описано, посмотри".
    2) Программисту необходимо заранее учиться читать тех. документацию. Просмотр видео вместо чтения на этот навык влияет, имхо, негативно. Да, всё зависит от человека - кто-то хорошо запоминает, читая, а кто-то лучше воспринимает ушами. Но учиться читать всё равно придётся и лучше начать делать это заранее.


    1. randomsimplenumber
      18.06.2022 09:19
      +1

      разве в 5-бальной системе 5 может не быть наивысшим баллом?)

      Вроде как у немцев школьные оценки наоборот ставились . 1 - отлично, 5 - очень плохо.


    1. vmkazakoff
      18.06.2022 16:43

      Да. У Пушкина 1 было высшим баллом, 4 низшим и ещё вроде был 0 как самый низший. Они тогда исправляли нули на четверки в дневнике.


    1. Dark_Hobbit
      20.06.2022 09:46

      Извиняюсь за придирки, но разве в 5-бальной системе 5 может не быть наивысшим баллом?)

      в Чехии они идут наоборот, 1 это наивысший балл. От страны зависит)


  1. Schokn-Itrch
    18.06.2022 07:00
    +1

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

    И какой из "способов изучения" ASM/C всподвиг ваше величество поставить их ниже питона?


  1. Lazytech
    18.06.2022 07:12
    +3

    В "таблице сравнения самых популярных языков" (TM) почему-то отсутствует мегапопулярный JavaScript, зато туда как-то затесался Assembler. :)


    1. randomsimplenumber
      18.06.2022 11:25
      +2

      Ассемблер очень простой язык. Никаких UB, никаких однострочных головоломок в perl-style. Никаких ООП. Никаких 2 + '2'. Выучить просто.


      1. Lazytech
        18.06.2022 13:20

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


        1. DrPass
          18.06.2022 13:47
          +4

          Судя по…

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

          … парень просто запостил на хабр свой реферат. И по-моему, как для уровня реферата старшеклассника или первокурсника, вполне сойдёт :)


  1. GavriKos
    18.06.2022 08:15
    +5

    Когда много лет назад защищал диплом, многие студенты говорили фразу "мое решение эффективнее". И один препод задавал всем один и тот же вопрос - "А как вы измеряли эффективность?". Так вот. Без критериев и методов оценки ваша таблица - фигня.


  1. roundzero
    18.06.2022 09:27
    +1

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


    1. igor_carenko
      18.06.2022 09:30
      -3

      Можно подумать, многие читают инструкцию к инструменту, например, к дрели)


  1. saipr
    18.06.2022 09:29
    +1

    А вот как начиналось моё обучение программированию 50 лет назад:


    Обучение началось с изучения систем счисления. Всё что я знал до этого момента про счёт – это арабские и римские цифры. А оказалось, что в повседневной жизни мы пользуемся десятичной системой счисления, а вот для электронно-вычислительных машин это совсем не подходит и в них используется двоичная система счисления, состоящая из нулей и единичек. А ещё есть восьмеричная система счисления от 0 до 7 и даже шестнадцатеричная от 0 до 9, а далее A, B, C, D, E, F. Последняя система вводила в ступор: символ «А» это же буква, а не цифра!

    Закончилось оно таким уроком:


    Представь себе кучу пронумерованных/подписанных спичечных коробков, в каждом из которых лежит какое-то количество спичек. Коробок со спичками – это и есть ячейка. Адрес ячейки – это номер коробка или его название. Теперь предположим, что надо узнать, сколько всего спичек хранится в пятом и десятом коробках вместе, т.е. выполнить операцию сложения, и такое же количество спичек положить в коробок с номером 15. Заглядываем в коробок №5 и запоминаем сколько в нём спичек, затем аналогичным образом поступаем с коробком №10, складываем запомненные значения. Это и есть то количество спичек, которое нужно положить в коробок №15. ЭВМ делает тоже самое, только не с коробками, а с ячейками памяти

    С тех пор и программирую.


    Невольно возник вопрос после прочтения абзаца:


    Способы изучения языка Python\
    литература
    видео-уроки
    курсы по программированию
    наставник

    А как учить другие языки? Какие использовать способы?


    1. DrPass
      18.06.2022 13:17
      +1

      Это и есть то количество спичек, которое нужно положить в коробок №15. ЭВМ делает тоже самое, только не с коробками, а с ячейками памяти

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


  1. Neom1an
    18.06.2022 11:52
    +4

    Такое ощущение, что текст генерировал очередной Корчеватель


  1. MentalBlood
    18.06.2022 11:57
    +2

    У C простота 2/10? Категорически не согласен. В C на порядок-другой меньше концепций, чем в Python. И начинать лучше с C, потому что он проще и строже


    P.S. И простота C++ при этом 3/10. Ну да, ну да


    1. bromzh
      19.06.2022 23:50

      А чем Си со слабой типизацией (то есть с неявным приведением типов) строже сильной типизации питона?

       В C на порядок-другой меньше концепций, чем в Python

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


      1. MentalBlood
        20.06.2022 10:03

        C строже необходимостью аккуратной работы с памятью


        сводит на нет всю "простоту" языка

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


        1. bromzh
          20.06.2022 12:40
          +1

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

          Вот выучит человек C, станет си-джуном. Куда он сможет устроиться на работу?


          1. MentalBlood
            20.06.2022 14:21

            Может лучше взять язык чуть посложнее

            "чуть" — можно, например Lua. А не Python и прочее ООП. ООП востребовано, но начинать лучше с элементарного


            Вот выучит человек C, станет си-джуном

            Пусть потом выучит например Python и станет Python-джуном. После C это не займет много времени


            1. bromzh
              20.06.2022 15:28

              Так питон можно учить и без ООП. Более того, там много функций сделаны не как методы, а именно как функции (map, len, etc). Там functools в комплекте есть. И в нём есть очень много концепций из разных языков: генераторы, асинхронщина, ООП, ФП, типы.
              Какой смысл учить один язык без ООП, чтобы потом для изучения ООП переключиться на другой?
              «Вот, ученик, ты выучил Си. Теперь мы будем учить другой язык с другими парадигмами и другим синтаксисом, так что 90% знаний из си тебе не пригодится»


              1. MentalBlood
                20.06.2022 17:32

                Там functools в комплекте есть

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


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

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


  1. Dolios
    18.06.2022 14:23
    +2

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

    Начать программировать.


    Какой язык выбрать?

    Любой, который не будет отвлекать от азов. С, Pascal, Python, Javascript. ООП на первом этапе не нужно. Язык — это инструмент. Начиная учиться пользоваться молотками, выбирайте самый простой.


  1. Aleks_ja
    18.06.2022 14:50

    Пост напоминает курсовую работу. В том числе и по уровню.


    1. randomsimplenumber
      18.06.2022 15:28
      +2

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

      Только не в программистском ПТУ, а в педагогическом.