Всем привет! Сегодня мы рассмотрим ещё одну очень популярную тему у тех, кто пытается «войти в Ай-Ти», а именно выбор первого языка программирования! У некоторых этот вопрос поставлен шире – выбор Единственного языка программирования. А насколько важно, с какого языка ты начинаешь свой путь? И можно ли обойтись знанием только одного языка программирования в профессии программиста? Давайте разбираться! Поехали!
Предыдущая статья на эту тему: Войти в IT так просто... или нет?
В качестве некой иллюстрации приведу собственный путь по языкам программирования, останавливаясь только на тех, с которыми я работал достаточно долго. Несмотря на то, что в школе у нас были полноценные уроки информатики с программированием, тогда я не смог освоить предлагаемые языки QBasic и Pascal. Само решение предлагаемых задач ставило меня в тупик. Со временем (к концу школы) я освоил на допотопном уровне Pascal для сдачи выпускного экзамена. К этим языкам мы ещё отдельно вернёмся, а сейчас движемся дальше.
Следующий язык я тоже не выбирал. Он, как волшебная палочка, сам меня выбрал. Это был один из самых старейших языков программирования – FORTRAN. Факультет у меня был инженерный, поэтому для общего развития нас на первом курсе обучали этому языку. Сразу оговорюсь, ничего омерзительного и отталкивающего я в нём не вижу до сих пор. Он полностью соответствует своему предназначению: FORmula TRANslator (формульный транслятор). Помимо лабораторных работ, которые быстро кончились, в течение учёбы я к нему часто прибегал для инженерных расчётов, наряду с программным пакетом Mathcad. Последний, кстати, именно в части программируемости, тогда очень сильно «хромал». Так что своим первым настоящим языком программирования я по праву могу назвать именно Фортран. Позже, на работе, я сталкивался с программами, написанными на этом языке, но сам уже не программировал, т.к. это не входило в мои профессиональные обязанности.
Следующим этапом стала ещё одна учёба, где я познакомился с современными языками программирования, из которых я долго использовал два: C++ и C#. Но, как это не странно, работу я себе потом нашёл по языку, о котором ни я, ни один из моих знакомых ни разу не слышал. Это язык C/AL, который используется для расширения функционала ERP Microsoft Dynamics NAV. Не пугайтесь этих страшных названий, маловероятно, что вы с ними повстречаетесь. Так вот, на данный момент я в работе, помимо основного языка, использую SQL (язык запросов к базам данных) и C# (для поддержания стороннего функционала). Коллеги иногда прибегают к C++ для написания программного обеспечения для специального оборудования.
Так давайте ответим на первый вопрос: можно ли изучить один язык и больше ничего не учить? Ответ: нет. Выше я написал, что сам периодически использую три языка, и это, не считая разных технологий, с которыми приходится работать. Например, сейчас я очень много времени провожу за работой с текстовыми форматами JSON и XML, что требует небольших, но крепких знаний в этой области. Но сразу оговорюсь – это всё уже относится к профессиональному опыту, т.е. ты в любом случае будешь это знать, если это будет вашей рабочей тематикой.
Давайте теперь рассмотрим следующий вопрос: можно ли выбрать только один язык и на нём всю жизнь программировать, никогда его больше не меняя? Ответ: и да, и нет. Дело в том, что здесь мы должны упомянуть «мёртвые» языки программирования, которые больше не развиваются. Как и «мёртвые» языки древних цивилизаций, они больше не представляют интереса для массы людей, кроме узких специалистов. К таким языкам программирования можно отнести COBOL, классический Basic и Pascal. А «немёртвые» языки постоянно изменяются, выходят новые стандарты, которые вводят новые возможности. Поэтому профессиональному программисту придётся изучать каждый новый стандарт своего языка для его эффективного использования. Даже Фортран нельзя до конца считать «мёртвым» языком, т.к. под него продолжают выходить стандарты. А для того, чтобы выучить неизменяемый язык, нужно найти контору, где используют нужный древний стандарт языка (например, Borland C++) и устроиться туда. Правда, нет никакой гарантии, что язык в конечном итоге поменяют.
Теперь непосредственно к выбору первого языка программирования. Данный вопрос я хотел бы разделить на три возрастные категории:
Первый язык для школьника (шестой класс и выше).
В этом возрасте есть возможность не спешить и заниматься основательно, поэтому я предлагаю в этом случае на выбор Pascal или Python.
Pascal с самого начала (50 лет назад) создавался для обучения программированию студентов и, не смотря на свой возраст, имеет два преимущества: во-первых, на этом языке написаны все примеры в книгах Окулова С.М. (отличные книги по основам программирования) и, во-вторых, недавно был написан новый компилятор Pascal ABC, который осовременивает язык (позволяя использовать платформу .NET) и интерфейс (внешний вид самой программы стал намного лучше).
Python относительно новый язык программирования, который бурно развивается и массово используется. Основным достоинством данного языка является наличие почти бесконечного количества обучающих материалов самого разного качества. Минус Python по сравнению с Pascal – слишком много всего, начинающему программисту очень легко потонуть в таком потоке возможностей, терминов и понятий.
Первый язык для факультатива (для себя, в любом возрасте).
В разное время и в разном возрасте возникают разные желания. Может возникнуть и такое. Для этой категории граждан у меня есть свой совет – изучите Visual Basic. Может показаться, что я смеюсь, но это не так. Сам я пользовался этим языком плотно примерно полгода между обучениями и остался доволен. Язык прост в освоении и имеет преимущества в лёгком создании обычных компьютерных приложений. Отдельной «фишкой» этого языка я бы назвал возможность программировать непосредственно в MS Office. Одно это дорогого стоит, т.к. можно попробовать автоматизировать какие-нибудь ежедневные операции, которые выполняются в Word или Excel.
Первый язык для человека, желающего войти в IT (все возраста).
Здесь всё несколько сложнее, т.к. в этом случае нужно выбрать область программирования. Для разработки игр, например, применяются (в основном) C++ и C#, в Data Science лидирует Python, на уровне «умных приборов» крепко сидят C и C++, для мобильных приложений – Java, а то, что касается сайтов – JavaScript и Python. Как видите, разнообразие огромное и выбор за вами. Здесь я сознательно привёл только самые общеизвестные языки программирования, по которым достаточно информации для начала обучения как с первым языком.
Какой путь проходит каждый программист в своём становлении?
На самом деле один и тот же. Для начала изучаются основные операторы, которых я выделяю всего три: инструкция (наименьшая команда), условие и цикл. В завершении этого этапа можно писать практически любые простые программы.
Следующим этапом появляется желание как-то улучшить свою программу, продумать структуры данных, возможно, даже, произойдёт первое знакомство с объектно-ориентированным программированием. На этом же этапе возникает желание написать приложение с графическим пользовательским интерфейсом. Появляется первая неудовлетворённость, связанная с проблемой проектирования программ (писать «как» знаем, но «что» – не понимаем).
Следующий этап наступает, обычно, уже на работе, при профессиональной деятельности: общение со стеком технологий и различными библиотеками. Внезапно понимаешь, что не нужно всё писать самому, многое уже сделано до тебя и намного лучше, т.к. всё это уже неоднократно проверено и ошибок там нет, а у тебя есть! Скорее всего произойдёт знакомство с базами данных и языком SQL (если не был знаком с ним до этого).
Следующий этап кроется в попытке понять, как сделать правильно. Начинаешь перебирать различные подходы проектирования программ, функций и компонентов, ищешь свою «золотую середину». Начинаешь читать очень много специальной литературы, возможно, начинаешь изучать ещё один язык программирования, чтобы лучше понимать проблемы, с которыми ты столкнулся на своём языке. Собственно, на этом этапе сейчас нахожусь я сам, поэтому как перейду в следующий, отдельно об этом напишу.
Подводя итоги, скажу следующее: не бойтесь ошибиться! Легче выбирайте язык программирования – и смело в бой! Если через некоторое время понимаете, что не тот это язык – меняете! Ответственно заявляю, что, перебрав несколько языков таким образом и найдя «свой», вы затратите намного меньше времени, чем просто пытаясь сразу выбрать один – раз и навсегда!
А на сегодня всё! Если было интересно, подписывайтесь на канал, пишите комментарии, задавайте вопросы (можно ещё много чего интересного обсудить в этой теме) и ставьте пальцы вверх. До новых встреч!