IT "Понятно"
Обучение для начинающих
c 8 лет и до бесконечности


Как стать программистом в 2023 году? Есть план

Как стать программистом в 2023 году? Есть план

Опубликовано: 29.03.2023

Самыми популярными в 2023 году есть и будут в ближайшем будущем такие технологии как: HTML и CSS, языки Python и JavaScript. Их легко изучать, поэтому подходят для новичков, а рынок готов предоставить много возможностей разработчикам с хорошим знанием этих технологий. Чуть более сложны в изучении, но очень востребованы на рынке труда языки: Java, PHP, C/C++ которые хорошо подходят для масштабируемых систем и отличаются высокой производительностью.


Самыми популярными в 2023 году есть и будут в ближайшем будущем такие технологии как: HTML и CSS, языки Python и JavaScript. Их легко изучать, поэтому подходят для новичков, а рынок готов предоставить много возможностей разработчикам с хорошим знанием этих технологий. Чуть более сложны в изучении, но очень востребованы на рынке труда языки: Java, PHP, C/C++ которые хорошо подходят для масштабируемых систем и отличаются высокой производительностью.

Так что же и в каком порядке изучать?

Начать рекомендую с изучения верстки веб-страниц, и технологий разметки HTML и CSS. Они просты в освоении и понимании для того, кто никогда не программировал. Их достаточно быстро осваивают дети с 10 лет. Для изучения и практики подойдет практически любой компьютер и нет необходимости покупать и настраивать какие-то сложные программные среды – софт доступен и бесплатен. Зато изучение HTML и CSS прокачивает нужные в будущем скилы: порядок в оформлении кода, понимание структур и систематизации, знакомит с основами компьютерных технологий. Так что веб-верстка это «маст дай» для любого программиста.

Следующим логичным этапом в развитии будущего программиста будет изучение JavaScript. Это скриптовый язык, который позволяет «оживить» сверстанные HTML-страницы. С помощью скриптов можно реализовывать различный полезный функционал, такой как веб-калькуляторы, списки выбора и т.д. Также на данном этапе будет полезно разобраться в библиотеке jQuery – одном из самых известных расширений для JavaScript, которое позволяет ускорить написание скриптов. Опыт, полученный во время написания скриптов на JavaScript, заложит нужный фундамент знаний о том, что такое переменные, функции, алгоритмы и т.д.

HTML и CSS, еще не являются настоящими языками программирования, это так называемые языки разметки. Да и JavaScript, в чистом виде применяется для создания коротких скриптов. Поэтому, когда начинающий кодер почувствует свои силы – есть смысл начать осваивать работу с «настоящим» кодом. Первые языки программирования, с которыми знакомятся дети в школе или взрослые на курсах – это Pascal, Python, C/C++/C# и др. Я очень рекомендую начинать с языка программирования Python. Вот несколько причин, почему Python может быть идеальным языком для начала изучения программирования:

  1. Python имеет простой и понятный синтаксис, что делает его легко усваиваемым для новичков в программировании. Синтаксис Python легко читается, что может ускорить обучение.
  2. Python имеет множество библиотек и инструментов для работы с рядом задач, таких как сбор и анализ данных, разработка консольных утилит веб-разработка, научные вычисления, искусственный интеллект и др. Это позволяет начинающим программистам легко понимать концепции программирования и создавать полезные приложения, даже если их знания всё ещё ограничены.
  3. Python имеет очень активное сообщество пользователей и разработчиков, которые легко помогают друг другу через форумы, сообщества.
  4. Python давно является популярным языком программирования, поэтому доступно большое количество качественных обучающих материалов, включая учебники, видеоуроки и онлайн-курсы.
  5. Python имеет интерактивную консоль, которая позволяет пользователям выполнять код и видеть результаты его работы непосредственно в консоли. Также в Python есть REPL (Read-Eval-Print Loop), который используется для быстрого исполнения команд Python без необходимости сохранения в файл.
  6. Python является объектно-ориентированным языком программирования, что означает, что пользователи могут создавать классы и объекты, что делает код более читаемым, модульным и удобным для сопровождения. Python также поддерживает функциональное программирование, что означает, что пользователи могут использовать функции в качестве объектов первого класса, что делает код более гибким и масштабируемым.
  7. Python является открытым языком программирования, что означает, что он бесплатно доступен для загрузки и использования. Python доступен на разных платформах, включая Windows, Mac OS и Linux.

Поэтому для начала своей карьеры в IT – освойте базовые навыки программирования на примере языка программирования Python.

