Профессия прикладной программист. Основные моменты, связанные с программированием. Программист решает проблемы

Игорь Котов, директор по производству

Недавно прочитал на hh статью о том, что IT сфера является наиболее привлекательной на российском рынке. Из плюсов автор выделяет высокие зарплаты, возможности для роста, возможность удалённой работы и качество труда. Однако в этих пунктах кроются причины многих бед российского IT. Рынок IT очень перегрет предложениями. Зачастую можно увидеть зарплаты для мобильных, фронтенд и других разработчиков (по РТ) превышающие 100 тысяч рублей. При этом средняя зарплата в том же Татарстане чуть больше 37 тысяч. Поиск действительно стоящего кадра для не очень крупной компании может занять продолжительное время и приходится постоянно повышать планку зарплат, предлагать, как можно больше “плюшек” и более свободный график. Но даже это не всегда является стопроцентным вариантом найти действительно стоящего программиста (об этом ниже). К сожалению, эта погоня рынка за кадрами только в маленьком проценте случаев является оправданной. В большинстве же это приводит к тому, что небольшие компании не могут угнаться за рынком и либо просаживаются по качеству, отпуская сотрудников за крутыми оферами, либо потихоньку загибаются.

При чём же тут программисты? Всё дело в том, что, по моему мнению, есть два типа программистов: кодеры и настоящие программисты.

Разберём сначала кодеров . Эти ребята зачастую отличные исполнители, они делают всё, что им говорят или ставят в задачах аналитики, PM’ы или другие старшие товарищи. Как правило, их плюсы на этом заканчиваются. Кодер не развивается. Он считает, что знает достаточно для того, чтобы выполнять свою работу. При этом кодер может быть на волне хайпа и участвовать в обсуждениях новых технологий. Но не надо путать кодера и условный грейд джуниора в компании, подразумевающий небольшое количество опыта и знаний. Я рассматриваю именно тип программиста. Кодер не может вырасти выше мидла (среднего уровня). Разумеется, даже для этого ему нужно больше времени и внешних сил (техлид, коллеги, обучающие курсы). Кодера, как правило, не заботит тестирование своего продукта. Он считает, что работающий продукт не может сломаться, если работал однажды. К сожалению, автоматическое тестирование тоже не всегда может “исправить” кодера. Если в компании ведётся хоть какой-то учёт задач, то легко отследить кодера по количеству возвратов задач в работу. Начинаете узнавать кого-то? 🙂 В кодеры приходят люди со всех профессий и в любом возрасте (но это не означает, что среди них нет профессиональных, в образовательном плане, программистов). Это напоминает индийцев, которые не считают программирование чем-то сложным и требующим определённых навыков. Отсюда всем известные дешёвые фрилансеры индийцы, которые могут просто поразить Вас “качеством” кода. Зачастую кодера бывает сложно определить на собеседовании, так как оно не может в полной мере определить все требуемые для программиста навыки и знания. Кодеры раскачали этот рынок и не стесняются каждые N месяцев менять работу в погоне за большей зарплатой, более свободным графиком и большим количеством “плюшек”. Почему так происходит? Потому что настоящих программистов на самом деле не так много. Кто это такие?

Настоящие программисты (НП), как по мне, это люди, которые своим складом ума и, возможно, характера идеально подходят на эту работу. НП никогда не кичатся своими знаниями. Они постоянно развиваются и изучают новые технологии (а в IT они меняются ой как быстро). Эта черта человека осознавать свою глупость и даёт возможность быть умнее других и постоянно расти, развиваться. Настоящий программист применяет все свои знания для решения задачи, ускорения, улучшения, а не для галочки или хайпа. В этом возможно и заключается особенность НП. Для них решение очередной задачи - это не монотонная работа, а некая внутренняя игра для поиска оптимального, красивого и практичного результата. Иногда это бывает проблемой для бизнеса, когда такие люди «заигрываются», ведь часто надо сделать быстро, и чтобы работало (и пускай это костыль). Среди НП можно часто встретить людей, увлекающихся математикой, а также олимпиадными задачами, ведь именно в этих сферах можно заниматься поиском решения, которое так завлекает. К сожалению, или счастью это образ мышления, образ жизни. НП нельзя стать (я не знаю ни одного такого случая). НП мне встречались только двух типов: асоциальные или же резко противоположно очень активные ребята. Из этих сотрудников всегда и вырастает основной технический костяк в компании. Вторые [активные], как правило становятся тимлидами, техлидами и некоторые, дорастая до определённого уровня уходят в менеджмент, становясь техническими директорами и руководителями тех. департаментов. Как я уже написал ранее, если кодеры доходят до мидлов, то предела у настоящих программистов нет. НП не пишет на каком-то языке программирования, для него не важен синтаксис и версия IDE. Он знает паттерны и подходы, которые будут работать практически везде. Для него достаточно посмотреть пару примеров и правила синтаксиса, чтобы уже начать разбираться и писать программный код. НП не просят разжёвывать задачи, они сами предлагают правильные решения и исправляют ошибки.

