Что делать если не знаешь как реализовать что-либо при написании программы?
Я такой человек который предпочитает полагаться на свои знания, да и вообще на самого себя (Ну, то есть могу взять и изобрести велосипед, как говорится)  
Синдром неприятия чужого кода. Пройдёт ) Ведь невозможно абсолютно всё держать в голове и при необходимости запрограммировать что угодно или я что-то не так понимаю? 
Есть базовые вещи и понимание как что-то делать или как что-то сделано, а есть кучи либ и инструментов выполняющих +/- те же задачи документацию по которым можно загуглить за пару минут и прочитать за пару часов. Запоминать нужно первое.
В гуглении нет никаких проблем и ничего предосудительного ни для кого. Совсем.
Тем более при изучении инструментов/фреймворков и т.п.
Для базовых вещей(паттерны, дизайн и т.п.), конечно, стоит начать с книг.
Мастером не являюсь, но если что-то неизвестное делаю, то шарюсь по гитхабу, если делать свой велосипед, то лучше чтобы он в плане интерфейсов был похож на другие. Так всем будет лучше, никто ведь не захочет потом разбираться как поворачивать с помощью джойстика и где искать для него батарейки, если везде для поворотов используют руль.