За годы существования IT вокруг него сформировалось очень много наивных, несуразных, порой откровенно тупых и не соответствующих действительности стереотипов. Некоторые из них тут уже разобраны, я разберу иные. А именно, вечные вопросы о том, нужны ли разработчику английский и математика
Миф 1: разработчику нужна математика
Сложно сказать, откуда пошёл данный стереотип. Вероятно, из 80-ых годов СССР, когда разработчики ПО занимались в основном программами расчёта траекторий наведения ракет, научными вычислениями и т.д. Вероятно также, что его породили современные технические ВУЗы в погоне за абитуриентами. “Вы хотите стать наносеком? Так для программирования нужна математика, да! А хорошо научиться ей вы можете у нас”.
Так нужна ли программисту математика? Короткий ответ: нет, длинный ответ: в основном нет. Для перегонки джонсонов и формошлёпства (90% разработчиков) базовый школьный курс математики за 9 классов - это уже даже overkill. Максимум в работе придётся посмотреть какой-то двухмерный график, и то не факт. Кто-то мне скажет про алгоритмы и вот это вот всё. Я на это скажу, что в реальной работе мне не приходилось применять вообще ничего продвинутее тех структур данных, которые в стандартных библиотеках разных ЯП пихают в пакет Collections (а если точнее, большую часть того, что там есть, я и не применял вовсе). Для каких-то крайне специфичных вещей типа графов, сортировок и решения проблемы N + 1 запроса уже есть библиотеки. Т.е. вам достаточно просто знать, что какие-то такие штуки существуют.
Некоторые говорят: “Ну да, задачи, где нужно знать алгоритмы и их сложность, возникают непостоянно, но ведь иногда возникают же!” И вот есть реально люди, которые либо ждут на одном месте, пока такие задачи появятся, либо прыгают по местам работы в поисках таких задач. Таким я могу сказать только одно: скорее всего, ребята, вас просто обманывают и таких задач на самом деле нет нигде. Алгоритмы вас пытаются заставить учить рекрутеры, потому что для них это дешёвый, простой и быстро сокращающий выборку способ отбора, а как-то запариваться и делать что-то нормальное они не хотят и не умеют. Вообще, мне кажется, из всех тех, кто хотя бы косвенно относится к IT-сфере, наименьшая необходимость развиваться - у рекрутеров.
Кому действительно нужен матан? В первую очередь - разработчикам видеоигр. Как минимум - курс 10-11 классов из школы с углублённым изучением математики плюс вот это. Также в плюс будет курс линейной алгебры и аналитической геометрии с 1-го курса технического ВУЗа. И погуглить ещё, что такое кривые Безье, как их использовать и для чего. Вероятно, пригодится. Правда, сфера геймдева сама по себе конченая в плане условий работы в ней, и это уже давно не какое-то малоизвестное знание.
Другой пример - всякие там ML, data science, вот это вот всё. И тут у меня уже недостаточно знаний об этой сфере, чтобы говорить, насколько сильно там нужна какая-либо математика. Вроде как они оперируют статистикой и всем таким, но у них там всё на готовых библиотеках и пакетах программ завязано даже больше, чем у формошлёпов и бэкендеров. Короче, не знаю, буду считать, что всё примерно так же, как у разработчиков игр.
Кто-то также скажет: “Но ведь есть всякие фундаментальные библиотеки для математических, низкоуровневых и т.д. пафосных вычислений, типа CUDA и TensorFlow, всякие там игровые движки типа Unity и Unreal Engine, IDE и компиляторы от JetBrains. Их же кто-то пишет. А значит, специалисты там нужны”. Да, такие продукты есть, но их крайне мало, для них нужны очень специфичные знания (например, разработка компиляторов, драйверов устройств, программирование на OpenGL и всяких там API игровых консолей). Кроме того, каждым таким проектом занимается 3 калеки, 2 чумы. Зачастую это всякие там PhD из MIT, т.е. дико передовые в своих областях люди. Будут ли создаваться новые подобные технологии? Да, точно будут. Обычно такие создаются, когда крупная компания хочет захватить часть некоторого рынка. Но опять же, вероятность того, что к работе над подобным привлекут именно вас, крайне мала.
Миф 2: разработчику нужно знать английский язык
Миф, как мне кажется, пошёл из Украины. Большая часть IT-компаний там - аутсорс/аутстафф-галеры, работающие на иностранных заказчиков. Это означало, что человека вполне могли закинуть в команду к индусам/китайцам или к англоговорящему PM’y, где для коммуникации как раз и нужен английский. Но в России дела с этим сложились получше, тут много местного IT, при чём довольно крупного, и для работы английский не нужен.
Тем не менее, английский язык может дать IT-специалисту солидные преимущества в самом процессе работы. Можно смотреть в документацию на английском языке и в англоязычный Stack Overflow. Хотя уже есть сайты-агрегаторы, которые скрэйпят материалы оттуда и переводят их на русский, лол. Ну и самому задавать вопросы о своих проблемах на Reddit’e и issue tracker’ах. Есть переводчики, но они пока далеки от идеала. А ещё всякие там обучающие туториалы по разным технологиям на русском всегда появляются позже и менее многочисленны, чем на английском. А по всяким малопопулярным библиотекам их вообще может не быть. Короче, вывод: без английского сложно, но можно.


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