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

Материал из Изи Вики

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

Объясните простыми словами, пожалуйста[править | править код]

Аладдин исполняет свою первую программу

(сказка из сборника «1111101001 ночь»)

Компьютер — это добрый джинн, который может исполнить любые желания 🧞

  • Хотите 🏭 фабрику-самобранку, производящую еду самостоятельно — пожалуйста.
  • Хотите 🛩 ковер-самолет-автопилот, регулярно летающий из Парижа в Лондон — получите, распишитесь.
  • Хотите 🚗 телегу, которая едет куда нужно без лошади и водителя — Tesla уже ждёт вас.

Но есть две небольшие проблемы:

  • Компьютер-добрый-джинн не понимает язык человека.
  • Человек сам в точности не знает, чего он хочет🤷

Компьютер понимает только язык цифр 1 и 0. Если вы попытаетесь загадать своё желание случайным набором чисел 1011...1101 — вы получете непредсказуемый результат, а компьютер скорее всего обидится и зависнет. Значит нужно говорить не случайные цифры а осмысленные, но как? Давайте позовем на помощь нашего друга и специалиста по натиранию электронных радиоламп — Аладдина-программиста. Ходят легенды, что он умеет переводить желания людей на язык компьютера — это и называется программированием.

Итак мы просим Аладдина напрограммировать «лекарство от всех болезней». Он достает своего волшебного Питона (Python — это такой популярный язык программирования) и с помощью него сообщает джинну-компьютеру:

print("я хочу лекарство от всех болезней")

Смотрим результат:

я хочу лекарство от всех болезней‎

Это просто текст? 😠

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

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

Хотите помочь? Изучайте языки программирования и программируйте. Начните по-настоящему общаться с вашим добрым-джинном компьютером, он хочет исполнить ваши желания 😉

А если серьезно[править | править код]

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

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

Как научиться программировать[править | править код]

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

  1. Начать можно с компьютерных игр про программирование. Ищете, выбирайте, пробуйте. Если вам это интересно и это «затягивает», можно двигаться дальше.
  2. Выберите интересное для вас направление. Для новичков без IT образования подойдут мобильная разработка и разработка веб-приложений (frontend или backend). Не торопитесь на данном этапе, изучите каждое из трех направлений и выберите подходящее.
  3. Выберите один язык программирования по интересующему направлению. Рекомендуется JavaScript для фронтенд направления, Python для бэкенд, Kotlin / Swift для мобильной разработки.
  4. Начните изучение с бесплатных материалов и недорогих курсов. Если понимаете — «это оно», можно продолжать. Если идет «через силу», надо пробовать другие варианты.
  5. Изучите выбранный язык программирования, на уровне решения простых задач. Важно писать код решений самостоятельно «без копирования готовых из гугла». Программирование — это прежде всего практический навык.

Как стать профессиональным программистом[править | править код]

Чтобы программирование стало вашей профессией, нужно двигаться дальше:

  • Освойте профессиональные инструменты работы. Минимальный набор — это инструменты работы с исходным кодом: git и IDE. Плюс у каждого направления разработки есть свои дополнительные.
  • Выполните минимум один pet-проект (учебный проект) и выложите его код в открытый доступ (например, на GitHub)
  • Разместите резюме и откликайтесь на вакансии стажера (подойдут бесплатное обучение или работа за минимальную зарплату). Остерегайтесь мошенников, обещающих высокие зарплаты без опыта работы.
  • Пройдите собеседование и устройтесь на стажировку.
  • Продолжайте искать работу, откликайтесь на вакансии младших (junior) разработчиков.
  • Устройтесь на работу младшим разработчиком.
  • Продолжайте учиться.

Важно! Устроиться на первую работу программистом непросто из-за высокой конкуренции и развития технологий AI (искусственного интеллекта), первые попытки собеседований скорее всего будут неудачными, но они дадут дополнительный опыт. Важно сохранять высокий уровень мотивации, увлеченности, готовности обучаться. Личностные качества для начинающего разработчика становятся более востребованными. Также не забывайте про другие важные направления в разработке: менеджеры, дизайнеры, аналитики, тестировщики, системные администраторы, сотрудники технической поддержки.

Какие типы программистов существуют[править | править код]

Программисты различаются прежде всего по направлениям работы и знаниям языков программирования.

  • Веб-программирование — это создание веб-сайтов и веб-приложений.
  • Мобильная разработка — создание приложений для смартфонов и планшетов.
  • Разработка компьютерных игр.
  • Data science — магия по извлечению полезной информации из огромных объемов неструктурированных данных
  • Разработка встроенных программ (Embedded software) — это то что делает предметы вокруг нас умными и интерактивными.

... и другие направления.

Есть различия по уровню навыка программирования.

  • Coder (Кодер) — новичок, может писать несложные программы, например, скрипты для автоматизации рутинных задач.
  • Programmer (Программист) — может написать практически любую программу, но не всегда оптимальным способом.
  • Software engineer (Инженер-программист) — может спроектировать сложную систему оптимальным способом.
  • Computer scientist (Информатик) — создает новые языки программирования, научные подходы, методологии, парадигмы.

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

  • Junior (Младший разработчик) — начинающий специалист, готовый быстро обучаться.
  • Mid-Level / Middle (Разработчик) — специалист с опытом, эффективный командный игрок, работает на результат.
  • Senior (Старший разработчик) — опытный ответственный специалист, организует работу небольшой команды, много времени уделяет обучению новичков.
  • Lead (Тимлид) — отвечает за работу большой команды разработчиков.
  • Principal (Главный разработчик) — эксперт в предметной области разработки, главный разработчик в компании.