Кубок России по Кодексу 2013 (RCC) .
Это уже будет третий финал олимпиады, организованной Mail.Ru Group , призванный не только поддержать престиж российских программистов в мире, но и популяризировать программирование как таковое.
Накануне третьего финала мы решили взять интервью у спикеров RCC 2013 — Дмитрия Склярова, Эдварда Йордона и Кена Голдберга.
Но сначала давайте вспомним основателей языков программирования, которые делают современное программное обеспечение таким, каким мы его знаем.
Кен Томпсон и Деннис Ритчи, разработчики языка C и ОС Unix
Деннис РичиКен Томпсон
Брайан Керниган
Керниган был соавтором культовой книги Ричи «Язык программирования C».
Тим Бернерс-Ли, один из разработчиков HTML
Этот человек в 1989 году отправил своему руководителю предложение создать систему управления информацией.
Он назвал это Всемирной паутиной.
Для своей системы Бернерс-Ли и несколько его помощников создали первую версию языка разметки гипертекста HTML и разработали протокол HTTP. Бернерсу-Ли приписывают создание первого в мире веб-сайта, веб-сервера и гипертекстового веб-браузера.
Позже Бернерс-Ли основал и возглавил организацию, ответственную за разработку всех стандартов построения Всемирной паутины, — Консорциум Всемирной паутины, W3C. Фактически, благодаря этому человеку безликая текстовая сеть превратилась из инструмента для техно-гиков в Интернет «с человеческим лицом».
Расмус Лердорф, разработчик языка PHP
Возрастающая сложность и огромный рост объема информации, размещаемой в Интернете, привели к необходимости разработки динамически генерируемых страниц.
Это стало возможным благодаря языку PHP, который сегодня является одним из самых популярных языков веб-программирования.
PHP был разработан датчанином Расмусом Лердорфом в 1995 году.
Все началось со сценария, предназначенного для обработки HTML-страниц.
Ярый сторонник открытого исходного кода, Лердорф с самого начала активно прислушивался к отзывам пользователей, постоянно совершенствуя свой скрипт, расширяя и совершенствуя его возможности, что в конечном итоге привело к созданию отдельного языка программирования.
Джеймс Гослинг, разработчик языка Java
Названный в честь одноименного сорта кофе, объектно-ориентированный язык Java был первоначально разработан Гослингом, работавшим тогда в SUN, для использования в бытовой технике.
Однако затем его начали использовать для создания клиентских приложений.
Особенность языка состоит в том, что написанные на нем приложения могут выполняться на любой компьютерной платформе, на которой установлена программа-интерпретатор.
Этот язык сегодня используется для написания программ для ОС Android. Технологии на основе Java использовались для создания миллионов веб-сайтов, наиболее известными из которых являются eBay, Amazon и Yahoo. Гослинг проработал в SUN 26 лет, прежде чем после недолгого пребывания в Google перешел к разработке программного обеспечения для подводных роботов.
Томас Курц и Джон Кемени, разработчики языка Basic
Эти двое были талантливыми математиками.Еще будучи студентом, Джон Кемени внес свой вклад в создание атомного оружия в США, работая в Манхэттенском проекте.
Там он работал с такими малоизвестными личностями, как фон Нейман и Эйнштейн.
В конце 1950-х годов Кемени и Курц устроились преподавателями математического факультета Дартмутского колледжа.
Для своих математических нужд им нужно было использовать ЭVM. Однако из-за примитивности и крайней неэффективности вычислительных систем того времени на компиляцию программ, поиск ошибок и получение результатов тратилось много времени.
Будучи преподавателями, Кемени и Курц вынашивали идею преподавать программирование всем ученикам.
Но в то время это было сродни лозунгу «Каждая домохозяйка — за штурвалом Боинга!»: научиться программировать было сложно и долго, и немногие могли это сделать.
Существующие инструменты и языки программирования были совершенно непригодны для массового обучения.
И, после нескольких лет работы над своим проектом, в 1964 году Кемени и Курц создали первую версию языка Basic. В то время многие идеи и возможности, содержащиеся в нем, стали новаторскими.
Позже, в 70-80-х годах, бейсик приобрел широкую популярность; было создано множество его разновидностей, которые использовались в качестве основного или единственного языка во всевозможных компьютерных системах.
Сегодня этот язык развился в Microsoft Visual Basic, который по структуре уже очень далек от своего предка.
ЭДвард Йордон, Кен Голдберг и Дмитрий Скляров – о мотивации, концентрации и саморазвитии
23 сентября в Москве пройдут финальные соревнования олимпиады по спортивному программированию Russian Code Cup. Завершить этот пост хотелось бы мини-интервью ИТ-гуру, выступающего на РСС, которое они дали специально для Хабра.
Давайте представим наших гостей:
• ЭДвард Йордон (Эдвард Йордон), пионер в разработке методологии программирования и автор метода Йордона, член Зала компьютерной славы и автор бестселлеров по практике программирования, в том числе культового «Путь камикадзе».
• Кен Голдберг (Кен Голдберг), изобретатель первого в мире веб-робота, профессор Школы компьютерных наук Калифорнийского университета в Беркли.
• Дмитрий Скляров , разработчик алгоритма программы Advanced eBook Processor
Вопрос: Как, по вашему мнению, будут развиваться языки программирования?
Скляров: Около года назад я прочитал книгу «Пионеры программирования».Сколько людей - столько и мнений.
И у каждого есть свои причины наделять язык теми или иными особенностями.
Новые гении (или наоборот – сумасшедшие?) придумают новые языки.
Большая часть из них канет в Лету, но некоторые найдут своих ценителей.
И этот процесс непредсказуем.
И кажется, что никому пока не удалось целенаправленно создать «лучший» язык… Иордания: Не думаю, что кого-то удивлю мыслью о том, что языки программирования продолжат «специализироваться» на разных технологиях.
И если некоторые из популярных сейчас языков (например, C++, Java), вероятно, не будут заменены другими, то в будущем мы увидим гораздо более мощные среды визуальной разработки, которые значительно помогут программистам в разработке, создании и тестировании.
программы.
Есть еще один важный момент, который необходимо помнить: новые языки – это развитие существующих языков, старые языки преобразятся и обретут новую жизнь.
Например, в прошлом году самым популярным языком разработки бизнес-приложений был COBOL. Гольдберг: Языки программирования, такие как Python, Scala и Spark, в основном используются для взаимодействия с облаками/Интернетом, включая SaaS (программное обеспечение как услуга) и облачные кластерные вычисления по требованию (например, Elastic Cloud от Amazon).
Эти языки также часто используются в приложениях нового поколения, которые динамически распределяют вычисления между локальными и сетевыми устройствами в зависимости от времени и пропускной способности.
В сфере робототехники трендом является открытый исходный код, например, операционная система робота (ROS).
Вопрос: Какие личности вдохновляют вас на великие дела?
Скляров: Действительно ли вам нужно вдохновение для героических поступков? Гораздо удобнее, как «тот самый Мюнхгаузен», по графику: «с восьми до десяти – ПОВИДОВАНИЕ».Иордания: Техническое совершенство, глубокое понимание языков программирования и разработки приложений, аппаратного обеспечения и веб-/мобильных технологий являются ключевыми факторами и останутся таковыми в будущем.
Но, как показали нам на своих примерах Билл Гейтс и Стив Джобс, все это должно сочетаться со страстью, амбициями, «видением» продукта и отличными деловыми навыками.
Только тогда вы сможете добиться успеха.
А если это не сочетается в одном человеке, то еще крайне важно оказаться «в нужном месте в нужное время».
К сожалению, путь к успеху выложен неудачами тех, кто имел отличные идеи, но вывел их на рынок слишком рано или после того, как посредственная технология уже утвердилась, а клиенты просто не желали покупать или не понимали преимуществ новой технологии.
предложение.
Гольдберг: Человек, который меня всегда вдохновлял, — это Андрей Андреевич Марков (1856–1922), математик, заложивший основы цепей Маркова и процессов Маркова, на которых основаны многие алгоритмы в современных научных вычислениях, робототехнике и машинном обучении.
Вопрос: Что, по вашему мнению, более эффективно для развития навыков программиста – личное самосовершенствование или работа в команде?
Скляров: Вряд ли работа в команде способна волшебным образом превратить «просто программиста» в «очень хорошего программиста».Программист должен учиться и практиковаться, и только тогда он будет расти.
Но хорошая команда – отличный катализатор профессионального роста.
В команде легче развиваться.
Иордания: По моему опыту, работа в команде более эффективна для улучшения навыков программирования.
Для этого нужны сторонние проверки, парное программирование и наставники, которые будут читать и комментировать каждую строчку кода, написанную молодыми программистами.
А молодым программистам приходится построчно изучать код, написанный опытными коллегами.
Гольдберг: Оба пути необходимы, но иногда они могут быть несовместимы: человек с высокой самомотивацией может легко стать нетерпимым к другим членам команды и стать менее вовлеченным или продуктивным.
Лучший способ — развивать и поддерживать самомотивацию, а также учиться руководить и мотивировать других (и быть терпимым, когда они вас разочаровывают).
Я также рекомендую развивать свои коммуникативные навыки, научиться эффективно писать документацию и рассказывать о том, над чем вы работаете, более широкой аудитории.
Например, через Интернет: goldberg.berkeley.edu .
Вопрос: Какие лайфхаки и умения помогают вам сконцентрировать внимание на поставленной задаче?
Скляров: Задача должна быть интересной.Если нет, вам нужно взяться за другое задание.
Иордания: Это сугубо индивидуально, но я всегда считал, что полноценный ночной сон и полный желудок необходимы для концентрации на текущих умственных задачах.
Нелегко сконцентрироваться, если ты не спал 26 часов подряд и не ел последние 12 часов.
Гольдберг: Кофе.
Почти каждое утро в 6 часов я выпиваю две чашки очень крепкого кофе.
Это дает мне два часа продуктивности, прежде чем проснутся жена и дочери.
Я также рекомендую всегда выделять один день в неделю, чтобы отдохнуть от работы и экрана.
Вопрос: Вы участвовали в «программистских играх»?
Скляров: Лет 25 назад я был в восторге от описания правил Core War (Combat_in_memory), но так играть мне еще не доводилось.Играл в Колобота.
Я рад участвовать в CTF. Иордания: Я не участвовал в таких играх в качестве «конкурента», но был координатором на нескольких из них в США и Австралии.
Гольдберг: Нет, и я не был бы достойным противником!
Вопрос: На каких самых экзотических языках программирования вам приходилось писать?
Скляров: Пару раз во время CTF я имел дело с вариациями BrainFuck, хотя это уже почти не экзотика.Недавно мне пришлось написать пару десятков строк на VBA (Visual Basic для приложений).
Поистине экзотический язык! Иордания: Я не помню, чтобы мне когда-либо приходилось программировать на нетрадиционных языках в реальных проектах.
Я уверен, что такие языки важны и полезны, но в своей карьере я программировал только на «традиционных» языках.
Гольдберг: Я изучал программирование на ассемблере, Фортране, C и APL. В аспирантуре я писал диссертацию (геометрические и стохастические алгоритмы в робототехнике) на Лиспе.
Также сделал несколько проектов на Форте.
Сегодня моя дочь изучает программирование с использованием визуального языка Scratch от MIT. Кстати, рекомендую прочитать статью Фабио Чеваско «10 языков программирования, на которые стоит обратить внимание».
P.S. Кстати, одно из самых ярких выступлений на Кубок России по Кодексу 2013 будет шоу цифровых иллюзионистов Симон Пьеро И Марко Темпеста .
Регистр! Марко Темпест на конференции TED: УПД Спасибо Айджек за обнаружение ошибки! Теги: #программирование #спортивное программирование #rcc #rcc #rcc #RCC2013 #Скляров #Джордан #Гольдберг
-
Оптимизация Пути Зарубежного Патентования
19 Oct, 24 -
Интересные Патенты Apple
19 Oct, 24 -
Лицензионный Софт, Будущее России?
19 Oct, 24 -
Samsung Q1 Против Q1P: Тест Автономности
19 Oct, 24