Закодируйся: как выбрать первый язык программирования
Содержание:
- Шаг 4. Реши, с чего начать изучение языков программирования
- Словарный запас
- Учите Python, господа
- Как работают программы
- Языки программирования для работы с веб-ресурсами
- JavaScript
- Шаг 5. Прочти рейтинг языков программирования и статистику
- Как я изучал Clojure в 2020 году
- Учиться программировать сложно
- Kotlin
- Практиковаться на реальных проектах
- Синтаксис
- Как поступить в университет?
- На языке Си написаны большинство популярных языков программирования
- А можно еще проще?
- Требует ли IT-рынок реально знать несколько языков программирования?
- Pascal и Delphi — самые строгие учителя
- Из чего состоит программа на C++
- Шаг 1. Узнай, как выбрать язык программирования
- Написание кода — лучший способ выучить язык программирования
- Развиваться вне рабочих задач
- По намерениям
- Заключение
Шаг 4. Реши, с чего начать изучение языков программирования
По версии сервиса GitHub, работодатели в 2021 году чаще всего ищут программистов на следующих языках.
-
Выбери сферу.
Напомним. Определись, чем ты хочешь заниматься. В рамках этого узнавай, как выбрать язык программирования и оставляй тот, который тебе ближе. -
Начни изучать.
Учи синтаксис, читай гайдлайны. Это можно делать самостоятельно по учебникам, видеоурокам. Если тяжело с самоорганизацией – проходи курсы. -
Пиши код.
Теоретическое изучение не даст толку. Воспроизводи то, о чем читал в книге. Разбирай примеры чужого кода, но не копируй: вдохновляйся и воспроизводи по-своему. Разберись с алгоритмами. -
Найди работу.
Обучение от проблемы самое эффективное. Это когда ты решаешь конкретную коммерческую задачу. Поэтому ищи заказы или иди на работу. В компаниях нередко есть вакансии trainee или интерна. -
Поддерживай навыки.
Общайся в сообществах профессионалов. Изучи фреймворк под свою специализацию. Следи за обновлениями в своей сфере и продолжай углублять умения.
Словарный запас
Усвоить лексику иностранного языка непросто. Слова могут принципиально отличаться по звучанию от аналогов в вашем родном языке, и зачастую их приходится просто зазубривать. При этом для общения активный словарь должен включать порядка 400 слов — и этого хватит только для разговора на повседневные темы.
С языками программирования попроще. Выучить надо наименования ключевых слов, операторов и идентификаторов. Даже в самом богатом языке программирования их используется ограниченное количество.
Кроме того, большинство ключевых слов (if, void, while, for или print) взяты из английского языка. И если он вам знаком, будет просто запомнить их и увязать с новыми значениями.
Учите Python, господа
Анализируя расстановку сил на рыке языков программирования, IEEE Spectrum рекомендуют всем желающим связать свою карьеру с разработкой ПО, попытаться освоить Python. Это, по мнению специалистов, откроет доступ к огромному перечню библиотек (одному из крупнейших), предназначенных для решения тех или иных задач в различных сферах: искусственный интеллект, встраиваемые системы и т.д. В некоторых из библиотек, как отмечают составители рейтинга, разобраться будет сложнее, чем в самом Python.
Впрочем, не отрицают специалисты из IEEE и ценность других популярных языков, которые находятся в топе либо благодаря специфике решаемых с их помощью задач, либо благодаря обширной базе накопленного исходного кода, написанного на этих языках.
К первой категории эксперты относят R, предназначенный для статобработки данных, SQL, незаменимый при работе с базами данных и Matlab, созданный для решения вычислительных задач.
Во вторую категорию попали C, C++, Java и Javascript. Без последнего сегодня сложно представить Всемирную паутину. Язык C по-прежнему используется системными программистами и при написании проектов (или их отдельных частей), чувствительных к скорости выполнения кода. Java является признанным инструментом для разработки «тяжелых» высоконадежных корпоративных приложений.
Как работают программы
Любая программа работает с данными: она их получает, обрабатывает, а потом возвращает результат обработки. Данные могут быть переданы пользователем, считаны из файла или записаны в самом коде.
Например, браузер получает текст из адресной строки, который ввёл пользователь, отправляет адрес на сервер, а потом выводит ответ в виде страницы.
Также программа может состоять из других подпрограмм — наборов инструкций. Обработка запроса пользователя, отправка данных на сервер, получение ответа, вывод страницы — всё это подпрограммы.
Вот пример логики такой подпрограммы:
Можно вернуть данные пользователю, записать их в файл или передать другой подпрограмме. Вот ещё один пример использования программы:
Эта команда запускает программу в ОС Linux, которая конвертирует изображение img.jpg в другой формат, а потом сохраняет в файл img.png.
Языки программирования для работы с веб-ресурсами
Разработка и наполнение сайтов требует знаний специфики работы с динамическими страницами и гиперссылками. Как правило, программисты, которые специализируются на веб-разработке, не выходят за рамки своей специализации, ведь переключиться с создания веб-страниц на написание, например, приложений или работу с базами данных крайне сложно.
JavaScript |
HTML |
Позволяет создавать и наполнять динамические веб-страницы | Самый востребованный в рамках разработки веб-страниц |
Большая библиотека модулей | Позволяет создать интересный многоуровневый сайт |
Большое количество обучающих материалов, огромное сообщество пользователей |
Минимальное количество алгоритмов позволяет быстро освоить язык |
Низкая нагрузка на сервер при высокой скорости работы приложения |
|
Простой синтаксис |
Обратите внимание! Такие языки программирования как JavaScript и Java – не одно и то же: второй считается одним из наиболее сложных языков программирования, а его изучение с нуля практически невозможно, особенно без помощи профессионала
JavaScript
Если вы хотите разрабатывать приложения или сайты, вам стоит изучить JavaScript. Новичкам подойдет современный учебник JavaScript, в котором элементы языка разбиты на отдельные модули. У Full Stack Academy также есть бесплатные курсы. Как только вы хорошо разберетесь в основах языка, начните изучать фреймворки, которые могут упростить рабочий процесс.
Кроме того, если вы изучаете JavaScript, вам стоит узнать как можно больше о TypeScript, расширенной версии JavaScript, который только что вышел в версии 4.0. Независимо от того, считаете ли вы TypeScript самостоятельным языком программирования, нельзя отрицать, что он имеет функции, которые могут ускорить ваше программирование на JavaScript.
Согласно опросу разработчиков Stack Overflow, опубликованному в 2020 году, около 67,1% опрошенных разработчиков заявили, что им нравится TypeScript, что выше, чем у Python (66,7%) и Kotlin (62,9%).
Шаг 5. Прочти рейтинг языков программирования и статистику
В подборках на тему самого популярного языка часто обращаются к разным индексам. Пятерка языков по версии PYPL по состоянию на 2021 выглядит так:
- Python
- Java
- JavaScript
- C#
- PHP
Если сравнивать оплату труда, то разработчики, программирующие на конкретном языке, получают:
Программист на языке | Среднемесячная зарплата middle в Нью-Йорке по версии портала indeed.com | Среднемесячная зарплата middle в Москве по версии сервиса hh.ru |
---|---|---|
Python | $9 300 | 115 000 ₽ |
C# | $6 379 | 100 000 ₽ |
Java | $8 420 | 120 000 ₽ |
Swift | $6 377 | 110 000 ₽ |
PHP | $6 421 | 85 000 ₽ |
Ruby | $9 967 | 120 000 ₽ |
SQL |
$6 801 | 128 000 ₽ |
Подробнее о зарплатах программистов в материале “Сколько зарабатывают программисты в России”
Если тебя интересует рейтинг по специализациям, обратимся к системе вопросов Stack Overflow
- Back-end разработчик
- Full-stack разработчик
- Front-end разработчик
- Desktop программисты и программисты приложений для предприятий;
- Мобильные разработчики DevOps специалисты.
Как я изучал Clojure в 2020 году
Ах, 2020! Ты был полон обещаний. У меня была куча проектов, которыми я решил заняться, сидя дома на диване и наблюдая за хаосом, обуздавшим мир.
Каким-то чудом мне все же удалось сделать то, чем я очень горжусь: я изучил Clojure.
- Первый шаг. Один замечательный человек посоветовал мне прочитать бесплатную книгу «Clojure для храбрых и смелых». Она очень хороша! Автору нужно вручить миллион долларов и поставить статую в моей гостиной.
- Второй шаг. На середине книги я все еще пытался понять первые главы. Это совершенно новая парадигма, так что не судите меня.
- Третий шаг. Прочитав книгу, я нашел игру-змейку, написанную на Clojure, и немного изменил ее под себя. Я хотел на примере этого проекта изучить некоторые концепции Vim. Вот результат.
- Четвертый шаг. Чувствуя, что я начинаю въезжать, я стал работать над своим собственным проектом — при помощи библиотеки для создания игры Sokoban. В то же время я многое узнал о WebGL. А почему бы и нет? У меня было достаточно времени.
Тогда я понял, насколько весело создавать забавные, маленькие игры. Это особенно актуально для 2020 года — они помогают отвлечься от всего ада, который происходит снаружи.
Теперь к графикам:
Это время, которое я потратил в 2020 году на чтение Learn Clojure for the Brave and True. Из нее я тоже скопировал весь код. Красная кривая — моя цель, синяя — сколько времени я действительности потратил на книгу.
Вышло 38,75 часа. Но в конце 2019 года я уже потратил на изучение Clojure часов 20, так что общее количество — 58,75 часа.
Опять же, самое сложное — начать. Потом время летит незаметно!
А это время, которое я потратил на создание двух своих игр. Всего вышло 100 часов. Черт возьми, я не занимался разработкой игр с 18 лет! Получилось здорово.
Вывод: если вы хотите выучить кучу всего, просто выберите язык в незнакомой вам парадигме и со странным синтаксисом. Множество новых навыков гарантированно!
Здесь нет ничего сложного. Просто тратьте 10 минут каждый день на язык своей мечты, и в конечном итоге вы будете проводить часы за обучением, даже не замечая этого.
Кстати говоря, изучение языка никогда не заканчивается, вы занимаетесь этим на протяжении всей жизни: узнавая о фреймворках, новых библиотеках, изменениях, новых конструкциях и так далее. Учиться весело!
Учиться программировать сложно
В процессе учебы должны быть моменты, когда мозг напрягается, и вам кажется, что вы ничего не понимаете. Если все получается легко и без напряга, значит вы учитесь не программировать, а повторять за диктором. Если привести грубую аналогию, вас учат не плавать, а шевелить ногами, лежа на песочке. Конечно, возможно, что вы гений и вам просто все легко дается. Чтобы реально оценить свои способности, сходите на пару-тройку собеседований по изучаемому языку программирования и попытайтесь выполнить тестовые задания, которые вам дадут.
Лично я долго (слишком долго) учился на всяких курсах из серии «посмотри на меня, делай как я». Когда начал учиться на Хекслете, у меня от некоторых заданий просто мозг кипел, да и сейчас кипит. Одно задание я пытался сделать 3 дня. Но в итоге я прокачался, и теперь могу решать более сложные задания, чем раньше. Мне кажется, именно в этом должна быть цель хороших курсов программирования. Не в том, чтобы натренировать вашу память на запоминание 1000 функций из какой-то библиотеки. А в том, чтобы заставить мозг напрягаться и с каждым днем решать все более сложные задачи.
Kotlin
Сложность: поскольку одной из целей создания языка было упростить Java, синтаксис Kotlin — интуитивно понятный и лаконичный.
Профессии: Android-разработчик / Backend-разработчик.
Продукты: Uber, Pinterest, Basecamp.
Российская компания JetBrains представила язык Kotlin в 2016 году как альтернативу Java. Благодаря официальной поддержке Google он стал языком разработки приложений на Android. При этом он совместим с Java: код обоих языков можно использовать в одном и том же проекте. Помимо разработки Android, Kotlin используют и в серверных, и в клиентских приложениях для веб-разработок и backend.
Сообщество Kotlin живое, хоть и немногочисленное, многие общаются на форумах или в Slack. Язык развивается не очень быстро, несмотря на открытость исходного кода.
Курс
Android-разработчик
Освойте программирование на Java и Kotlin, мобильную разработку и UX/UI, разработайте свое приложение для Android. Дополнительная скидка 5% по промокоду BLOG.
Узнать больше
Практиковаться на реальных проектах
Итак, у вас есть огромное желание и мотивация изучать программирование, вы определились с языком — теперь начинайте развиваться в выбранном направлении. Читая статьи и книги, вы узнаете, как научиться основам программирования. Это правильный подход в начале пути, но без практического применения все полученные знания быстро улетучатся из головы. Практика — вот основа всего.
Еще немного лайфхаков для новичков в интервью с разработчиком.
Если у вас пока нет работы программиста, начинайте писать свой стартап-проект. Разумеется, из этого ничего не выйдет — в 99,99% случаев так и происходит. Зато вы получите бесценный опыт и «потрогаете» программирование своими руками.
Синтаксис
Но заучить слова мало — надо еще усвоить принципы, по которым они образуют языковые конструкции. Такие правила называются синтаксисом — он определяет структуру и форму языка.
В английском вопросительные предложения отличаются от повествовательных обратным порядком слов: «Mark will go to the park» и «Will Mark go to the park?». Только корректная конструкция даст вашему собеседнику понять, сообщаете вы ему новую информацию или ждете ответа от него.
Чтобы компьютер понял, чего вы от него хотите, надо знать синтаксис языка программирования. Неправильные синтаксические конструкции приводят к ошибкам при компиляции (если язык компилируемый) или при исполнении (если интерпретируемый). А еще — к неправильным результатам вычислений или ошибочным действиям. Простой и универсальный пример — скобки в математических расчетах, которые повышают приоритет части выражения.
result := a + (b * 2) / c
и
result := (a + (b * 2)) / c
Эти выражения дают разные результаты при одинаковых значениях переменных a, b и c.
Усвоить синтаксис — одна из самых сложных задач при изучении языка программирования с нуля. Вероятно, большую часть времени, затраченного на создание программы, вы будете исправлять ошибки компилятора, вызванные некорректным синтаксисом.
В человеческих языках много устоявшихся за века иррациональных конструкций. А компьютерные изначально проектировались так, чтобы исключить такие сложности. Ни в одном популярном ЯП вы не встретите ситуации, когда два ключевых слова используются в одинаковых ситуациях по разным синтаксическим правилам. Если в конце инструкции следует ставить точку с запятой, то так же надо поступать во всех инструкциях и во всех случаях. Каким бы сложным ни был программный код, какие бы редкие и особенные ключевые слова ни использовались в нем — завершать инструкцию будет всегда точка с запятой, а не другие символы.
Как поступить в университет?
Процедура такая же, как и для поступления в колледж: выберите понравившийся ВУЗ, изучите перечень документов и специальностей, и в период приема документов подайте заявку и документа. После подачи заявления, может потребоваться пройти дополнительное собеседование или тестирование. В определенное время будут размещены результаты приемной комиссии и абитуриент сможет узнать, принят он в университет или нет.
Программа обучения
В университетах довольно много направлений, которые позволяют выучиться на IT-шника.
Вот некоторые из них:
- Администрирование систем и математическое обеспечение.
- Информационные технологии.
- Фундаментальная информатика.
- Вычислительная техника и информатика.
- Программная инженерия.
Для каждой специальности своя программа обучения, которую нужно уточнять в соответствующем ВУЗЕ.
Формы, срок обучения
В разных университетах сроки могут отличаться, но в среднем необходимо проучиться 4 года. Форм обучения две — очная и заочная. В некоторых ВУЗах может быть и очно-заочная или вечерняя форма.
Преимущества работы
Первое, это, конечно же, достойная заработная плата. В данной сфере труд высококлассных специалистов оплачивается весьма неплохо. Зарплаты тут гораздо выше средних. Опытный специалист в месяц может получать от 60 до 100 тысяч рублей.
Высокий спрос. Многие компании осознают необходимость привлечения программистов, которые помогут улучшить бизнес и поднять показатели. Помимо этого, на рынке большое количество компаний, которые работают конкретно с программистами. Перед новичками предстает огромное поле действий — найти место не составит большого труда, но постараться, чтобы найти более выгодные условия, все же придется.
Свободный график. У многих компаний есть возможность трудоустройства с рабочим графиком. Это отличная возможность планировать свой день так, как хотелось бы
Важно успевать сдавать проекты вовремя, а когда сотрудник будет выполнять свою работу — не так уж важно. Но некоторые работодатели все же настаивают на физическом присутствии работников в офисе компании.
«Свобода» творчества
Привилегия обучения в том, что есть большой выбор направлений, в которых можно себя испробовать. Можно тестировать приложения, создавать игры, операционные системы. Если не нравится одна область, можно за довольно короткий срок переучиться, после начать работу в другой области. Это еще один весомый плюс. Работа приносит удовольствие.
Возможность карьерного роста. Успешных специалистов зачастую ставят по главе отдела или организации. Помимо этого, чем опытнее специалист, тем выше оплачивается его труд. Есть возможность поехать за границу и испробовать свои силы там.
Недостатков у данного направления гораздо меньше, чем преимуществ. Главный недостаток — это неподвижность во время работы. Практически вся работа привязана к компьютеру, что означает сидячий образ жизни. Необходимо следить за уровнем
физической активности и поддерживать состояние здоровья. Еще один недостаток, хотя, скорее всего, преимущество — необходимо постоянно обновлять знания. Техническая сфера постоянно развивается, каждый день появляются новые программы и устройства, поэтому необходимо постоянно отслеживать изменения.
Это не самая легкая профессия, но тем, кто усердно учится и работает, удается приобрести ценный опыт и найти достойное высокооплачиваемое место работы.
Адрес поступления:
Москва, Ленинградский пр-т. д. 80, корп. Г (м. Сокол) Москва, ул. Измайловский вал, д. 2, корп. 1 (м. Семеновская)
Телефон: 8 (800) 100 00 11
График работы приёмной комиссии:Пн — Пт: 09.00−20.00;Сб — Вс: 10.00−17.00.
На языке Си написаны большинство популярных языков программирования
Это очень интересная история. Много раз язык Си объявляли «устаревшим», а поэтому на базе него пытались создать что-то более грандиозное.
Другой университетский профессор — Бьёрн Страуструп написал язык C++. Но по факту получилось, что он только добавил в к языку Си так называемое объектно-ориентированное программирование (ООП). Заменить язык Си ему не удалось. Эти два языка стали развиваться параллельно.
Другую попытку сделал Брэд Кокс, который создал язык Objective-C. Затем на базе Objective-C был создан Swift. Этот язык используется в качестве основного языка программирования в корпорации Apple. Но опять же Swift написан на Си и может использовать, при необходимости, код на языке Си.
Следующей попыткой заменить Си стала компания Sun Microsystems. Она поставила задачу сделать язык программирования, похожий на C++, но при этом этот язык должен был стать универсальным. Так появился язык Java. Он предназначен для работы на виртуальной Java-машине. Главный недостаток этого языка в том, что он существенно медленнее языка Си.
В ответ на технологию Java компания Microsoft запустила свою собственную технологию .NET и разработала для нее язык C#.
Как видите, все эти языки и находятся сейчас в топе рейтингов языков программирования.
Но они все используют ядро чистого Си. Поэтому как только вы выучите Си, то вы уже наполовину выучили C++, C#, Objective-C, Swift и Java.
Также на языке Си написаны популярные языки PHP, Javascript и Python. То есть лучший старт для изучения всех популярных языков — это сначала выучить язык Си.
А можно еще проще?
- фронтенд — всё, что браузер выводит на экран: контент, дизайн элементов, набор цветов и анимаций, реакции на действия пользователя. Нередко это направление выбирают те, кому нравится дизайн;
- бэкенд — всё, что работает на стороне сервера: функции сайта, обработка запросов пользователей и работа с базами данных. Направление, как правило, выбирают те, кому дизайн и графика не близки.
Другое явное преимущество веб-разработки — оно востребовано всегда. Скажем, захотел сайт-каталог расшириться и добавить онлайн-торговлю — вот и вакансия для бэкенд-разработчика на фриланс-бирже. Или надумала фирма обновить свой дизайн — начинаются поиски фронтенд-разработчика. Регулярно нужно делать и новые сайты, что будет по силам со знаниями фулстек-разработчика.
Кто-то может возразить, мол, веб-технологии динамично развиваются, ежегодно появляются «технологии завтрашнего дня», быстро замещающие актуальные. И не получится ли так, что учишься год-два, а когда выходишь на рынок, это направление устарело и надо учиться заново?
Требует ли IT-рынок реально знать несколько языков программирования?
Но вернёмся к минимальному порогу. Всё же знать четыре языка звучит реалистичнее, чем 20. Насколько часто IT-компании ищут таких эрудитов? Чтобы ответить на этот вопрос, я изучил несколько сотен вакансий на hh.ru. Большинство позиций с зарплатой от 150 тысяч выглядят примерно вот так:
Скриншот: сайт HeadHunter. Зарплатная вилка этой вакансии — от 150 до 200 тысяч рублей
Человека, который решил попробовать себя в программировании или просто не знаком с C++, такое количество иностранных слов может отпугнуть. Но опытный разработчик на C++ знает, что STL, Boost, MFC — это всего лишь библиотеки, а Qt — фреймворк. То есть в этой вакансии от вас требуется знание всего одного языка программирования — C++. И это, в общем-то, уже верхний уровень российского рынка.
Если вы обучились языку программирования, то быстро освоите работу с фреймворками и библиотеками. Представьте, что вы отлично знаете английский, но вас внезапно попросили добавить региональный акцент и научиться писать короткие посты в Twitter. Да, это потребует определённых усилий, но всё же задача здесь — расширить знания, а не выучить, например, ещё и арабский. Поэтому, если вы начинающий программист и ищете работу, внимательно изучайте требования к кандидатам: возможно, что от работы мечты вас отделяет всего пара часов нагугливания.
В других вакансиях от вас могут потребовать следующее:
Скриншот: сайт HeadHunter. Зарплатная вилка этого предложения — от 150 до 260 тысяч рублей
С HTML и CSS мы разобрались выше. React, Vue.js, Node.js опять-таки инструменты профильного языка представленной вакансии — JavaScript
Обратите внимание, что базовое понимание (не владение!) C++ не обязательно, а лишь будет плюсом. Знать Go тоже не нужно, если вы уже владеете Node.js
То есть обязательных требований здесь едва ли наберётся на два языка.
Вакансии с тремя языками — огромная редкость. А если вы вдруг наткнётесь на должность, которая требует знания четырёх языков программирования на крепком уровне, то велика вероятность, что работодатель либо некорректно сформулировал должностные обязанности, либо просто некомпетентен.
Скриншот: сайт HeadHunter. Один из немногих офферов, где фигурируют три языка (всё-таки требуется отличное знание PHP 7+ и РСУБД). Но и обещанная зарплата — до 500 тысяч рублей 🙂
Если рассуждать прагматично, то учить четыре языка и больше просто нет смысла — на рынке нет предложений для таких полиглотов. А вот знание ещё одного-двух действительно может пригодиться. Главное — чётко определиться, чем вы хотите заниматься, отобрать ведущие языки из этой области и изучить те, которые вам нравятся больше всего. Дополнительные знания расширят список потенциальных мест работы и позволят вам решать больше задач.
Если у вас всё же есть желание и время стать программистом-полиглотом, чтобы видеть мир разработки шире, то не доходите до крайности. Не беритесь за новые языки во вред старым, особенно если последние нужны вам для работы.
Pascal и Delphi — самые строгие учителя
Такое заявление вас может сильно удивить, но не спешите закрывать вкладку со статьей: это рекомендация от практикующего senior-разработчика PHP.
Почему Pascal?
Если мы говорим именно об обучении программированию с самых основ, то начинать нужно на Pascal или Delphi.
Дело в том, что Pascal — это очень структурированный и упорядоченный язык. Он учит правильному программированию. В нем есть отдельная секция для описания переменных. В целом синтаксис языка строгий: например, программист не сможет поставить запятую после последнего элемента массива.
Пример программы на Pascal.
Такие языки, как PHP и Node.js, позволяют разработчику очень много вольностей в процессе написания кода. В результате без необходимых знаний о том, как правильно программировать, вы с большой вероятностью получите «грязный» код со множеством ошибок.
Пример ужасного PHP-кода при условии, что в свойстве active передаются строки ‘true’ и ‘false’:
А так выглядит корректный код:
Другой показательный пример, когда метод класса может принимать в качестве единственного параметра объект, массив, число или строку. Новички делают проверку метода на тип параметра и ошибаются. Для нее нужно использовать либо четыре разных метода, либо четыре класса и применить паттерн Strategy.
Pascal учит хорошему тону в разработке. Например тому, что нужно всегда объявлять переменные и правильно их называть. Многие программисты на том же PHP часто грешат тем, что забывают об этом. В итоге значение переменной не присвоено, и без него она используется во всем скрипте — неудивительно, что программа не работает так, как нужно.
Почему Delphi?
Альтернативный вариант строгого учителя программированию — язык Delphi. По эффективности и результату это тот же Pascal, только для ООП: с ним вы поймете SOLID-принципы. Вы не сделаете того, что можете реализовать средствами С или PHP, — но для человека с нулевыми знаниями и отсутствием опыта это преимущество, а не недостаток.
Если новичок решает, с какого языка программирования начать, и выбирает PHP и ему подобные, то его код будет очень «грязным», неаккуратным и трудно читаемым — потому что синтаксис позволяет так писать. И здесь ответственность за чистоту кода ложится на плечи самого разработчика. Поэтому мы и советуем начинать с технологий, которые вы назовете «древними», и будете правы.
Учебные лабораторные работы на Pascal и Delphi создают несколько рафинированное представление о коде и программировании — то есть оторванное от реальности. Ведь вы не занимаетесь техническими задачами в настоящем, работающем проекте. Они не дадут системного подхода и полной картины программирования.
Пример тренировочных заданий по Delphi.
Вместо решения лабораторных без практического применения попробуйте написать простую программу для работы с клиентами: не сайт, а, например, десктопное приложение для учета. Еще варианты: графический или текстовый редактор, браузер, антивирус или любая программа под свои нужды. Это будет хорошей практикой для новичка, желающего самостоятельно обучиться программированию с нуля.
Из чего состоит программа на C++
Начнём с самой первой строчки:
С помощью языка программирования можно:
- писать условия;
- работать с памятью;
- создавать подпрограммы;
- работать с классами, структурами и объектами;
- выполнять базовые математические операции и так далее.
Но чтобы получить больше возможностей, программе нужно как-то взаимодействовать с операционной системой. Писать код, который будет отправлять команды ОС, достаточно сложно, но нам и не придётся — всё уже написано другими разработчиками и помещено в специальную библиотеку.
Одна из таких библиотек, iostream, позволяет запрашивать пользовательский ввод или выводить что-то в консоли.
Есть и другие библиотеки, которые помогают работать с графикой, отправлять запросы через интернет, воспроизводить звук и так далее. В будущем вы научитесь самостоятельно писать свои собственные библиотеки.
Вернёмся к коду:
main () — это подпрограмма (функция), с которой начинается выполнение любой программы на C++. Её также называют точкой входа.
Подробнее подпрограммы мы разберём в следующих статьях. Сейчас нужно знать только то, что все команды записывают в тело функции.
Настало время понять, как работают команды:
Команда cout говорит компьютеру о том, что нужно вывести определённый текст в консоли. В нашем случае — Hello, World!. Любой текст должен быть в кавычках, иначе компилятор воспримет его как идентификатор, то есть имя команды, функции, переменной и так далее. Поэкспериментируйте с текстом, запустите программу и посмотрите, что изменится.
После каждой команды должна стоять точка с запятой — она говорит компилятору, что это конец инструкции и нужно переходить к следующей.
Шаг 1. Узнай, как выбрать язык программирования
Списков популярных языков программирования в 2021 году десятки тысяч. Так, в начале года на первое место вышел C, изобретенный еще в 70-х. Однако, опираться на такие топы языков не всегда правильно — ты рискуешь отказаться от этой затеи еще вначале из-за их количества.
Оценивать сам язык с точки зрения удобства и того, насколько прост его синтаксис тоже бесполезно. Если ты только начинаешь погружаться в IT и пытаешься выбрать первый язык программирования, фразы вроде “в Python применяется динамические ограничения видимости” не скажут тебе ничего.
Новички, которые хотят быстро зарабатывать, изучают рейтинги специальностей, которые зарабатывают больше и более востребованы на рынке. Но проблема в том, что самые разные IT-специалисты получают примерно одинаковую зарплату, а в ТОП выходят самые лучше.
Написание кода — лучший способ выучить язык программирования
Вот сокращенная версия метода обучения, описанного в этой статье:
- Шаг 1: найдите известную книгу, начните ее читать и прогоняйте через компилятор код, приведенный в качестве примера.
- Шаг 2: на середине книги или когда почувствуете, что готовы, начните небольшой сторонний проект. Если это будет какая-то оригинальная, ваша идея, так даже лучше. Продолжайте читать книгу и параллельно заниматься сайд-проектом.
- Шаг 3: покажите свой код тому, кто может дать вам отзыв. В идеале иметь наставника: он разложит все по полочкам.
И помните: активное обучение всегда лучше пассивного.
Я согласен, что перекопирование примеров кода из книги и работа над собственным побочным проектом требует больше усилий, чем просто посмотреть видео по программированию на Youtube. Но помните, раз уж вы разработчик (или, по крайней мере, будущий разработчик), обучение должно приносить удовольствие. Учиться придется всю жизнь.
Развиваться вне рабочих задач
Если вы получили заветную должность, не стоит думать, будто этого достаточно для развития. Нужно постоянно читать техническую литературу, статьи на профильных ресурсах и перенимать опыт коллег.
Программирование — это область, которая движется очень быстро. Если не читать литературу, вы отстанете от прогресса и не будете знать о новых решениях, которыми сейчас пользуется весь мир. А значит, через некоторое время просто станете никому не нужны как специалист.
Изучайте блоги разработчиков — отечественные и англоязычные, — читайте статьи на «Хабре» и других ресурсах, следите за новостями фреймворка, с которым работаете.
По намерениям
Какая сфера привлекает вас больше других?
1. «Хочу делать сайты и веб-приложения»
Java, JavaScript, HTML 5, Ruby, Python, SQL, PHP
2. «Хочу написать приложение для айфона»
Swift (потребуется макбук или iPad с клавиатурой, чтобы писать код). Коммерческому iOS-разработчику нужно знать Objective-С и Swift.
3. «Хочу писать приложения под Android»
Java и Kotlin
4. «Хочу сделать карьеру в IT»
Разница между «работать» и «сделать карьеру» в IT есть, как и на других рынках. Хорошо начать с С/C++, так часто пишут, потому что между ними есть несколько отличий, а в целом они похожи. В описании вакансий часто пишут именно С/C++. Работы много и на российском, и на калифорнийском рынках. Хорошие перспективы для развития и вертикального роста.
5. «Хочу работать с темой AI»
Python, C/C++
6. «Хочу работать с данными»
Python, Java, R, Scala
7. «Хочу работать в геймдев»
Базис – С# и среда Unity
8. «Хочу понять, как все это работает»
С/C++
9. «Хочу работать в робототехнике»
С/C++
10. «Хочу быстро сделать свой стартап»
Ruby, Java, Swift, JavaScript
11. «Хочу работать в IoT, интернете вещей»
С/C++, Python, Java, Go, JavaScript
12. «Хочу работать в известной компании»
Вот данные авторитетного ресурса Stackshare.io по использованию популярных языков программирования в известных компаниях:
Java (Airbnb, Instagram, Uber Technologies, Spotify, Netflix, Pinterest, Slack, Google, LinkedIn, Lyft)
Python (Instagram, Uber Technologies, Spotify, Netflix, Facebook, Dropbox, Pinteres, Reddit, Google)
С (Twich, Telegram Messenger)
JavaScipt (Airbnb, Instagram, Slack, Reddit, eBay, Asana, Coursera, Product Hunt, MIT)
C++ (Google, Twich, IBM, Lyft)
C# (Microsoft, Stack Overflow)
Objective-С (Apple, Instagram, Uber Technologies, Pinterest, Slack, Snapchat)
Swift (Lyft, Asana, Apple)
Go (Google, Uber, Medium, Lyft, Shopify, Twich, Codeacademy)
Ruby (Airbnb, Shopify, StackShare, Twich, Starbucks, Hulu, Kickstarter, Product Hunt, Hotel Tonight, MIT, Coinbase, Codeacademy)
13. «Хочу перейти на IT-рынок»
Если входить через специальность QA-инженера, то можно начать, например, с JavaScript, Java, Ruby или Python. Названия Java и JavaScript похожи, но свойства языков различаются, оба языка – топовые и характеризуются как доступные для новичков.
Заключение
Что можно сказать про индустрию, проработав в ней тридцать лет? Технологии умирают, и умирают быстро. Больше нет dBASE и Clarion, и даже названия эти современным программистам неведомы. Священная война между Pascal и C, которая шла все восьмидесятые, как-то обыденно закончилась победой C. Но сейчас это никого не волнует — что нам Pascal и C, когда мы пишем на Java?
Мы учимся, зная, что 90% новых знаний устареют уже через три года. Возможно, нам надо освоить ещё два навыка.
Умение забывать. И умение не учить всё подряд, особенно если это всё очень модное и современное. Никто не знает, какой срок отмерен модным технологиям. Будьте избирательны.