0

Как я стал программистом?

Итак, вы решили или задумались о том, чтобы стать веб-разработчиком. Интерес рациональный:

  • веб-сайты и веб-приложения не теряют актуальности;
  • самые востребованные IT-профессии относятся к веб-разработке;
  • заработная плата в отрасли достигает 300 000 ₽;
  • в сети достаточно ресурсов, чтобы научиться всему самостоятельно.

Однако веб-разработка – настолько широкая область, что соприкосновение с ней может показаться высадкой на незнакомую планету. Особенно если ранее вы не сталкивались с программированием.

Этот гайд поможет преодолеть неуверенность и выбрать направление для развития. Мы разберём, что должен уметь веб-девелопер, где этому научиться и куда идти с новыми навыками. Специально для тех, кто делает первые карьерные шаги или меняет сферу деятельности.

Веб-разработчик – это программист, который создает и поддерживает сайты и веб-приложения. Они могут использовать разные технологии и языки, но все работают во Всемирной паутине, передавая данные между устройствами.

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

Как видите, название профессии мало говорит о том, чем именно занимается человек. Выделяют две большие группы веб-девелоперов:

  1. FrontEnd Web Developer (фронтенд-разработчик) – занимается всем, что видят пользователи: внешним представлением сайтов и приложений, версткой, элементами интерфейса.
  2. BackEnd Web Developer (бэкенд-разработчик) – отвечает за логику работы сайтов и приложений, а также обмен данными с удаленным сервером.

Профессионалов, освоивших оба направления, называют Full-Stack Web Developer (фулстек разработчик). Но начинать лучше с чего-то одного. Выберите:

  • фронтенд – если вам по душе визуальная составляющая, и вы хотите больше творчества;
  • бэкенд – если любите программировать и среди данных чувствуете себя как рыба в воде.

Выбор определит, что вы будете изучать и применять на практике.

Содержание

Как стать веб-разработчиком

В зависимости от специализации вам понадобится различный набор навыков.

Фронтенд

HTML/HTML5

HTML (Hyper Text Markup Language) – язык для отображения данных на сайте. Без него веб-страницы напоминают текст в «Блокноте». Заголовки, списки, таблицы, изображения, кнопки, формы и т. д. – всё это HTML.

HTML5 – последний стандарт языка, поддерживающий ряд важных возможностей. Например, вставка аудио и видео, технология drag-n-drop, векторная графика в SVG, геолокация и т. п.

CSS/CSS3

CSS (Cascading Style Sheets) – способ придать сайту единое оформление, не используя лишний код. Это подобие библиотеки стилей, где вы описываете характеристики визуальных элементов. Например, цвет кнопок или шрифт текста.

CSS3 – активно развивающееся поколение CSS. С ним легко создавать анимации, для которых раньше был нужен JavaScript.

JavaScript

JavaScript – язык программирования, который оживляет сайты, делая их интерактивными. Слайдеры, всплывающие окна, анимация текста, «живой» поиск, мини-игры – всё это реализуется с помощью этого языка.

Три перечисленных столпа фронтенд-разработки (HTML, CSS, JavaScript) часто включают в один курс. Вот подходящие учебные материалы:

  • Знакомство с веб-разработкой (HTML, CSS, PHP, JavaScript)
  • Уроки HTML5 и CSS
  • Современный учебник JavaScript
  • Примеры красивых сайтов с HTML, CSS и JavaScript

Относительно JavaScript заметим, что для него почти всегда используются готовые библиотеки функций – фреймворки. Во фронтенде чаще всего применяют следующие три.

  • Vue.js. Самый простой в изучении фреймворк. Активно развивается, подходит для небольших проектов.
  • React. Разработка Facebook. Используется для более крупных проектов, требует большего времени для вхождения. На нем, например, сделан фронтенд нашего сайта.
  • Angular. Содержит много готовых решений, включая элементы дизайна, подходит для крупных проектов.

Если вы любите учиться по YouTube-роликам, обратите внимание на нашу подборку из 70 YouTube-каналов для фронтенд-разработчика. В ней множество образовательных каналов, в том числе по библиотекам и фреймворкам.

Бэкенд

Программирование

Бекэнд – это про функциональность сайтов и работу с данными. Та часть айсберга, что скрыта от глаз пользователей. Бекэнд-разработчики много и серьезно программируют. Разнообразие применяемых языков может сбить с толку, но обычно выбор состоит из следующих четырёх.

