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

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

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

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

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

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

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

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

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

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

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

Обучение программированию: на что ориентироваться при выборе языка?
Получить консультацию у специалистов DST
Напишите нам прямо сейчас, наши специалисты расскажут об услугах и ответят на все ваши вопросы.
Комментарии
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 скорее всего вечны. И работы на них всегда будет много.
Вам может быть интересно
Зачем использовать TypeScript для своих проектов? Основная цель TypeScript — повысить производительность при разработке сложных приложений, а также облегчить жизнь вашей команде при написании ко...
Прочтите это руководство от разработчиков DST Global и узнайте : какая мощная пл...
Ознакомьтесь с подробностями методологий разработк...
Прочтите это руководство от специалистов DST Globa...
Как работает веб?В этой статье разработчики DST Gl...
Рассказываем, зачем и где учить PHP, где его приме...
Современные сайты интерактивные и динамичные &m...
В Последние годы Web-приложения постепенно вытесня...
По результатам ежегодного отчёта State of the Octo...
Java virtual machine (JVM) — это программа, ...

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

Отличная платформа, особенно для маркетплейсов (в принципе единственная), вместо того что бы строить с 0 весь функционал и потратить на это более 6 ме...
Отличная платформа, особенно для маркетплейсов (в принципе единственная), вместо того что бы строить с 0 весь функционал и потратить на это более 6 ме...
Отличная платформа, особенно для маркетплейсов (в принципе единственная), вместо того что бы строить с 0 весь функционал и потратить на это более 6 ме...
Pagelook достаточно старая Социальная сеть, основное направление развлечения, как я понял она хорошо подойдет тем кто приверженец старого ВК и в свое ...

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

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

Адрес

Россия, Ижевск, ул.Салютовская,
д.1, офис 17

8 495 1985800
Заказать звонок

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

info@dstglobal.ru

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

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