Woah, I followed pretty much the same roadmap as you, except I took the (Python-based) CS600 class at OpenMIT instead of Udacity's CS101. And my year was 2013. I really enjoyed Udacity's CS253 on web development, even if the particular technologies introduced in the course aren't very popular.
Since then, I've been switching gears from Python to JavaScript by learning Node and Angular. I don't view Python as a waste of time, because I think it is a great first language to learn particularly for CS fundamentals. Starting out, I may have been discouraged learning JavaScript as a first language. OOP isn't so straight-forward in JS, and there aren't as many learning resources for algorithms/CS-theory stuff in JS as there are in other languages. Also, learning server-side web development fundamentals with Node.js may have been a struggle, perhaps because there aren't as many resources devoted to beginners and docs as there are with Python/Django. Plus the asynchronous stuff. I'm struggling to learn AngularJS, although it's just straight up difficult I think.
I still need to figure out how to interview well. I have a decent GitHub/portfolio, so I'm generating a good number of interviews despite having 0 professional experience in the field and no CS degree (I have a math degree though). I've had about 20 technical phone screens/interviews not including take-home assignments, and I'm getting better at them. But I'm clearly not there yet, since nobody has offered me a job.
Since then, I've been switching gears from Python to JavaScript by learning Node and Angular. I don't view Python as a waste of time, because I think it is a great first language to learn particularly for CS fundamentals. Starting out, I may have been discouraged learning JavaScript as a first language. OOP isn't so straight-forward in JS, and there aren't as many learning resources for algorithms/CS-theory stuff in JS as there are in other languages. Also, learning server-side web development fundamentals with Node.js may have been a struggle, perhaps because there aren't as many resources devoted to beginners and docs as there are with Python/Django. Plus the asynchronous stuff. I'm struggling to learn AngularJS, although it's just straight up difficult I think.
I still need to figure out how to interview well. I have a decent GitHub/portfolio, so I'm generating a good number of interviews despite having 0 professional experience in the field and no CS degree (I have a math degree though). I've had about 20 technical phone screens/interviews not including take-home assignments, and I'm getting better at them. But I'm clearly not there yet, since nobody has offered me a job.