1. PHP – основа основ динамических сайтов, 79% всех сайтов работают на нём. Сколько вариантов отображения может иметь главная страница интернет-магазина? С одним товаром в корзине, с двумя товарами, для Москвы, для Новосибирска, если вход в аккаунт выполнен или не выполнен и т. п. – создавать под каждый случай отдельный HTML-файл было бы невыносимо.

PHP решает эту проблему, меняя содержимое страницы в зависимости от множества условий. Образно говоря, он «вбрасывает» в браузер нужные строки HTML-кода. Подходит для сборки страниц из модулей, упрощения работы с формами и авторизации пользователей, а также для создания движков сайтов.

Учебные материалы:

  • Курс PHP для начинающих
  • Обновляемый учебник PHP

2. Python – элегантный язык, созданный для повышения производительности программистов. Написать сайт на Python – вопрос 10 строчек кода. Встроенные приложения на страницах, чат-боты, парсинг данных – немногим больше. Практически под каждую сложную задачу есть готовая библиотека – от программирования игр до искусственного интеллекта и робототехники.

Учебные материалы:

  • Онлайн курс программирования Python 3 с нуля
  • Уроки по языку программирования Python

3. Ruby – еще один высокоуровневый язык, который используется для быстрого прототипирования крупных проектов. Известная платформа бронирования жилья Airbnb и сервис для стартапов Kickstarter написаны на Ruby.

Учебные материалы:

  • Бесплатный курс по Ruby Романа Пушкина
  • Викиучебник Ruby

4. JavaScript – на нем можно писать не только фронтенд, но и бэкенд. Для этого нужно познакомиться с программной платформой Node.js. Она позволяет использовать JavaScript не только в интернет-браузере, но и где угодно ещё.

Каждый из перечисленных языков используется не сам по себе, а как язык фреймворка: для PHP это обычно Laravel или Symfony, для Python это Django или Flask, Ruby стал особенно известен из-за Ruby on Rails, а у JavaScript каждый день появляются новые решения: Express.js, Next.js, Meteor.js и т. д.

Количество фреймворков и устойчивость развития показывают, что их выбор – лишь дело вкуса. Можно лишь посоветовать для начала выбрать один язык и фреймворк, и досконально их изучить. Тогда преимущества и недостатки других инструментов будут очевидны, а освоение необходимых решений не займет много времени.

Базы данных

Нужные данные часто будут находиться в базах данных. Например, на нашем сайте в них хранится весь пользовательский контент. Загрузка каждой страницы начинается с цикла обращений к базе. Самый популярный язык таких запросов – SQL. Нужно только научиться формулировать запросы так, чтобы система управления базой данных вас поняла. Прямо как в старых текстовых квестах.

Учебные материалы:

  • Интерактивный учебник по SQL
  • Прекрасный интерактивный тренажер по SQL на Stepik

Прокачайте soft skills

Эксперты отмечают, что для успешного развития в веб-разработке нужно освоить не только технологии. Не менее важен правильный внутренний настрой. В число так называемых soft skills, которые помогают его сформировать, входят:

  1. Способность к концентрации. Объем информации, который вы будете получать в начале пути, колоссален. Учитесь отличать первоочередное от второстепенного. Если следовать каждому совету, вы будете менять язык программирования каждые две недели.
  2. Коммуникабельность. Общение с коллегами поможет в решении рабочих задач, со знакомыми – в поисках работы мечты.
  3. Умение принимать критику. У каждого разработчика свой подход к программированию, разбираться в чужом коде – непростая задача. Не принимайте критику на свой счет, выделяйте только конструктивные предложения.
  4. Умение признавать ошибки. В командной работе важно вовремя сообщать об ошибках. Как бы ни было неприятно, это позволит быстрее их исправить и избежать в будущем.
  5. Уверенность в себе. Практически каждый девелопер чувствует себя самозванцем. Не верьте внутренним голосам, которые говорят, что разработка не для вас. Нравится создавать сайты – действуйте!

Учебные материалы:

  • Большая подборка материалов по развитию soft skills

Практикуйтесь

Заказы и вакансии в веб-разработке часто требуют хотя бы минимального опыта применения полученных навыков. Начните с маленьких задач за небольшое вознаграждение или строчку в портфолио.

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

  • Группа «По бартеру” ВКонтакте
  • Группа «Веб-программисты, веб-разработчики” ВКонтакте
  • Ищу WEB/IT-специалистов: агрегатор объявлений
  • Telegram-канал «Фриланс Таверна”
  • Платформа «Дистанция”

