So you're still on the Basics and William's answer is pretty good, I will list here a bit of stuff to learn, and where to.
1 - You need the basics, that is already much more than you expected it to be:
- Linear Algebra: knowing the best way of inverting a matrix might be useful for a computer scientist, but you're not aiming for that. You need to understand concepts and their meaning and effects such as:
- Matrix Rank (For example, this could tell you, by an Autocorrelation matrix, that your data is still not enough for things like least squares.)
- Meaning of Vector Spaces and basic linear transformations such as base change
- Meaning of eigenvalues and eigenvectors
- Calculus: also, focus on the meaning and understanding, computers can do most of the operations, even analytically
- Derivatives and Integrals
- Signals and Systems: that might be a little bit biased (since I am a signal processing researcher) of me but, learning how to model certain phenomena and how they behave may help you to solve problems, that's basically applied Linear Algebra and Calculus (most things are). Aim for really basic, Signal processing is one of the research areas most affected by Data Science/Machine Learning, to the point people were making surveys to change the name of the community in IEEE.
The above can be found on many, many books and intros and won't be difficult for you to search for them.
- Statistics: Machine learning derives from statistics and this is essential. Actually, you can learn calculus from a statistic point of view instead of function optimization. Links in the subjects names are free courses to Udacity or Udemy
It is important to learn what you can do with classic statistics to avoid wasting computers in problems that could be solved easily. It is a good practice to model things in the simplest way possible and escalate to more complex model if needed.
Also, you might need some dimensionality reduction tools such as:
- Principal Component Analysis
- Linear Discriminant Analysis
Then you can go for more complex Neural Networks:
- Self-organizing-maps, Feed Forward, RNNs, CNN's and so on...
Note: CNN's are usual in Computer Vision applications but the only thing it asks of data is that it has been organized in a way that allows for meaningful correlations between data that is near each other. Example: a process with multiple sensors in a time series might benefit from a CNN.
Data Analysis: a Data Scientist must have a personal relationship with data. For any good relation, you will need to understand your loved one (but the relationship with data is usually toxic, hahaha). Udacity has a nice Intro to Data Analysis, also for free.
Learn to express yourself:
- make a youtube channel, present small tutorials, and classes to the community.
- Try to answer Stack Exchange questions and help others, that will build your respect in the community and goodwill for when it is your time to ask. Also, this is a good way to practice expressing your ideas in a text.
- Write a blog, it is a good way to have a notebook and also gaining attention from the community.
You can check on hands-on books such as Data Smart and Data Science from Scratch. Data Smart is about getting Insight from information and that's mostly your job as a D-Scientist.
2 - Build Respect
- Try creating packages and libraries and making them available on GitHub and sharing your relevant solutions.
- Win Kaggle competitions, many companies take Kaggle seriously as .... and having a good score will get you nice positions. You don't need to win in first place by the way. Also, competitions are usually good examples of real-world problems that will get you that so needed experience that you can't get while you don't have a Data Scientist role.
- Also, some competitions pay really well.
- Explore Kaggle, share algorithms, read and try to improve on others and search for datasets that might be of your interest.
- Making datasets is a bit exhaustive but might be a way of making money while you're not ready.
3 - Get programming skills
Not only learning frameworks but understand how things work and basics of problem-solving must be put to the test every day. Also, making everything from scratch is fun and is good for learning, but when you do your work you will need code with high maturity, checked hundreds of times all over the world.
You'll need some tools, Python is a great language for data science (since the community is active and it is free, Matlab has a lot of nice tools and marvelous documentation but it is really expensive and quite a bit slow)
Some top libraries:
- NumPy is the most fundamental package, understand it well
- Pandas for wrangling with data
- Seaborn, Bokeh, Plotly, and Matplotlib for plotting stuff and helping you making good reports
- SciKit-Learn this is usually the fastest way to test a machine learning algorithm
- Theano is similar to NumPy but was constructed with Machine Learning in mind
- Keras, this is a library for building Neural Networks really fast, it uses Theano or TensorFlow as backends
- TensorFlow, PyTorch, and other deep learning related stuff.
4 - Go Deeper
- You may never need deep learning, depending on the area you're going to apply but this is that good nuclear weapon you hope to never have to use but someday you may:
- Understand start with Udemy
- There is a nanodegree on Udacity
Also, remember DL is computationally intensive and you want to avoid needing it (since these are expensive)
5 - Finally: Career
- Learning never stops and you will never stop learning new concepts, every single day.
- Courses are long, take them at your own pace. Try getting the basics of learning how to use, then go back and learn it for real
- Try to get a few certificates and posting them on your LinkedIn. Make a few projects and create online articles on your blog and on LinkedIn and Kaggle.
- Try choosing something you can relate to while searching for work. DS covers a wide range of subjects and trying to get insight from things you understand is easier than trying to get insight from things that sound like random noise for you
Build a network of collaborators, help your colleagues and try building a vast network ranging from medicine to linguistics, they might tell you what you're doing wrong while looking at data not related to your field of expertise.
Finally, and this took a bit longer than I anticipated but: don't give up. This is a long journey but is absurdly rewarding, both financially and personally. And try not working alone, create a small group of people to work with and make some projects.
This is my longest answer to a Stack Exchange question.