There is a lot of free code on the Internet. Some of it is well constructed. Much of it is not. Accordingly, it is important that one is able to distinguish between the good and the bad.
In order to achieve this task good facility with the languages employed to create the code is paramount. To acquire this facility one is pushed and pulled in many directions at once, and it is easy to lose one’s focus, if one does not pay good attention. In effect, much time, patience, and energy are required.
Nearly all of the answers to one’s question are there, ready and waiting, but one must be sufficiently well informed in order to know how to construct effective questions. This requires a lot of self-training.
This is software development from the perspective of a mature amateur.