Теперь же, когда вы знакомы с языками разметки HTML и CSS, когда научились писать скрипты на JavaScript и освоили основы программирования на языке Python – настало время углубляться в какие-то отдельные технологии и начинать специализироваться.

  1. Первое направление – веб-разработка. Потребуется ознакомиться со следующими темами:
    1. Познакомиться с разработкой сайтов на CMS (системах управления сайтами). Я бы выделил такие системы и последовательность изучения: Wordpress, MODX, OpenCart, 1C-Битрикс
    2. PHP — C-подобный скриптовый язык общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков, применяющихся для создания динамических веб-сайтов.
    3. SQL (в частности MySQL) — декларативный язык программирования, применяемый для создания, модификации и управления данными в реляционной базе данных, управляемой соответствующей системой управления базами данных.
    4. Node (или более формально Node.js) — кроссплатформенная среда исполнения с открытым исходным кодом, которая позволяет разработчикам создавать всевозможные серверные инструменты и приложения используя язык JavaScript. Среда исполнения предназначена для использования вне контекста браузера (т.е. выполняется непосредственно на компьютере или на серверной ОС).
    5. Gulp — инструментарий JavaScript с открытым исходным кодом, используемый в качестве потоковой системы сборки в веб-разработке. Это обработчик задач, построенный на Node.js и npm, используемый для автоматизации трудоемких и повторяющихся задач, связанных с веб-разработкой, таких как минификация, конкатенация, перебор кэша, модульное тестирование, линтинг, оптимизация и т.д.
    6. js — JavaScript-фреймворк с открытым исходным кодом для создания пользовательских интерфейсов. Легко интегрируется в проекты с использованием других JavaScript-библиотек. Может функционировать как веб-фреймворк для разработки одностраничных приложений в реактивном стиле.
    7. Webpack — инструмент, позволяющий скомпилировать, например, JavaScript модули в единый JS-файл. Webpack также известен как сборщик модулей.
    8. SASS или же SCSS это препроцессор, который служит для быстрого написания CSS стилей. Благодаря SASS вы можете добавить переменные, функции, наследование и многое другое к обычному документу CSS. SASS — это препроцессор, позволяющий писать код для стилей. CSS, используя всевозможные: переменные, циклы, миксины, функции и многое другое.
    9. Создание веб-приложений с помощью фреймворков: Flask, Django и т.п.
  2. Второе направление – разработка приложений и аналитика на Python. Потребуется ознакомиться со следующими темами:
    1. Для начала освоить весь набор стандартных модулей, которые поставляются вместе с Python. Он включает модули для организации файлового ввода-вывода, работы с сетью, многопоточности и других задач. Особенно стоит обратить внимание на Tkinter — кросс-платформенная событийно-ориентированная графическая библиотека на основе средств Tk, которая широко распространённая в мире GNU/Linux и других UNIX‐подобных систем, а также портирована на Microsoft Windows). Позволяет создавать приложения с графическим интерфейсом.
    2. PyQt — набор расширений (биндингов) графического фреймворка Qt для языка программирования Python, выполненный в виде расширения Python. Так же как и встроенный Tkinter позволяет создавать приложения с графическим интерфейсом, но более продвинутый и красивый.
    3. NumPy является библиотекой для работы с массивами числовых данных в Python. Она предоставляет мощный объект массива, а также функции для выполнения операций над массивами.
    4. Pandas — это библиотека для манипулирования и анализа данных в Python. Она предоставляет мощные структуры данных для работы с табличными данными, а также инструменты для чтения и записи данных в различных форматах.
    5. Matplotlib является библиотекой для создания графиков в Python. Она предоставляет широкий спектр инструментов для создания статических, анимированных и интерактивных визуализаций в Python.
    6. Scikit-learn — это библиотека для машинного обучения в Python. Она предоставляет инструменты для классификации, регрессии, кластеризации и других задач, а также инструменты для выбора и оценки моделей.
    7. TensorFlow — это библиотека для машинного обучения и глубокого обучения в Python. Она предоставляет инструменты для создания, обучения и развертывания моделей машинного обучения, а также инструменты для визуализации и анализа данных.
    8. Keras — это высокоуровневый API нейронных сетей, написанный на языке Python и способный работать поверх TensorFlow или других фреймворков более низкого уровня. Он предоставляет удобный интерфейс для построения и обучения нейронных сетей.
    9. Pygame — это библиотека для разработки игр на Python. Она предоставляет инструменты для создания 2D-графики, воспроизведения звуков и музыки, обработки пользовательского ввода и многое другое.
    10. Requests — это библиотека для выполнения HTTP-запросов на Python. Она предоставляет простой и элегантный API для выполнения запросов, обработки ответов, управления cookies и сессиями.
    11. Beautiful Soup — это библиотека для разбора HTML и XML документов на Python. Она предоставляет ряд инструментов для навигации, поиска и модификации деревьев документов.
    12. Anaconda — дистрибутив языков программирования Python и R, включающий набор популярных свободных библиотек, объединённых проблематиками науки о данных и машинного обучения. Основная цель — поставка единым согласованным комплектом наиболее востребованных соответствующим кругом пользователей тематических модулей (таких как NumPy, SciPy, Astropy и других) с разрешением возникающих зависимостей и конфликтов, которые неизбежны при одиночной установке. Содержит более 1,5 тыс. модулей. Основная особенность дистрибутива — оригинальный менеджер разрешения зависимостей conda с графическим интерфейсом Anaconda Navigator, что позволяет отказаться от стандартных менеджеров пакетов (таких, как pip для Python). Дистрибутив скачивается единожды, и вся последующая конфигурация, в том числе установка дополнительных модулей, может проводиться в офлайне. Кроме того, обеспечивается возможность ведения нескольких изолированных сред с раздельным разрешением версионных зависимостей в каждой.
  3. Третье направление – разработка игр и высоконагруженных систем на языке С++. Потребуется ознакомиться со следующими темами:
    1. Boost — это большая библиотека C++, содержащая множество инструментов и компонентов для решения разных задач. Она включает в себя лексический анализатор, библиотеку для многопоточной работы, визуализацию данных, криптографию, и т. д.
    2. Qt — это кроссплатформенный фреймворк для разработки графических приложений. Он позволяет создавать приложения с интерфейсом пользователя, которые могут работать на разных операционных системах.
    3. STL (Standard Template Library) — это коллекция готовых шаблонов на C++, которые облегчают написание кода для структур данных 1, включая массивы, списки, деревья и т. д.
    4. OpenCV — это библиотека компьютерного зрения, которая предназначена для обработки изображений и видео. Она содержит компоненты для детектирования объектов, трекинга, распознавания образов, а также машинного обучения.
    5. Eigen — это библиотека линейной алгебры, которая может использоваться для работы с матрицами, векторами и тензорами. Она обладает высокой производительностью и оптимизирована для работы на многих платформах.
    6. GLFW — это библиотека для создания графических приложений, которая используется для создания окон, контекстов OpenGL и управления вводом.
    7. SDL (Simple DirectMedia Layer) - это библиотека, используемая для создания мультимедийных приложений, таких как игры. Она предоставляет доступ к аудио, видео, клавиатуре, мыши и джойстикам.
    8. Nuklear — это маленькая библиотека GUI, которая создает нативные элементы управления для Desktop и Mobile.
    9. OpenSSL — это криптографическая библиотека, которая предоставляет функции для шифрования и аутентификации данных.
    10. Google Test — это библиотека для написания и запуска тестов на C++, которая предоставляет набор макросов и функций для тестирования кода.

