If I’m being honest, unless you’ve gotten a 1:1,000,000 ability to be able to pick up abstract concepts and run with them at some unbelievable pace where you become competent, I would probably hold off on learning too many things at once. While it’s true that what you listed are in the same sphere of one another, some of these require the understanding of more fundamental knowledge. Like going into deep learning isn’t going to do you much good without at least a fundamental knowledge of machine learning, which won’t help if you aren’t familiar with data science or statistics. Think of this as your first two years of undergraduate studies. How much of an understanding do you really have in each of those compulsatory fields of studies as a whole? Probably not. You’ll likely have one or two areas that you killed at and others that you don’t. So my best suggestion would be to probably focus on areas that you don’t totally suck at first.
Getting into data science and its various branches is sort of like getting into other major fields of science like engineering or medicine. It’s going to take a while, whether you like it or not. Sure it might be true that there are like a few people out there that can pick things up like nothing, there like hundreds of thousands that aren’t going to do that. So first thing first, to get good (or at least competent) is to have a healthy framework and expectation of realism without getting bogged down by possibilities.
After that, if you want to actually become competent in something, figure out what your end path-goal is. Like do you care more about making predictions to drive outcomes? Do you really care about developing software to serve some kind of end goal purpose that relies on data? Or is your interest in data mainly involved in just making storytelling a more enjoyable experience? Like a full-stack end goal is something that usually comes from necessity or situational circumstances that calls for it, but rarely is something that is sought out with no end goal in mind. Like most Full-Stack developers are usually in start-ups b/c of low funding to hire more engineers so they have to have someone do everything (and not that great in that other area, to begin with) or in major players in the industry after years of being a specialist in one area that they eventually pick up other stuff along the way and fall into that role. By figuring out that path, you will more or less narrow down that list to determine what’s a necessity for you as opposed to a want.
Once you have your path, pick the thing that would return the most return on your investment (i.e. time, energy, sanity), that you already don’t have a competent/working knowledge of that you can rely on, which I would imagine is some kind of programming language. In data science, the debate is either Python or R (but I’m guessing you’ll go with Python which is cool). Pick that up, focus on it, and set a REALISTIC outcome with a REALISTIC timeline. Give yourself something decent like 6 or 12 months to work up to doing your first-ever data analysis project to account for inevitable mind blocks and frustration that comes with it. Trust me, it took me like 4 months to just get comfortable with learning programming language without having to rely on Google for basic syntax. As a self-learner, this isn’t a race. You’re ultimately in charge of your learning experience, so why put unnecessary pressure or conditions on yourself that will make you burn out and not maximize your learning experience.
Now, during those stumbling blocks, there are many things that you can do to get out of it that varies based on your personality and what’s best for you. It could mean taking some time off to explore a bit of something else or review older stuff to get your mojo back (so to speak) and a renewed drive to get back on that path. It could also mean taking a big step and go outside your comfort zone with starting a project and force yourself to deal with challenges that you’ll likely face in real-life scenarios as a data scientist/engineer/analyst. These are things that I do to help get through these blocks as I progress in my understanding of data science, but yours may vary.
After that, just start doing projects (ideally simpler ones) and, you’ll eventually be put into a situation where you need to call on these skills and really push them to accomplish your given task. This is more or less a trial-by-fire situation but it really will allow you to practice those foundational skills in a repetitive manner, while also introducing some situations to call upon other higher-level concepts to solve a problem. Think about how many times you’re going to need to do exploratory analysis to see what your data looks like. I’m pretty sure by like the fifth project, you’ll know how to use the “generate a plot” syntax.
All in all, I think this will be the best course of action for you to make the most of your time in learning and understanding data science. If you’ve got other ideas or if circumstances are different in your case, that’s cool. However, I would say that this path is probably the best option if you don’t want to start feeling like you’ll want to pull all of your hair out and really suffer the mental anguish of imposter syndrome if you put those listed skills on a resume and end up with your first live-person interview.