Немного оппонирую коллег из соседних ответов. Ответы правильные и хорошие, но добавлю свои мысли. Для программиста нужны, по большей части, две вещи - опыт (лучше в сложных и разных проектах) и знания (как классические знания алгоритмов, так и знания редких, но интересных задачах - ИИ, компьютерное зрение, пр.).
1) Опыт получается самим программистом, в идеале - до вуза. Но! Опыт опыту рознь. 100 сайтов-визиток в год в течение 5 лет - не тот опыт, который развивает. А вот хороший наставник даст интересные задачки, которые очень быстро разовьют и опыт, и знания, и "чуйку". Хороший наставник может быть и на работе, и в вузе. А может и наоборот - хороший наставник может и не обнаружиться ни на работе, ни в вузе.
2) Знания получать нужно самостоятельно, конечно же. Но опять-таки - в вузе для этого есть время и место, а на работе нужно заниматься текущими вещами, зачастую - рутиной.
Дополнительно к опыту и знаниям, есть ещё навыки коммуникации, есть опыт житейский, не-профессиональный, есть связи и контакты со многими людьми. Это сложно получить на работе.
Мой ответ будет таким. Если вы сможете найти хорошего наставника в вузе (в магистратуре, в аспирантуре), то идите. Инвестиции в своё образование окупятся с лихвой. Но если в вузе (в магистратуре, в аспирантуре) будут давать всякую фигню - то большого смысла в этом будет немного (смысл будет, но немного).