Теперь, когда Вы понимаете, как я различаю программистов, можете задать вопрос в чём же проблема? НП намного меньше чем кодеров, но компаниям нужны кадры. Это приводит к тому, что всё большее количество людей начинают считать себя программистами, отзываясь на завышенные зарплаты и хорошие условия. К сожалению, большинство HR’ов не могут отличить настоящего программиста от кодера. Возможно это происходит как раз из-за различной самооценки собеседуемых кандидатов. В результате и без того перегретый рынок предлагает равные зарплаты кодерам и НП. Качественный уровень российских программистов снижается. Это можно наблюдать по тому, как ценятся наши ребята на западе. Спойлер: ниже, чем ранее. Многие хорошие кандидаты грезят работой в крупных гигантах рынка вроде Яндекса, Google, Microsoft и т. д., и уходят туда, как только вырастают до нужного уровня.

Конечно, мы живём в реальном мире и невозможно вырастить в пробирках миллионы цукербергов, гейтсов, масков и других выдающихся инженеров. Однако современный мир растущего технического прогресса требует быстро работающих сайтов и мобильных приложений, безотказных роботов, безопасных автопилотов в машинах и прочее. Меня расстраивает количество случайных людей в профессии и мыльный пузырь рынка IT, который продолжает надуваться. Очень занятно, что он пытается догнать западный уровень зарплат, при этом оставляя другие сферы жизни на прежнем уровне. Что получится в будущем узнаем только спустя годы. Надеюсь, что настоящие программисты смогут сделать мир ещё более технологичным.

На данный момент существует множество направлений в программировании. Каждый сможет найти занятие по душе, но для этого нужно знать, чем именно ты будешь заниматься в своей сфере.

Разработка web-приложений

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

Web-программирование можно разделить на backend (написание серверных скриптов - PHP, Python, Ruby) и frontend (разработка юзерского интерфейса - Javascript, HTML, CSS).

Разработка desktop-приложений

Разработка программного обеспечения для различных операционных систем. Все разнообразие софта, что мы используем в повседневности. Хотите написать свой обработчик фотографий, аудио-плеер или текстовый редактор, тогда вам сюда.

Разработка серверных приложений

Это различные игровые сервера (ваша любимая Дотка, CS: GO), IM-сервисы (серверная часть Skype, ICQ, MSN), банковские базы данных.

Разработка мобильных приложений

Множество Java-приложений. VK, Viber, Яндекс.Карты, переводчики, электронные читалки.

Программирование встраиваемых систем

Интересная отрасль программирования для различной домашней техники: пылесосы, холодильники, стиральные машины, плееры, навигаторы, электронные весы. Здесь задействованы научные разработки с использованием специализированных языков, типа MATLAB.

Системное программирование

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

Разработка игр

Гигантская отрасль. Сюда включается разработка игр и для ПК, и для консолей, и для мобильный устройств.

Олимпиадное программирование и решение задач

Программирование на различных «непрактичных» и не распространенных языках (Pascal, Delphi) для решения каких-то оригинальных задач, требующих нестандартного подхода, смекалки и IQ выше 160.

Программирование для бухгалтерских и финансовых продуктов

«1С: Предприятие». Вся бухгалтерия в России завязана на этом продукте. Но недостаточно знать лишь сам язык, важно понимать основы бухгалтерского учета. Плюс в том, что работы очень много, и без хлеба вы не останетесь.

Программирование баз данных

Серьезное направление. Хотите разрабатывать базы данных, способных хранить миллиарды строк информации о всех пользователях VKontakte или Facebook и при этом не тормозить - вам сюда.

