0. Вступление
Программирование – инженерная работа по формированию алгоритмов действий. Например, алгоритмом может быть описание процесса приготовления блюда на кухне или упаковка товара для транспортировки. План строительства дома это более сложная программа, задействующая сразу множество специалистов: снабженцев, водителей, каменщиков, плотников, штукатуров и других специалистов.
Компьютерное программирование – это разработка и описание алгоритмов на одном из языков, который может быть скомпилирован (или интерпретирован) в машинно-читаемый код, исполняемый компьютером.
Чтобы называться программистом, достаточно более-менее логически мыслить и знать синтаксис какого-либо языка программирования.
Хороший программист-разработчик понимает, что его программа не должна существовать в отрыве от реальности. Он умеет общаться с пользователями, выясняя их реальные потребности. Такой специалист способен строить абстракции и формировать идеи, позволяющие решать поставленные задачи лучшим, не всегда очевидным на первый взгляд, способом.
Отличный программист-разработчик умеет впитывать опыт своих коллег, но всегда критично относится к текущим достижениям человечества. Его пытливый ум всегда пытается придумать более простое и изящное решение. Он пытается создавать различные архитектурные конструкции.
И в то же время…
Разумный программист стремится к написанию умеренного оптимизированного кода программы с учетом ограниченных ресурсов и назначения проекта. Одно дело, когда вы отсылаете вояджер за пределы солнечной системы, и совсем другие требования к продающему лендингу.
Дальновидный программист пишет код пригодный для модификации (в рамках вариативности задачи) и понятный другим разработчикам.
Выбор языка для изучения программирования
Язык не принципиален. Научиться компьютерному программированию можно с разными инструментами. Важно соотнести эти способы со своими целями и выбрать подходящий для вас.
Скорее всего, в 2022 году проще всего начать самообучение на языке Python. У него относительно простой синтаксис, нет лишних скобок и точек с запятой, которые ученик будет первое время забывать ставить, хотя это и не критично. Важнее то, что на Питоне невероятно много различных обучающих материалов: учебников, статей, примеров, видеоуроков, лекций и специализированных курсов, а также ответов на форумах. Для Питона разработано большое количество библиотек и готового кода, есть веб-фреймворки. Поэтому для быстрого понимания основ программирования и создания, даже относительно сложных, работающих программ Питон просто идеален. Питон позволит вам самостоятельно освоить профессию программиста, если вас не пугает математика и логика, достаточно усидчивости и вы умеете логически рассуждать. Если вы ищете легкий путь, Python – ваш выбор.
Однако, у Питона есть огромный минус в том, что это язык программирования высокого уровня. Соответственно, у него есть ограничения по производительности и многозадачности. Кроме того, возможности языка, позволяющие вам быстро создавать программы, являются недостатками в том плане, что вы часто взаимодействуете с абстракциями, не представляя что на самом деле делает вычислительное устройство. Такая же проблема и у веб-фреймворков: они как бы дают вам многое, но и ограничивают вас. Вам предлагается заучить определенные схемы работы с ними, которые магическим образом выполняют ваши пожелания. При этом, фреймворки довольно сложны для самостоятельного анализа всего их исходного кода с целью четкого понимания происходящего.
Попробуйте углубиться в Rust, для этого мы и создали этот курс с плавной кривой обучения, а если будут сложности, всегда можно переключиться на другой язык программирования.
Плюсы Rust
О преимуществах языка программирования Rust не писал только ленивый, поэтому вы легко найдете информацию об этом в другом месте. Если коротко, то Rust это относительно низкоуровневый компилируемый язык программирования со строгой типизацией и без сборщика мусора. Здесь нет проблемы гонки данных. Безопасность программы контролируется языком на уровне компилятора, что позволяет создавать более надежные программы по сравнению с языками семейства C. При этом Rust практически не уступает C по скорости исполнения. Если ничего из сказанного непонятно, не расстраивайтесь, позже всё прояснится.
Кроме того, у Раста потенциально более широкая область применения, даже, если в создании бизнес-логики его ещё не применяют, то всё может измениться. Поживем, увидим.
Минусы Rust
Возможный минус в том, что код получается длиннее, чем на на том же Python и чуть хуже считывается неопытным взглядом. Приходится больше задумываться о типах данных. Но есть и реальная проблема: объем учебных материалов и кодовых примеров на Rust на несколько порядков меньше. А сами учебные материалы нацелены на тех, кто уже имеет опыт в программировании. Но мы это изменим.
Перспективы Rust
Последнее время, все больше компаний начинают разрабатывать новые продукты на Rust или переносят на него имеющиеся. Скорее всего, они знают что делают. Я вообще считаю, что необходимо создать новый технологический стек на Rust:
- операционная система;
- браузер;
- веб-фреймворк;
- базовый набор прикладных программ для частных лиц и бизнеса.
Как и где изучать программирование на Rust
Сие доподлинно неизвестно. Полагаю, хорошо иметь опытного наставника, это поможет сэкономить вам много времени. Однако найти действительно грамотного и не зашоренного специалиста, который будет уделять вам время сложно. Кроме того, знания наставника ограничены одним прикладным направлением. Возможно есть хорошие платные курсы, но они осветят только небольшую тематику. Лучше использовать базис знаний высшего учебного заведения и самостоятельно изучать особенности языка Rust. Учась самостоятельно, при должной усидчивости, методом проб и ошибок вы лучше прочувствуете язык, но будете сами “наступать на грабли” и потеряете время. Некую динамику может придать совместное обучение с такими же начинающими как и вы. Для начала проходите бесплатные курсы, читайте статьи, смотрите видео хороших преподавателей (остерегайтесь тех, кто просто кодит на экране, не объясняя общих принципов). Читайте и смотрите обучающие материалы на английском языке. Можно использовать программу-переводчик, встроенную в браузер Хром и перевод субтитров на Ютубе, но лучше читать и понимать исходные тексты напрямую.
Для изучения программирования на Rust, после того, как вы уже освоили основы, начинайте работать в команде с группой более опытных коллег. Лучше всего язык постигается когда вы решаете реальные задачи, даже если это ваш учебный проект.
Предупреждение! Этот курс не является профессиональным, прошедшим аудит в научных кругах. Материал может содержать орфографические ошибки, ошибки в формулировках и объяснении механизмов работы языка Rust. Поэтому подключайте здравый смысл и параллельно читайте иные источники, и в первую очередь официальную документацию по языку.
Для просмотра заданий и решений, а также публикации своих решений необходимо зарегистрироваться на сайте.
Всё бесплатно, мы просто хотим с вами познакомиться и понять насколько актуально то, что мы делаем.