Математическое программирование
Содержание:
- Вузы программирования в России
- Необходимые профессиональные умения и знания
- Необходимость знания иностранных языков
- Роман Моисеенко, технический директор и сооснователь Мерката:
- Как учиться программировать неразработчику
- Николай Добровольский, вице-президент Parallels:
- Андрей Хромышев, старший программист-разработчик ПО компании Acronis:
- Законы Мерфи для программистов
- Где изучать
- Математика
- Математика в анализе данных
- Обучение в ШАДе
- Расширенные навыки
- Что такое сертификаты и можно ли обойтись без них
- Брестский государственный технический университет
- Что должен знать новичок
- Получите восстребованную IT-профессию
- Программирование — фундаментальный навык
- Лучшие книги и средства обучения
- Ярослав Никонов, аналитик департамента разработки программного обеспечения компании «Аэроклуб ИТ»:
- Front-end веб-разработчик
- Оплата труда
- Ступеньки карьеры и перспективы
- Интересные факты
- Программисты шутят
- Что такое 1С и где используются ее программы
Вузы программирования в России
В России есть вузы программирования, которые предоставляют возможность обучаться этой специальности. Однако будем откровенны качество образования, которое предлагают университеты программирования в России, немного отстает от того, что предлагают европейские и американские университеты. Кстати, многие из них предлагают даже бесплатное образование. Да, там обучение будет на английском, но тем и лучше, потому что программисту без английского придется очень нелегко. Плюс зарубежный университет повышает шансы остаться «там» жить — это актуально для тех, кто планирует переезд. Поэтому если есть возможность, особенно финансовая, то можно присмотреться к «тем» учебным заведениям.
Допустим, нет возможности обучаться в зарубежных учреждениях, тогда остановимся на отечественных учебных заведениях и выберем, в какой вуз лучше поступить на программиста.
Необходимые профессиональные умения и знания
Всему перечисленному можно научиться. Да, развиваться нужно постоянно, но базовый навык кодирования можно развить до совершенства всего за несколько лет учебы по качественно проработанной образовательной программе.
Другой вопрос, что нужно знать чтобы поступить на программиста. Здесь невозможно за 2−5 лет вырасти в профессионала, если подойти к профильному образованию с минимальным набором школьных знаний. Желая опередить соперников, со старта карьеры получить преимущество, каждый программист (будущий) должен приступать к освоению профессии с отличной базой:
- по математике (здесь же — логика, теория вероятности);
- физике;
- информатике;
- английскому, русскому.
Что должен знать программист для работы на перспективу (карьера, зарплата, репутация)? Нужно глубокое понимание архитектуры программной среды, где предстоит работать, принципов кодирования, знание простейших методов создания программ.
Знать нужно очень много: стандарты программирования, концепцию проектирования задач, методологию тестирования ресурсов. Чем глубже студент погружается в основы математики (анализ, графы), тем сильнее его позиции, шире арсенал применяемых инструментов.
Необходимость знания иностранных языков
- Возможность удалённой работы в международных командах и зарубежных проектах. Кроме престижа и интересных задач, это ещё и заработная плата в долларах или евро (при нашем курсе неплохая история).
- Возможность работы в международных заказных проектах.
- Доступность всех материалов по разработке, записей лекций, конференций, курсов и т.д. Фактически у вас исчезают ограничения в самообразовании, все ключевые материалы мира программирования становятся доступны.
- Возможность эмиграции при наличии такого желания.
- Возможность стажировок в крупнейших ИТ-компаниях.
- Дополнительный фактор карьерного роста.
Роман Моисеенко, технический директор и сооснователь Мерката:
Что касается ресурсов, к которым стоит обратиться в случае, когда нужных знаний нет или они просто позабыты за давностью лет, то скорее это не учебники, а Google и Хабр. Как правило, задача стоит не в самообразовании или восполнении недостающих знаний, а в вспоминании конкретного материала или нахождении наиболее эффективного математического инструмента для решения конкретной задачи. И вот на Хабре зачастую встречаются очень хорошие статьи по применению той или иной математики к решению конкретных задач, а особенно ценны комменты, где порой идет очень живое обсуждение плюсов и минусов описанного подхода.
Как учиться программировать неразработчику
Начните с азов: типы данных, функции, основы алгоритмов. Ищите подходящую литературу, но не тяжелые монографии Кнута по информатике. Эти труды оставьте тем, кто планирует погрузиться с головой в разработку: в них много теории, написанной суровым языком профессионала.
В интернете можно найти массу учебных пособий «для чайников», где информация изложена очень подробно и доступным языком. Ищите книги конкретно под ваши задачи. Например, для изучения SQL — «Семь баз данных за семь недель».
Хорошим стартом и дополнительной мотивацией к овладению новыми навыками станет прохождение онлайн-курсов. Например, «Аналитик данных на Python» для тех, кто желает прокачать себя как маркетолога. Новичкам рекомендуем взглянуть на курс «Профессия frontend-разработчик», где вы освоите базовые навыки HTML и CSS, полезные в работе маркетологов, менеджеров и других специалистов.
Николай Добровольский, вице-президент Parallels:
Программисты бывают разные. Математика и алгоритмика нужны в вещах связанных с низкоуровневыми оптимизациями и алгоритмами обработки данных. Но это далеко не вся и даже не самая большая часть работы. Например, наиболее трудоемкий процесс — написание пользовательского интерфейса. Здесь математика практически не нужна нигде. Требуется понимание подходов к построению удобных в использовании сервисов.
В этом есть сложность нашей, еще советской, школы программирования. У нас очень развита академическая составляющая, математика, комбинаторика, алгоритмика и слабые навыки создания приятных в использовании ИТ-продуктов. Это крайне важных аспект при их коммерческой реализации. Продукты должны красиво выглядеть, быть интуитивно понятны и простыми в использовании. С этим у нас в России далеко не все просто. Отчасти это связано с факторами внешней среды. Там где нет понятий сервиса, культуры и удобства обслуживания, прививать подобные ценности непросто. Но это крайне важный аспект, поскольку именно он позволяет программистам на всех уровнях делать удобные и ориентированные на конечного пользователя продукты.
Подобные навыки можно получить на курсах product management, program management и других дисциплинах. Десять, двадцать, тридцать лет назад слово «программист» объединяло в себе все, что так или иначе было связано с компьютерами, системами связи, программированием и так далее. Сейчас же все очень быстро развивается. Огромное количество технологий появляются каждый день. Что-то появляется, что-то умирает достаточно быстро.
Цикл порой может быть в год-два. Например, с точки зрения пользовательского опыта или web-технологий, то что сейчас считается мейнстримом, через три года может быть никому не нужно
При этом, крайне важно оставаться в информационном поле, следить за трендами, осваивать новые технологии
Правило «10 000 часов», предполагающее трансформацию специалиста из «чайника» в профессионала» через практический опыт никто не отменял. Если говорить о книгах, то, на мой взгляд, одна из интереснейших работ в области эргономики была написана Дональдом Норманом и называется «Дизайн привычных вещей» (Designer everyday things). Написанная в 1988 году, она и по сей день дает основные ответы на вопросы создания удобных вещей.
Андрей Хромышев, старший программист-разработчик ПО компании Acronis:
Я думаю, здесь будет вполне уместна цитата великого Эдсгера Дейкстра: «Программирование — не набор пассов и заклинаний, не шаманство, не танцы с бубном, а математическая дисциплина. А всякая дисциплина, если она претендует на нечто большее, чем на внешний эффект, должна строиться на прочном фундаменте». Таким фундаментом для Дейкстры является математическая логика, а точнее — исчисление предикатов.
В большинстве случаев современному прикладному программисту нет необходимости иметь огромный багаж знаний по матанализу, статистике, линейной алгебре и прочим дисциплинам, но математическую логику знать практически необходимо — хотя бы ради того, чтобы понимать принципы работы и логически мыслить. Также справедливо утверждение, что программист с математической подготовкой пишет код лучше, понятнее, структурнее.
Стоит отметить, что многое зависит от задач, над которыми трудится программист: кто-то программирует сигнальные процессоры, а кто-то специфическое ПО для работы с ДНК.
В завершении скажу так: чем профессиональнее становится разработчик, тем «глубже» он идёт в предметную область, а в ней, безусловно, существует ряд инженерных решений, основанных на применении математического аппарата.
Законы Мерфи для программистов
- Ничто не работает так, как планировалось запрограммировать.
- Ничто не программируется так, как должно работать.
- Хороший программист характеризуется умением доказать почему задачу невозможно выполнить, когда ему просто лень ее выполнять.
- На решение проблемы уходит в три раза меньше времени, чем на обсуждение всех «за» и «против» ее решения.
- Обещанный срок сдачи — это аккуратно рассчитанная дата окончания проекта плюс шесть месяцев.
- Программисту всегда известна последовательность действий, которыми пользователь может повесить его программу, но он никогда не чинит эту проблему, надеясь на то, что никому никогда не придет в голову эту последовательность исполнять.
- Настоящие программисты любят Windows — все ошибки, сделанные по собственной тупости, можно свалить на Microsoft.
- Следствие: 99 % проблем, сваливаемых на Microsoft, — это следствие тупости самих программистов.
- В приступе злости все почему-то молотят по невинному монитору, вместо системного блока.
- В случае голодовки настоящий программист еще месяц сможет питаться едой, выковырянной из-под кнопок клавиатуры.
- Настоящий программист уже как минимум поменял три залитых пивом клавиатуры.
- Все, кто испытывает проблемы с настройкой кодировки, автоматически считаются неандертальцами.
- Дилетантские разговоры о компьютерах вызывают резкую тошноту вплоть до приступов рвоты. Вопрос о том, как поменять обои в Windows, вызывает желание перерезать горло вопрошающему.
- У большинства людей, нуждающихся в твоей помощи, причина ошибки в работе программы чисто генетическая.
- HTML, HTTP, FTP, SMTP, TCP/IP, RTFM и т. д. — это слова, а не аббревиатуры.
- Словосочетание «мышка-норушка» не несет никакого смысла.
- Самые мистические проблемы, широко раздуваемые и афишируемые, в конце концов оказываются твоими глупейшими ошибками.
- Следствие: если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое.
- Самое плохое ощущение для программиста — когда вокруг тебя стоят десять человек, и все пытаются найти причину проблемы в твоей программе, а ты уже понял, в чем проблема, но боишься сказать, потому что это что-то вопиюще глупое…
- Решение всех жизненных проблем находится в Интернете. Надо только уметь хорошо искать.
- Конфликт логических указаний в жизни вызывает фатальную ошибку в работе мозга программиста — возможно повышение температуры и сильное головокружение вплоть до рвоты или потери сознания.
- Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирают программистов, которые презирают тех, кто их презирает.
- Если ты понял предыдущее — ты программист.
На этом свете 10 типов людей: те, кто понимает двоичную систему, и те, кто не понимает ее.
Где изучать
Второй вопрос, который сразу возникает у начинающих – куда пойти учиться на программиста? На самом деле вариантов много. Это может быть специализированный вуз, индивидуальные занятия или самостоятельное изучение.
Если студент выбирает путь самостоятельного изучения, то ему потребуется гораздо больше времени стать разработчиком.
В качестве вуза студент может выбрать онлайн-университет, который преподает курсы программирования с нуля. Ученику не нужно регулярно ездить на занятия и тратить время на дорогу. Он может выбрать удобную для себя форму обучения – например, в свободное время слушать лекции и сдавать практические занятия. Диплом в онлайн-университетах приравнен к обычным вузам.
Один из вариантов изучения онлайн–курсы на сайте https://checkroi.ru/. Веб-сайт предоставляет огромный список разных учебных материалов.
На какого программиста пойти учиться – выбор за студентом. Он вправе выбрать область, которая для него наиболее интересна. Программирование творческий процесс: если работа не интересна, то и результата не будет.
Математика
Большинству программистов хватит умения выполнять простые операции и знания нескольких формул. Например, полезно разбираться в процентах — с их помощью можно создавать адаптивные интерфейсы, работать со звуком и прозрачностью. Вот образец того, как разработчик компьютерных игр может использовать математику:
Продвинутый уровень математики позволяет программисту писать сложные алгоритмы, которые применяются в графике, аналитике, сортировке, построении маршрутов и машинном обучении.
Полезная литература:
- Томас Кормен. «Алгоритмы: построение и анализ».
- Дональд Кнут. «Искусство программирования».
Нужно: всем.
Математика в анализе данных
В Школе анализа данных я выбрал направление, где упор делался на программирование и статистику. В ШАДе очень хороший курс по статистике, который помог мне легко её понять. А на курсе по дискретной математике нам рассказывали теорию графов, комбинаторику, линейную алгебру и практическую линейную алгебру. Во время обучения в Школе я начал осознавать взаимосвязь между математикой и решением каких-то практических задач по анализу данных.
Чем очень хорош ШАД — здесь ты сразу замечаешь взаимосвязи, видишь, зачем нужна конкретная теорема, зачем нужна линейная алгебра и зачем нужна статистика, где всё это используется в текущий момент и так далее. Всё начинает иметь смысл.
Практически всё машинное обучение и нейронные сети — это смесь теории вероятностей, математического анализа и линейной алгебры
Конечно, что-то можно делать, не углубляясь в математику, но для научных исследований очень важно знать, как всё происходит внутри нейронок, понимать, что это вовсе не магия из чёрного ящика.
Обучение в ШАДе
Самыми трудными для меня были, наверное, первые четыре месяца. Мне не хватало базовых математических знаний. То, что многим студентам давалось легко, мне приходилось изучать отдельно, прикладывая большое количество усилий. Спасло то, что, несмотря на продвинутый уровень знаний студентов, в ШАДе любую тему начинают с базы.
Выпускной Школы анализа данных — 2019
Примером тому является курс по дискретной математике Андрея Михайловича Райгородского. Он всегда начинает с азов, которые может понять любой, и быстро разгоняется до очень сложных вещей. И если человек будет следить за всем этим, записывать, то он поймёт, что происходит. Это мне очень помогло.
С точки зрения общения с людьми, Школа — это волшебное место. В ШАДе можно спокойно подойти к любому человеку и начать обсуждать любую задачу, и всем будет очень интересно.
Без ШАДа я бы точно не получил те знания, которые у меня есть сейчас, во всяком случае, в области высшей математики и программирования. Именно последние полгода в ШАДе и направили меня в сторону науки. В частности, восхитительный курс по глубинному обучению и по reinforcement learning. Меня зацепило глубинное обучение, и я решил заниматься именно этим. У меня широкие научные интересы, но они так или иначе касаются компьютерного зрения. Сейчас я сотрудник лаборатории ADASE в Сколтехе. Я опубликовал две статьи на конференциях уровня А* и одну — на конференции уровня B. Собираюсь дописать диссертацию и продолжать заниматься наукой.
Расширенные навыки
Начинающие студенты часто задаются вопросом – какие еще навыки нужны программисту, кроме базовых?
- Необходимо аналитическое мышление, чтобы находить ошибки в написанном коде и оптимизировать его.
- Если разработчик ведет несколько проектов параллельно, то обязательно умение работать с программами контроля версий, например, GitHub.
- Умение работать в разных операционных системах как минимум на уровне опытного пользователя. Зачастую приложения создаются как кроссплатформенные, то есть используются в различных ОС.
- Работа в команде. Если проект большой, то его разбивают на несколько частей и нанимают соответствующее количество программистов.
- Использовать специализированное ПО для создания понятного и красивого дизайна программы. Пользователи не увидят сам код, но будут оценивать по внешнему виду и удобству использования.
Что такое сертификаты и можно ли обойтись без них
Система 1С постоянно развивается: меняется функционал конфигураций, выходят новые версии платформы с новыми возможностями. Чтобы работать с ними, программистам приходится постоянно учиться и периодически подтверждать свою квалификацию. Для этого компания 1С сертифицирует специалистов.
Есть два уровня сертификации:
- Первый уровень — «1С:Профессионал». Проводится тестирование, на котором проверяют, насколько хорошо программист знает и умеет использовать возможности платформы и одной из популярных типовых конфигураций. Это может быть, например, «Бухгалтерия предприятия», «Зарплата и управление персоналом», «Бухгалтерия бюджетного учреждения» или что-то еще.
- Второй уровень — «1С:Специалист». Тут необходимо сдать серьезный экзамен, к которому допускаются только те, кто прошел тест на сертификат «1С:Профессионал». На экзамене проверяются понимание принципов построения конфигураций, практические навыки программирования и многое другое.
Людей, прошедших сертификацию, особенно получивших сертификат «1С:Специалист», охотнее берут на работу и повышают в должности. В большинстве компаний, работающих с 1С, от всех программистов требуют, чтобы они регулярно получали сертификаты.
Брестский государственный технический университет
На факультете электронно-информационных систем кстати учиться тем, кто хочет разрабатывать интеллектуальные системы и нейросети. В программе обучения — языки и технологии программирования, мобильные технологии, безопасность баз данных и веб-приложений, тестирование ПО, системное проектирование, интегрирование и эксплуатация программно-аппаратного обеспечения IТ, а также вычислительных систем.
В Брестской области ещё два вуза обучают смежным с программированием специальностям. Так, в БрГУ имени А. С. Пушкина на физико-математическом факультете можно освоить компьютерную физику и экономическую кибернетику. В БарГУ на инженерном факультете изучают также информационные системы и технологии.
Что должен знать новичок
Работа программиста — это безостановочная эволюция знаний. Теоретическая и практическая платформа формируется во время обучения, но на этом процесс становления не заканчивается — различные знания надо обновлять с углублением в узкие направления. Но значит ли это, что стартовать с минимальным набором знаний, умений навыков нельзя? Новичку для хорошего резюме достаточно:
- навыков написания программ на 2−3 популярных языках (оптимальными для начинающего специалиста считаются Python, JavaScript, HTML);
- знания и понимания алгоритмов, баз данных, паттернов программирования;
- изучения фреймворков (программная среда под разные операционные платформы — Windows, iOS).
Всем нужен английский язык и понимание принципов логики. Многое определяет выбранное направление работы
Веб-программисту важно умение писать программы и понимание архитектуры разных платформ. Системным программистам необходимо освоить API ОС
Необходимые знания для поступления
Что надо для получения высокого образования по программистскому профилю? Чтобы быть зачисленным в колледж или вуз «Синергия» окончания курсов или работы с репетиторами не потребуется. Нужны хорошие оценки по математике, физике, информатике. Очень ценно знание английского языка.
Получите восстребованную IT-профессию
Робототехника
Разработка, сопровождение и обеспечение безопасности информационных систем
Поступить
Адрес поступления:
Ленинградский пр-т, д. 80, корпуса Е, Ж, Г.
Станция метро «Сокол», выход в центре зала на ул. Балтийская, далее пешком или на троллейбусе (№ 6, 43) до остановки «Институт Гидропроект» (1 остановка), у троллейбусного депо повернуть направо.
Контакты приемной комиссии:Телефон: +7 (495) 800 10 01
Программирование — фундаментальный навык
Известный автор-фантаст ХХ века Артур Кларк сказал, что «любая достаточно развитая технология неотличима от магии». Программирование действительно можно сравнить с волшебством, но только пока не научишься творить его сам.
Цитата из книги А.Г. Гайштута «Калькулятор — твой помощник и соперник в играх», 1988 год.
Если говорить серьезно, то программирование — фундаментальный навык по той простой причине, что оно заставляет мыслить абстрактно. В его основе лежат принципы анализа и синтеза, или композиции и декомпозиции — это одно и то же по своей сути. В английском языке существует понятие “computational thinking”, которое можно определить как совокупность умений мыслить абстрактно, критически и разделять задачу на небольшие части. Именно этому может научить программирование, по мнению экспертов.
Но не только теория помогает в жизни и работе. Писать код для развития логического мышления — это здорово, но на этом польза не заканчивается.
Лучшие книги и средства обучения
- «Искусство программирования», Дональд Кнут
- «Жемчужины программирования», Джон Бентли
- «Путь программиста», Джон Сонмез
- «Чистый код. Создание, анализ и рефакторинг», Роберт К. Мартин
- «Алгоритмы. Построение и анализ», Томас Х. Кормен
- «Сам себе программист. Как научиться программировать и устроиться в Ebay?», Кори Альтхофф
- «Карьера программиста», Г. Лакман Макдауэлл
- «Идеальный программист. Как стать профессионалом разработки ПО», Роберт Мартин
- «Рефакторинг. Улучшение существующего кода», Мартин Фаулер и другие
- «Совершенный код», Стив Макконнелл
- «Кодеры за работой. Размышления о ремесле программиста», Питер Сейбел
- «Мифический человеко-месяц», Фредерик Брукс
- «Программист-прагматик. Путь от подмастерья к мастеру», Дейв Томас, Энди Хант
- Codecademy — универсальная интерактивная платформа для обучения языкам программирования. Лычки, ачивки, геймификация — сплошная мотивация.
- Udacity — англоязычный ресурс для обучения программированию.
- Codewars — огромный сборник тестовых задач для тренировки навыков по любому языку программирования.
- Coursera — без комментариев, просто лучшая лекционная «солянка».
- MIT OpenCourseware — море курсов от Массачусетского технологического института.
неплохой обзор курсовогромная и свежая подборка
Ярослав Никонов, аналитик департамента разработки программного обеспечения компании «Аэроклуб ИТ»:
Даже тем программистам, которые не принимают непосредственного участия в разработке программ для научных и математических нужд, знания по математике могут пригодиться как минимум для уменьшения объема хранимых данных или прогнозирования.
Я бы советовал в первую очередь обратить внимание на дискретную математику и математическую статистику. Например, при написании баз данных или построении поисковых систем не обойтись без знаний дискретной математики
Она же пригодится в логистике и построении маршрутов. Data mining в свою очередь требует владения математической статистикой, как и биржевой сектор, где большинство игроков — боты, при написании которых также требуются знания по матстатистике, как и при любом прогнозировании.
Разберу пример из моего недавнего проекта в компании «Аэроклуб». Задача состояла в построении дешёвых или быстрых маршрутов из города А в город Б, используя перелёты и ж/д поездки. С одной стороны, задача выглядит довольно простой, ведь мы можем построить ориентированный граф, где вершинами являются города, а ребра — перелётом или ж/д переездом, где вес ребра — это стоимость или время. Далее можно воспользоваться алгоритмом поиска кратчайшего пути, например, алгоритмом Дейкстры. Но есть несколько сложностей:
- Цены не статичны и могут отличаться в зависимости от дат.
- Хранить данные о ценах на каждую дату за год практически невозможно (за сутки осуществляется более миллиона перелетов).
- Получить данные о ценах по всем направлениям на заданную дату очень долгая процедура (измеряется в 10-ах минут, и пользователь обычно не готов столько ждать).
- Нужен не самый дешевый маршрут, а несколько дешевых маршрутов (т.к. пользователь хочет увидеть несколько вариантов и выбрать тот, которым ему будет комфортнее добираться).
Проблема, описанная в 3 пункте, не решается известными алгоритмами быстрого поиска кратчайшего пути, так как практически все они ищут один путь, а нам необходимы несколько. На помощь в таких случаях может прийти теория графов — один из разделов дискретной математики, и хорошее логическое мышление. Проблемы под пунктами 1, 2 и 3 можно решить математической статистикой.
Поскольку мы не можем хранить довольно большой объем данных, необходимо его сократить. Каким образом можно сократить данные? Скажем, хранить только одну стоимость за сутки из города А в город Б, но при этом эта цена должна быть правдоподобной по сравнению с ценами перелетов из других городов, т.е., если цены из А в Б дешевле цен из А1 в Б1, то и единственная цена должна быть дешевле.
Для решения этой проблемы можно прибегнуть к простому способу хранения минимальных или средних цен за сутки. Хотя и это далеко не всегда правильный выход, так как может быть ровно один перелёт стоимостью в 1000 рублей и 10 перелётов стоимостью в 5000 рублей, таким образом получаем минимальная цену — 1000 рублей, а среднюю — чуть менее 5000. Минимальная цена очевидно слишком сильно отличается от средней. А поскольку маршруты строятся не на реальных ценах в данный момент, то мест на дешевый тариф может не остаться, и маршрут не окажется дешевым, как планировалось изначально.
Правильный выход при подсчете цены за сутки из пункта А в пункт Б должен быть относительным, и строиться относительно цен из других пунктов. Для таких оценок помогает математическая статистика. Построив относительные цены по разным направлениям за сутки, мы решаем проблемы пунктов 1, 2 и 3 и расставляем ровно один вес на каждое ребро, соединяющее вершины графа (города). А используя дискретную математику (теорию графов) можем построить эффективный алгоритм поиска нескольких дешевых (быстрых) маршрутов из пункта А в пункт Б.
Front-end веб-разработчик
Если мы заходим на сайт и там есть кнопочки, которые меняют местоположение и цвет при наведении на них мышкой, то это дело рук front-end разработчика. Он пишет весь код на JavaScript, который выполняется без перезагрузки страницы на стороне клиента.
Где работает?
В серьезных фирмах, занятых созданием сайтов и веб-приложений. Разделение фронтенда и бекенда один из признаков наличия в компании определенного уровня культуры разработки.
Что делает?
Разрабатывает динамику пользовательского интерфейса. Если в компании нет верстальщика, то еще и переводит PSD-шаблоны в HTML-код.
Технологии
- HTML и UI фреймворки (Bootstrap, Foundation, Pure);
- CSS и препроцессоры (SASS/LESS);
- JavaScript + фреймворки/библиотеки на этом языке (Jquery, ReactJS, AngularJS, BackboneJS);
- Утилиты для сборки проектов (Grunt, Gulp, Bower).
Оплата труда
Ступеньки карьеры и перспективы
Успешный начинающий программист в будущем может претендовать на должности: руководитель группы программистов, менеджер проекта, IT-директор.
Интересные факты
13 сентября, в 256-й день года, программисты неофициально отмечают свой профессиональный праздник. Число 256 выбрано людьми, вдыхающими в компьютерное железо «душу», потому что это количество целых чисел, которое можно выразить с помощью одного восьмиразрядного байта, а также это максимальная степень числа 2, которая меньше 365 – количества дней в году.
В календаре профессиональных российских праздников День программиста появился в 2009 г. В июле этого года Министерство связи и массовых коммуникаций России подготовило и внесло в правительство проект указа президента РФ «О Дне программиста». Специалисты министерства решили от традиции не отступать и определить День программиста на 256-й день года – 13 сентября, а если год високосный, на 12 сентября.
Программисты шутят
Житейские мудрости из жизни web-программистов:
- Если новая программа с первого раза компилируется без ошибок, значит, она написана принципиально неправильно.
- Если к вам перестали поступать жалобы на вашу программу, значит, ею уже никто не пользуется.
- Чем универсальнее написана программа, тем меньше найдется мест, где можно было бы ее применить.
- Чем точнее программист выполняет требования заказчика, тем бестолковее получается программа.
- Чем больше заказчик понимает в программировании, тем больше он мешает работе.
- Ошибки легче всего делаются и труднее всего обнаруживаются в самых простых местах программы.
- Нет более живучих программ, чем заплатки, сделанные на скорую руку.
- Чем чаще программист жалуется на чужой soft, тем хуже он делает свой.
И напоследок: программист ставит себе на тумбочку перед сном два стакана: один с водой – на случай, если захочет ночью пить, а второй пустой – на случай, если не захочет.
Что такое 1С и где используются ее программы
Все, кто интересовался работой бизнеса, точно слышали про 1С. Это целый комплекс программ для управления предприятием. Они автоматизируют вообще всё: от бухгалтерии в микроскопической компании до системы управления поставками в холдингах горнодобывающей отрасли.
Программы 1С популярны в России и ближайшем зарубежье. По данным официального сайта 1С, ими пользуются полтора миллиона организаций, от микрокомпаний и ИП до огромных корпораций.
Причина в том, что программы 1С строго соответствуют законам России и стран СНГ: Налоговому кодексу, федеральным законам, постановлениям Правительства, приказам Минфина. Все изменения оперативно отражаются в программах. Разработка комплекса идет с 1991 года — за это время решения «обкатали» в сотнях тысяч самых разных компаний.
Обычно программы 1С поставляются как коробочное решение для конкретных задач. Например, «1С:Корпорация» — комплекс программ для управления холдингами, группами компаний и крупными предприятиями, а «1С:Управление нашей фирмой» — для магазинов, индивидуальных предпринимателей и небольших фирм.