Science

Наука и этим все сказано. Нейронные сети, моделирование структуры ДНК, запуск спутников, моделирование Большого Взрыва.

Кстати, недавно на сайте NASA была опубликована новость о поиске программиста на «древнем» языке Fortran, которому уже более 60 лет. Требовался программист для разработки программ по управлению автоматическими зондами Вояджер-1 и Вояджер-2, программное обеспечение для которых было написано на Ассемблере, Фортране и языке COBOL еще в 1970-х годах. Никогда не знаешь, какие знания могут пригодиться.

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

Разновидности

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

  1. Прикладные программисты занимаются в основном разработкой программного обеспечения прикладного характера — игры‚ бухгалтерские программы‚ редакторы‚ мессенджеры и т.п. К области их работы также можно отнести создание программного обеспечения для систем видео- и аудио-наблюдения‚ СКД‚ систем пожаротушения или пожарной сигнализации и т.п. Также в их обязанности входит адаптация уже существующих программ под нужды отдельно взятой организации или пользователя.
  2. Системные программисты разрабатывают операционные системы, работают с сетями, пишут интерфейсы к различным распределенным базам данных. Специалисты этой категории относятся к числу самых редких и высокооплачиваемых. Их задача состоит в том‚ чтобы разработать системы программного обеспечения (сервисы)‚ которые‚ в свою очередь‚ управляют вычислительной системой (куда входит процессор‚ коммуникационные и периферийные устройства). Также в список задач входит обеспечение функционирования и работы созданных систем (драйвера устройств‚ загрузчики и т.д.).
  3. Web-программисты также работают с сетями, но, в большинстве случаев, с глобальными - Интернет. Они пишут программную составляющую сайтов, создают динамические веб-страницы, web-интерфейсы для работы с базами данных.

Особенности профессии

На основе анализа математических моделей и алгоритмов решения научно-технических и производственных задач программист разрабатывает программы выполнения вычислительных работ. Составляет вычислительную схему метода решения задач, переводит алгоритмы решения на формализованный машинный язык. Определяет вводимую в машину информацию, ее объем, методы контроля производимых машиной операций, форму и содержание исходных документов и результатов вычислений. Разрабатывает макеты и схемы ввода, обработки, хранения и выдачи информации, проводит камеральную проверку программ.

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

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

Плюсы и минусы профессии

Плюсы:

  • высокая заработная плата;
  • сравнительно высокий спрос на специалистов;
  • иногда можно получить работу не имея высшего образования;
  • по преимуществу является творческой профессией.

Минусы:

  • приходится часто и много объяснять одно и то же, так как то, что понятно и очевидно программисту, совсем не всегда понятно и очевидно пользователю;
  • работа в режиме аврала (иногда) в стрессовой ситуации;
  • профессия накладывает специфический отпечаток на характер, который нравится далеко не всем окружающим.

Место работы

  • IT-компании и web-студии;
  • научно-исследовательские центры;
  • организации, которые подразумевают в своей структуре штатную единицу или отделы программистов.

Важные качества

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

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

Обучение на программиста

Компьютерная Академия ШАГ - международное учебное заведение, обучает . Работает с 1999 года. 42 филиала в 16 странах мира. Крупнейший авторизованный учебный центр Microsoft, Cisco, Autodesk. Студенты получают международные сертификаты и международный диплом. Главная цель - трудоустройство каждого выпускника.

На этом курсе вы можете получить профессию программиста дистанционно за 1-3 месяца. Диплом о профессиональной переподготовке установленного государством образца. Обучение в полностью дистанционном формате. Крупнейшее образовательное учреждение дополнительного проф. образования в России.

Оплата труда

Программист - одна из самых востребованных и высокооплачиваемых профессий в России. Даже не самый продвинутый специалист может найти работу в соответствии со своим уровнем знаний, а затем постепенно учиться и набираться опыта. Зарплата стажера — около $1000. Штатный программист в компании среднего уровня (не IT) получает до $1500-1800, чуть больше — в организации, связанной с массовой разработкой ПО. Зарплата ведущего программиста — $2500—3000. Следующая ступень — руководитель IT-отдела. К необходимым знаниям добавляется обязательный опыт работы, владение иностранным языком, навыки управления персоналом и др., а заработок может достигать $4000. Хороший программист может стать руководителем крупного проекта по разработке ПО, и тут уровень доходов достигает $5000 и выше.

