Споры о том, что должен знать программист обычно ведутся вокруг списка языков программирования. Иногда сюда добавляется тема: "нужна ли программисту математика?". Однако, в реальности все не так просто. И ответ на вопрос о том, что должен знать программист предельно прост - "чем больше знает программист, тем лучше". И речь идет не только о дисциплинах, смежных с программированием. Речь идет об образованности и кругозоре. Вот почему, те кто реально осознает что такое программирование все таки выбирают специальность "прикладная математика", а не компьютерные науки или компьютерную инженерию. Прикладной математик - это прикладной программист, который знает и математику и предметную область, для которой ему придется писать софт. Поясним на примере.
Предположим, что ваш заказчик - металлургический комбинат или крупный поставщик металлопроката. Хорошо, если вам надо будет для них сделать сайт и наполнить его контентом, типа вот таких таблиц, как приведено ниже со свойствами проката.
Механические свойства проката при to 20o С
Сортамент |
ГОСТ |
σВ |
σТ |
d5
|
Термообработка |
МПа |
% |
% |
|||
Лист толстый |
7350−77 |
540 |
265 |
35 |
Закалка 1030 — 1130o C, Охлаждение водой |
Лист тонкий |
5582−75 |
510 |
245 |
35 |
Закалка 1080 — 1150o C, Охлаждение водой |
Лист тонкий |
4986−79 |
570 |
19−38 |
Закалка 1050 — 1080o C, Охлаждение воздухом |
Конечно, даже в этом случае надо понимать что такое прочность и деформация, чтобы не опозориться с единицами измерения, с обозначениями или формулами для расчетов. А если вам закажут написать онлайн-калькулятор, который должен помочь посетителю сайта рассчитать параметры стали, которая должна удовлетворять требованиям заказчика в зависимости от условий эксплуатации изделия из этой стали, нагрузок, температурного режима? И тогда Вам придется обращаться к инженерам-технологам, чтобы они объяснили как это все рассчитывается. Конечно, ничего в том страшного нет - человек не может знать все. Но, проблемы начнутся того, когда вам начнут рассказывать как провести расчеты. Вам надо будет понимать спец терминологию и иметь представление о том, как выполняются обычные инженерные расчеты. Именно в этот момент и пригодятся вам те знания, которые дают прикладному математику. Чтобы понять как приблизительно будет проходить разговор с инженером технологом, просто перейдите по ссылке: http://www.evek.org/20x23n18-list.html и прочитайте текст, насыщенный специальными терминами, понятными металловеду.
Но скорее всего, Вам как программисту могут поставить задачи немного другого уровня. Например, вам надо будет автоматизировать расчеты добавок в состав стали, для того, чтобы на выходе получался прокат с заданными параметрами. Или, попросят написать автоматизированное рабочее место лаборанта хим. лаборатории, занимающейся анализом проб металла для выдачи заключения о соответствии продукции Госту. А это обычному веб-строителю уже не под силу. Тут нужен прикладной программист.