А также потребуется разобраться в работе с игровыми движками, на основе которых планируете создавать игры. Вот наиболее популярные:

  1. Unreal Engine — это мощный игровой движок, используемый для создания 3D-игр на различных платформах. Он использует язык программирования C++ для создания игровой логики и дополнительных модулей.
  2. Unity — это популярный игровой движок, который также поддерживает язык программирования C++. Он используется для создания 2D и 3D игр с использованием множества платформ.
  3. CryEngine — это еще один мощный игровой движок, который использует язык C++ и широко применяется для создания реалистичных игровых механик и графики.
  4. Lumberyard — это бесплатный, открытый игровой движок, который использует язык C++ для настройки игровой логики.
  5. Godot Engine — это бесплатный и открытый исходный код многоплатформенный игровой движок, который использует языки программирования C++ и GDScript для разработки игровой логики и обработки событий.
  6. SFML (Simple and Fast Multimedia Library) — библиотека C++ для разработки мультимедиа приложений и игр с использованием графики, звука и сетевых возможностей.
  1. Четвертое направление – создание программ в корпоративном сегменте на Java. Потребуется ознакомиться со следующими темами:
    1. JavaFX — это платформа для разработки настольных приложений с графическим интерфейсом. Она основана на языке разметки FXML и позволяет создавать интерактивные пользовательские интерфейсы.
    2. Swing — это стандартная библиотека Java для создания настольных приложений с графическим интерфейсом.
    3. Java2D — это библиотека Java для создания 2D-графики.
    4. JDBC — это API Java для работы с базами данных.
    5. JNDI — это Java Naming and Directory Interface API, который позволяет получать доступ к данным в каталогах и службах имен.
    6. RMI — это Java Remote Method Invocation API, который позволяет удаленно вызывать методы Java из других процессов или виртуальных машин.
    7. Spring — это фреймворк Java для создания веб-приложений и управления бизнес-логикой.
    8. Hibernate — это библиотека Java для работы с базами данных, которая обеспечивает объектно-реляционное отображение (ORM).
    9. HttpClient — это библиотека Java для создания HTTP-клиентов.
    10. Java Development Kit (JDK) — это набор инструментов для разработки и запуска приложений на языке Java.

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


Вам могут быть интересны материалы:

Профилактика компьютерной зависимости у детей и подростков

Дети и подростки не в состоянии справиться самостоятельно с интернет-зависимостью. На начальных этапах может оказать эффект помощь со стороны родителей и друзей. Не стоит переходить к «жестким» запретительным мерам, так как можно столкнуться с непониманием и противодействием.

Серия работ "Стулья Дизайнеров и художников"

Серия творческих работ на тему: «Стулья». В данной серии работ представлены стулья, в которых я постарался передать какие-либо особенности известных дизайнеров и художников, задавшись вопросом, какие стулья сделали бы они сейчас? Или какой стул бы сейчас им понравился?

Библиотеки для разработки игр на Python

Python можно использовать не только в работе с данными, но и для создания игр — например, платформеров, шутеров или песочниц. Я собрал для Вас несколько простых инструментов для геймдева.


Наш сайт использует куки.
Пользуясь сайтом вы соглашаетесь
на обработку персональных данных.
Согласиться и закрыть это окно - нажмите «ОК».
OK