Нельзя стать фехтовальщиком, почитав книги и посмотрев видяшки. Нужно потратить много времени на практику.
По какой-то, совершенно непонятной причине, многие новички относятся к программированию, как к чему-то, что можно изучить теоретически и сразу пользоваться. Но нет.
Нужно потратить МНОГО времени на практику.
Поэтому:
знаю и инструменты и знаю как должна работать программа
Как долго вы пользуетесь этими инструментами для решения задач, и как много программ вы написали?
Почему вы считаете, что вы знаете инструменты? Знаете их названия и что они делают в общих чертах? Не путайте это с реальным умением пользоваться инструментом.