
Дарья Короткова,
преподавательница программирования в Фоксфорде
Кто такой программист
Программист пишет код и заставляет двигаться и работать всё, что находится внутри электронных сервисов и устройств. Это человек, который превращает нолики и единички в красивую анимацию загрузки, придумывает алгоритмы, за секунду обрабатывающие терабайты данных и обеспечивающие моментальный перевод денег с карты на карту.
Электронные сервисы очень разнообразны: от компьютерной игры до системы безопасности банка или интерфейса службы доставки. Создание любого из них требует не только написания кода, но и долгих размышлений о том, как заставить код работать быстрее и эффективнее, избежать ошибок и сделать сервис более удобным для пользователя и прибыльным для бизнеса.
С чего начать изучать программирование
С практики. Сейчас эта стратегия становится всё более и более популярной. Если вы хотите начать кодить, вам уже не нужно разбирать строение компьютера и принципы работы операционных систем. Конечно, эти темы придётся изучить позже, но для старта достаточно просто создавать свои первые программы. С этим может помочь учитель, книга или электронный сервис с теорией и задачами с автопроверкой.
Нужен ли английский язык программисту
Человеку, который знает английский, будет намного проще понимать смысл команд и структур, потому что ключевые слова, используемые в программировании, записываются в коде с помощью обычных слов из английского языка.
Чем глубже вы будете изучать программирование, тем более полезным будет для вас английский. Во-первых, вы сможете читать документацию (инструкцию) разных языков и библиотек, которая не всегда доступна на русском. Во-вторых, вы будете искать более точные и информативные ответы на вопросы в интернете, потому что IT-комьюнити очень интернациональное и в основном общается на английском. В-третьих, вам откроются новые возможности обучения: книги по программированию, онлайн-встречи и курсы повышения квалификации для программистов обычно делают на английском.
Нужно ли программисту знать математику
На самом старте, когда программист устраивается на позицию стажёра или джуна, можно пройти собеседование и с общими знаниями математики. Но если вы хотите развиваться и претендовать на бóльшую зарплату, придётся разобраться не только со школьным, но и с университетским курсом.
Нужный уровень математики также варьируется в зависимости от сферы, которую вы выбираете. Например, если вы хотите работать с данными и создавать нейросети, без математики и статистики не обойтись. Если же вы хотите создавать визуальные интерфейсы, то школьного курса будет достаточно.
Виды программистов
Embedded-разработчик
Это человек, который заставляет работать роутеры, станки на заводе, умные лампочки, дроны и все электронные устройства, кроме компьютеров и телефонов. Стать таким разработчиком довольно сложно, потому что для этого нужно знать не только программирование, но и физику, а ещё разбираться в инженерном деле. Выбирайте эту сферу, если хотите чувствовать себя «олдскульным» программистом и готовы не только нажимать кнопки на компьютере, но и периодически брать в руки паяльник.
Разработчик приложений для телефонов
Это человек, который создаёт интерфейсы приложений — располагает кнопки и выбирает шрифты, а затем заставляет приложение работать, например записывать ваши дела в список или считать количество шагов. Выбирайте эту сферу, если готовы учить не очень популярные среди программистов языки и разбираться в тонкостях работы операционных систем телефонов и планшетов.
Data Scientist /Аналитик данных
Это тот, кто с помощью кода создаёт нейросети и более простые системы для предсказания. Например, есть модель, которая по вашему плейлисту может составить список песен на ваш вкус. Или модель, которая встроена в приложение банка и решает, можно ли выдать человеку кредит. Выбирайте эту сферу, если увлекаетесь математикой и статистикой, а разбираться в устройстве компьютера и прелестях разных операционных систем не очень хотите.
Тестировщик и «безопасник»
Это люди, которые следят за тем, чтобы код работал без ошибок и не подвергался атакам вредоносных систем. Они программируют меньше, чем остальные, но им нужно отлично знать устройство компьютера и различные сценарии поломок или хакерских атак. Выбирайте эту сферу, если любите всё ломать, внимательны к деталям и готовы много и подолгу думать.
Разработчик игр
Он создаёт игры для компьютера, приставки, телефона, планшета. Если хотите писать много кода, разбираетесь в физике и математике и готовы изучать графику и звуковой дизайн, эта сфера для вас.
Фронтенд-разработчик
Это человек, который делает сайты. Он отвечает за то, чтобы макет, который создал дизайнер, превратился в сайт, все анимации заработали и картинки загрузились. Это сфера, в которую, на мой взгляд, сейчас войти проще всего. Выбирайте её, если вы не любите математику, но готовы скрупулёзно переносить детали из дизайнерского макета на сайт, постоянно изучать новые фишки и выполнять работу ответственно — ведь результат этой работы видит пользователь, когда заходит на сайт.
Бэкенд-разработчик
Он тоже делает сайты. Но, в отличие от фронтендера, занимается не визуальной частью, а «начинкой». Он делает так, чтобы данные из электронной формы быстро сохранялись в базу данных, а потом быстро находились в ней. Он отвечает за трансляцию видео на сайте, отображение вашего календаря занятий и то, чтобы за решение задач начислялись XP.
Бэкенд-разработка — самая популярная и самая востребованная сфера сейчас. Выбирайте её, если точно хотите стать программистом, но так и не поняли каким, или если хотите писать много кода (преимущественно на Python), сидеть на созвонах и разрабатывать новые фичи на сайтах и в веб-сервисах.
Какой язык программирования выбрать
Стартовать в программировании уже в начальной школе можно с помощью Scratch. Код в Scratch не нужно писать руками — можно собрать его из блоков. У Scratch приятный интерфейс и много возможностей: на нём можно делать небольшие игры и викторины.
Если вы учитесь в средней или старшей школе и никогда не программировали, то, конечно же, стоит начать с языка Python.
Во-первых, он простой. Через него можно с наименьшими усилиями понять и выучить основные принципы программирования.
Во-вторых, он универсальный. На нём можно сделать всё что угодно: сайт (без визуальной части: её делают на HTML, CSS и JavaScript), бот в Телеграме, обучить нейросеть, посчитать статистику и вывести графики, даже написать простенькую 2D-игру.
В-третьих, он очень популярный. Количество обучалок, в том числе и бесплатных, по этому языку стремится к бесконечности. Есть множество книг о языке Python, а документация переведена на русский.
Сколько нужно учиться
Время, необходимое для того, чтобы стать программистом и получить первую работу в этой сфере, зависит от уровня усердия и интенсивности обучения. В среднем, достаточно примерно одного года систематического и целенаправленного обучения, чтобы овладеть базовыми навыками и пройти стажировку. Такой срок позволяет освоить основы программирования, понять основные концепции и подготовиться к реальным задачам на практике. Однако важно помнить, что профессия программиста — это не статичный навык, а постоянное развитие. Чтобы действительно расти и достигать новых высот в карьере, необходимо постоянно учиться: читать профессиональную литературу, следить за новыми трендами и технологиями, посещать конференции и семинары, а также повышать свою квалификацию через курсы и сертификации. В этой области нет конечной точки совершенства — всегда есть что изучать и чему учиться. Поэтому успешный программист — это тот, кто не останавливается на достигнутом и постоянно совершенствует свои знания и навыки.
Сложно ли учиться на программиста
Базовый курс программирования, который включает в себя весь основной функционал языка, освоить не так сложно. Трудности начинаются, когда дело доходит до создания «живых» сервисов, которые нужно как-то запускать на компьютере или на сервере в интернете. Дело в том, что для этого нужно изучить не только сам язык, но и библиотеки — дополнительный функционал, который можно подключать к своему коду. А ещё нужно разобраться в том, как в целом работают компьютер и его память и как он взаимодействует с компьютерными сетями.
Любая учёба — сложный процесс, но он может стать легче, если у вас есть искренний интерес к делу. Чтобы достичь как минимум уровня стажёра, нужно не только проходить курс в интернете или в университете, но и читать много книг, решать задачи, делать свои проекты и следить за обновлениями в сфере.
Можно ли стать программистом без образования
Без университетского образования — можно, и так делают многие. Но придётся приложить больше усилий и потратить больше времени. Кроме того, много материала нужно будет изучать самостоятельно. Иногда это плохо сказывается на мотивации: учиться без преподавателя и сокурсников обычно тяжело. А ещё многие предметы, которые изучаются в университете, могут вначале казаться бесполезными, но очень пригодятся при решении небольшой задачки на работе.
Если у вас есть искренний интерес и вы уже в школе начали изучать программирование, это большой и важный задел на будущее, который поможет стать программистом даже без профильного образования.
Где учиться на программиста
Лучшая схема: изучение в школе — хороший университет — книги, статьи, курсы в интернете — практика на работе.
Если вы хотите профильное программистское образование, нужно заранее определиться со сферой. Есть много разных специальностей: от компьютерной безопасности до бизнес-информатики. Обязательно смотрите перед поступлением учебные программы и решайте, что для вас будет наиболее интересным и полезным. Если не можете определиться, прикладная математика и информатика — всегда хороший выбор. Или даже просто математика. Это та «непрограммистская» специальность, с которой проще всего стартовать в IT. Из неочевидных специальностей — компьютерная лингвистика: она тоже даёт хорошую базу для программирования.
Если говорить об университетах, то самыми важными и желанными для будущих программистов остаются МФТИ, ИТМО, ВШЭ, МГУ.
Как самостоятельно стать программистом
Дать чёткие инструкции здесь сложно, потому что обучение очень зависит от сферы. Поэтому сначала определитесь с направлением. Дальше погуглите, почитайте статьи со стратегиями для изучения программирования или задайте вопросы ChatGPT. Сейчас в интернете много статей, которые написали сами программисты о своём опыте обучения.
- Найдите в интернете бесплатные материалы по языку, который вы хотите изучать, и посмотрите, нравится ли вам этот язык.
- Когда пройдёте базу, начинайте читать книжки. Самое популярное издательство, которое публикует книги по программированию, — O’Reilly. Возможно, вы уже видели на полках магазинов книги в белых обложках с рисованными животными, птицами и насекомыми. Выбираете интересную вам тему и читаете.
- Если есть возможность, пройдите курсы в интернете. Среди них есть и бесплатные, и довольно дорогие. Оцените свои возможности и желания и приступайте к обучению. Если получится пройти платный курс, это будет вашим большим преимуществом: на таких курсах обычно организовывают общение в чатиках и всегда можно задать вопросы преподавателю.
- Делайте свои проекты. Заведите профиль на GitHub, создавайте свои сайты, приложения, сервисы и выкладывайте их туда. Пригодится в будущем.
- Решайте задачки для тренировки и готовьтесь к собеседованиям.
Стоит ли учиться на программиста
Считается, что стать программистом очень просто: пройти пару курсов и сразу получить работу с зарплатой в 200 тысяч рублей в месяц. Именно поэтому сейчас на вакансию стажёра претендентов гораздо больше, чем доступных позиций: все хотят быстро и легко начать зарабатывать большие деньги. В результате начинающему специалисту найти работу становится сложнее: из-за большого количества кандидатов требования к кандидатам на стажёрские должности постоянно растут. Поэтому, если у вас есть искренний интерес к программированию, лучше начать учиться уже в школе. Опытных и квалифицированных программистов всё ещё не хватает, и их зарплаты остаются выше, чем у других специалистов. Эта тенденция сохраняется уже несколько лет. С развитием электронных сервисов появляется всё больше новых рабочих мест, что говорит о высокой перспективности этой сферы. Вакансий в области программирования много, и с течением времени их число не уменьшится.
Как практиковаться и развиваться в программировании
Начать стоит с решения задачек. Есть много сайтов, на которых размещают задачки с автопроверкой. Самый популярный и почитаемый — LeetCode.
Задачи можно решать чуть ли не на всех существующих языках. И, кстати, задачки оттуда иногда дают на собеседованиях.
Ещё один хороший сервис — Exercism, здесь даже есть геймификация. Также вы можете начать программировать бесплатно в Фоксфорде.
Конечно, не забывайте проходить курсы. Из русскоязычных платформ с бесплатными курсами можно изучить «Открытое образование» или бесплатные обучалки Ютубе: пишите язык или тему, которая интересует, и наслаждайтесь.