Можно устроиться и ДО окончания :) Особенно на стажировку. В Яндексе, например, стажёры обычно работают на неполный день (20–30 часов в неделю), это отлично совмещается с учёбой на старших курсах.
Вообще, если вы пока что не чувствуете себя по-настоящему сильным программистом, лучше начинать со стажировок в хороших компаниях и сильных командах. Это позволит вам набраться опыта и знаний от высококлассных старших товарищей. «Хорошие» компании в данном контексте – это те, для которых разработка ПО является основной, профильной деятельностью, и которые престижны среди кандидатов. Потому что там можно попасть в компетентную среду. Лучше поработать два-три года стажёром/джуном в крутых местах, чем сразу искать «полноценную» позицию в так-себе-компании, потому что скорость роста компетенций на старте карьеры гораздо важнее, чем солидная должность.