Learning software development is a difficult journey filled with many ups and downs. There may be a day when you overcome a challenging issue and feel great. However, the following day you may get stuck with an issue, that is not so difficult to resolve. In the end, you experience total defeat. Programmers can access both commercial and free resources.
If money is scarce, start with the free ones and upgrade as soon as you begin to get paid to code. Apart from YouTube, Treehouse is an excellent website featuring brief video lessons, real-world tasks, and comprehension tests dotted throughout. It has also made an entertaining game.