Учи матчасть, гуманитарий!

в 9:57, , рубрики: математика для гуманитариев, Учебный процесс в IT, метки:

Речь, конечно, пойдёт о части математической, а не материальной.

Что к чему?

Топик родился из статей на хабре последних дней и собственных нелегких дум о том, почему так сложно научится программированию человеку, с так называемым «гуманитарным» складом мышления. Понятию «гуманитарий» в данном тексте придаётся широкое значение: это как человек с нетехническим образованием, так и с неоконченным техническим, и это может быть даже индивид, получивший диплом инженера, но не представляющий как написать что-то сложнее лабораторной по паскалю, или ___________ ваш вариант. Всех этих людей объединяет лишь то, что программирование не поддаётся им, даже несмотря на безумный интерес и горящие глаза.

В чем твоя ошибка?

Я думаю, что большинство рассуждает примерно следующим образом:

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

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

Почему не работает?


В какой-то момент я подумала, что понимаю PHP. Я подумала, что это оттого, что язык создан под конкретные задачи для веба. То есть, нужно более-менее представлять, как работает сайт и что должно происходить на нём (точнее — внутри него), и ты сможешь реализовать это на PHP. Или, иными словами, что PHP является языком для решения задач с низкой степенью абстрактности.

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

Абстрактные абстракции

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

Так в чем же разница?

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

Матчасть

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

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

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

Математическая логика.

Мне преподавали основы ещё в школе на информатике. Нули и единички, какие-то действия с ними. Только в общих чертах. Скучно. Больше я с ней не встречалась до того момента, пока не наткнулась на этот курс и поняла, что это то, что мне нужно. Для начала научиться свободно оперировать нулём и единичкой. Задачки здесь могут быть не менее сложны, чем на матане, когда появляются большие уровни вложенности И, ИЛИ и НЕ.

Дискретная математика.

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

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

Важно!

Не лениться решать задачки.

P.S.: Данные курсы рекомендованы автором исключительно из личных предпочтений по удобству использования. С таким же успехом подойдут обычные вузовские учебники. Возможно, кому-то больше нравятся другие разделы математики или другие курсы, книги — напишите нам об этом! В комментариях желанны как никогда советы, рекомендации и личный опыт.

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

Автор: yukkat

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js