Не беритесь за большие проекты, не попробовав свои силы. Полноценный веб-девелопмент работает по тем же принципам, просто в другом масштабе.

Станьте частью сообщества

Знаете, что говорят разработчики о хорошей технологии (например, фреймворке)? «У нее большое живое сообщество». Здесь любят коллективный труд и взаимную поддержку.

С любыми вопросами отправляйтесь по этим ссылкам:

  • StackOverflow: форумы, вопросы и ответы, поиск работы
  • Хабр: статьи, кейсы, работа и фриланс
  • Форум web-программистов
  • Reddit, раздел /webdev

Когда наберетесь опыта, сможете сами консультировать других. Иногда это даже учитывается при приеме на работу.

Для получения новых знаний подпишитесь на каналы Telegram:

  • @frontendproglib – библиотека фронтендера;
  • @pyproglib – библиотека питониста;
  • @phpproglib – библиотека пхпшника;
  • @coding_ru – русскоязычный чат веб-разработчиков;
  • @devchat – еще один;
  • @webprogrammingru – и еще;
  • @front_end_dev – для тех, кто выбрал фронтенд;
  • @phpme – все про язык PHP;
  • @jslang – все про JavaScript;
  • @rubylang – про Ruby и Rails;
  • @nodejs_ru – о Node.js и связанных сервисах;
  • @ru_python – программисты на Python.

Где найти работу

Если вы не сторонник full-time или хотите пройти «боевое крещение» на фрилансе, поищите проекты в нашей публикации «Где программисту искать удаленную работу?»

Вакансии веб-девелоперов также размещают здесь:

  • HeadHunter
  • Хабр Карьера
  • StackOverflow, раздел Jobs
  • SuperJob

Создавая резюме для новой профессии, используйте универсальную формулировку «Junior Web Developer». В скобках добавьте «FrontEnd» или «BackEnd», в зависимости от специализации. Так работодатели увидят, что вы претендуете на стартовую позицию, и поймут, чем хотите заниматься.

Следующие ступени карьерного роста – Middle Web Developer (ставка 50 – 200 тыс. ₽) и Senior Web Developer (ставка 120 – 250 тыс. ₽). При смене компании с повышением позиции будьте готовы не только показать портфолио, но и выполнить тестовое задание. Часто оно проверяет знание нужных фреймворков и типичных задач – отличный стимул освежить и расширить навыки.

Итог

От обилия знаний, которые предстоит получить, и полезных ресурсов, которые помогут это сделать, голова может пойти кругом. Однако не стоит опускать руки. Помните о концентрации внимания: начните изучать все по порядку, и вы не заметите, как станете частью удивительного мира веб-разработки.

Для тех, у кого нет времени самостоятельно искать и изучать материалы, есть более простое решение. Пройдите курс факультета Веб-разработки GeekBrains и получите готовую базу навыков. В качестве бэкенда на курсе изучаются язык PHP и фреймворк Laravel, для фронтенда – фреймворк React. То есть самые популярные технологии в своих нишах. Курс поможет освоить профессию с нуля, получить диплом и создать портфолио с рабочими проектами, а в случае успешного прохождения команда университета поможет с трудоустройством. Ознакомиться с программой и отзывами можно, нажав расположенную ниже кнопку.

Обновлённые HR-Сообщества:
hr.superjob.ru

