It depends on what you mean by "fully understanding".
It could mean a life-long process, or it could mean a lot shorter timespan.
At my home university Programming I course is calculated to take about 162 hours (of which about half is independent study). By the end of the course, expected learning outcomes are:
"Student can solve easy problems and write a program for the problem in Python language. Student knows the basic programming process. He knows basic programming structures (sequence, selections and loops) and can use simple data structures (set and dictionary). He knows what an object is and can create simple objects. He can make a simple graphical user-interface. He knows when to use each structure and can use them with Python language. He knows how to document programs and can write documentation to his programs. He can understand programs written by others, can change them and test them. He can search, recognize and fix programming errors. He recognizes differences in the syntaxes of different programming languages."
Of course, Programming I gets you not even close to building something you could deliver to a customer but it is a good start. If you want to be a better programmer, study some computer science (e.g. data structures and algorithms) and keep doing coding exercises. Be sure to comment your code to show you really understand what it does.