Актуальность
Профессия программиста не нуждается в рекламе. Никто даже не задумывается, что один терминал самообслуживания может сократить количество сотрудников банка. Выдать наличку и принять оплату вполне может и «робот». А чем больше таких терминалов, тем больше работы у программистов.
Там, где есть компьютеры, где необходимо оптимизировать рабочий процесс, облегчив работу человека, повысив при этом эффективность бизнеса, - востребованы программисты. Смартфоны, планшеты, смарт-часы, фитнес-браслеты, системы управления умным домом, дроны (например, роботы-уборщики) требуют огромной армии программистов.
Сегодня начать карьеру в программировании может каждый — даже совсем далекий от этой сферы человек, достаточно просто уметь пользоваться компьютером на базовом уровне. Пандемия ускорила переход бизнеса в онлайн. Поэтому 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)
DrPass
18.06.2022 03:35+4Чтобы выбрать лучший язык для начинающих, я создал таблицу сравнения самых популярных языков по 10-ти бальной системе.
Я не знаю, как вы её заполняли, но если будете просто подбрасывать кубик, результат будет не менее релевантным чем тот, что у вас. Но если вам больше всего нравится Пайтон (или вы знаете только его), можно ведь было просто сразу написать об этом, а другие языки можно было не упоминать :)
SergeiMinaev
18.06.2022 03:45+4по 5-ти бальной системе, где 5 – наивысший балл, 1 – наименьший.
Извиняюсь за придирки, но разве в 5-бальной системе 5 может не быть наивысшим баллом?)
Среди всех с достаточно большим отрывом выигрывают видео-уроки. Знатоки,
которые создают эти уроки, на столько подробно и доступно всё
объясняют, что даже человеку, далёкому к данной теме не составит труда
разобраться в программировании.Выскажу своё субьективное мнение.
1) В видео нет поиска по словам. Поиск посредством перемотки - боль. Пока будешь перематывать на нужный участок, можно двести раз погуглить и прочитать. Особенно радует, когда во время спора в чате один из спорящих даёт другому, в качестве аргумента, ссылку на 4-часовое видео с фразой - "Да вот, тут всё описано, посмотри".
2) Программисту необходимо заранее учиться читать тех. документацию. Просмотр видео вместо чтения на этот навык влияет, имхо, негативно. Да, всё зависит от человека - кто-то хорошо запоминает, читая, а кто-то лучше воспринимает ушами. Но учиться читать всё равно придётся и лучше начать делать это заранее.randomsimplenumber
18.06.2022 09:19+1разве в 5-бальной системе 5 может не быть наивысшим баллом?)
Вроде как у немцев школьные оценки наоборот ставились . 1 - отлично, 5 - очень плохо.
vmkazakoff
18.06.2022 16:43Да. У Пушкина 1 было высшим баллом, 4 низшим и ещё вроде был 0 как самый низший. Они тогда исправляли нули на четверки в дневнике.
Dark_Hobbit
20.06.2022 09:46Извиняюсь за придирки, но разве в 5-бальной системе 5 может не быть наивысшим баллом?)
в Чехии они идут наоборот, 1 это наивысший балл. От страны зависит)
Schokn-Itrch
18.06.2022 07:00+1В ходе выполнения работы мной были изучены различные способы изучения языков программирования. Изучив и проанализировав их были выявлены плюсы и минусы каждого из способов.
И какой из "способов изучения" ASM/C всподвиг ваше величество поставить их ниже питона?
Lazytech
18.06.2022 07:12+3В "таблице сравнения самых популярных языков" (TM) почему-то отсутствует мегапопулярный JavaScript, зато туда как-то затесался Assembler. :)
randomsimplenumber
18.06.2022 11:25+2Ассемблер очень простой язык. Никаких UB, никаких однострочных головоломок в perl-style. Никаких ООП. Никаких 2 + '2'. Выучить просто.
Lazytech
18.06.2022 13:20Напомню, в вышеупомянутой таблице речь идет о популярных языках, к коим ассемблер вроде бы не относится.
DrPass
18.06.2022 13:47+4Судя по…
В ходе выполнения работы мной были изучены различные способы изучения языков программирования
… парень просто запостил на хабр свой реферат. И по-моему, как для уровня реферата старшеклассника или первокурсника, вполне сойдёт :)
GavriKos
18.06.2022 08:15+5Когда много лет назад защищал диплом, многие студенты говорили фразу "мое решение эффективнее". И один препод задавал всем один и тот же вопрос - "А как вы измеряли эффективность?". Так вот. Без критериев и методов оценки ваша таблица - фигня.
roundzero
18.06.2022 09:27+1Язык программирования это инструмент, как дрель. Чтобы был результат надо не просто язык учить, но осваивать анализ, алгоритмизацию, помните блок-схемы на доске? Прикладные аспекты. Даже написать игру lunar lander требуется знать физику. А язык не особо важен. Зная один, остальные легко осваивать. И уже тогда выбирать язык под задачу и не писать на джаве управление теплицей.
igor_carenko
18.06.2022 09:30-3Можно подумать, многие читают инструкцию к инструменту, например, к дрели)
saipr
18.06.2022 09:29+1А вот как начиналось моё обучение программированию 50 лет назад:
Обучение началось с изучения систем счисления. Всё что я знал до этого момента про счёт – это арабские и римские цифры. А оказалось, что в повседневной жизни мы пользуемся десятичной системой счисления, а вот для электронно-вычислительных машин это совсем не подходит и в них используется двоичная система счисления, состоящая из нулей и единичек. А ещё есть восьмеричная система счисления от 0 до 7 и даже шестнадцатеричная от 0 до 9, а далее A, B, C, D, E, F. Последняя система вводила в ступор: символ «А» это же буква, а не цифра!
Закончилось оно таким уроком:
Представь себе кучу пронумерованных/подписанных спичечных коробков, в каждом из которых лежит какое-то количество спичек. Коробок со спичками – это и есть ячейка. Адрес ячейки – это номер коробка или его название. Теперь предположим, что надо узнать, сколько всего спичек хранится в пятом и десятом коробках вместе, т.е. выполнить операцию сложения, и такое же количество спичек положить в коробок с номером 15. Заглядываем в коробок №5 и запоминаем сколько в нём спичек, затем аналогичным образом поступаем с коробком №10, складываем запомненные значения. Это и есть то количество спичек, которое нужно положить в коробок №15. ЭВМ делает тоже самое, только не с коробками, а с ячейками памяти
Невольно возник вопрос после прочтения абзаца:
Способы изучения языка Python\
литература
видео-уроки
курсы по программированию
наставникА как учить другие языки? Какие использовать способы?
DrPass
18.06.2022 13:17+1Это и есть то количество спичек, которое нужно положить в коробок №15. ЭВМ делает тоже самое, только не с коробками, а с ячейками памяти
Ну а я в десять лет нашёл в библиотеке учебник прикладной физики, где одна глава была посвящена логическим элементам на диодно-резисторной логике, и потом из них складывался сумматор. Так что вы ещё легко отделались в процессе входа в ИТ.
MentalBlood
18.06.2022 11:57+2У C простота 2/10? Категорически не согласен. В C на порядок-другой меньше концепций, чем в Python. И начинать лучше с C, потому что он проще и строже
P.S. И простота C++ при этом 3/10. Ну да, ну да
bromzh
19.06.2022 23:50А чем Си со слабой типизацией (то есть с неявным приведением типов) строже сильной типизации питона?
В C на порядок-другой меньше концепций, чем в Python
При этом одна из концепций - ручное управление памятью - сводит на нет всю "простоту" языка. Написать на C код с утечками памяти очень просто, а вот без них крайне сложно даже опытным людям.
MentalBlood
20.06.2022 10:03C строже необходимостью аккуратной работы с памятью
сводит на нет всю "простоту" языка
Но язык то простой. Brainfuck, например, еще проще, потому что еще меньше концепций. И разве не существует миллион библиотек для автоматизации free и проверок, если уж не нужен такой низкий уровень?
bromzh
20.06.2022 12:40+1А зачем учить простой язык на котором сложно писать работающие программы? Может лучше взять язык чуть посложнее, но на котором стрельнуть в ногу будет сложнее, и который более востребован сейчас? Ручная работа с памятью нужна только в немногих сферах разработки. Гораздор более широкая часть разработки использует языки с GC.
Вот выучит человек C, станет си-джуном. Куда он сможет устроиться на работу?
MentalBlood
20.06.2022 14:21Может лучше взять язык чуть посложнее
"чуть" — можно, например Lua. А не Python и прочее ООП. ООП востребовано, но начинать лучше с элементарного
Вот выучит человек C, станет си-джуном
Пусть потом выучит например Python и станет Python-джуном. После C это не займет много времени
bromzh
20.06.2022 15:28Так питон можно учить и без ООП. Более того, там много функций сделаны не как методы, а именно как функции (map, len, etc). Там functools в комплекте есть. И в нём есть очень много концепций из разных языков: генераторы, асинхронщина, ООП, ФП, типы.
Какой смысл учить один язык без ООП, чтобы потом для изучения ООП переключиться на другой?
«Вот, ученик, ты выучил Си. Теперь мы будем учить другой язык с другими парадигмами и другим синтаксисом, так что 90% знаний из си тебе не пригодится»MentalBlood
20.06.2022 17:32Там functools в комплекте есть
Там вообще так много всего в комплекте есть, что и учить, казалось бы, ничего не нужно — только синтаксис и интерфейсы библиотек
Какой смысл учить один язык без ООП, чтобы потом для изучения ООП переключиться на другой?
Выучить два языка вместо одного, очевидно же. Конкретно для Python на C еще и расширения писать можно
Dolios
18.06.2022 14:23+2Какой способ лучше всего подходит, чтобы начать изучать программирование?
Начать программировать.
Какой язык выбрать?
Любой, который не будет отвлекать от азов. С, Pascal, Python, Javascript. ООП на первом этапе не нужно. Язык — это инструмент. Начиная учиться пользоваться молотками, выбирайте самый простой.
Aleks_ja
18.06.2022 14:50Пост напоминает курсовую работу. В том числе и по уровню.
randomsimplenumber
18.06.2022 15:28+2Пост напоминает курсовую работу
Только не в программистском ПТУ, а в педагогическом.
Schokn-Itrch
Заголовок начинает раскрываться п пятом пункте и сразу закрывается. Чистый пиар питона.
Если под "Скорость обработки" понимается реальное выполнение, то, учитывая что ASM получил 10, а C 6-7, Java должна была получить 0-1 (причем это зависит от платформы), а питон уйти глубоко в минус (вне зависимости от платформы).
nochkin
Там вся табличка очень уж какая-то не объективная. Например, Python в два раза проще C#, но читабельность у C# выше.
Про "графический интерфейс" там вообще не понятно без зацепки о какой среде вообще речь.
Schokn-Itrch
Я даже перечитал свой сумбур из песочницы. Вроде бы структурность есть.. Логика есть... А тут ее почему то нет. Ну нет "выбора". Есть "тыканье кота в миску питона".
Stepan40k
Чтобы сравнивать быстродействие разных языков, неплохо бы, из уважения к хабровчанам, привести бенчмаркинг на тестовой задаче. А просто сказать, что Питон всего на 30% медленее С - это очень мощный бросок на вентилятор
vriska
Нужно учитывать ещё то, что С можно компилировать с агрессивными оптимизациями, а ассемблер — не сильно. Среднестатистический человек скорее напишет одну и ту же программу на С и ассемблере так, что вариант на С окажется быстрее.