Есть ПО-Инженеры, Солюшен дизайнеры, те, кто проектируют крупные проекты на верхушке, составляют планы и должны знать все технологии и наилучшие решения для той или иной задачи. А если обычные программисты, которые получают листочек бумаги и переписывают его в код, что уже совсем не трудно. Как перемещаются? Учатся, учатся, учатся и набираются опыта многими годами. Но такое практикуется только на крупных предприятиях. На маленьких же - любой программист это и дизайнер и слесарь и кодер и вообще, холодильник починит. И да - зачастую все через жопу