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