как и в любом другом искусстве мастерство (в том числе и скорость) складывается из множества деталей.
посредственным программистам они могут казаться не значительными, даже появляются фразы типа слепой метод печати НИНУЖОН, овер9000% обдумываем архитектуру, рисуем схемки на бумаге, и тд. Это всё оправдания.
конечно как правило при решении задачи, в голове нет полного решения, нужен черновик для набросков и схем -> просто вам нужно научиться использовать свой код как черновик и все свои мысли по тому как решить задачу, сразу описывать в виде набросков кода / классов / обращений к пока ещё не существующим методам и тд.
такой подход называют ещё решением "сверху вниз", когда ты сразу описываешь как программа должна в общем работать постепенно углубляясь в реализацию деталей.
программисту в 2015 году, стыдно должно быть рисовать какие-то диаграммки от руки, имея генераторы UML диаграмм (в intellij IDE например встроенный генератор схем есть).
учитесь описывать структуру и схемы работы сразу в коде, а не наоборот.
у многих хороших прогеров есть свои методики как работать очень быстро и эффективно, этим обычно не делятся (не потому что это секрет) просто такие вещи сугубо индивидуальные.
начиная от индивидуальных раскладок клавиатуры, индивидуальных настроек среды программирования, заканчивая собственным набором базовых алгоритмов комбинируя которую можно решать 90% любых задач.
и это всё НЕ ерунда, это те детали из которых складывается ваша скорость, и качество программирования. Tо там потерял 5 минут, то здесь провозился со схемкой на бумаге, то писал простой метод в течении 2 минут вместо 15 секунд.
И в итоге, некоторые пишут программу в течении 2х недель, а кто-то туже самую программу за 2 часа...
также важный для скорости момент -> это уметь писать код правильно (как бы не банально это звучало) -> очень много времени тратится на исправление ошибок, писать совсем без багов наверно нереально, но есть принципы позволяющие их сократить.
и да все эти вещи приходят исключительно с многолетним опытом.