A set of materials useful when learning to develop software. The software (and hardware) landscape is wide
You will spend a lot of time here. So it is worth getting familiar and comfortable with a prompt. You do not need to be a master, just not scared.
To build software you will be travelling around many computers. Networks and connectivity play a larger part than previously. File systems are everywhere.
ssh, certificates and keys, encryption, file systems, others...
You will definitely want to control the source.
https://rachelcarmena.github.io/2018/12/12/how-to-teach-git.html
https://guides.github.com/activities/hello-world/
https://github.com/joejag/coaching-plan/blob/master/tech/vcs/slides/slides.md
https://github.com/sbarlster/developing/blob/master/git-faq.md
Once your source is controlled it may need building.
maven, gradle, other...
How do we demonstrate the quality or what we produce and how do we control its flow towards the LIVE systems.
jenkins and other pipeline tools, quality checks, other...
Your software will want to run somewhere. And not only on your local machine.
docker, ansible, AWS (there are other clouds), other...
What makes great (read working to expected design and maintainable) software? Whatever the language or framework, there are some guiding principles that will make your software shine.
small, single responsibility, abstractions, immutability, DI, low dependencies - all driven by testability
A short while back I would have said go for Java. It has stood the test of time. 20+ years and is still in wide use. But I am unsure about its suitablility for learning and maybe its time for one of the young(er) guns to take over.
Go, javascript, typescript, other...