У меня с нуля ушло как раз три-четыре месяца. Я решил, что для того, что бы устроиться на работу без опыта, надо чем-то подтвердить знания. Для этого сдавал Oracle Certified Associate Java Programmer. Возможно, это и не вот уж прям как обязательно, но мне подготовка к экзамену сильно помогла. После того как сдал, устроился на работу на джуниорскую вакансию через неделю, собеседование прошёл довольно легко и тестовое задание сделал без напрягов тоже.
Самые полезные книги, думаю, - это Thinking in java (в русской версии много чего нет, например, упражнений, некоторых глав и всё, что касается шаблонов прям абзацами выпилено) и OCA Java SE 7 Programmer I Certification Guide (в этой книге нет про io/nio, но в этом сильно желательно разобраться, в TiJ, вроде, норм описано).
Ещё желательно посмотреть интересующие вакансии и изучить основные требования, хотя бы в общих чертах иметь представление.
Ну и писать кучу всего, естественно )