Найти тему

Как войти в АйТи?

Нужна ли программисту математика?

"Почему именно программисту? Что, других профессий нет?", - спросите вы.

Отвечу издалека. Часто это самый короткий путь к пониманию.

Советский анекдот

Подходит мужик к газетному киоску:

- Дайте "Правду".

- Правды нет.

- Тогда "Советскую Россию".

- Россию продали.

- А что есть?

- Остался "Труд" за 3 копейки.

Тогда это была шутка с намеком. А сейчас - факт.

  • Вскоре Россию действительно продали. Точнее, отдали "за так", через залоговые аукционы.
  • Правда - в сравнении предвыборных обещаний президента с послевыборными объяснениями, почему они не выполнены.
  • "3 копейки" превратились в 22,5 т.р. - медианную "допандемийную" зарплату по стране.

И до пандемии "среднемедианная" не впечатляла. А нынче, пишут, циферка еще поубавилась....

Альтернативы трудоустройства молодежи

Какие среднестатистические альтернативы трудоустройства молодежи существуют в условиях схлопывающейся экономики?

  • Продавать гаджеты? Нынче в киосках продают не газеты, а братьев их меньших.
  • Развозить пиццу? В Москве пока можно ... Пока "Яндекс" не запустил свой беспилотный автомобиль. ))
Продавать или программировать? (pixabay.com)
Продавать или программировать? (pixabay.com)

Есть еще вариант: научиться программировать. За зарплату, кратно, а то и на порядок превосходящую "3-х копеечную" зарплату тех, кто гаджеты программировать не научиться.

Нужна ли математика будущим программистам?

Нужна ли математика будущим программистам? И если да, то какая и зачем?

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

... Всех программистов объединяет отсутствие страха перед символами.

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

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

Лирическое отступление

Я не программист.

Когда-то давно я программировал на языках, про которые из нынешних мало ктослышал. PL-1, FORTRAN, АЛГОЛ. Но было это очень давно)). Помню, несколько месяцев разрабатывал и отлаживал программу расчета и оптимизации эвольвентных и волновых передач. Приходилось кучу раз переводить ее в дырочки на бумажной ленте, загонять в компьютер, находить ошибку, опять пробивать дырочки ...

Поэтому мои соображения нужно рассматривать с учетом этого лирического отступления.

Джуниор, мидл и синьор

Джуниор, мидл и синьор.

Так называют программистов, способных выполнять задания разных уровней сложности. И график, соединяющий "уровни этих уровней", далеко не линейный. И, как мне кажется, самая большая пропасть лежит между первым и вторым, между джуниор и мидл. Называется она "компьютер сайенс". Не путать со школьной информатикой.

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

Джуниор вполне может обойтись без всяких там "паттернов". Он - просто кодировщик. Он напишет то, что попросят. Если попросят внятно, если он писал уже что-то похожее.

"Дайте мне четкое техническое задание".

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

Хотите умножить зарплату хотя бы на 2 или 3 - учитесь думать.

Но прежде - преодолейте страх перед символами.)

А как? А где? А на чем тренироваться?

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

Это не шутка

Возьмите учебник математики посерьезнее 5-6 класса и увидите, о чем это я. А если не увидите - возьмите курс Ландау-Лифшица по теоретической физике. И тогда точно увидите.)

- "При чем тут это?"

Возьмите листинг какого-нибудь кода и узрите аналогию.

Программный код ,страх и ужас не понимающих даже школьную математику (pixabay.com)
Программный код ,страх и ужас не понимающих даже школьную математику (pixabay.com)

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

Для большинства школьников этого окажется достаточно, чтобы перестать смотреть дальше. Что уж там думать!..

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

Математика, изучаемая правильно, приучает к мысли: не только буквы родного языка являются символами, на что-то указывают и связываются в единое целое (текст по латыни - ткань, полотно). Не только русские буквы объединяются смыслом в предложениях.

Символы - это ничего, ноль. То, что они значат - все.

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

Вот в этом смысле и есть смысл научиться понимать смысл)).

Математика? С ней все проще

Сначала нужно научиться понимать символы родного и могучего.

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

А с математикой все проще и принципы все те же.

В математике существуют "специальные" символы, имеющие непосредственное отношение к логике.

+, -, = <, >. Но разве буквы русского языка - не "специальные" символы?

И в математике, и в русском языке есть и синтаксис, и пунктуация.

В русском - это запятые всякие, прочие двоеточия, которые "размечают" символы-буквы, участвуют в создании смысла.

Помните? "Казнить нельзя помиловать" (с).

Простой вопрос: где человек учится думать?

Ну, допустим, кодить - возвращаемся к высоким зарплатам )) он научится на курсах. А думать где?..

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

Метафора высокой зарплаты

Многие изучают английский язык. Но немногим удается устроиться переводчиком Путина. Остальным-то что делать?..

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

Полная аналогия с программированием.

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

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

Без понимания математики и без понимания родного языка. И то, и другое имеет дело со смыслом, а не с шаблонами.

Школа же "обучает" и русскому языку, и литературе, и математике исключительно через шаблоны. Вот оно, противоречие. И вот оно - его разрешение.

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