IT, телекоммуникации и связь | 20.09.2008 15:59
Благодаря этому уникальному упражнению, вы, совершенно не зная ни одного языка программирования, сможете почувствовать себя настоящим программистом-профессионалом!
Для упражнения потребуются:
— два участника;
— часы (желательно с секундомером);
— листок чистой бумаги;
— ручка (шариковая или гелиевая, но именно ручка, — это важно).
Один из участников будет «Заказчиком» (Работодателем), другой — «Исполнителем» (Программистом). «Заказчику» выдаются часы и право голоса, «Исполнителю» — бумага и ручка.
Начало упражнения:
«Заказчик» засекает 10 минут и дает задание «Исполнителю»:
«Нарисуйте мне, пожалуйста, красивую девушку.»
Далее, пока «Исполнитель» рисует, стоя у него «над душой», высказывать следующие пожелания к рисунку:
0:30 — Пусть у нее в руке будет меч.
1:00 — Двуручный меч, который она держит обеими руками!
1:30 — А в другую руку ей дайте УЗИ.
2:00 — Пусть она будет уставшей путешественницей, присевшей отдохнуть.
2:30 — На меч она опирается, отдыхает, значит.
3:00 — Пусть на ней будет развивающийся по ветру плащ!
3:30 -… И купальник.
4:00 — А лучше доспех!
4:30 — Не… униформа!
5:00 — Уберите плащ, он не идет к униформе.
5:30 — Пусть она смело стоит на мостике космического крейсера!
6:00 — Почему у нее меч? Уберите это старье. А УЗИ переделайте в бластер!
6:30 — Ее волосы развиваются по ветру… для красоты, значит.
7:00 — Бластер не смотрится… уберите его. Она вообще капитан этого корабля, ей не нужен бластер!
7:30 — Ей нужна фуражка капитана! И аккуратно собранные на голове волосы!
8:00 — И сидеть она должна в кресле капитана!
8:30 — Красивая, суровая и необычайно смелая капитанша корабля пиратов…
9:00 — Нет, эскадры боевого флота Галактической Федерации!
9:30 -… Вытягивая палец, отдающая приказ о смене курса…
По истечению 10 минут «Заказчик» берет работу «Исполнителя», критически ее осматривает и высказывает свое впечатление:
«Ну это же совсем не то, что я хотел! А где ее верный советник? А почему у нее нет табельного оружия? И вообще, почему она такая некрасивая и суровая? Я же просил КРАСИВУЮ девушку! И вообще на рисунке столько каракулей… Плохой вы программист, зря я к вам обратился… Не буду платить за такую халтуру!»
Для большей остроты ощущений, можно взять целую «Команду Разработчиков», и пусть они вместе рисуют «большой и красивый пейзаж» за 10 минут.

Вопрос: Я начал изучать программирование. Скажи ты долго изучал свой первый язык? Хочу понять сколько времени мне нужно чтобы полноценно кодить

Есть волшебная фраза, которая, к сожалению, не может быть дословно переведена на русский язык без потери части смысла – It Depens. Среди программистов применяется чуть чаще, чем всегда. Смысл в том, что скорость обучения любому навыку, в том числе и программированию, зависит от огромного количества различных факторов, которые для каждого человека индивидуальны: способности к учебе, количество свободного времени, мотивация и так далее. Поэтому универсального срока для обучения нет и быть не может.

Сколько времени нужно, чтобы стать программистом?

Я не перестаю обучаться программированию с того момента, как это стало моей профессией. IT – это не такая сфера, где можно один раз чему-то научиться и забить. Каждый день появляются новинки и чтобы оставаться востребованным специалистом необходимо продолжать учиться ежедневно до конца жизни. Благо, адекватные работодатели это понимают, и обучение является частью рабочего процесса.

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

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

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

Не забудьте поставить лайк и подписаться на канал. Кроме того, рекомендую прочитать статью: Как программисту найти работу?. А также подписывайтесь на мою группу ВКонтакте, Telegram и YouTube-канал. Там еще больше полезного и интересного для программистов.

Сева Жидков в 15 лет занял должность ведущего разработчика в одной из самых известных российских компаний. В 2019 году он окончил школу, но не собирается поступать в университет. Сева рассказал, как устроиться на классную работу уже в 9-м классе, научиться программировать в интернете и любить то, что делаешь.

Рассылка «Мела» Мы отправляем нашу интересную и очень полезную рассылку два раза в неделю: во вторник и пятницу

«Ни учителя, ни школа не повлияли на моё занятие программированием»

Мне всегда нравилось сидеть в интернете. В какой-то момент я понял, что мне интересно, кто и как делает сайты, на которых я сижу. Так я понял, чем хочу заниматься.

Писать код я начал рано, лет в 9–10, к 15 годам опыт был уже значительный. Чем больше я занимался разработкой, тем больше нравилось, эффект накапливался со временем. Учился писать код самостоятельно: у меня свой подход к обучению программированию. Когда я хотел что-то написать, то начинал искать решение. Думал, как сделать.

Если чего-то не знал, искал, узнавал новое, применял на практике — и этот цикл прогонял сотни раз. В какой-то момент у меня получалось. С каждым новым проектом я учился новому и запоминал это.

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