Зарплата на 07.03.2019

Россия 40000—120000 ₽

Москва 50000—170000 ₽

Ступеньки карьеры и перспективы

Хорошим стартом карьеры может стать присоединение к группе программистов при разработке какого-либо проекта. Крупные проекты часто привлекают внимание западных компаний, которые «перекупают» российских программистов. К примеру, когда-то группа наших молодых ученых разрабатывала процессор «Эльбрус» для Минобороны, а в итоге их всех перекупила корпорация Intel, и теперь наши ученые и программисты работают за рубежом, а сам проект «Эльбрус» потихоньку закрылся. Проблема «утечки мозгов» в этой профессии — одна из самых острых.

Программист может сделать карьеру до руководителя группы программистов (тим-лидер), IT-директора предприятия, менеджера IT-проекта и т.п. В ходе работы программист может перемещаться в рамках своей специальности, совершенствуясь профессионально.

Знаменитые и великие программисты

Кнут Дональд Эрвин
Мацумото Юкихиро
Таненбаум Эндрю
Рэймонд Эрик Стивен
Фаулер Мартин
Хоппер Грейс
Столлман Ричард Мэттью
Кей Алан
Мейер Сид
Страуструп Бьёрн

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

Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.

Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарлз Бэббидж (но не смог её построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.

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

Однако ни одна из программ написанных Адой Лавлейс никогда так и не была запущена.

Аду Августу, графиню Лавлейс, принято считать почётным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила её имя в названии универсального языка программирования «Ада».

Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определёнными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.

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

Законы Мерфи для программистов

1. Ничто не работает так, как планировалось запрограммировать.

2. Ничто не программируется так, как должно работать.

3. Хороший программист характеризуется умением доказать почему задачу невозможно выполнить, когда ему просто лень её выполнять.

4. На решение проблемы уходит в три раза меньше времени, чем на обсуждение всех "за" и "против" её решения.

5. Обещанный срок сдачи - это аккуратно рассчитанная дата окончания проекта плюс шесть месяцев.

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

7. Настоящие программисты любят Windows — все ошибки, сделанные по собственной тупости, можно свалить на Microsoft.

8. Следствие — 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.

9. В приступе злости все почему-то молотят по невинному монитору, вместо системного блока.

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

11. Настоящий программист уже как минимум поменял три залитых пивом клавиатуры.

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

13. Дилетантские разговоры о компьютерах вызывают резкую тошноту вплоть до приступов рвоты. Вопрос о том как поменять "обои" в Windows вызывает желание перерезать горло вопрошающему.

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

15. HTML, HTTP, FTP, SMTP, TCP/IP, RTFM и т.д. - это слова, а не аббревиатуры.

16. Словосочетание "мышка-норушка" не несёт никакого смысла.

17. Самые мистические проблемы, широко раздуваемые и афишируемые, в конце концов оказываются твоими глупейшими ошибками.

18. Следствие - если твоя программа выполняет мистические действия, значит, ты сделал что-то невероятно тупое.

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

20. Решение всех жизненных проблем находится в интернете. Надо только уметь хорошо искать.

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

22. Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирают программистов, которые презирают тех, кто их презирает.

23. Если ты понял предыдущее — то ты программист.

На этом свете 10 типов людей - те, кто понимает двоичную систему счисления, и те, кто не понимает ее.

Видео: ты ж программист

Сегодня вряд ли кто станет вопрошать программист кто это? Все мы ежедневно выходим во всемирную сеть, к тому же работа большинства из нас связана с компьютерными программами. Работа программиста заключается в разработке и внедрении алгоритмов и программ. Хорошие программисты ценятся на вес золота, потому и оклад у них довольно высок.

(function(w, d, n, s, t) { w[n] = w[n] || ; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-329917-1", renderTo: "yandex_rtb_R-A-329917-1", async: true }); }); t = d.getElementsByTagName("script"); s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(this, this.document, "yandexContextAsyncCallbacks");

Какие бывают программисты

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

В основном это:

  • системные . Занимаются созданием операционных систем и оболочек баз данных;
  • прикладные . Именно они делают программное обеспечение для того, чтобы и могли заниматься своей деятельностью;
  • веб-программисты . Принимают самое активное участие в создании сайтов и -магазинов, а также создают программы, управляющие целыми системами сайтов.

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

Что должен знать и уметь программист

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

Обычно руководство смотрит еще и на такие качества сотрудников-программистов, как:

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

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

Существуют и минусы:

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

Лучше всего программист кто это вам объяснить сам программист. Найдите среди знакомых человека с такой профессией и выясните детали, которых не нашли в этой статье.

(function(w, d, n, s, t) { w[n] = w[n] || ; w[n].push(function() { Ya.Context.AdvManager.render({ blockId: "R-A-329917-3", renderTo: "yandex_rtb_R-A-329917-3", async: true }); }); t = d.getElementsByTagName("script"); s = d.createElement("script"); s.type = "text/javascript"; s.src = "//an.yandex.ru/system/context.js"; s.async = true; t.parentNode.insertBefore(s, t); })(this, this.document, "yandexContextAsyncCallbacks");

О времена, о нравы. Сегодня в Тостере увидел тему, в которой человек признавался, что работая java-разработчиком он знает алгебру и геометрию на уровне 6 класса и просил посоветовать учебники. Этот запрос несомненно вызывает уважение - человек хочет учиться.

Начнём сначала. Я учился в хорошей физмат школе в 90-е годы. Читай между строк - по советской программе. На этом можно было бы и закончить, потому что далеко не все учились в хорошей физмат школе по советской программе, а значит я по определению страшно оторван от народа. И точно ничего не понимаю в жизни.

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

В старших классах мы форсировали матан да так, что потом пару курсов в ВУЗе можно было отдыхать. На чём многие, кстати, и погорели. И нет, не были гениями, мозг кипел, распределение оценок было такое же как и везде - двоечники, троечники, хорошисты, ботаны. Ботаны были гениями, это да. Ученики физмат школы не любили ботанов так же, как их не любят везде. Что ещё раз доказывает, что мы не были особенными. Это важно для последующего рассуждения.

На уроках информатики мы решали те же задачи из матана - находили корни уравнений, строили графики. Изучали принципиальное построение языков - типы, структуры данных, алгоритмы, работа с памятью, было немного Delphi и ООП. В основном, конечно же, Pascal. Для общего развития были C и Assembler. Немножко захлестнули БД под конец, конечно же с нормализациями. Изучали двоичную алгебру и делали по фану игры.

И даже не все это проходили, класс был поделён на Программистов и Пользователей. Пользователи учили HTML и фотошоп, сдавали сайт.

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

У меня так сложилось, что я стал соприкасаться с программированием спустя более 10 лет после выпуска из школы. Всё поменялось - появился веб, куча каких-то странных слов и названий. Я точно, знал, что эти гении - Программисты, которые создают коммерческий продукт, ушли уже очень далеко, в какие-то параллельные космические миры, где мне их никогда не достать. Что я приду к ним, а они мне скажут: «Брат, какой тебе блог на PHP? Давай ка динамический массив мне через рекурсию организуй, тогда и поговорим.»

И ведь справедливо. Ведь я точно знаю, что программист это даже не профессия. Это специализация инженера.

Подозрения начали закрадываться, когда на Тостере я начал читать вопросы в духе «Нужна ли математика программисту?». И ответы в духе «решение рутинных задач для лендосов математики не требует».

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

У меня вертится в голове старпёрский риторический вопрос: «А как же культура?». Я считаю, что этот вопрос вообще главный для вменяемого инженера, но это отдельная статья. Неужели творческое начало в программировании настолько уступило ремесленному, что важны только плоды и никто даже не заикается о корнях их питающих? Как вообще может приходить человеку в голову вопрос «нужна ли математика программисту»? И насколько вообще опошлено и девальвировано гордое звание Программиста? Неужели никто не говорит о культуре разработчика? Или мы дошли до того, что никто уже этого не понимает? Тогда откуда вы возьмёте этот ваш желанный идеальный код, если не из культуры мысли?

Друзья, скажите мне, что я старый (тридцати трёх летний) маразматик. Или подтвердите, что мир катится в какой-то ад. Предлагаю развернуть жаркую дискуссию в комментах. А то ведь, ничего не понятно…

UPD
Итак, после менее чем суток отчаянных ломаний копьев вырисовалась некоторая картина.
Это чисто мои выводы.
Пройдёмся по порядку.
Посвящается тем, кто прочитал пост и жаждет ринуться в бой, а читать 100+ комментов, конечно же, не досуг. Нижеследующий текст кое-что прояснит.

Цель первого поста
Почти все неверно поняли цель поста. Я нигде не утверждал, что программист без математики профнепригоден и не сможет работать. Я никого не обвинял, не принижал и не поливал грязью за их незнание маематики в каком-либо объёме. Моей задачей было выяснить, что думает сообщество на счёт профессиональной культуры программиста в том виде, в котором сформулировал её я. На этот факт обратили внимание минимум комментаторов.
Из чего я делаю следующий вывод.

Культура
По моим наблюдениям очень малая часть читателей готова воспринимать слово «культура», как содержательное понятие, имеющие для них смысл больший, чем сходить в театр или не плюнуть на соседа. Это не говорит ничего плохого о людях, это просто констатация некоторых фильтров восприятия. В случае, если понятие «культура» (как и любое другое понятие) имеет в сознании человека развитое содержание, он анализирует текст в связи со всем тем объёмом смыслов, которое это понятие несёт и дискутирует так же и на уровне этих смыслов. Абсолютное большинство комментаторов дискутировали со мной на уровне профпригодности и и решения производственных задач, вопрос о которых в исходном тексте ВООБЩЕ не поднимался. Если вы ещё раз перечитаете текст, то он весь подводит к последнему абзацу с вопросом «А как же культура?» Дальше по абзацу задаются вопросы, являющиеся смыслом и содержанием топика. Целый абзац вопросов исключительно по культуре, и никто не отвечает о культуре.
Я делаю вывод - в массе своей комментаторы вообще не понимают, о чём идёт речь, когда поднимается вопрос о культуре профессиональной деятельности.
Почему?
У меня есть своя версия, накину для разнообразия. Почти век у нас человека учили, что он - производственный кадр. Что частное ничтожно перед общественным. Что его общественная роль и есть его содержание. Что культура это лубок и правила поведения. Что если о состоялся, как работник, значит он достиг вершин человеческой эволюции. Эта матрица живёт своей жизнью в обществе, и пока никуда не собирается уходить. Сейчас в совокупности с рыночным целеполаганием в образовании (учу не во имя науки, а во имя трудоустройства), подогреваемым идеями индивидуального успеха и эффективности, любой сознательный гражданин понимает, что главное - заморочиться в своей узкой теме и ничего больше не видеть. Лучше всего начинать кодить раньше, чем ходить, а биологию с географией вообще выкинуть нафиг, потому что высокоуровневые решения типа гугла решат все проблемы.
И тут мы переходим к другой проблеме.

Образование
Образование массово воспринимается комментаторами, как курсы повышения квалификации. Если развить идею до предела, то получим, что школьное образование вообще не нужно. Читать и писать можно научится и так. А дальше сиди и пиши код, ведь даже HL++ проекты, как показывает жизнь, можно делать, не будучи профессором. Остальное гугли.

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

Вторая проблема образования, и она более очевидна, состоит в том, что комментаторы в массе своей воспринимают математику как ещё одну область деятельности. Это как минимум значит, что математика преподавалась им в основном как алгебраический счёт и формулы, которые надо зубрить. Не как наука. Преподавать математику, как науку можно и в первом классе. Это всего лишь значит сделать упор на последовательные рассуждения, а не на зубрёжку. Хочу обратить внимание, что ВСЁ точное знание, в том числе и прикладное, основано на строгих формулировках определений и соотношений. Любое рассуждение строится на дереве если-то-иначе. Без этого аппарата даже html написать невозможно. Он встроен во всех нас по причине принадлежности к обществу, которое таким аппаратом оперирует. Математика - тренажёр по овладению этим аппаратом и ключ к эффективной работе с абстракциями любого уровня. Учитывая, что все инженерные профессии, в том числе и программирование, построены на математическом аппарате, странно называть её отдельным видом деятельности. Это показывает простое непонимание того, куда ты попал. Это может быть неважно с точки зрения решения рабочей задачи, но очень важно с точки зрения культуры.

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

Только зарегистрированные пользователи могут участвовать в опросе.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: