Write longer scripts. You will very quickly repeat the mistakes for which we have architectured solutions. Then you can make informed searches to solve those problems.
You can also look at how simple applications are organized, or look at application templates to see where everything is.
You can also read about common software development patterns as they are answers to those common problems.
I don't have a specific book to recommend. I found that stumbling through worked a lot better for me. Write something simple and useful, and rewrite it often. It's very easy to keep improving upon something that you actively use on a daily basis.
You can also look at how simple applications are organized, or look at application templates to see where everything is.
You can also read about common software development patterns as they are answers to those common problems.
I don't have a specific book to recommend. I found that stumbling through worked a lot better for me. Write something simple and useful, and rewrite it often. It's very easy to keep improving upon something that you actively use on a daily basis.