Apprendre "tout" est impossible.
La meilleure raison d'apprendre est de s'inscrire dans une université en tant que major en informatique. Ensuite, tous les jours, vous côtoyez d'autres personnes qui partagent votre intérêt, vous assisterez à de nombreuses conférences données par des experts de niveau doctorat et vous lirez des livres et ferez des projets et aurez accès à des experts à qui vous pourrez poser des questions. Vous ferez tout cela à plein temps, tous les jours, pendant quatre ans. Enfin, lorsque vous serez diplômé, vous serez un "débutant certifié" qui a encore beaucoup à apprendre. Puis, au fil des ans, en travaillant sur des projets et en changeant d'emploi, vous apprendrez de plus en plus de choses. Mais au fur et à mesure que vous apprenez, vous vous rendez compte que vous devenez un spécialiste dans quelques domaines et que savoir "tout" est toujours impossible.
Si la voie universitaire n'est pas possible, alors essayez de faire les mêmes choses par vous-même, mais acceptez que le processus soit beaucoup plus lent. Trouvez d'autres personnes, peut-être seulement en ligne dans les médias sociaux, qui sont des développeurs de logiciels. Lisez des livres. Oui, des textes complets sur les sujets qui vous intéressent. Il existe de bons cours en ligne, mais surtout, essayez de réaliser des projets. Le mieux est que vous puissiez travailler sur des projets Open Source avec d'autres personnes. Mais vous devrez d'abord réaliser vos propres petits projets. Vous trouverez de NOMBREUX blocages, même dans des projets simples, mais à chaque fois vous faites des recherches, vous apprenez et vous continuez. Au bout de 1 000 fois, vous avez appris quelque chose.
Je fais cela depuis des décennies et j'admets que chaque projet consiste surtout à penser d'abord à "comment cette chose devrait-elle fonctionner ?" puis j'abandonne une idée après l'autre jusqu'à ce que j'en trouve une qui voit bon et ensuite je tombe dans l'autre mode de demander "pourquoi cette chose ne fonctionne pas comme je pense qu'elle devrait et de devoir la réparer. Finalement, ça marche assez bien et je recommence avec le projet suivant. Ce que je veux dire, c'est que le développement informatique (matériel et logiciel) consiste à résoudre des problèmes. Vous devez aimer la résolution de problèmes.