The course in general lacks rigor, but I thought it was a very good first step.
Andrew Ng's Coursera course is probably good for some backgrounds. But if your background is as someone who has mostly been programming for the last few years, I feel that Andrew Ng's course has two big drawbacks:
1. It's not very hands-on or practical. You won't actually get the feeling of building anything for a while.
2. It's very math oriented. If the last time you took a math class for your CS degree was a few years ago, you run the risk of not really remembering the background material well.
I'd personally recommend doing two things in parallel, if your background is in programming with less math training:
1. Look for a very hands-on/practical course to try out some examples.
2. At the same time, start refreshing (or learning) some maths that you might not remember, specifically, probability and statistics. Then after, Linear Algebra and maybe calculus.
If you never took calculus it's probably going to be hard going, but almost all modern machine learning requires basic calculus.
I would really recommend going through the first part of the course about linear regression if you haven't encountered it before, it was really eye opening for me.
Again, this really depends on how mathematically competent you already are. I'm just basing this on how I felt coming to the course after having finished my degree about 10 years ago, therefore not really having most prob/statistics fresh in my mind.
It's the very first bit of the course, I think everyone who is interested should try learning it. If not it's fine, but I wouldn't want anyone to not even try to spend a few hours on it because someone on the internet said it would be too hard.
My worry is that people will be put off from the field of machine learning if, 3 lessons into Andrew Ng's course, they will see that they don't understand anything, and that it's not practical to boot.
So my advice (generally applicable) is to try a few different things, because different resources click for different people.
Then for overall curriculum, I'd suggest:
1. start with basic machine learning (not neural networks) and in particular, read through the scikit-learn docs and watch a few tutorials on youtube. spend some time getting familiar with jupyter notebooks and pandas and tackle some real-world problems (kaggle is great or google around for datasets that excite you). Make sure you can solve regression, classification and clustering problems and understand how to measure the accuracy of your solution (understand things like precision, recall, mse, overfitting, train/test/validation splits)
2. Once you're comfortable with traditional machine learning, get stuck into neural networks by doing the fast.ai course. It's seriously good and will give you confidence in building near cutting-edge solutions to problems
3. Pick a specific problem area and watch a stanford course on it (e.g. cs231n for computer vision or cs224n for NLP)
4. Start reading papers. I recommend Mendeley to keep notes and organize them. The stanford courses will mention papers. Read those papers and the papers they cite.
5. Start trying out your own ideas and implementations.
While you do the above, supplement with:
* Talking Machines and O'Reilly Data Show podcasts
* Follow people like Richard Socher, Andrej Karpathy and other top researchers on Twitter
Good luck and enjoy!