HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>1 сен 2020</li>
2 <ul><li>1 сен 2020</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><h2>Как выбрать первый язык программирования</h2>
4 </ul><h2>Как выбрать первый язык программирования</h2>
5 <p>Разбираемся, что учить новичку в программировании, даже если ты ничего не понимаешь, а вокруг одни противоречивые мнения.</p>
5 <p>Разбираемся, что учить новичку в программировании, даже если ты ничего не понимаешь, а вокруг одни противоречивые мнения.</p>
6 <p> vlada_maestro / shutterstock</p>
6 <p> vlada_maestro / shutterstock</p>
7 <p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
7 <p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
8 <p>Разработчики на Python хвалятся тем, как быстро пишут код. Программисты на C++ - что их код очень производительный. Те, кто используют Java, говорят, как важна кросс-платформенность.</p>
8 <p>Разработчики на Python хвалятся тем, как быстро пишут код. Программисты на C++ - что их код очень производительный. Те, кто используют Java, говорят, как важна кросс-платформенность.</p>
9 <p>И все торопятся друг друга обидеть: Swift - для геев (многие действительно так думают), Python - для малышей, а JavaScript, конечно же, для дураков. Разработчики готовы спорить даже о том, что лучше - табы или пробелы.</p>
9 <p>И все торопятся друг друга обидеть: Swift - для геев (многие действительно так думают), Python - для малышей, а JavaScript, конечно же, для дураков. Разработчики готовы спорить даже о том, что лучше - табы или пробелы.</p>
10 <p>В этой статье мы рассмотрим две темы:</p>
10 <p>В этой статье мы рассмотрим две темы:</p>
11 <ul><li>Почему язык - не главное, о чём нужно думать новичкам.</li>
11 <ul><li>Почему язык - не главное, о чём нужно думать новичкам.</li>
12 <li>Насколько сложным должен быть первый язык.</li>
12 <li>Насколько сложным должен быть первый язык.</li>
13 </ul><p>Я начинал с PHP и каждый день видел прогресс: какой-то новый подход, массивы вместо переменных, супермассивы, базы данных и так далее. Освоив PHP на более или менее сносном уровне, я двинулся дальше и приступил к JavaScript. Разобравшись с ним, я попробовал C++, потому что хотел заниматься играми. Скачал учебник, который все рекомендовали, позанимался по нему - и бросил программирование на несколько лет. М-да.</p>
13 </ul><p>Я начинал с PHP и каждый день видел прогресс: какой-то новый подход, массивы вместо переменных, супермассивы, базы данных и так далее. Освоив PHP на более или менее сносном уровне, я двинулся дальше и приступил к JavaScript. Разобравшись с ним, я попробовал C++, потому что хотел заниматься играми. Скачал учебник, который все рекомендовали, позанимался по нему - и бросил программирование на несколько лет. М-да.</p>
14 <p>Сейчас я программирую на PHP, JS, Java, Python, C# и C++. С каждым новым языком я постоянно возвращался к основам и узнавал что-то новое о работе компьютера: как устроена память, как работает процессор, какой код будет работать быстро, а какой - нет. И, самое главное -<em>почему</em>. Если бы я сразу начал с C++, то, скорее всего, решил бы, что это не моё - слишком много информации.</p>
14 <p>Сейчас я программирую на PHP, JS, Java, Python, C# и C++. С каждым новым языком я постоянно возвращался к основам и узнавал что-то новое о работе компьютера: как устроена память, как работает процессор, какой код будет работать быстро, а какой - нет. И, самое главное -<em>почему</em>. Если бы я сразу начал с C++, то, скорее всего, решил бы, что это не моё - слишком много информации.</p>
15 <p>Все эти споры, какой язык круче, бессмысленны, потому что:</p>
15 <p>Все эти споры, какой язык круче, бессмысленны, потому что:</p>
16 <ul><li>У каждого языка есть свои преимущества и недостатки.</li>
16 <ul><li>У каждого языка есть свои преимущества и недостатки.</li>
17 <li>Один язык не может быть хорош для всего.</li>
17 <li>Один язык не может быть хорош для всего.</li>
18 </ul><p>Новички ещё слишком мало знают, чтобы понять, что им нужно от языка. Поэтому выбирать нужно не язык, а то,<em>чем</em>вы хотите заниматься. Многие языки в первую очередь затачиваются под решение определённых проблем или под определённые сферы:</p>
18 </ul><p>Новички ещё слишком мало знают, чтобы понять, что им нужно от языка. Поэтому выбирать нужно не язык, а то,<em>чем</em>вы хотите заниматься. Многие языки в первую очередь затачиваются под решение определённых проблем или под определённые сферы:</p>
19 <ul><li>Быстро создать сайт - PHP или Python.</li>
19 <ul><li>Быстро создать сайт - PHP или Python.</li>
20 <li>Создать игру - C++ или C#.</li>
20 <li>Создать игру - C++ или C#.</li>
21 <li>Веб-систему для банка - Java, C# или C++.</li>
21 <li>Веб-систему для банка - Java, C# или C++.</li>
22 <li>Красивый интерфейс для сайта - HTML, CSS и JavaScript.</li>
22 <li>Красивый интерфейс для сайта - HTML, CSS и JavaScript.</li>
23 <li>Приложение для Android - Java или Kotlin.</li>
23 <li>Приложение для Android - Java или Kotlin.</li>
24 <li>Приложение для iOS или Mac OS - Objective-C или Swift.</li>
24 <li>Приложение для iOS или Mac OS - Objective-C или Swift.</li>
25 </ul><p>Выбрав сферу, выясните, какие языки там используются, и выбирайте из них. Вы можете попробовать выучить несколько разных языков, чтобы определиться, какой вам больше нравится или лучше подходит для конкретной задачи.</p>
25 </ul><p>Выбрав сферу, выясните, какие языки там используются, и выбирайте из них. Вы можете попробовать выучить несколько разных языков, чтобы определиться, какой вам больше нравится или лучше подходит для конкретной задачи.</p>
26 <p>Но даже если вы решите выбрать что-то совсем непопулярное - на чём пока не создавали крутые проекты, - это не значит, что вас ждет провал.</p>
26 <p>Но даже если вы решите выбрать что-то совсем непопулярное - на чём пока не создавали крутые проекты, - это не значит, что вас ждет провал.</p>
27 <p>Выбор технологии не определяет успеха игры, сайта, приложения и чего угодно ещё.</p>
27 <p>Выбор технологии не определяет успеха игры, сайта, приложения и чего угодно ещё.</p>
28 <p>А вот основные сильные и слабые стороны популярных языков:</p>
28 <p>А вот основные сильные и слабые стороны популярных языков:</p>
29 <strong>Язык</strong><strong>Преимущества</strong><strong>Недостатки</strong><strong>С++</strong>• Высокая производительность • Прямой доступ к памяти • Строгая типизация • Высокий порог входа • Низкая скорость разработки<strong>C#</strong>• Строгая типизация • Сборка мусора • Кросс-платформенность • Большое количество синтаксического сахара • Ориентированность под Windows • Нет возможности создавать кросс-платформенное GUI<strong>Python</strong>• Высокая скорость разработки • Возможность быстро выучить язык • Широкий спектр применения • Слабая типизация • Низкая производительность<strong>JavaScript</strong>• Высокая скорость разработки • Возможность быстро выучить язык • Непредсказуемость • Слабая типизация<strong>Java</strong>• Кросс-платформенность • Строгая типизация • Сборка мусора • Требуется много времени на запуск приложения • Большой объём повторяющегося кода<strong>PHP</strong>• Большое сообщество • Быстрое развитие • Слабая типизация • Небезопасный код<p>Джоэл Спольски (CEO Stack Overflow) предпочитает C-подобные языки, но всё равно<a>выбирает</a>тот, который лучше справится с конкретной задачей.</p>
29 <strong>Язык</strong><strong>Преимущества</strong><strong>Недостатки</strong><strong>С++</strong>• Высокая производительность • Прямой доступ к памяти • Строгая типизация • Высокий порог входа • Низкая скорость разработки<strong>C#</strong>• Строгая типизация • Сборка мусора • Кросс-платформенность • Большое количество синтаксического сахара • Ориентированность под Windows • Нет возможности создавать кросс-платформенное GUI<strong>Python</strong>• Высокая скорость разработки • Возможность быстро выучить язык • Широкий спектр применения • Слабая типизация • Низкая производительность<strong>JavaScript</strong>• Высокая скорость разработки • Возможность быстро выучить язык • Непредсказуемость • Слабая типизация<strong>Java</strong>• Кросс-платформенность • Строгая типизация • Сборка мусора • Требуется много времени на запуск приложения • Большой объём повторяющегося кода<strong>PHP</strong>• Большое сообщество • Быстрое развитие • Слабая типизация • Небезопасный код<p>Джоэл Спольски (CEO Stack Overflow) предпочитает C-подобные языки, но всё равно<a>выбирает</a>тот, который лучше справится с конкретной задачей.</p>
30 <p>Например, если вы хотите создавать игры, то какие? Посмотрите, на каком движке сделаны ваши любимые игры, и начните осваивать его. Если это<a>Unity</a>, то вам нужен C#. Если<a>Unreal Engine</a>, то С++.</p>
30 <p>Например, если вы хотите создавать игры, то какие? Посмотрите, на каком движке сделаны ваши любимые игры, и начните осваивать его. Если это<a>Unity</a>, то вам нужен C#. Если<a>Unreal Engine</a>, то С++.</p>
31 <p>Если вы, как и я, выбрали геймдев, то перед вами встаёт дилемма: какой из языков выбрать. Оба достаточно крутые, на них написано большое количество известных игр. Допустим, вам всё же больше понравился C++.</p>
31 <p>Если вы, как и я, выбрали геймдев, то перед вами встаёт дилемма: какой из языков выбрать. Оба достаточно крутые, на них написано большое количество известных игр. Допустим, вам всё же больше понравился C++.</p>
32 <p>Но тут возникает проблема: среди популярных сегодня языков C++ - один из самых сложных. Что делать?</p>
32 <p>Но тут возникает проблема: среди популярных сегодня языков C++ - один из самых сложных. Что делать?</p>
33 <p>Есть мнение, что если ваш первый язык будет слишком простым, то вы не сможете стать хорошим программистом.</p>
33 <p>Есть мнение, что если ваш первый язык будет слишком простым, то вы не сможете стать хорошим программистом.</p>
34 <p>Всё из-за того, что простые языки не требуют от вас знаний, как устроен компьютер, как данные хранятся в памяти, как процессор выполняет операцию деления и так далее.</p>
34 <p>Всё из-за того, что простые языки не требуют от вас знаний, как устроен компьютер, как данные хранятся в памяти, как процессор выполняет операцию деления и так далее.</p>
35 <p>Тот же Джоэл Спольски<a>писал</a>, что начинать погружение в программирование нужно с C (ещё сложнее, чем C++), потому что так вы освоите главные принципы и сможете писать более эффективные программы. Даже если они будут не на C.</p>
35 <p>Тот же Джоэл Спольски<a>писал</a>, что начинать погружение в программирование нужно с C (ещё сложнее, чем C++), потому что так вы освоите главные принципы и сможете писать более эффективные программы. Даже если они будут не на C.</p>
36 <p>С другой стороны, очень просто потерять мотивацию, когда изучаешь язык и подолгу останавливаешься на каждом термине. Несколько дней на изучение переменных, потом ещё недельку на массивы, месяц - на функции и так далее. За это же время другие успеют выучить Python на достаточном уровне, чтобы создавать простые блоги.</p>
36 <p>С другой стороны, очень просто потерять мотивацию, когда изучаешь язык и подолгу останавливаешься на каждом термине. Несколько дней на изучение переменных, потом ещё недельку на массивы, месяц - на функции и так далее. За это же время другие успеют выучить Python на достаточном уровне, чтобы создавать простые блоги.</p>
37 <p>Так что я считаю нормальным начинать с чего-то простого. Вы будете расти - ступенька за ступенькой. Причём с большей эффективностью.</p>
37 <p>Так что я считаю нормальным начинать с чего-то простого. Вы будете расти - ступенька за ступенькой. Причём с большей эффективностью.</p>
38 <p>Обсуждать можно бесконечно, но вот совет: начните уже изучать хоть что-то, сопоставив первый язык со сферой ваших интересов. И не переживайте, если вам понравился сложный язык. Сейчас обо всём можно найти понятные и подробные руководства. Например, в своей<a>новой серии статей</a>я максимально просто объяснил сложные понятия в C++. А на курсе Skillbox всё это можно<a>закрепить на практике</a>.</p>
38 <p>Обсуждать можно бесконечно, но вот совет: начните уже изучать хоть что-то, сопоставив первый язык со сферой ваших интересов. И не переживайте, если вам понравился сложный язык. Сейчас обо всём можно найти понятные и подробные руководства. Например, в своей<a>новой серии статей</a>я максимально просто объяснил сложные понятия в C++. А на курсе Skillbox всё это можно<a>закрепить на практике</a>.</p>
39 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
39 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>