I see a few sites listed on here, but one of the most valuable skills that allowed me to become a software engineer was the ability to find this kind of information and reason about it.
I would encourage you to (if possible) sit with your son and just observe as he tries to figure out things. When he asks questions, try to respond with questions that prompt him to refine the questions he is asking, until he answers it himself.
This was something I had to learn on my own, and I've seen resources every now and then referring to this as "grit" or "persistence". In learning software engineering, I've found a lot of things boil down to getting the questions right, rather than the answers.
A big part of that is developing the vocabulary and grammar used to speak and reason about web development. Learning that was a ton of googling and head scratching till things started to click.
I would encourage you to (if possible) sit with your son and just observe as he tries to figure out things. When he asks questions, try to respond with questions that prompt him to refine the questions he is asking, until he answers it himself.
This was something I had to learn on my own, and I've seen resources every now and then referring to this as "grit" or "persistence". In learning software engineering, I've found a lot of things boil down to getting the questions right, rather than the answers.
A big part of that is developing the vocabulary and grammar used to speak and reason about web development. Learning that was a ton of googling and head scratching till things started to click.