Man that’s a lot of questions!
Short videos, like 1-5 minutes for a high level summary of a topic, what it is, and why’d I’d want to learn it.
From there, reading and personally experimenting is next.
Finally once I start running into issues, using the docs+googling to get help.
I usually have a project idea in my head, or just pick something boring (TODO app!) if I want to learn some new tech. There is of course pre-existing knowledge to build off of, so if your 100% starting, having a guided tutorial can be in place of that initial video I usually use.
The usual starting point is the requirements, or the idea/concept of what you want to build. You don’t just start building out your codebase if your aren’t sure what your building toward, or what sort of concerns might come up. Skipping over most of this, you can structure your codebase any multitude of ways depending on what your concern is about.
Often times codebases are written out with a bunch of custom tooling to help take the code you are writing to code that runs for users, either on the client or server-side or elsewhere (mobile/etc)
I usually utilize the analogy of cooking as a way to get an idea of development, as both are complex processes that require time, practice, experience, specific tools and some element of “art”.
Just like cooking, there’s many ways to go about things depending on your goals. If you want to open a fast food joint you’d set things up differently than a taco stand, or a full scale restaurant, or even a factory that needs to pump out frozen taco meals. The food might end up the same, but how you “structure” the process on building tacos doesn’t have to be depending on how its being made. Code+codebases are the same.
Not usually because integrating different parts is usually where issues arise. Going back to the cooking analogy, its easy to gather materials and measure amounts, but prep and actual cooking is where you can mess up the process, and usually why recipes dictate the most to the actual process.
Building code is the same, with the extra quirk you are responsible for integrating. Mixing 2 things together is pretty straight forward, connecting two things you build is very dependent upon all the factors going into the connection. It could be you, or something else entirely.
If your writing for global you usually have it auto-translated at some point, often times during the build process of your code. This way you are only writing your code/logic/stuff once and it will display in the correct language to end users later.
This is hard to answer as “workspace” is too generic of a term. Going back to the cooking analogy one more time, its similar to asking “what does a restaurants kitchen look like?” It could look like anything depending on what they are cooking, how, and when. Of course there are usually similar elements among all of them, like they’d all have a sink, but it all depends on what they are setting out to do.
Same goes for your environment, and best practices. A web developer learning front-end web development would use different tools than some system admin who writes scripts all day, or a back-end developer who needs to manages the database.
If your looking at front-end development, a modern professional would probably be using VSCode, working in a Linux-like environment, and probably be using React with a modern framework such as nextjs. They’d be writing TypeScript and hold secondary responsibility of possibly working in the back-end using nodejs or another back-end language. They’d also be responsible for a bunch of other things, such as search engine optimization, source control, project management, unit testing, integration testing, automated testing, design and software engineering.
If that sounds like a lot, it is! Mind you this is just one specific role. Other roles would have similar tasks but may use different tools and technologies.
The easiest way is to just start doing stuff yourself. I dumped a bunch of stuff above, but in integrating those things odds are you will run into trouble. If we go all the way back to the top of my post, you’ll notice I start experimenting, running into issues and finding help for what I run into.
Its hard to suggest a 100% perfect path to doing what you want, its much easier to provide a simple method you apply over and over to get to where you want to go.
That method is described above, learn about something, why you’d want to learn it. Try to learn it or use it, and when you run into issues seek help for the problems you find. Rinse and repeat. It isn’t pretty or perfect or fast, but it does work given enough time and effort.
Unlike cooking, “failing” with development is rather cheap. Computers and internet connections are expensive, but once you have that you have everything besides the time and grit required to put in the work.
Good luck, keep learning, keep building