So, I sat down to code the other day, and I ran into so many errors just starting the app up that I ended up reinstalling my entire development environment (admittedly I was using a system that I haven't coded on in months).
Was that an over-reaction? Probably. But the experience taught me quite a few lessons about environment setup, that I figure are worth sharing.
When first starting out, it's hard to know how to put together a stack, let alone what additional software, tools, libraries, middleware etc. are required or recommended.
Bootcamps, online courses and tutorials can help get you started, but if you just copy and paste, or follow the instructions without understanding what you're doing, you can run into issues down the road.
It's okay if you don't understand exactly how all the tools you are using work, but you should at least know what they are, especially update and version managers.
Speaking of update and version managers, it's important to stay on top of updates. This doesn't mean always update right away, in fact it is probably better to consider the ramifications of updating before going through with it. If a library or tool you're using gets updated, there may be a number of new features or fixes. At the same time, there may be old features that are now deprecated that may break your applications.
The important thing is to make sure that you aren't just performing updates without thinking, but are aware of how the update can affect the rest of your environment, and taking the appropriate steps. This may mean updating other parts of the stack at the same time, updating projects or both. Version managers can be helpful for this.
Probably the easiest way to avoid running into blockages due to development environment is to keep a consistent environment. While it may be convenient to switch between a laptop and desktop, or otherwise code across multiple devices, it might be better to have one dedicated machine.
If you're going to run multiple devices, make sure they are running the same technologies and the same versions. Along those same lines, try to make your test, development and production environments (if applicable) as close as possible. This is another place where version managers come in handy.
Having said all that, This doesn't mean be afraid to update, but, when you do update some part of your stack, make sure you update it everywhere.
Finally, remember that just because you started with one technology, doesn't mean you have to keep using it. This doesn't have to be huge things like which language you code in, it can apply to anything in your development stack.
Maybe you'd prefer Eclipse over Visual Studio as your IDE. Perhaps PostgreSQL fits your needs better than sqlite3. Once you know what you're looking for, or what might work better with other parts of your stack or production environment, don't be scared to try things.