[cs50](https://online-learning.harvard.edu/course/cs50-introduction...) is the reason I am a software engineer today.
But it WAS the best introduction to software development I have ever seen, and I have seen quite a few.
I did see a couple of people quit the course because it was "too complicated" - in reality, it's just complicated enough, and the progression is natural and well-presented.