Программирование — такое же увлечение, как и прочие. У нас был хороший класс: кто-то увлекался творчеством, кто-то геймингом, кто-то спортом. Я не сильно отличался от других. В школе обсуждал общие темы, дома программировал — у меня не было ощущения оторванности от школьной жизни. Мне удавалось не быть аутсайдером. При этом ни учителя, ни школа не повлияли на моё занятие программированием. Учился я в интернете.

В начальной и средней школе я был отличником, потом просто старался обходиться без троек. Планировал поступать в университет, ездил на олимпиады, занимал места. Но когда в 9-м классе появилась возможность программировать профессионально, то не захотелось терять несколько лет на учёбу.

«В 9-м классе я уже стал разработчиком»

Я спрашивал у родителей, чем они занимались. Мой дедушка — один из первых программистов в России: учился на математика, а стал программистом. Так что о карьерных возможностях я узнал достаточно рано. В семье поддерживали занятия интеллектуальной деятельностью. Считалось, что сидеть за компьютером — это не плохо. Но только если ты работаешь, а не тратишь время.

Я был подписан на несколько разработчиков «ВКонтакте», с кем-то общался в сети. Однажды увидел в ленте пост «Ищем в отдел старшего разработчика» от моего будущего руководителя. Он был довольно неформальный, мне понравилось. Я написал, рассказал о своём опыте. Конечно, я не был сильным специалистом, но зато активным и самостоятельным. Хотелось развиваться, у меня были преимущества даже в сравнении с успешными разработчиками, которых тоже можно было нанять.

Я думаю, помогла открытость новому. Меня пригласили на собеседование. Мы поговорили, я сделал техническое задание и по обычной схеме получил работу. Так в 9-м классе я стал удалённым сотрудником. Я всегда делюсь с родителями тем, что делаю, поэтому сразу рассказал и о работе. Они порадовались, хотя и попытались сперва отговорить.

«На работе мне не бывает скучно»

Я backend-разработчик. Во «ВКонтакте» мы пишем на языке KPHP (KittenPHP — транслятор PHP-кода в С++ от компании «ВКонтакте». — Прим. ред.), но на деле не так уж важно, на каком языке ты работаешь. До прихода во «ВК» я использовал Python. Перейти с одного языка на другой — не проблема, это всего лишь инструмент для решения задач. Каждый раз я стараюсь погрузиться в рабочую проблему, начать её решать и увлекаюсь: так хочется найти способ решения, что часы пролетают незаметно. Бывает, что задача по ходу дела усложняется, становится только интереснее.

У меня разные задачи, и они связаны не только с программированием. Я занимаюсь срочными проектами, которые подразумевают взаимодействие разных команд. Это требует не только комплексного понимания разных специфик, но и умения интегрироваться, договариваться. Так кажется, что задач много, они разные, и нет никакой скуки.

Ещё меня увлекает, что я осознанно влияю на продукт «ВКонтакте»: у меня пять проектов, но мне не тяжело. В общем, работать интересно.

Здорово чувствовать себя самостоятельным и ответственным за свои решения. В прошлом году мы запустили викторину «Клевер», она стала невероятно популярной. Так что ждите новостей, мы продолжаем работать.

«Я хочу, чтобы в России было больше программистов»

Я не чувствую себя моложе других во «ВК». Я не единственный молодой сотрудник. Много тех, кто пришёл сразу после школы, кто стал работать во время учёбы в универе, кто пришёл на стажировку, а потом остался. Сильной разницы нет.

Средний возраст в компании — 25 лет, все достаточно молодые. И не в возрасте дело. Например, моему начальнику 33, и я не чувствую, что у нас большая культурная разница. Да, может, у него чуть больше опыта. Но главное — насколько мы открыты чему-то новому.

В стране много подростков, которые увлекаются программированием, но не верят, что это может стать карьерой. Я сам был таким подростком

У кого-то не получается устроиться на стажировку или начать работу, кто-то просто не знает о тех возможностях, которые есть. Я бы хотел решить эту проблему.

Представьте себе большое светлое здание, в котором все программируют. В каждом городе. Оно светится на фоне тёмного города, да так, чтобы школьники шли утром на учёбу, видели, как светится здание, думали, как круто быть программистом, и интересовались бы этим. Очень бы хотелось научить, рассказать, вырастить больше программистов у нас по всей стране.
Текст подготовлен при помощи Кристины Чутких, студентки факультета журналистики РАНХиГС.

