Обучение программированию: на что ориентироваться при выборе языка?

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

Программирование и типы данных

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

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

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

Нетипизированные ЯП как плохой выбор

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

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

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

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

Комментарии
RSS
05:20
+1
В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте
12:54
+1
PHP – довольно хороший вариант для изучения как для новичков в сфере IT, так и для тех, кто работает с другими языками. Синтаксис языка входит в группу C-подобных, а это даёт возможность быстрее понять логику в коде приложений на Java, C#, C++ и так далее. Те же Python и Golang выглядят непривычно, но для тех, кто хочет изучить больше языков — это не преграда.

Если говорить о плюсах PHP, на котором мы делаем большинство проектов, стоит отнести:

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

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

Перспективы у PHP также довольно интересные. С версии 5.3 язык начал очень активно развиваться и приобретать выразительные свойства (пространства имён, примеси, генераторы, опциональный тайп-хинтинг и другое), возможность работы в асинхронном режиме, а в будущих версиях ожидается JIT, FFI, поддержка предзагрузки, полноценная асинхронность.

Перспективы в трудоустройстве также довольно обширны. Достаточно много как старых проектов, так и только разрабатываемых, используют PHP. При этом сложность приложений также варьируется: начиная от небольших посадочных страниц и заканчивая сложными веб-приложениями, обрабатывающими большие объёмы данных внутри кластеров серверов.
12:55
Если рассматривать все языки с их разделением по областям применения, то есть языки общего назначения, на которых пишут софт разного типа, и есть специализированные, на которых чаще пишут что-то одно.

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

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

А плюс в том, что хоть он и делает всего одну работу, но делает её идеально. Разработчики самого языка не отвлекаются на посторонние задачи и совершенствуют его только в основном направлении, оптимизируя скорость и привнося только важные для него новшества из других языков. Поэтому в нише скриптовых интерпретируемых веб-языков PHP практически является самым быстрым. Быстрее него уже только языки компилируемые, но будущий PHP 8.0 с JIT-компиляцией, как нам обещает его разработчик Дмитрий Стогов в докладе, вскоре обгонит и их.

К тому же это язык с синтаксисом из семейства более продвинутых Java и C#, что позволяет PHP-программистам учиться у них и при необходимости легко перейти на любой язык этой группы. С Ruby или Python со своим обособленным синтаксисом это будет сделать проблематично.

В PHP переходят хорошие практики из других языков. Создаются и развиваются профессиональные фреймворки. Так что из языка для любительских сайтов он уверенно переходит в нишу быстрых профессиональных веб-проектов, авторам которых не хочется поднимать тяжелые серверы на Java. Учить PHP сейчас или нет? Каждый раз накатывает новая волна технологий и каждый раз снова и снова «хоронят» PHP фразами, что вот-вот очередные Ruby или NodeJS победят PHP. Но десятки лет проходят, а всё никто его не побеждает.

Помимо продвинутого программирования веб-приложений на фреймворках, PHP отличается наличием большого числа CMS для разработки стандартных сайтов. И они никуда исчезать не собираются. Для экзотических задач удобны экзотические языки. А для классических проектов успешно хватает классического PHP. Так что всегда можно сказать, что другие языки приходят и уходят, а PHP, С++ и Java скорее всего вечны. И работы на них всегда будет много.
Ваш комментарий
Загрузка...
Вам может быть интересно
Неопытные разработчики вряд ли поймут, что изображено на диаграмме ниже. Но без понимания концептуальных основ работы современного веба тяжело назвать себя хорошим веб-программистом. В материале будет...
Эта статья — о мертвых или почти мертвых языках, которые оставили важный с...
Чем отличаются веб-приложения MPA, SPA и PWA, для ...
Сегодня мы поговорим о том, что такое SPA и какой ...
Зачем изучать PHP: рейтинг, перспективы, сферы при...
Python входит в число самых популярных языков прог...
Анализ кода является важной составляющей процесса ...
Буферизация вывода — одна из тех концепций в...
Веб-программирование – это создание технической ча...
Ходят слухи, что для сайта нужен движок, при помо...
Разработка сайта порой довольно сложное занятие, ...

Новые комментарии

Хорошая статья и комментарии, полезные советы, но я бы добавил. 1. Формы должны быть короткими Когда пользователь посещает ваш сайт, естест...
Я не поняла на счет «черного и белого». На счет догм было же уже написано в начале моего коммента. Про начальников — что я имела ввиду — разработ...
Алгоритм Mobile First влияет на поисковую выдачу не только во время мобильного серфинга, но и при использовании десктопных устройств. Основная и мобил...
Есть и еще один совет. Обязательно оставляйте на странице «воздух». Должна быть очевидная, естественная навигация без отвлекающих факторов (таких как ...

Заявка на услуги DST

Наш специалист свяжется с Вами, обсудит оптимальную стратегию сотрудничества,
поможет сформировать бизнес требования и рассчитает стоимость услуг.

Россия, Москва

Комсомольский пр-т, д.28

8 800 5508827
Заказать звонок

Режим работы: Пн-Пт 10:00-19:00

info@dstglobal.ru

Задать вопрос по почте

Укажите ваше имя
Укажите ваше email
Укажите ваше телефон