Многие люди утверждают, что нет необходимости иметь математическое образование или специализацию по математике, чтобы продолжить карьеру в области разработки программного обеспечения или в качестве разработчика. Да, в большинстве случаев это так, но я буду обсуждать преимущества, которые может получить студент, изучающий математику, при поступлении в область разработки программного обеспечения.
В отрасли мы видим, что большая часть кодирования не требует ничего, кроме базовой математики. Если вы знаете основные арифметические операции, логическую логику, системы счисления и немного алгебры, вам будет комфортно работать программистом. Большинству из этих вещей учат в школе, и даже могут быть некоторые модули в колледже или университете. Математика полезна, и это зависит от того, что вы программируете. Например, кому-то, возможно, придется иметь дело с процентными вычислениями, углами и научными обозначениями. Короче говоря, просто начните программировать. Учитесь на ходу. Но не думайте, что вы можете обойтись без изучения немного математики здесь и там.
Но в этом блоге я хотел бы выделить преимущества, которые вы получаете, если у вас есть математическое образование. Программирование в целом требует много размышлений. Прежде чем перейти к части кодирования, нужно многое проанализировать и выяснить. Проще говоря, я бы сказал, что это требует много логического мышления, а лучшие логические мыслители в основном математики. Следовательно, математикам было бы легко решать эти логические проблемы, особенно структуры данных и алгоритмы, которые необходимы программе.
Программирование требует знания информатики, но большая часть информатики (в основном) — это дискретная математика. Информатика, как и математика, в первую очередь связана с точными структурами, такими как алгоритмы, графы и языки программирования. Но не совсем правильно говорить, что информатика — это подмножество математики, потому что в ней есть некоторые экспериментальные части.
Это объясняет, почему те, кто хорошо разбирается в математике, хороши и в программировании, и наоборот. Эти ребята могут пройти тесты на пригодность и легко пройти технические раунды на собеседованиях. Однако определенные способности можно развить, только сосредоточив на них внимание, поэтому человек, который блестяще разбирается в математике, не всегда хорош в программировании, и наоборот. Человек обычно не одинаково интересуется и тем и другим и лучше справляется с тем, что его больше интересует. Также стоит отметить, что программирование включает в себя больше, чем просто компьютерные науки, так же как электротехника влечет за собой больше, чем просто физику.
Возьмем в качестве примера известного человека, который изображен на картинке ниже.
Это Клемент Михайлеску, генеральный директор AlgoExpert. Вы можете постоянно видеть их рекламу на YouTube. Он получил степень бакалавра математики. И в этом видео на Youtube он рассказывает о своем шестимесячном пути к тому, чтобы стать инженером-программистом в Google после окончания учебы. В этом видео он также развеивает заблуждение о том, что вам нужно иметь опыт работы в области компьютерных наук, чтобы стать инженером-программистом или работать в аналогичной должности.
Как мы все видим, у него есть все большие титулы, которые могут быть у инженера-программиста. Кроме того, он достиг всего этого за очень короткий период времени, что объясняет несправедливое преимущество, которое он имел, исходя из математического образования. Таким образом, мы можем сказать, что математика закладывает основу для понимания концепции, мы бы не достигли такого прогресса без наших достижений в численных подходах к вычислениям и оптимизации, к которым нас привело программирование. Так что, если кто-то из молодежи читает это, постарайтесь больше не пропускать занятия по математике.
Еще один очень простой пример из моего личного опыта: все мы делаем простые проекты для развития навыков программирования, и одним из таких проектов является простой калькулятор. также некоторые основные преобразователи (например, калькулятор площади или объема, преобразователи длины и веса). Поэтому, не зная математики, стоящей за этим, невозможно делать такие проекты.
Давайте рассмотрим пример, когда числа действительно важны. Истребители летают на скоростях, близких к сверхзвуковым, и у каждой системы управления на борту есть одна задача: выполнять расчеты, чтобы гарантировать, что устойчивость корабля не пострадает. В такой ситуации требуется программное обеспечение военного уровня со сложными расчетами. Несмотря на то, что принципы таких проектов широко понимались и применялись на протяжении веков, выполнение высокоскоростного, легкого в вычислительном отношении и эффективного кода — это то, что отличает летающий реактивный самолет от того, который горит на месте крушения.
Несмотря на то, что математика является основой нашего понимания предмета, программирование дало нам новые способы использования чисел в вычислениях и оптимизации, которые были бы невозможны без него. Как правило, степень бакалавра в области инженерии или информационных технологий довольно широко охватывает математику. У них есть инженерная математика, которая охватывает такие темы, как дифференцирование, интегрирование, векторы, тригонометрия, графики, последовательности и ряды, а также комплексные числа, а некоторые также охватывают дискретную математику.
Это всего лишь несколько примеров того, как математика и программирование идут рука об руку. Программирование устройства для обработки наших чисел имеет решающее значение в различных ситуациях, включая машинное обучение, интернет-безопасность, теорию чисел, исчисление и т. д.
Прочитав несколько ответов на Quora, я узнал, что большинство людей говорят об основных математических концепциях, которые нужно знать программисту, чтобы справляться с повседневными задачами.
Если кто-то спросит, какая математика или какие темы наиболее важны, если вы программист, ответят, что все зависит от типа задач, которые вы хотите решить. В качестве основы вам понадобятся:
- Базовая арифметика: +-/*
- Булева алгебра: A и B, A или B, а не (A и B)
- Множества: A является подмножеством B, пересечением и объединением множеств.
- Вероятность и простая описательная статистика: среднее значение, медиана, мода и т. д.
- Модульная арифметика: математика часов
- Базовая геометрия и формулы
Они будут охватывать большую часть общих проблем. Достаточно их практического понимания; математическое понимание не требуется.
Если бы вы работали над протоколами сетевой маршрутизации или программным обеспечением для социальных сетей, вам, среди прочего, нужно было бы понимать теорию графов.
Лучшее предложение - повеселиться. Экспериментируйте с разными вещами. Когда что-то не работает, найдите время, чтобы подумать, почему. Хорошая книга или курс по программированию научит вас многому из необходимой вам математики. Прежде всего, не забывайте получать удовольствие. Нам с вами понадобится много работы и практики. Будет трудно продолжать, если вы не получаете удовольствия.
Если вам нравится читать это, пожалуйста, подпишитесь и найдите другие мои сообщения в блоге. Спасибо!