Фото предоставлено «ВКонтакте»

По материалам руководства от Google

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

Пройдите курс по направлению «Computer Science»

Если вы только собираетесь делать свои первые шаги в программировании и не знаете, с чего начать, то Там вас научат азам программирования, так что после их прохождения вы будете относительно неплохо знать какой-либо язык программирования и писать качественный код. Такие курсы можно найти и . Также смотрите наш список из 10 лучших книг для начинающих разработчиков.

Выучите объектно-ориентированный язык программирования

Объектно-ориентированное программирование сейчас является стандартом в промышленном программировании, поэтому и хорошая зарплата вам гарантирована. Примерами таких языков являются C++, Java, Python. Курсы для новичков можно найти , и , а для продолжающих обучение и . Несколько полезных сборников ссылок и книг для изучения Java, Python, С++.

Осваивайте другие парадигмы и языки

Расширяйте свой программистский кругозор, не стоит ограничиваться одним ООП, осваивайте другие парадигмы, учите другие языки, пробуйте себя в разных сферах. Например, если вы хотите разрабатывать веб-приложения, то однозначно стоит обратить внимание на CSS, HTML, JavaScript, PHP, Ruby. Хотите экзотики? Посвятите немного времени Haskell, Clojure, Prolog. Курсы для получения новых можно найти и . Отдельно советуем обратить внимание на ресурс Codecademy. Обратите внимание на нашу подборку 10 бесплатных книг по JavaScript для начинающих.

Тестируйте код

Ошибке в коде не нравятся никому: ни вашему тимлиду, ни тестировщикам, ни заказчику, ни конечным пользователям. Поэтому тестируйте свой код. Курсы по этой теме и . Смотрите также: зачем нужны юнит-тесты?

Развивайте логическое мышление, выучите дискретную математику

если вы хотите делать в своей жизни что-то более интересное, чем до конца дней писать сайты, то без этого вам не обойтись. Курсы: от MIT, по логике, графических моделях, теории игр. Если вы все еще сомневаетесь, нужна ли программисту математика в работе, то прочитайте мнения экспертов по этому поводу.

Знайте алгоритмы и структуры данных

Невозможно представить себе хорошего программиста без знаний алгоритмов и структур данных. Курсы: и . Также советуем почитать книгу по разработке алгоритмов. Курс от tproger по базовым алгоритмам и структурам данных, а также подборка материалов для изучения сложных тем.

Разберитесь, как устроены операционные системы

Любая программа взаимодействует с ОС, поэтому выработайте понимание того, как устроены операционные системы, хотя бы на базовом уровне. Отличный курс по теме на YouTube.

Выучите UX-дизайн

если хотите, чтобы вашим приложением было удобно пользоваться, а значит, чтобы его покупали. Курс от Udacity.

Разберитесь в машинном обучении ???

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

Разберитесь, как работают компиляторы

Многие программисты пишут код и даже не задумываются, как он преобразуется в понятные компьютеру инструкции. Если вам это интересно, то изучите то, как работают компиляторы. Сделать это можно в этом курсе. Подборка книг о компиляторах есть у нас на сайте.

Работайте над своим проектом

Практика жизненно важна для всех, кто хочет быть программистом, поэтому в свободное время работайте над своим проектом: например, создайте или поддерживайте веб-сайт или соберите робота.

Участвуйте в open source-проектах

это поможет вам развить навыки работы с чужим кодом, да и в конце концов вы просто будете приносить пользу человечеству. Идеальным местом для open source-деятельности является GitHub.

Работайте над проектами вместе с другими программистами

Это поможет вам научиться работать в команде, что является неотъемлемым навыком в современном мире, а еще вы сможете научиться у них чему-то новому.

Участвуйте в соревнованиях по программированию

и решайте алгоритмические задачи, ведь это помогает держать ваш мозг в форме, углубляет понимание алгоритмов и структур данных, да и вообще это неплохой способ провести время 🙂 Делать это можно на таких сайтах как Codeforces и TopCoder. Смотрите также нашу подборку сайтов с задачами и соревнованиями по программированию, а также популярные задачи с собеседований.

Найдите себе ученика

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

Хинт для программистов: если зарегистрируетесь на соревнования Huawei Honor Cup, бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *