Среди
языков (как знаковых систем) выделяют:
Языки программирования
- искусственные формальные языки для создания компьютерных программ. |
Что?
Какие? Сколько?
Язык
программирования
(programming
language)
- формальная
знаковая система (модель) для описания алгоритмов в форме, понятной исполнителю (компьютеру).
Язык
программирования
позволяет определить, на какие события и как будет реагировать
компьютер при различных обстоятельствах, как будут храниться и
передаваться данные.
Язык программирования определяется
алфавитом и набором
правил (лексических, синтаксических и семантических), используемых при
моделировании компьютерной программы.
По разным
основаниям выделяют языки:
-
низкого уровня (ассемблеры и
машинно-зависимые языки) и высокого уровня
(близки к естественным языкам);
-
декларативные, процедурные,
объектно-ориентированные,
проблемно-ориентированные, функциональные,
динамические;
-
последовательные (sequential) и параллельные (concurrent);
-
общего
назначения и специализированные....
|
Почему языков столько
много?
Большое количество языков объясняется различными причинами:
-
изолированностью разработчиков (которые могут независимо друг от
друга создавать очень близкие языковые решения)
-
экономическими причинами (выгодно и престижно быть автором
популярной языковой платформы)
-
правовыми
причинами (авторское право, право собственности, проприетарность
и проч.)
-
разнообразием решаемых в программировании задач, для которых
эффективны различные языковые решения
-
развитием
языков (бывает эффективней создать новых язык, чем обновлять
версии старого, обеспечивая преемственность инструментария)
-
исследованиями (большинство языков создается для научных и
инженерных целей изучения самих языковых систем, их
инструментария, возможностей и ограничений, проверки гипотез и
теорий)
-
творчеством
(значительная часть языков создается в контексте самореализации
разработчиков, саморазвития и самоутверждения, в том числе как
произведения искусства и в качестве развлечения)
|
Тьюринг-полнота языков
программирования
Полнота по Тьюрингу
(в теории вычислимости) — реализуемость любой вычислимой функции.
Тьюринг-полные языки (обладающие
полнотой по Тьюрингу) принципиально взаимозаменяемы! |
Большинство используемых языков программирования
(метамоделей программирования) — тьюринг-полные.
Полными по Тьюрингу являются неограниченные
грамматики.
Для
реализации разной функциональности эффективно использовать различные
метамодели (языки программирования).
Создание
языков программирования (метамоделирование вычислительной среды) -
увлекательное творчество (языковое, интеллектуальное, эстетическое) |
Неполные по Тьюрингу формализмы:
-
конечные автоматы,
-
примитивно рекурсивные функции,
-
контекстно-свободные грамматики,
-
регулярные грамматики,
-
Script в Биткоин (что
чрезвычайно затрудняет создание Smart contract)!
|
Низкоуровневые языки
Низкоуровневый язык — это когда требуется внимание к вещам,
которые никак не связаны с программами на этом язык (Alan J. Perlis)
Язык
машинных команд
представляет собой набор
двоичных чисел,
кодирующих команды для центрального процессора.
Работа
с машинными командами была средством общения с
компьютером десятки лет
назад. Оператор набирал коды машинных команд переключателями на
панели вычислительной машины или задавал эти команды с помощью
отверстий на перфокартах и перфолентах.
Мнемоническая запись команд и операндов (на
ассемблере):
......................
LD R5, PRICE LD
R6, TAX ...................... |
Язык
ассемблера
- это символьная
форма записи машинного языка, использование которой существенно
упрощает написание машинных программ. Для одной и той же ЭВМ могут
быть разработаны разные языки ассемблера. Язык
ассемблера тесно связан с системой команд компьютера. |
Компиляторы
В 1951 году Грейс
Хоппер для автоматизации преобразования команд высокого
уровня в машинные создала
первый
компилятор
(compiler - компоновщик) А-0.
Он
преобразовывал всю программу, записанную на языке высокого уровня,
в машинный код. Преобразованная программа могла либо
выполняться сразу, либо сохраняться для последующего
использования.
Интерпретаторы
- это трансляторы
языков программирования, которые не производят исполняемого
машинного кода. Они берут исходный текст программы на каком-либо языке
программирования и выполняют его сами строка за строкой. Интерпретатор,
определяет команду и переводит (интерпретирует) ее так, чтобы операционная
система поняла, что от нее хотят.
Cкорость
выполнения программ в режиме интерпретации ниже чем у
компилированного кода (работа программы идет не напрямую с центральным
процессором на языке машинных команд, а через программу-посредника,
которая и тратит большое количество времени на распознавание исходного
текста). |
Языки
программирования высокого уровня
ALGOL
(Algorithmic
Language) примитивный процедурный язык высокого уровня, разработан с
1957 по 1960 гг. В 1960 - 70-х годах был
общепрзнанным языком научных публикаций.
Оказал большое влияние на развитие процедурных
языков (блочная структура, рекурсия).
FORTRAN (FORmula
TRANslator)
процедурный язык для численных методов. Разработан в 1957 гг.
Джоном Бэкусом
(John Bekus) и стал
одним из первых языков программирования высокого уровня.
Это был язык, операторы и функции которого максимально
приближены к речевым конструкциям и алгебраическим
выражениям.
Fortran стал фундаментом для современных
объектно-ориентированных языков программирования.
В научных подсчётах Fortran остаётся основным языком. |
Dennis Ritchie |
C (произносится
си)
процедурный, разработанный
Деннисом Ритчи с
1969 по 1973 гг. Широко используется для разработки системных
программ: ОС, компиляторов, ПО для встраиваемых систем.
C++
(произносится
си
плюс плюс)
разработан
Бьёрном
Страуструпом
в 1983 г. Объединяет возможности языка Си
с объектно-ориентированным программированием. Широко
распространён, используется в системном и прикладном
программировании.
|
Bjarne Stroustrup
|
C#
(произносится
си-шарп,
си-диез)
объектно-ориентированный, созданный в
1999–2000 годах в корпорации Microsoft в рамках технологии
.NET.
C#
содержит элементы Си, С++, Java и Pascal. C# схож с Java (задумывался альтернативой последнему)
и ориентирован на разработку
многокомпонентных Интернет-приложений.
Никлаус
Вирт (Niklaus
Wirth) - знаменитый профессор
Высшей Политехнической школы ETH из Цюриха,
где создал свою школу
программирования,
автор языков:
Никлаус
Вирт:
Язык, это то, на
чем мы говорим. А на языке программирования мы говорить
не можем. Я бы предпочел вместо термина "язык"
использовать термин "формальная нотация". Каждая
программа является математическим объектом и здесь нет
места многозначности, которая является атрибутом
естественного языка. |
Pascal ABC
— свободно распространяющаяся система для
обучения школьников программированию
(2002-2007)Разработка Южного
федерального университета
(Ростов-на-Дону, Россия).
С 2007 года PascalABC.NET (PascalABC.NET
3.0 (сборка 1150 от 22.01.2016)
В 2009 году появилась WDE (web development environment) -
браузерная среда онлайн-разработки на PascalABC.NET. |
|
Python
—
мультипарадигменный язык (поддерживает несколько
парадигм программирования: структурное,
объектно-ориентированное, функциональное и
аспектно-ориентированное) с динамической типизацией,
автоматическим управлением памятью и высокоуровневыми
структурами данных (хеш-таблицы, списки, кортежи). Создан в
конце 1980-х годов голландским программистом
Гвидо
Ван
Россумом.
Применяееся в качестве языка сценариев при написании
Интернет-приложений для системного администрирования,
доставки веб-контента и т. п. Активно развивающийся язык
программирования.
Джейсон Бриггс
Python для детей. Самоучитель по программированию
(pdf) |
Java
-
интерпретируемый объектно-ориентированный язык программирования.
Разработан в 1990-1995гг.
группой
Джеймсона Гослинга.
Java предназначен для создания небольших платформно-независимых
Интернет-приложений, которые можно распространять на клиентские
машины с Web-сервера, а также включать в Web-страницы для их
анимации. Java-программы транслируются в байт-код и исполняются
виртуальной Java-машиной непосредственно под ОС. Поэтому, когда
рассматривают весь комплекс ПО, связанного с Java, говорят о
технологии Java. Технология Java включает в себя клиентскую и
серверную части, а также доступ к БД. Она состоит из различных
платформ, предназначенных для широких областей применения.
|
|
JavaScript
- разработан
в 1995
Бренданом
Айком (Brendan
Eich). Java и JavaScript - совершенно разные языки, хотя и с
похожим синтаксисом. Позволяет разрабатывать несложные приложения
для Web, которые могут включаться в HTML-документы. Чтобы они были
исполнены, JavaScript должен поддерживаться браузером. Языки
создания сценариев позволяют улучшить внешний вид Web-страниц и
устанавливать связь с пользователем.
Ник Морган
JavaScript для
детей. Самоучитель по программированию (pdf) |
здесь
здесь
здесь |
|
Рейтинги популярности языков
программирования
Языки
программирования как хобби
Эзотерические языки
Эзотерика
(от др.-греч. внутренний) — недоступное непосвящённым,
несведущим, лишенным особых способов восприятия
реальности, имеющее тайное содержание и выражение.
Эзотерика противопоставляется
экзотерике (как бинарная оппозиция).
Ср. сакральное и профанное.
Esolang
- (esoteric language, эзотерический язык) — язык
программирования, созданный
не для разработки программ
Linus
Torvalds: Большинство хороших программистов
делают свою работу не потому, что ожидают оплаты или признания,
а потому что получают удовольствие от программирования |
Эзотерические языки
создаются с разными целями, однако «разработка удобного инструмента для
решения рабочих задач программиста» в их перечень
не входит. Авторы многих эзотерических языков
стремятся заложить в их синтаксис и структуру как можно
больше отличий (от всего, что было создано в этой сфере
ранее).
Федерико Томассетти (Federico
Tomassetti, архитектора
программного обеспечения):
Среди эзотерических языков особый
интерес имеют тьюринг-полные языки (с помощью
которых можно реализовать
любую вычислимую функцию).
Тьюринг-полный язык INTERCAL
разработан с целью добиться полноты по Тьюрингу
при максимальной непохожести на существующие языки
программирования.
Онлан
генератор и интерпретатор языка
здесь
INTERCAL
(для использования требует регистрации)
Среди эзотерических языков (в силу их
особенностей) большинство неполные
по Тьюрингу языки.
Шуточный
язык
HQ9+
имеет всего 4 команды (из них и составлено
название языка), что позволяет без труда
решить на нем все «стандартные» задачи
обучающегося на
программиста: от «Hello, world!» (команда H) до вывода
квайна (команда Q).
См:
https://almnet.de/esolang/hq9plus.php
Среди эзотерических языков довольно часто
встречаются
тьюринговские
трясины — тьюринг-полные языки с бедными синтаксисом и
семантикой. В теории они имеют те же возможности, что и любые
тьюринг-полные языки, однако в связи с ограничениями реализовать некоторые
виды программ с их помощью крайне сложно.
Brainfuck (вынос
мозга - идиоматическое выражение!)
—
язык программирования Урбана Мюллера, созданный
с одной целью: написать для него интерпретатор
(их уже, наверное, сотни!)
Митчелл
Джонсон
(Mitchell Johnson, разработчик):
-
Почему появляются
эзотерические языки программирования? Потому что…почему бы и нет.
-
Эзотерический язык — это возможность расширить наше понимание свойств и потенциальных
возможностей человеко-машинной коммуникации.
Странный синтаксис,
«безумная» логика просто дают удивительные
примеры того, как
может строиться работа с машиной.
-
Программирование на
эзотерических языках —
словно попадание в другие измерения.
Список на вики-портале Esolang (из
более 1200 эзотерических языков!) регулярно пополняется.
К прочтению:
|
Языковая основа для ключевых слов
Языки программирования
- формальные знаковые системы, основанные на
математических нотациях.
В основе всех языков программирования лежат
логико-математические языки и системы
письма! |
Языки программирования используют ключевые слова из
национальных языков.
Использование того или иного национального языка в
качестве основы для ключевых слов языка
программирования не имеет существенного значения для
характеристик языка программирования.
Большинство языков программирования используют (в рамках
культурно-исторической традиции и размещения основных
центров разработки) ключевые слова основанные на
английском языке.
Большая доля языков программирования появилась в
англоговорящих странах.
Часто языки, разработанные не в англоговорящей
стране, используют английский для международной
аудитории.
Существует множество языков программирования с ключевыми
словами на разных национальных языках.
Они созданы по разным причинам (политическим,
культурно-историческим, художественным, образовательным,
развлекательным и др.)
Существуют языки программирвоаияс ключевыми словами на
искусственных языках и даже не использующие слов как
таковых
К прочтению:
|
BASIC + Visual
Basic + VBA
BASIC
(от Beginner's All—purpose
Symbolic Instruction Code, многоцелевой язык символических команд для
начинающих).
В середине
ХХ века для первых языков высокого уровня (Fortran, Algol, Cobol и др.) была
характерна предметная ориентация и высокая сложность
освоения для начинающих разработчиков.
В 1925 году
британским лингвистом Чарльзом Огденом создан
Basic
English — базовый английский; международный
искусственный язык на основе английского языка с
сокращённым словарем (850 слов) и упрощенной
грамматикой.
|
-
В 1964 году
сотрудники математического факультета Дартмутского колледжа
Томас Курц и
Джон Камени создали
«упрощенный» язык программирования
BASIC, чтобы облегчить
взаимодействие с компьютером непрофессиональным
пользователям.
BASIC состоял из
простых слов английского языка. Компилятор
BASIC был написан для мейнфрейма GE-265.
-
В 70-х появились
персональные компьютеры (ПК).
Билл Гейтс и Пол Аллен,
основатели Microsoft, создали новую версию
BASIC для
персональных компьютеров «Альтаир». Период расцвета
BASIC конец 1970-х — первая половина 1980-х годов.
Эдсгер Ви́бе Дейкстра
(Edsger Wybe Dijkstra):
|
-
В начале 90-х
появилась Microsoft
Windows с графическим интерфейсом. Чтобы создать простую программу, разработчикам приходилось
писать по несколько страниц кода для меню и окон, шрифтов,
кнопок и т.д.
Microsoft выпустила
в 1991 году
Visual
Basic и среду разработки
IDE Microsoft
Visual Basic.
Меню, окна, списки, кнопки, поля ввода текста и
др. элементы интерфейса Windows добавлялись в программу с
помощью простейших операций drag&drop, а большая часть кода
для них генерировалась
автоматически. Свою первую программу VB-программисты могли создать уже
через час после начала изучения этого языка.
-
В 1994 году компания выпустила
Visual Basic for
Applications
(VBA) в составе Microsoft Office.
VBA стал одним из основных
стандартов программирования для Windows.
Разработка приложения в
VBA состоит из
создания взаимодействующих между собой форм
(перетаскивая элементы управления (кнопки и списки), с
панели инструментов в формы) и написания обработчиков
событий для каждого элемента управления формы.
-
С 2005 года Visual Basic входит в состав
IDE Microsoft
Visual Studio.
Сегодня
Visual Basic
- мощный
объектно-ориентированный язык программирования высокого
уровня, от изначальной простоты которого мало что осталось.
VBA
- самый популярный язык
автоматизации Microsoft Office:
-
Отличная поддержка объектной
модели
Microsoft
Office.
-
Поддержка разных форматов
Microsoft
Office.
-
Легкая установка и дистрибуция
(к уже установленному офису не надо ничего устанавливать +
легко сделать надстройку, для "установки" модели макроса в
фон
Microsoft
Office.
-
Интерактивность внутри
приложений
Microsoft
Office.
-
Запись макросов
в Microsoft
Office.
09.06.2019
The Rise and Fall of Visual Basic + Responses (перевод
+ комментарии)
|
Выбор языка
для изучения
Важно учитывать:
-
Даже непопулярный по
общим цифрам язык может быть крайне важен для какой-либо
узкой сферы. Simulink и LabVIEW, вообще не попавшие в Top 50
незаменимы в своих областях.
-
Наиболее популярные
языки на сегодняшний день не являются объективно самыми
лучшими.
«Похоже, чем хуже язык, тем
он популярнее»?
-
Популярность любого
языка во многом обусловлена внешними факторами.
Так,
Objective-C - древнее решение (1983 год), в 2007 году
был на 46-м
месте, затем использован работниками из Apple, изучавшими его
в детстве, и теперь в списке самых популярных
языков в мире.
-
Исследования наглядно
доказывают, что
продуктивность разработки практически полностью
обеспечивается программистом, а не языком
(речь, конечно, о языках примерно одного уровня, способных
конкурировать между собой).
|
Ада Лавлейс
Язык
Ада
- назван в память об
Аде Лавлейс
- дочери
великого английского поэта лорда
Байрона, первой программистки в истории.
Графиня Ада Лавлейс,
изучала астрономию, латынь, музыку и математику.
Совместно с
математиком Чарльзом Бэббиджем она работала над созданием
арифметических программ для его счетных машин.
Ее работы в этой области были
опубликованы в 1843 году. |
Русский ДРАКОН
В 1976 году в
СССР началась разработка
многоразового транспортного космического корабля Буран в рамках
проекта "Буран-Энергия". В проекте принимали участие 1286
предприятий СССР и около 2,5 миллиона человек.
Свой первый и
единственный космический полёт "Буран" совершил 15 ноября 1988
года.
При разработке
Бурана проблема разработки и отработки программного обеспечения
считалась одной из наиболее сложных.
Для ее решения был
создан язык программирования
ДРАКОН
и на его построена автоматизированная
технология проектирования алгоритмов и программ
(CASE-технология) "ГРАФИТ-ФЛОКС".
Пуск
ракетного комплекса "Морской старт" (28.03.1999) cо
стартовой платформы "Одиссей" в Тихом океане в районе островов
Кирибати был
боевым крещением языка
ДРАКОН и
"Графит-Флокс" и убедительно продемонстрировал их
эффективность и надежность.
Язык
ДРАКОН успешно используется
в других космических программах: разгонный
блок космических аппаратов "Фрегат"; ракета-носитель "Протон-М"; модули космических аппаратов проекта
"Старт в пустыне" и др.
|
Проблемы развития Python
Гвидо Ван Россум
(автор языка программирования Python), предложил заморозить его
грамматику и семантику на несколько лет.
Гвидо ван Россум:
Частые изменения в языке вызывают много головной боли у разработчиков
альтернативных реализаций языка Python: Jython, IronPython, PyPy и т.д. без
каких-либо преимуществ для конечного пользователя.
Основная цель коммьюнити разработчиков языка на данный момент
-
дальнейшее продвижение
Python3000.
Мораторий должен распространяться только на
сам язык и встроенные функции, а непрерывное развитие стандартной библиотеки очень важно. |
Scratch
Скретч - среда
программирования, которая позволяет детям создавать анимированные и
интерактивные истории, игры и другие произведения. Этими произведениями можно
обмениваться внутри международной среды, которая постепенно формируется в сети
Интернет.
Скретч базируется на традициях языка Лого и
написан на языке Сквик в
2009 - 2010 гг.
Свободный проект
Scratch разрабатывается группой ученых из MIT
во главе с
Митчем Резником и
Аланом Кеем
(Lifelong Kindergarten Group).
Основная задача проекта — стать частью образовательной программы детей и подростков
6 – 16 лет, развить у них творческие способности, логическое мышление и свободу в использовании информационных технологий. Все это предлагается развить с помощью вовлечения учащихся в процесс создания интерактивных презентаций, мультиков, игр.
Сайт
Scratch:
http://scratch.mit.edu/
Русскоязычное сообщество
Scratch:
https://scratch.mit.edu/studios/488294/
Конкурс ПВТ:
http://park.by/post-1405/ (2017) |
Тенденции развития языков программирования
Concurrency Revolution
(параллельная революция).
Использование многоядерных процессоров вызывает необходимость
соответствующих перемен в области языков программирования, которые
сравнимы со временем перехода к структурному и
объектно-ориентированному программированию. Необходим более высокий
уровень абстракции и системности. Параллельность не оставит места
языкам, которые не смогут ее поддерживать.
Ct
(си-ти)
-
новый
язык
программирования для создания
параллельных высокопроизводительных программ,
использующих все возможности
многоядерных процессоров Intel.
Ct
- представлен
на Форуме Intel
для разработчиков (2-3
апреля, Шанхай)
|
Динамические языки
(истоки APL и Lisp 50-е г., JavaScript, Perl от Ларри Уолла, PHP
от Расмуса Лердорфа, Python Вана Россума, Ruby от Юкихиро Матсумото).
В отличие от статических (C++, Java),
динамические языки позволяют
создавать программы, способные менять свой код и логические
структуры во время исполнения, добавляя при этом новые типы, имена
модулей, классы и функции. Они интерпретируемые и проверяют типы во
время исполнения. На них основаны технологии AJAX (Asynchronous
JavaScript and XML), LAMP (Linux; Apache; MySQL, PHP или Python)
и Ruby on Rails.
|
Человек, заработавший на
программировании $50 000 000 000
Уильям
Гейтс (1980):
Я не знаю никого, кто разбогател бы на
написании программ.
Уильям
Гейтс (2006):
Мне бы не хотелось быть им
[самым богатым человеком мира].
Но ничего хорошего из этого не выходит.
Уильям
Гейтс (2007):
Многие считают, что создание компьютерных программ - это
отшельнический вид деятельности, когда вы целый день сидите,
закрывшись в офисе, и пишете код.
Это совершенно неверно. Умение общаться и эффективно
работать с разными людьми также очень важно.
Программирование требует умения сотрудничать и делиться
идеями с другими людьми, разговаривать с клиентами,
учитывать их замечания и понимать их нужды.
|
|
27
июня 2008 года Уильям
Гейтс
предпочел работе в Microsoft управление
благотворительным Фондом Билла и Мелинды Гейтс, с
капиталом свыше 30 миллиардов долларов. |
|
Языки и технологии программирования в 2017
Я унылый программист и
горжусь этим...
Dan Kim,
Android Programmer в Basecamp.
Перевод
—
Катя Шершнева.
Героизм возникает от некомпетентности:
герои нужны тогда, когда дело организовано плохо
и люди не способны исполнять свои обязанности
—
Борис Стругацкий
Должен кое в чём признаться — я не рок-звезда
программирования. И не хакер. Я не владею ниндзюцу. Никто
никогда не называл меня волшебником.
И всё-таки я горжусь тем фактом, что я хороший, солидный
программист. Тот, кто упорно работает над своим мастерством
и наслаждается этим, даже без модных этикеток.
Тем не менее, каждую неделю я вижу, как ищут
ниндзя-программистов, читаю о технарях рок-звёздах и слышу,
как люди бросаются словом «хакер» (и связанными с ним «хак»,
«хакфест» и «хакатон»), как будто рандомно ломать что-то на
кусочки или вламываться в несанкционированную систему —
хорошо. И нельзя забывать про этих волшебников, которые из
ничего создают нечто с помощью своей… *магии*
C такими крутыми прозвищами всё это звучит так, будто это те
образы, к подражанию которым все программисты должны
стремиться.
Но что, если вы, как и я, не соответствуете этим ярлыкам и
не разделяете чувства рок-звёзд-ниндзя-хакеров-волшебников,
то делаете что-то не так?
Признаю: вместо эгоистичных, рисковых, ищущих острых
ощущений засранцев, которые могут наколдовывать волшебные
решения, у меня есть куда более сдержанные образцы для
подражания. Мне ближе библиотекарь, учёный, художник и
плотник.
В сравнении с рок-звездой-ниндзя-хакером-волшебником эти
прозвища звучат немного занудно. Но этом нет абсолютно
ничего плохого.
Потому что я не хочу не спать каждую ночь до четырёх утра и
выгорать. Не существует магических заклинаний, которые
излечивают недуги моего кода.
Вместо этого, как библиотекарь, я люблю тишину и порядок.
Когда код хорошо организован, в нём легче находить разные
вещи и меньше вероятность что-то сломать, избегая кучи шума
и боли в сердце.
Как учёный, я люблю анализировать проблемы, пробуя разные
подходы к их решению, и затем делиться своими выводами. Я
хочу понимать, как работают вещи, и хочу, чтобы другие
получали пользу от этого понимания.
Как художнику, иногда мне нужно думать нестандартно,
включать креативность и смотреть абстрактно. Я хочу
принимать несовершенство.
И как плотнику, мне нравится создавать вещи. Иногда это
значит следовать определённому плану, а иногда — просто
работать с тем, что есть.
Вы видите эти глупые термины, так небрежно используемые — в
них нет никакого смысла, но их часто употребляют, чтобы
описать привлекательные на вид вакансии.
Часть вас усмехается, задаваясь вопросом, с чего вообще
началось использование этих слов. Но маленькая часть вас
задумывается, почему вы не можете быть
рок-звездой-ниндзя-хакером-волшебником.
Для тех из вас, кто испытывает это, я скажу — не слушайте.
Игнорируйте это. Если вы видите вакансию с такими словами,
бегите быстро и далеко. Получайте удовольствие от того факта,
что вы не рок-звезда-ниндзя-хакер-волшебник. Вполне возможно,
вы уже отличный программист, который отлично справляется со
своей работой, только без всякого ненужного блеска и гламура.
И знаете вы это или нет, но все вокруг ценят то, каким
простым крутым парнем вы на самом деле являетесь.
Комментарии:
-
Унылый-то почему? В работе простого программиста, не
роз-звезды и не хакера, есть место всему, здоровому смеху,
например. И это не от работы зависит, обычно.
-
"Ниндзя" — это про мастерство. "Ниндзя" — это тот, кто долго,
методично и упорно совершенствовал свои навыки и рефлексы,
постиг свой дзен. Ниндзя — это просто романтичное слово,
которое может обозначать и библиотекаря. И плотник может
достичь уровня ниндзя и художник может делать такое, что
людям покажется волшебством. Не нужно убивать романтику в
профессии программиста, она помогает многое преодолевать,
бороться с отчаянием в те моменты, когда что-то не
получается. Другое дело, когда за этими словами прячется
банальное пижонство, но статья ведь не об этом?
-
Мне кажется, что гораздо легче написать нам нужен "рок-звезда-ниндзя-хакер-волшебник",
чем проанализировать и понять, кто же им действительно нужен,
с какими навыками и на какие задачи. Зачастую люди/компании,
которые пишут подобное, также считаю себя такими же
рок-звездами. По своему опыту скажу, что работать с такими
людьми очень тяжело. Просто по-человечески построить
какое-то общение не получается. Ну и в большенстве случаев
технический уровень не соответствует этим самым рок-звездам.
-
Планка
квалификации сильно упала. Люди с опытом в 3 года уже
раздувают щеки, считают себя великими спецами и легко
оперируют 6-значными суммами в рублях. Разумеется, не
все такие, но очень значительная часть. На Тостере
человек с подписью «я супер-мега-экстра-спец» может
задавать совершенно детские вопросы (в «своей» области).
Поэтому в объявлении указывают, что ищут «волшебника» в
расчете на то, что реально придут нормальные.
|
|