В любой профессии самое важное - это школа. Без учителя, который тебе откроет путь в мир профессии, специалист будет только разрабатывать не реальные проекты, а пустые фантазии в своих мечтах.
Поэтому самое важное знание - это английский язык. Нужно бегло читать на английском, и желательно быть способным вести переписку на английском.
Второе самое важное знание для разработчика - это высшая математика. Без неё ты не сможешь ни оценить трудозатраты, ни просто посчитать приближённое значение функции. Тем более не сможешь понять, почему один проект успешен и приносит прибыль, а другой не продвинулся дальше версии 1.2.
Третье самое важное знание для разработчика - это философия. В любом продукте есть философия. Философ сказал бы, что любой продукт - это просто плод философии разработчика. Apple, Google, Microsoft - это не только разные технологии, но и разные философии. Даже когда они создают свои продукты под одну и ту же технологическую базу, разница в философии разработки делает их продукты настолько непохожими на другие.
Четвёртое самое важное знание - это физика. Математика, философия - всё это спокойно может работать и на бумаге, но физику не обманешь. Любое устройство - это объект физического мира, и живёт по законам этой Вселенной.
Пятое самое важное знание - это религия. Как разработчик лично я постоянно сталкиваюсь с тем, что мой проект кто-то может просто объявить аморальным явлением.
Почему? - спрашиваю я.
Потому что ты аморальный человек, - отвечают мне, и с этим ничего не поделать - потому что потребитель верит не аморальному мне, а этому святому человеку. Он старушек через дорогу переводит, а у меня очередной дедлайн.
Шестое самое важное знание - это языки программирования. Чем на большем числе разных языков ты составлял хотя бы и небольшие программы, тем свободнее ты в выборе инструментов для разработки.
Может сложиться образ эдакого супермена в голове читателя. Но тут важно понимать, что любое явление обладает набором параметров. Допустим по первому свойству у вас 3, по второму 4, зато по 5+. Это делает вас как разработчика непохожим на других разработчиков. И если для какого-то проекта нужно подтянуть английский, например, то приходится подтягивать по ходу.